VirtualBox

source: kBuild/trunk/src/gmake/configure.in@ 154

Last change on this file since 154 was 154, checked in by bird, 20 years ago

This commit was generated by cvs2svn to compensate for changes in r153,
which included commits to RCS files with non-trunk default branches.

  • Property svn:eol-style set to native
File size: 12.0 KB
Line 
1# Process this file with autoconf to produce a configure script.
2
3AC_INIT([GNU make],[3.81beta1],[[email protected]])
4
5AC_PREREQ(2.59)
6AC_REVISION([[$Id: configure.in,v 1.125 2004/03/06 08:05:19 psmith Exp $]])
7
8# Autoconf setup
9AC_CONFIG_AUX_DIR(config)
10AC_CONFIG_SRCDIR(vpath.c)
11AC_CONFIG_HEADERS(config.h)
12
13# Automake setup
14AM_INIT_AUTOMAKE([1.8.2])
15
16# Checks for programs.
17AC_PROG_CC
18AC_PROG_INSTALL
19AC_PROG_RANLIB
20AC_PROG_CPP
21AC_CHECK_PROG(AR, ar, ar, ar)
22# Perl is needed for the test suite (only)
23AC_CHECK_PROG(PERL, perl, perl, perl)
24
25# Specialized system macros
26AC_CANONICAL_HOST
27AC_AIX
28AC_ISC_POSIX
29AC_MINIX
30
31# Needed for ansi2knr
32AM_C_PROTOTYPES
33
34# Enable gettext, in "external" mode.
35
36AM_GNU_GETTEXT_VERSION(0.14.1)
37AM_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.
42AC_SYS_LARGEFILE
43
44# Checks for libraries.
45AC_SEARCH_LIBS(getpwnam, [sun])
46
47# Checks for header files.
48AC_HEADER_STDC
49AC_HEADER_DIRENT
50AC_HEADER_STAT
51AC_HEADER_TIME
52AC_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
56if 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.])
59fi
60
61
62# Determine what kind of variadic function calls we support
63AC_CHECK_HEADERS(stdarg.h varargs.h, break)
64
65AM_PROG_CC_C_O
66AC_C_CONST
67AC_TYPE_SIGNAL
68AC_TYPE_UID_T
69AC_TYPE_PID_T
70
71# Find some definition for uintmax_t
72
73AC_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
81AC_STRUCT_ST_MTIM_NSEC
82AC_MSG_CHECKING([whether to use high resolution file timestamps])
83AC_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])
94AC_MSG_RESULT($make_cv_file_timestamp_hi_res)
95if test "$make_cv_file_timestamp_hi_res" = yes; then
96 val=1
97else
98 val=0
99fi
100AC_DEFINE_UNQUOTED(FILE_TIMESTAMP_HI_RES, $val,
101 [Use high resolution file timestamps if nonzero.])
102
103if 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
111fi
112
113# Check for DOS-style pathnames.
114pds_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.
119AC_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)"])])
131if test "$ac_cv_func_gettimeofday" = yes; then
132 AC_DEFINE(HAVE_GETTIMEOFDAY, 1,
133 [Define if you have a standard gettimeofday function])
134fi
135
136AC_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
141AC_FUNC_SETVBUF_REVERSED
142
143# strcoll() is used by the GNU glob library
144AC_FUNC_STRCOLL
145
146AC_FUNC_ALLOCA
147AC_FUNC_FORK([])
148AC_FUNC_VPRINTF
149AC_FUNC_CLOSEDIR_VOID
150
151AC_FUNC_GETLOADAVG
152
153# AC_FUNC_GETLOADAVG is documented to set the NLIST_STRUCT value, but it
154# doesn't. So, we will.
155
156if 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
167fi
168
169AC_CHECK_DECLS([sys_siglist])
170
171
172# Check out the wait reality.
173AC_CHECK_HEADERS(sys/wait.h)
174AC_CHECK_FUNCS(waitpid wait3)
175AC_MSG_CHECKING(for union wait)
176AC_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])])
197if 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>.])
200fi
201AC_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.
205if test "$PATH_SEPARATOR" = ';'; then
206 AC_DEFINE(HAVE_DOS_PATHS, 1,
207 [Define this if your system requires backslashes or drive specs in pathnames.])
208fi
209
210
211# See if the user wants to use pmake's "customs" distributed build capability
212
213AC_SUBST(REMOTE) REMOTE=stub
214use_customs=false
215AC_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.
236AM_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
240AC_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
246has_wait_nohang=yes
247case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
248 no/no) has_wait_nohang=no ;;
249esac
250
251AC_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
258case "$host_os" in
259 os2*) make_cv_sa_restart=yes ;;
260esac
261
262if test "$make_cv_sa_restart" != no; then
263 AC_DEFINE(HAVE_SA_RESTART, 1,
264 [Define if <signal.h> defines the SA_RESTART constant.])
265fi
266
267case "$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.]);;
271esac
272
273# Find the SCCS commands, so we can include them in our default rules.
274
275AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
276if test -f /usr/sccs/get; then
277 make_cv_path_sccs_get=/usr/sccs/get
278else
279 make_cv_path_sccs_get=get
280fi])
281AC_DEFINE_UNQUOTED(SCCS_GET, ["$make_cv_path_sccs_get"],
282 [Define to the name of the SCCS 'get' command.])
283
284ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
285if ( /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
299fi
300rm -f s.conftest conftoast
301
302# Check the system to see if it provides GNU glob. If not, use our
303# local version.
304
305AC_MSG_CHECKING(if system libc has GNU glob)
306AC_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)
320make_cv_sys_gnu_glob=yes], [AC_MSG_RESULT([no; using local copy])
321AC_SUBST(GLOBINC) GLOBINC='-I$(srcdir)/glob'
322AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a
323make_cv_sys_gnu_glob=no])])
324# Tell automake about this, so it can build the right .c files.
325AM_CONDITIONAL(USE_LOCAL_GLOB, test "$make_cv_sys_gnu_glob" = no)
326
327# Let the makefile know what our build host is
328
329AC_DEFINE_UNQUOTED(MAKE_HOST,"$host",[Build host information.])
330MAKE_HOST="$host"
331AC_SUBST(MAKE_HOST)
332
333# Include the Maintainer's Makefile section, if it's here.
334
335MAINT_MAKEFILE=/dev/null
336if test -r "$srcdir/maintMakefile"; then
337 MAINT_MAKEFILE="$srcdir/maintMakefile"
338fi
339AC_SUBST_FILE(MAINT_MAKEFILE)
340
341# Allow building with dmalloc
342AM_WITH_DMALLOC
343
344# Forcibly disable SET_MAKE. If it's set it breaks things like the test
345# scripts, etc.
346SET_MAKE=
347
348# Sanity check and inform the user of what we found
349
350case "$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 ;;
355esac
356
357case "$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 ;;
368esac
369
370case "$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 ;;
377esac
378
379case "$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 ;;
387esac
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
394AC_CONFIG_FILES(Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile)
395
396if test -f $srcdir/build.sh.in; then
397 AC_CONFIG_FILES(build.sh)
398fi
399
400
401# OK, do it!
402
403AC_OUTPUT
404
405
406dnl Local Variables:
407dnl comment-start: "dnl "
408dnl comment-end: ""
409dnl comment-start-skip: "\\bdnl\\b\\s *"
410dnl compile-command: "make configure config.h.in"
411dnl End:
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette