source: trunk/third/gmake/configure.in @ 15975

Revision 15975, 10.0 KB checked in by ghudson, 24 years ago (diff)
Fix merge: use right flags to build libglob.
Line 
1dnl Process this file with autoconf to produce a configure script.
2AC_REVISION([$Id: configure.in,v 1.4 2001-04-04 00:04:41 ghudson Exp $])
3AC_PREREQ(2.13)dnl              dnl Minimum Autoconf version required.
4AC_INIT(vpath.c)dnl             dnl A distinctive file to look for in srcdir.
5
6AM_INIT_AUTOMAKE(make, 3.79.1)
7AM_CONFIG_HEADER(config.h)
8
9dnl Regular configure stuff
10
11AC_CANONICAL_HOST
12AC_PROG_MAKE_SET
13AC_PROG_CC
14AC_PROG_INSTALL
15AC_CHECK_PROG(AR, ar, ar, ar)
16AC_PROG_RANLIB
17AC_PROG_CPP                     dnl Later checks need this.
18AC_AIX
19AC_ISC_POSIX
20AC_MINIX
21
22AC_CHECK_PROG(PERL, perl, perl, perl)   dnl Needed for the test suite (only)
23
24dnl This test must come as early as possible after the compiler configuration
25dnl tests, because the choice of the file model can (in principle) affect
26dnl whether functions and headers are available, whether they work, etc.
27AC_SYS_LARGEFILE
28
29AC_HEADER_STDC
30AC_HEADER_DIRENT
31AC_TYPE_UID_T                   dnl Also does gid_t.
32AC_TYPE_PID_T
33AC_TYPE_SIGNAL
34AC_CHECK_HEADERS(stdlib.h unistd.h limits.h sys/param.h fcntl.h string.h \
35                 memory.h sys/time.h sys/timeb.h)
36AC_PROG_CC_C_O
37AM_PROG_CC_STDC
38AC_C_CONST                      dnl getopt needs this.
39AC_C_INLINE                     dnl gettext needs this.
40AC_HEADER_STAT
41AC_HEADER_TIME
42
43dnl Handle internationalization
44
45ALL_LINGUAS="de es fr ja ko nl pl pt_BR ru"
46pds_WITH_GETTEXT
47
48
49dnl See if the user wants nsec timestamps
50
51AC_ARG_ENABLE(nsec-timestamps,
52  [  --disable-nsec-timestamps disable use of sub-second timestamps],
53  [make_cv_nsec_timestamps="$enableval"],
54  [make_cv_nsec_timestamps="yes"])
55
56if test "x$make_cv_nsec_timestamps" != xno; then
57  AC_STRUCT_ST_MTIM_NSEC
58fi
59jm_AC_TYPE_UINTMAX_T
60
61AC_SUBST(LIBOBJS)
62
63AC_DEFUN(AC_CHECK_SYMBOL, [dnl
64AC_MSG_CHECKING(for $1)
65AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl
66AC_TRY_LINK(, [extern char *sys_siglist[]; puts(*sys_siglist);],
67            ac_cv_check_symbol_$1=yes, ac_cv_check_symbol_$1=no)])
68if test "$ac_cv_check_symbol_$1" = yes; then
69changequote(,)dnl
70  ac_tr_symbol=`echo $1 | tr '[a-z]' '[A-Z]'`
71changequote([,])dnl
72  AC_DEFINE_UNQUOTED(HAVE_${ac_tr_symbol})
73fi
74AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
75
76# Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
77# Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
78AC_SEARCH_LIBS(clock_gettime, [rt posix4])
79if test "$ac_cv_search_clock_gettime" != no; then
80  AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
81            [Define if you have the clock_gettime function.])
82fi
83
84# See if we have a standard version of gettimeofday().  Since actual
85# implementations can differ, just make sure we have the most common
86# one.
87AC_CACHE_CHECK([for standard gettimeofday], ac_cv_func_gettimeofday,
88  [ac_cv_func_gettimeofday=no
89   AC_TRY_RUN([#include <sys/time.h>
90               int main ()
91               {
92                 struct timeval t; t.tv_sec = -1; t.tv_usec = -1;
93                 exit (gettimeofday (&t, 0) != 0
94                       || t.tv_sec < 0 || t.tv_usec < 0);
95               }],
96              ac_cv_func_gettimeofday=yes,
97              ac_cv_func_gettimeofday=no,
98              ac_cv_func_gettimeofday="no (cross-compiling)")])
99if test $ac_cv_func_gettimeofday = yes; then
100  AC_DEFINE(HAVE_GETTIMEOFDAY, 1,
101            [Define if you have a standard gettimeofday function])
102fi
103
104AC_CHECK_FUNCS( memmove memcpy strchr strdup psignal mkstemp mktemp fdopen \
105                dup2 getcwd sigsetmask sigaction getgroups setlinebuf \
106                seteuid setegid setreuid setregid pipe strerror strsignal)
107
108AC_CHECK_SYMBOL(sys_siglist)
109AC_FUNC_ALLOCA
110AC_FUNC_VFORK
111AC_FUNC_VPRINTF
112AC_FUNC_STRCOLL
113AC_FUNC_CLOSEDIR_VOID
114AC_FUNC_SETVBUF_REVERSED
115
116AC_CHECK_LIB(kstat, kstat_open) dnl _Must_ come before AC_FUNC_GETLOADAVG.
117AC_CHECK_FUNCS(pstat_getdynamic) dnl Supposedly in AC_FUNC_GETLOADAVG, but...?
118AC_FUNC_GETLOADAVG
119
120# Check out the wait reality.
121AC_CHECK_HEADERS(sys/wait.h)
122AC_CHECK_FUNCS(waitpid wait3)
123AC_MSG_CHECKING(for union wait)
124AC_CACHE_VAL(make_cv_union_wait, [dnl
125AC_TRY_LINK([#include <sys/types.h>
126#include <sys/wait.h>],
127            [union wait status; int pid; pid = wait (&status);
128#ifdef WEXITSTATUS
129/* Some POSIXoid systems have both the new-style macros and the old
130   union wait type, and they do not work together.  If union wait
131   conflicts with WEXITSTATUS et al, we don't want to use it at all.  */
132if (WEXITSTATUS (status) != 0) pid = -1;
133#ifdef WTERMSIG
134/* If we have WEXITSTATUS and WTERMSIG, just use them on ints.  */
135-- blow chunks here --
136#endif
137#endif
138#ifdef HAVE_WAITPID
139/* Make sure union wait works with waitpid.  */
140pid = waitpid (-1, &status, 0);
141#endif
142],
143            [make_cv_union_wait=yes], [make_cv_union_wait=no])])
144if test "$make_cv_union_wait" = yes; then
145  AC_DEFINE(HAVE_UNION_WAIT, 1, [Define this if you have the \`union wait' type in <sys/wait.h>.])
146fi
147AC_MSG_RESULT($make_cv_union_wait)
148
149AC_DECL_SYS_SIGLIST
150
151# The presence of the following is not meant to imply
152# that make necessarily works on those systems.
153AC_SEARCH_LIBS(getpwnam, sun)
154
155AC_SUBST(REMOTE) REMOTE=stub
156make_try_customs=no
157AC_ARG_WITH(customs,
158[  --with-customs=DIR      Enable remote jobs via Customs--see README.customs],
159[case "$withval" in
160  n|no) ;;
161  *) make_cppflags="$CPPFLAGS"
162     case "$withval" in
163       y|ye|yes) ;;
164       *) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
165          make_ldflags="$LDFLAGS -L$with_customs/lib" ;;
166     esac
167     CF_NETLIBS
168     AC_CHECK_HEADER(customs.h,
169                     REMOTE=cstms
170                       LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags",
171                     with_customs=no
172                       CPPFLAGS="$make_cppflags" make_badcust=yes)
173     ;;
174esac])
175
176dnl See if we can handle the job server feature, and if the user wants it.
177
178AC_ARG_ENABLE(job-server,
179  [  --disable-job-server    Disallow recursive make communication during -jN],
180  [make_cv_job_server="$enableval" user_job_server="$enableval"],
181  [make_cv_job_server="yes"])
182
183has_wait_nohang=yes
184case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
185  no/no) has_wait_nohang=no ;;
186esac
187
188case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$has_wait_nohang/$make_cv_job_server" in
189  yes/yes/yes/yes) AC_DEFINE(MAKE_JOBSERVER, 1,
190                     [Define this to enable job server support in GNU make.]);;
191esac
192
193dnl Allow building with dmalloc
194
195AC_ARG_ENABLE(dmalloc,
196  [  --enable-dmalloc        Enable support for the dmalloc debugging library],
197  [make_cv_dmalloc="$enableval"],
198  [make_cv_dmalloc="no"])
199
200case "$make_cv_dmalloc" in
201  yes) AC_CHECK_HEADERS(dmalloc.h)
202       AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
203       CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK" ;;
204esac
205
206AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
207if test -f /usr/sccs/get; then
208  make_cv_path_sccs_get=/usr/sccs/get
209else
210  make_cv_path_sccs_get=get
211fi])
212AC_DEFINE_UNQUOTED(SCCS_GET,["$make_cv_path_sccs_get"])
213
214ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
215if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
216   test -f s.conftest; then
217  # We successfully created an SCCS file.
218  AC_CACHE_CHECK(if SCCS get command understands -G, make_cv_sys_get_minus_G, [
219    if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
220       test -f conftoast; then
221       make_cv_sys_get_minus_G=yes
222    else
223       make_cv_sys_get_minus_G=no
224    fi])
225  case "$make_cv_sys_get_minus_G" in
226    yes) AC_DEFINE(SCCS_GET_MINUS_G, 1,
227           [Define this if the SCCS \`get' command understands the \`-G<file>' option.]);;
228  esac
229fi
230rm -f s.conftest conftoast
231
232AC_MSG_CHECKING(if system libc has GNU glob)
233AC_CACHE_VAL(make_cv_sys_gnu_glob, [
234 AC_TRY_CPP([
235#include <features.h>
236#include <glob.h>
237#include <fnmatch.h>
238
239#define GLOB_INTERFACE_VERSION 1
240#if defined _LIBC || !defined __GNU_LIBRARY__ || __GNU_LIBRARY__ <= 1
241# error no gnu glob
242#else
243# include <gnu-versions.h>
244# if _GNU_GLOB_INTERFACE_VERSION != GLOB_INTERFACE_VERSION
245#  error no gnu glob
246# endif
247#endif
248 ], make_cv_sys_gnu_glob=yes, make_cv_sys_gnu_glob=no)])
249case "$make_cv_sys_gnu_glob" in
250  yes) AC_MSG_RESULT(yes; using local copy anyway)
251       AC_SUBST(GLOBDIR) GLOBDIR=glob
252       AC_SUBST(GLOBINC) GLOBINC='-I$(srcdir)/glob'
253       AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a
254       ;;
255  no)  AC_MSG_RESULT([no; using local copy])
256       AC_SUBST(GLOBDIR) GLOBDIR=glob
257       AC_SUBST(GLOBINC) GLOBINC='-I$(srcdir)/glob'
258       AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a
259       ;;
260esac
261
262AC_DEFINE_UNQUOTED(MAKE_HOST,"$host",[Build host information.])
263MAKE_HOST="$host"
264AC_SUBST(MAKE_HOST)
265
266MAINT_MAKEFILE=/dev/null
267if test -r "$srcdir/maintMakefile"; then
268  MAINT_MAKEFILE="$srcdir/maintMakefile"
269fi
270AC_SUBST_FILE(MAINT_MAKEFILE)
271
272AC_OUTPUT(build.sh Makefile glob/Makefile i18n/Makefile)
273
274dnl If we don't yet have build.sh.in, build.sh is a bogus 0-length file
275dnl so remove it.
276dnl Can't do this because then remote builds with build.sh don't work.
277dnl test -f build.sh.in || rm -f build.sh
278
279
280case "$make_badcust" in
281  yes) echo
282       echo "WARNING: --with-customs specified but no customs.h could be found;"
283       echo "         disabling Customs support."
284       echo ;;
285esac
286
287case "$with_customs" in
288  ""|n|no|y|ye|yes) ;;
289  *) if test -f "$with_customs/lib/libcustoms.a"; then
290       :
291     else
292       echo
293       echo "WARNING: \`$with_customs/lib' does not appear to contain the"
294       echo "         Customs library.  You must build and install Customs"
295       echo "         before compiling GNU make."
296       echo
297     fi ;;
298esac
299
300case "$has_wait_nohang" in
301  no) echo
302      echo "WARNING: Your system has neither waitpid() nor wait3()."
303      echo "         Without one of these, signal handling is unreliable."
304      echo "         You should be aware that running GNU make with -j"
305      echo "         could result in erratic behavior."
306      echo ;;
307esac
308
309case "$make_cv_job_server/$user_job_server" in
310  no/yes) echo
311          echo "WARNING: Make job server requires a POSIX-ish system that"
312          echo "         supports the pipe(), sigaction(), and either"
313          echo "         waitpid() or wait3() functions.  Your system doesn't"
314          echo "         appear to provide one or more of those."
315          echo "         Disabling job server support."
316          echo ;;
317esac
318
319dnl Local Variables:
320dnl comment-start: "dnl "
321dnl comment-end: ""
322dnl comment-start-skip: "\\bdnl\\b\\s *"
323dnl compile-command: "make configure config.h.in"
324dnl End:
Note: See TracBrowser for help on using the repository browser.