Merged revisions 151240 via svnmerge from
[asterisk/asterisk.git] / autoconf / ast_func_fork.m4
1 # AST_FUNC_FORK
2 # -------------
3 AN_FUNCTION([fork],  [AST_FUNC_FORK])
4 AN_FUNCTION([vfork], [AST_FUNC_FORK])
5 AC_DEFUN([AST_FUNC_FORK],
6 [AC_REQUIRE([AC_TYPE_PID_T])dnl
7 AC_CHECK_HEADERS(vfork.h)
8 AC_CHECK_FUNCS(fork vfork)
9 if test "x$ac_cv_func_fork" = xyes; then
10   _AST_FUNC_FORK
11 else
12   ac_cv_func_fork_works=$ac_cv_func_fork
13 fi
14 if test "x$ac_cv_func_fork_works" = xcross; then
15   case $host in
16     *-*-amigaos* | *-*-msdosdjgpp* | *-*-uclinux* | *-*-linux-uclibc* )
17       # Override, as these systems have only a dummy fork() stub
18       ac_cv_func_fork_works=no
19       ;;
20     *)
21       ac_cv_func_fork_works=yes
22       ;;
23   esac
24   AC_MSG_WARN([result $ac_cv_func_fork_works guessed because of cross compilation])
25 fi
26 ac_cv_func_vfork_works=$ac_cv_func_vfork
27 if test "x$ac_cv_func_vfork" = xyes; then
28   _AC_FUNC_VFORK
29 fi;
30 if test "x$ac_cv_func_fork_works" = xcross; then
31   ac_cv_func_vfork_works=$ac_cv_func_vfork
32   AC_MSG_WARN([result $ac_cv_func_vfork_works guessed because of cross compilation])
33 fi
34
35 if test "x$ac_cv_func_vfork_works" = xyes; then
36   AC_DEFINE(HAVE_WORKING_VFORK, 1, [Define to 1 if `vfork' works.])
37 else
38   AC_DEFINE(vfork, fork, [Define as `fork' if `vfork' does not work.])
39 fi
40 if test "x$ac_cv_func_fork_works" = xyes; then
41   AC_DEFINE(HAVE_WORKING_FORK, 1, [Define to 1 if `fork' works.])
42 fi
43 ])# AST_FUNC_FORK
44
45
46 # _AST_FUNC_FORK
47 # -------------
48 AC_DEFUN([_AST_FUNC_FORK],
49   [AC_CACHE_CHECK(for working fork, ac_cv_func_fork_works,
50     [AC_RUN_IFELSE(
51       [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
52         [
53           /* By Ruediger Kuhlmann. */
54           return fork () < 0;
55         ])],
56       [ac_cv_func_fork_works=yes],
57       [ac_cv_func_fork_works=no],
58       [ac_cv_func_fork_works=cross])])]
59 )# _AST_FUNC_FORK