* Large file support for AIX, HP-UX, and IRIX.
[make.git] / configure.in
blobc2068ca5df8ccf525103cedd320c3357da52b1a7
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION([$Id: configure.in,v 1.77 1999/08/31 17:02:38 psmith Exp $])
3 AC_PREREQ(2.13)dnl              dnl Minimum Autoconf version required.
4 AC_INIT(vpath.c)dnl             dnl A distinctive file to look for in srcdir.
6 AM_INIT_AUTOMAKE(make, 3.77.95)
7 AM_CONFIG_HEADER(config.h)
9 dnl Regular configure stuff
11 AC_CANONICAL_HOST
12 AC_PROG_MAKE_SET
13 AC_PROG_CC
14 AC_PROG_INSTALL
15 AC_CHECK_PROG(AR, ar, ar, ar)
16 AC_PROG_RANLIB
17 AC_PROG_CPP                     dnl Later checks need this.
18 AC_AIX
19 AC_ISC_POSIX
20 AC_MINIX
22 dnl This test must come as early as possible after the compiler configuration
23 dnl tests, because the choice of the file model can (in principle) affect
24 dnl whether functions and headers are available, whether they work, etc.
25 AC_SYS_LARGEFILE
27 AC_HEADER_STDC
28 AC_HEADER_DIRENT
29 AC_TYPE_UID_T                   dnl Also does gid_t.
30 AC_TYPE_PID_T
31 AC_TYPE_SIGNAL
32 AC_CHECK_HEADERS(stdlib.h unistd.h limits.h sys/param.h fcntl.h string.h \
33                  memory.h sys/timeb.h)
34 AC_PROG_CC_C_O
35 AM_PROG_CC_STDC
36 AC_C_CONST                      dnl getopt needs this.
37 AC_HEADER_STAT
39 AC_STRUCT_ST_MTIM_NSEC
40 jm_AC_TYPE_UINTMAX_T
42 AC_SUBST(LIBOBJS)
44 AC_DEFUN(AC_CHECK_SYMBOL, [dnl
45 AC_MSG_CHECKING(for $1)
46 AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl
47 AC_TRY_LINK(, [extern char *sys_siglist[]; puts(*sys_siglist);],
48             ac_cv_check_symbol_$1=yes, ac_cv_check_symbol_$1=no)])
49 if test "$ac_cv_check_symbol_$1" = yes; then
50 changequote(,)dnl
51   ac_tr_symbol=`echo $1 | tr '[a-z]' '[A-Z]'`
52 changequote([,])dnl
53   AC_DEFINE_UNQUOTED(HAVE_${ac_tr_symbol})
55 AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
57 # clock_gettime is in -lposix4 in Solaris 2.6.
58 AC_CHECK_LIB(posix4, clock_gettime)
60 AC_CHECK_FUNCS(memmove strdup psignal mktemp pstat_getdynamic \
61                clock_gettime dup2 getcwd sigsetmask sigaction getgroups \
62                setlinebuf seteuid setegid setreuid setregid pipe \
63                strerror strsignal)
64 AC_CHECK_SYMBOL(sys_siglist)
65 AC_FUNC_ALLOCA
66 AC_FUNC_VFORK
67 AC_FUNC_VPRINTF
68 AC_FUNC_STRCOLL
69 AC_FUNC_CLOSEDIR_VOID
70 AC_FUNC_SETVBUF_REVERSED
71 AC_FUNC_SELECT
73 AC_CHECK_LIB(kstat, kstat_open) dnl _Must_ come before AC_FUNC_GETLOADAVG.
74 AC_FUNC_GETLOADAVG
76 # Check out the wait reality.
77 AC_CHECK_HEADERS(sys/wait.h)
78 AC_CHECK_FUNCS(waitpid wait3)
79 AC_MSG_CHECKING(for union wait)
80 AC_CACHE_VAL(make_cv_union_wait, [dnl
81 AC_TRY_LINK([#include <sys/types.h>
82 #include <sys/wait.h>],
83             [union wait status; int pid; pid = wait (&status);
84 #ifdef WEXITSTATUS
85 /* Some POSIXoid systems have both the new-style macros and the old
86    union wait type, and they do not work together.  If union wait
87    conflicts with WEXITSTATUS et al, we don't want to use it at all.  */
88 if (WEXITSTATUS (status) != 0) pid = -1;
89 #ifdef WTERMSIG
90 /* If we have WEXITSTATUS and WTERMSIG, just use them on ints.  */
91 -- blow chunks here --
92 #endif
93 #endif
94 #ifdef HAVE_WAITPID
95 /* Make sure union wait works with waitpid.  */
96 pid = waitpid (-1, &status, 0);
97 #endif
99             [make_cv_union_wait=yes], [make_cv_union_wait=no])])
100 if test "$make_cv_union_wait" = yes; then
101   AC_DEFINE(HAVE_UNION_WAIT)
103 AC_MSG_RESULT($make_cv_union_wait)
105 AC_DECL_SYS_SIGLIST
107 # The presence of the following is not meant to imply
108 # that make necessarily works on those systems.
109 AC_CHECK_LIB(sun, getpwnam)
111 AC_SUBST(REMOTE) REMOTE=stub
112 make_try_customs=no
113 AC_ARG_WITH(customs,
114 [  --with-customs=DIR      Enable remote jobs via Customs--see README.customs],
115 [case "$withval" in
116   n|no) ;;
117   *) make_cppflags="$CPPFLAGS"
118      case "$withval" in
119        y|ye|yes) ;;
120        *) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
121           make_ldflags="$LDFLAGS -L$with_customs/lib" ;;
122      esac
123      CF_NETLIBS
124      AC_CHECK_HEADER(customs.h,
125                      REMOTE=cstms
126                        LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags",
127                      with_customs=no
128                        CPPFLAGS="$make_cppflags" make_badcust=yes)
129      ;;
130 esac])
132 dnl See if we can handle the job server feature, and if the user wants it.
134 AC_ARG_ENABLE(job-server,
135   [  --disable-job-server    Disallow recursive make communication during -jN],
136   [make_cv_job_server="$enableval" user_job_server="$enableval"],
137   [make_cv_job_server="yes"])
139 has_wait_nohang=yes
140 case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
141   no/no) has_wait_nohang=no ;;
142 esac
144 case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$has_wait_nohang/$make_cv_job_server" in
145   yes/yes/yes/yes) AC_DEFINE(MAKE_JOBSERVER) ;;
146 esac
148 dnl Allow building with dmalloc
150 AC_ARG_ENABLE(dmalloc,
151   [  --enable-dmalloc        Enable support for the dmalloc debugging library],
152   [make_cv_dmalloc="$enableval"],
153   [make_cv_dmalloc="no"])
155 case "$make_cv_dmalloc" in
156   yes) AC_CHECK_HEADERS(dmalloc.h)
157        AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
158        CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK" ;;
159 esac
161 AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
162 if test -f /usr/sccs/get; then
163   make_cv_path_sccs_get=/usr/sccs/get
164 else
165   make_cv_path_sccs_get=get
166 fi])
167 AC_DEFINE_UNQUOTED(SCCS_GET,["$make_cv_path_sccs_get"])
169 ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
170 if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
171    test -f s.conftest; then
172   # We successfully created an SCCS file.
173   AC_CACHE_CHECK(if SCCS get command understands -G, make_cv_sys_get_minus_G, [
174     if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
175        test -f conftoast; then
176        make_cv_sys_get_minus_G=yes
177     else
178        make_cv_sys_get_minus_G=no
179     fi])
180   case "$make_cv_sys_get_minus_G" in
181     yes) AC_DEFINE(SCCS_GET_MINUS_G);;
182   esac
184 rm -f s.conftest conftoast
186 AC_MSG_CHECKING(if system libc has GNU glob)
187 AC_CACHE_VAL(make_cv_sys_gnu_glob, [
188  AC_TRY_CPP([
189 #include <features.h>
190 #include <glob.h>
191 #include <fnmatch.h>
193 #define GLOB_INTERFACE_VERSION 1
194 #if defined _LIBC || !defined __GNU_LIBRARY__ || __GNU_LIBRARY__ <= 1
195 # error no gnu glob
196 #else
197 # include <gnu-versions.h>
198 # if _GNU_GLOB_INTERFACE_VERSION != GLOB_INTERFACE_VERSION
199 #  error no gnu glob
200 # endif
201 #endif
202  ], make_cv_sys_gnu_glob=yes, make_cv_sys_gnu_glob=no)])
203 case "$make_cv_sys_gnu_glob" in
204   yes) AC_MSG_RESULT(yes) ;;
205   no)  AC_MSG_RESULT([no; using local copy])
206        CPPFLAGS="$CPPFLAGS -I$srcdir/glob"
207        AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a
208        ;;
209 esac
212 MAINT_MAKEFILE=/dev/null
213 if test -r "$srcdir/maintMakefile"; then
214   MAINT_MAKEFILE="$srcdir/maintMakefile"
216 AC_SUBST_FILE(MAINT_MAKEFILE)
218 AC_OUTPUT(build.sh Makefile glob/Makefile)
220 dnl If we don't yet have build.sh.in, build.sh is a bogus 0-length file
221 dnl so remove it.
223 test -f build.sh.in || rm -f build.sh
226 case "$make_badcust" in
227   yes) echo
228        echo "WARNING: --with-customs specified but no customs.h could be found;"
229        echo "         disabling Customs support."
230        echo ;;
231 esac
233 case "$with_customs" in
234   ""|n|no|y|ye|yes) ;;
235   *) if test -f "$with_customs/lib/libcustoms.a"; then
236        :
237      else
238        echo
239        echo "WARNING: \`$with_customs/lib' does not appear to contain the"
240        echo "         Customs library.  You must build and install Customs"
241        echo "         before compiling GNU make."
242        echo
243      fi ;;
244 esac
246 case "$has_wait_nohang" in
247   no) echo
248       echo "WARNING: Your system has neither waitpid() nor wait3()."
249       echo "         Without one of these, signal handling is unreliable."
250       echo "         You should be aware that running GNU make with -j"
251       echo "         could result in erratic behavior."
252       echo ;;
253 esac
255 case "$make_cv_job_server/$user_job_server" in
256   no/yes) echo
257           echo "WARNING: Make job server requires a POSIX-ish system that"
258           echo "         supports the pipe(), sigaction(), and either"
259           echo "         waitpid() or wait3() functions.  Your system doesn't"
260           echo "         appear to provide one or more of those."
261           echo "         Disabling job server support."
262           echo ;;
263 esac
265 dnl Local Variables:
266 dnl comment-start: "dnl "
267 dnl comment-end: ""
268 dnl comment-start-skip: "\\bdnl\\b\\s *"
269 dnl compile-command: "make configure config.h.in"
270 dnl End: