1 | # Process this file with autoconf to produce a configure script.
|
---|
2 |
|
---|
3 | AC_INIT([GNU make],[3.81beta1],[[email protected]])
|
---|
4 |
|
---|
5 | AC_PREREQ(2.59)
|
---|
6 | AC_REVISION([[$Id: configure.in,v 1.125 2004/03/06 08:05:19 psmith Exp $]])
|
---|
7 |
|
---|
8 | # Autoconf setup
|
---|
9 | AC_CONFIG_AUX_DIR(config)
|
---|
10 | AC_CONFIG_SRCDIR(vpath.c)
|
---|
11 | AC_CONFIG_HEADERS(config.h)
|
---|
12 |
|
---|
13 | # Automake setup
|
---|
14 | AM_INIT_AUTOMAKE([1.8.2])
|
---|
15 |
|
---|
16 | # Checks for programs.
|
---|
17 | AC_PROG_CC
|
---|
18 | AC_PROG_INSTALL
|
---|
19 | AC_PROG_RANLIB
|
---|
20 | AC_PROG_CPP
|
---|
21 | AC_CHECK_PROG(AR, ar, ar, ar)
|
---|
22 | # Perl is needed for the test suite (only)
|
---|
23 | AC_CHECK_PROG(PERL, perl, perl, perl)
|
---|
24 |
|
---|
25 | # Specialized system macros
|
---|
26 | AC_CANONICAL_HOST
|
---|
27 | AC_AIX
|
---|
28 | AC_ISC_POSIX
|
---|
29 | AC_MINIX
|
---|
30 |
|
---|
31 | # Needed for ansi2knr
|
---|
32 | AM_C_PROTOTYPES
|
---|
33 |
|
---|
34 | # Enable gettext, in "external" mode.
|
---|
35 |
|
---|
36 | AM_GNU_GETTEXT_VERSION(0.14.1)
|
---|
37 | AM_GNU_GETTEXT([external])
|
---|
38 |
|
---|
39 | # This test must come as early as possible after the compiler configuration
|
---|
40 | # tests, because the choice of the file model can (in principle) affect
|
---|
41 | # whether functions and headers are available, whether they work, etc.
|
---|
42 | AC_SYS_LARGEFILE
|
---|
43 |
|
---|
44 | # Checks for libraries.
|
---|
45 | AC_SEARCH_LIBS(getpwnam, [sun])
|
---|
46 |
|
---|
47 | # Checks for header files.
|
---|
48 | AC_HEADER_STDC
|
---|
49 | AC_HEADER_DIRENT
|
---|
50 | AC_HEADER_STAT
|
---|
51 | AC_HEADER_TIME
|
---|
52 | AC_CHECK_HEADERS(stdlib.h locale.h unistd.h limits.h fcntl.h string.h \
|
---|
53 | memory.h sys/param.h sys/time.h sys/timeb.h)
|
---|
54 |
|
---|
55 | # Set a flag if we have an ANSI C compiler
|
---|
56 | if test "$ac_cv_prog_cc_stdc" != no; then
|
---|
57 | AC_DEFINE(HAVE_ANSI_COMPILER, 1,
|
---|
58 | [Define if your compiler conforms to the ANSI C standard.])
|
---|
59 | fi
|
---|
60 |
|
---|
61 |
|
---|
62 | # Determine what kind of variadic function calls we support
|
---|
63 | AC_CHECK_HEADERS(stdarg.h varargs.h, break)
|
---|
64 |
|
---|
65 | AM_PROG_CC_C_O
|
---|
66 | AC_C_CONST
|
---|
67 | AC_TYPE_SIGNAL
|
---|
68 | AC_TYPE_UID_T
|
---|
69 | AC_TYPE_PID_T
|
---|
70 |
|
---|
71 | # Find some definition for uintmax_t
|
---|
72 |
|
---|
73 | AC_CHECK_TYPE(uintmax_t,,[
|
---|
74 | uintmax_t="unsigned long"
|
---|
75 | AC_CHECK_TYPE(unsigned long long,[uintmax_t="unsigned long long"])
|
---|
76 | AC_DEFINE_UNQUOTED(uintmax_t,$uintmax_t,
|
---|
77 | [Define uintmax_t if not defined in <stdint.h> or <inttypes.h>.])])
|
---|
78 |
|
---|
79 | # Find out whether our struct stat returns nanosecond resolution timestamps.
|
---|
80 |
|
---|
81 | AC_STRUCT_ST_MTIM_NSEC
|
---|
82 | AC_MSG_CHECKING([whether to use high resolution file timestamps])
|
---|
83 | AC_CACHE_VAL(make_cv_file_timestamp_hi_res, [
|
---|
84 | make_cv_file_timestamp_hi_res=no
|
---|
85 | if test "$ac_cv_struct_st_mtim_nsec" != no; then
|
---|
86 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
---|
87 | # if HAVE_INTTYPES_H
|
---|
88 | # include <inttypes.h>
|
---|
89 | # endif]],
|
---|
90 | [[char a[0x7fffffff < (uintmax_t)-1 >> 30 ? 1 : -1];]])],
|
---|
91 | [make_cv_file_timestamp_hi_res=yes],
|
---|
92 | [])
|
---|
93 | fi])
|
---|
94 | AC_MSG_RESULT($make_cv_file_timestamp_hi_res)
|
---|
95 | if test "$make_cv_file_timestamp_hi_res" = yes; then
|
---|
96 | val=1
|
---|
97 | else
|
---|
98 | val=0
|
---|
99 | fi
|
---|
100 | AC_DEFINE_UNQUOTED(FILE_TIMESTAMP_HI_RES, $val,
|
---|
101 | [Use high resolution file timestamps if nonzero.])
|
---|
102 |
|
---|
103 | if test "$make_cv_file_timestamp_hi_res" = yes; then
|
---|
104 | # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
|
---|
105 | # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
|
---|
106 | AC_SEARCH_LIBS(clock_gettime, [rt posix4])
|
---|
107 | if test "$ac_cv_search_clock_gettime" != no; then
|
---|
108 | AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
|
---|
109 | [Define if you have the clock_gettime function.])
|
---|
110 | fi
|
---|
111 | fi
|
---|
112 |
|
---|
113 | # Check for DOS-style pathnames.
|
---|
114 | pds_AC_DOS_PATHS
|
---|
115 |
|
---|
116 | # See if we have a standard version of gettimeofday(). Since actual
|
---|
117 | # implementations can differ, just make sure we have the most common
|
---|
118 | # one.
|
---|
119 | AC_CACHE_CHECK([for standard gettimeofday], ac_cv_func_gettimeofday,
|
---|
120 | [ac_cv_func_gettimeofday=no
|
---|
121 | AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/time.h>
|
---|
122 | int main ()
|
---|
123 | {
|
---|
124 | struct timeval t; t.tv_sec = -1; t.tv_usec = -1;
|
---|
125 | exit (gettimeofday (&t, 0) != 0
|
---|
126 | || t.tv_sec < 0 || t.tv_usec < 0);
|
---|
127 | }]])],
|
---|
128 | [ac_cv_func_gettimeofday=yes],
|
---|
129 | [ac_cv_func_gettimeofday=no],
|
---|
130 | [ac_cv_func_gettimeofday="no (cross-compiling)"])])
|
---|
131 | if test "$ac_cv_func_gettimeofday" = yes; then
|
---|
132 | AC_DEFINE(HAVE_GETTIMEOFDAY, 1,
|
---|
133 | [Define if you have a standard gettimeofday function])
|
---|
134 | fi
|
---|
135 |
|
---|
136 | AC_CHECK_FUNCS( memcpy memmove strchr strdup mkstemp mktemp fdopen \
|
---|
137 | bsd_signal dup2 getcwd sigsetmask sigaction getgroups \
|
---|
138 | seteuid setegid setlinebuf setreuid setregid setvbuf pipe \
|
---|
139 | strerror strsignal)
|
---|
140 |
|
---|
141 | AC_FUNC_SETVBUF_REVERSED
|
---|
142 |
|
---|
143 | # strcoll() is used by the GNU glob library
|
---|
144 | AC_FUNC_STRCOLL
|
---|
145 |
|
---|
146 | AC_FUNC_ALLOCA
|
---|
147 | AC_FUNC_FORK([])
|
---|
148 | AC_FUNC_VPRINTF
|
---|
149 | AC_FUNC_CLOSEDIR_VOID
|
---|
150 |
|
---|
151 | AC_FUNC_GETLOADAVG
|
---|
152 |
|
---|
153 | # AC_FUNC_GETLOADAVG is documented to set the NLIST_STRUCT value, but it
|
---|
154 | # doesn't. So, we will.
|
---|
155 |
|
---|
156 | if test "$ac_cv_header_nlist_h" = yes; then
|
---|
157 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <nlist.h>]],
|
---|
158 | [[struct nlist nl;
|
---|
159 | nl.n_name = "string";
|
---|
160 | return 0;]])],
|
---|
161 | [make_cv_nlist_struct=yes],
|
---|
162 | [make_cv_nlist_struct=no])
|
---|
163 | if test "$make_cv_nlist_struct" = yes; then
|
---|
164 | AC_DEFINE(NLIST_STRUCT, 1,
|
---|
165 | [Define if struct nlist.n_name is a pointer rather than an array.])
|
---|
166 | fi
|
---|
167 | fi
|
---|
168 |
|
---|
169 | AC_CHECK_DECLS([sys_siglist])
|
---|
170 |
|
---|
171 |
|
---|
172 | # Check out the wait reality.
|
---|
173 | AC_CHECK_HEADERS(sys/wait.h)
|
---|
174 | AC_CHECK_FUNCS(waitpid wait3)
|
---|
175 | AC_MSG_CHECKING(for union wait)
|
---|
176 | AC_CACHE_VAL(make_cv_union_wait, [dnl
|
---|
177 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
|
---|
178 | #include <sys/wait.h>]],
|
---|
179 | [[union wait status; int pid; pid = wait (&status);
|
---|
180 | #ifdef WEXITSTATUS
|
---|
181 | /* Some POSIXoid systems have both the new-style macros and the old
|
---|
182 | union wait type, and they do not work together. If union wait
|
---|
183 | conflicts with WEXITSTATUS et al, we don't want to use it at all. */
|
---|
184 | if (WEXITSTATUS (status) != 0) pid = -1;
|
---|
185 | #ifdef WTERMSIG
|
---|
186 | /* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */
|
---|
187 | -- blow chunks here --
|
---|
188 | #endif
|
---|
189 | #endif
|
---|
190 | #ifdef HAVE_WAITPID
|
---|
191 | /* Make sure union wait works with waitpid. */
|
---|
192 | pid = waitpid (-1, &status, 0);
|
---|
193 | #endif
|
---|
194 | ]])],
|
---|
195 | [make_cv_union_wait=yes],
|
---|
196 | [make_cv_union_wait=no])])
|
---|
197 | if test "$make_cv_union_wait" = yes; then
|
---|
198 | AC_DEFINE(HAVE_UNION_WAIT, 1,
|
---|
199 | [Define this if you have the \`union wait' type in <sys/wait.h>.])
|
---|
200 | fi
|
---|
201 | AC_MSG_RESULT($make_cv_union_wait)
|
---|
202 |
|
---|
203 |
|
---|
204 | # If we're building on Windows/DOS/OS/2, add some support for DOS drive specs.
|
---|
205 | if test "$PATH_SEPARATOR" = ';'; then
|
---|
206 | AC_DEFINE(HAVE_DOS_PATHS, 1,
|
---|
207 | [Define this if your system requires backslashes or drive specs in pathnames.])
|
---|
208 | fi
|
---|
209 |
|
---|
210 |
|
---|
211 | # See if the user wants to use pmake's "customs" distributed build capability
|
---|
212 |
|
---|
213 | AC_SUBST(REMOTE) REMOTE=stub
|
---|
214 | use_customs=false
|
---|
215 | AC_ARG_WITH(customs,
|
---|
216 | AC_HELP_STRING([--with-customs=DIR],
|
---|
217 | [enable remote jobs via Customs--see README.customs]),
|
---|
218 | [case $withval in
|
---|
219 | n|no) : ;;
|
---|
220 | *) make_cppflags="$CPPFLAGS"
|
---|
221 | case $withval in
|
---|
222 | y|ye|yes) : ;;
|
---|
223 | *) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
|
---|
224 | make_ldflags="$LDFLAGS -L$with_customs/lib" ;;
|
---|
225 | esac
|
---|
226 | CF_NETLIBS
|
---|
227 | AC_CHECK_HEADER(customs.h,
|
---|
228 | [use_customs=true
|
---|
229 | REMOTE=cstms
|
---|
230 | LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags"],
|
---|
231 | [with_customs=no
|
---|
232 | CPPFLAGS="$make_cppflags" make_badcust=yes])
|
---|
233 | ;;
|
---|
234 | esac])
|
---|
235 | # Tell automake about this, so it can include the right .c files.
|
---|
236 | AM_CONDITIONAL(USE_CUSTOMS, test "$use_customs" = true)
|
---|
237 |
|
---|
238 | # See if we can handle the job server feature, and if the user wants it.
|
---|
239 |
|
---|
240 | AC_ARG_ENABLE(job-server,
|
---|
241 | AC_HELP_STRING([--disable-job-server],
|
---|
242 | [disallow recursive make communication during -jN]),
|
---|
243 | [make_cv_job_server="$enableval" user_job_server="$enableval"],
|
---|
244 | [make_cv_job_server="yes"])
|
---|
245 |
|
---|
246 | has_wait_nohang=yes
|
---|
247 | case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
|
---|
248 | no/no) has_wait_nohang=no ;;
|
---|
249 | esac
|
---|
250 |
|
---|
251 | AC_CACHE_CHECK(for SA_RESTART, make_cv_sa_restart, [
|
---|
252 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>]],
|
---|
253 | [[return SA_RESTART;]])],
|
---|
254 | [make_cv_sa_restart=yes],
|
---|
255 | [make_cv_sa_restart=no])])
|
---|
256 |
|
---|
257 | # enable make_cv_sa_restart for OS/2
|
---|
258 | case "$host_os" in
|
---|
259 | os2*) make_cv_sa_restart=yes ;;
|
---|
260 | esac
|
---|
261 |
|
---|
262 | if test "$make_cv_sa_restart" != no; then
|
---|
263 | AC_DEFINE(HAVE_SA_RESTART, 1,
|
---|
264 | [Define if <signal.h> defines the SA_RESTART constant.])
|
---|
265 | fi
|
---|
266 |
|
---|
267 | case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in
|
---|
268 | yes/yes/yes/yes/yes)
|
---|
269 | AC_DEFINE(MAKE_JOBSERVER, 1,
|
---|
270 | [Define this to enable job server support in GNU make.]);;
|
---|
271 | esac
|
---|
272 |
|
---|
273 | # Find the SCCS commands, so we can include them in our default rules.
|
---|
274 |
|
---|
275 | AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
|
---|
276 | if test -f /usr/sccs/get; then
|
---|
277 | make_cv_path_sccs_get=/usr/sccs/get
|
---|
278 | else
|
---|
279 | make_cv_path_sccs_get=get
|
---|
280 | fi])
|
---|
281 | AC_DEFINE_UNQUOTED(SCCS_GET, ["$make_cv_path_sccs_get"],
|
---|
282 | [Define to the name of the SCCS 'get' command.])
|
---|
283 |
|
---|
284 | ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
|
---|
285 | if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
|
---|
286 | test -f s.conftest; then
|
---|
287 | # We successfully created an SCCS file.
|
---|
288 | AC_CACHE_CHECK(if SCCS get command understands -G, make_cv_sys_get_minus_G, [
|
---|
289 | if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
|
---|
290 | test -f conftoast; then
|
---|
291 | make_cv_sys_get_minus_G=yes
|
---|
292 | else
|
---|
293 | make_cv_sys_get_minus_G=no
|
---|
294 | fi])
|
---|
295 | case "$make_cv_sys_get_minus_G" in
|
---|
296 | yes) AC_DEFINE(SCCS_GET_MINUS_G, 1,
|
---|
297 | [Define this if the SCCS 'get' command understands the '-G<file>' option.]);;
|
---|
298 | esac
|
---|
299 | fi
|
---|
300 | rm -f s.conftest conftoast
|
---|
301 |
|
---|
302 | # Check the system to see if it provides GNU glob. If not, use our
|
---|
303 | # local version.
|
---|
304 |
|
---|
305 | AC_MSG_CHECKING(if system libc has GNU glob)
|
---|
306 | AC_CACHE_VAL(make_cv_sys_gnu_glob, [
|
---|
307 | AC_EGREP_CPP(gnu glob,[
|
---|
308 | #include <features.h>
|
---|
309 | #include <glob.h>
|
---|
310 | #include <fnmatch.h>
|
---|
311 |
|
---|
312 | #define GLOB_INTERFACE_VERSION 1
|
---|
313 | #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
|
---|
314 | # include <gnu-versions.h>
|
---|
315 | # if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
|
---|
316 | gnu glob
|
---|
317 | # endif
|
---|
318 | #endif
|
---|
319 | ], [AC_MSG_RESULT(yes)
|
---|
320 | make_cv_sys_gnu_glob=yes], [AC_MSG_RESULT([no; using local copy])
|
---|
321 | AC_SUBST(GLOBINC) GLOBINC='-I$(srcdir)/glob'
|
---|
322 | AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a
|
---|
323 | make_cv_sys_gnu_glob=no])])
|
---|
324 | # Tell automake about this, so it can build the right .c files.
|
---|
325 | AM_CONDITIONAL(USE_LOCAL_GLOB, test "$make_cv_sys_gnu_glob" = no)
|
---|
326 |
|
---|
327 | # Let the makefile know what our build host is
|
---|
328 |
|
---|
329 | AC_DEFINE_UNQUOTED(MAKE_HOST,"$host",[Build host information.])
|
---|
330 | MAKE_HOST="$host"
|
---|
331 | AC_SUBST(MAKE_HOST)
|
---|
332 |
|
---|
333 | # Include the Maintainer's Makefile section, if it's here.
|
---|
334 |
|
---|
335 | MAINT_MAKEFILE=/dev/null
|
---|
336 | if test -r "$srcdir/maintMakefile"; then
|
---|
337 | MAINT_MAKEFILE="$srcdir/maintMakefile"
|
---|
338 | fi
|
---|
339 | AC_SUBST_FILE(MAINT_MAKEFILE)
|
---|
340 |
|
---|
341 | # Allow building with dmalloc
|
---|
342 | AM_WITH_DMALLOC
|
---|
343 |
|
---|
344 | # Forcibly disable SET_MAKE. If it's set it breaks things like the test
|
---|
345 | # scripts, etc.
|
---|
346 | SET_MAKE=
|
---|
347 |
|
---|
348 | # Sanity check and inform the user of what we found
|
---|
349 |
|
---|
350 | case "$make_badcust" in
|
---|
351 | yes) echo
|
---|
352 | echo "WARNING: --with-customs specified but no customs.h could be found;"
|
---|
353 | echo " disabling Customs support."
|
---|
354 | echo ;;
|
---|
355 | esac
|
---|
356 |
|
---|
357 | case "$with_customs" in
|
---|
358 | ""|n|no|y|ye|yes) ;;
|
---|
359 | *) if test -f "$with_customs/lib/libcustoms.a"; then
|
---|
360 | :
|
---|
361 | else
|
---|
362 | echo
|
---|
363 | echo "WARNING: '$with_customs/lib' does not appear to contain the"
|
---|
364 | echo " Customs library. You must build and install Customs"
|
---|
365 | echo " before compiling GNU make."
|
---|
366 | echo
|
---|
367 | fi ;;
|
---|
368 | esac
|
---|
369 |
|
---|
370 | case "$has_wait_nohang" in
|
---|
371 | no) echo
|
---|
372 | echo "WARNING: Your system has neither waitpid() nor wait3()."
|
---|
373 | echo " Without one of these, signal handling is unreliable."
|
---|
374 | echo " You should be aware that running GNU make with -j"
|
---|
375 | echo " could result in erratic behavior."
|
---|
376 | echo ;;
|
---|
377 | esac
|
---|
378 |
|
---|
379 | case "$make_cv_job_server/$user_job_server" in
|
---|
380 | no/yes) echo
|
---|
381 | echo "WARNING: Make job server requires a POSIX-ish system that"
|
---|
382 | echo " supports the pipe(), sigaction(), and either"
|
---|
383 | echo " waitpid() or wait3() functions. Your system doesn't"
|
---|
384 | echo " appear to provide one or more of those."
|
---|
385 | echo " Disabling job server support."
|
---|
386 | echo ;;
|
---|
387 | esac
|
---|
388 |
|
---|
389 |
|
---|
390 | # Specify what files are to be created.
|
---|
391 | # We only generate the build.sh if we have a build.sh.in; we won't have
|
---|
392 | # one before we've created a distribution.
|
---|
393 |
|
---|
394 | AC_CONFIG_FILES(Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile)
|
---|
395 |
|
---|
396 | if test -f $srcdir/build.sh.in; then
|
---|
397 | AC_CONFIG_FILES(build.sh)
|
---|
398 | fi
|
---|
399 |
|
---|
400 |
|
---|
401 | # OK, do it!
|
---|
402 |
|
---|
403 | AC_OUTPUT
|
---|
404 |
|
---|
405 |
|
---|
406 | dnl Local Variables:
|
---|
407 | dnl comment-start: "dnl "
|
---|
408 | dnl comment-end: ""
|
---|
409 | dnl comment-start-skip: "\\bdnl\\b\\s *"
|
---|
410 | dnl compile-command: "make configure config.h.in"
|
---|
411 | dnl End:
|
---|