make/configure.in

344 lines
10 KiB
Text
Raw Normal View History

1992-08-18 21:25:14 +00:00
dnl Process this file with autoconf to produce a configure script.
AC_REVISION([$Id$])
AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required.
1994-11-15 11:32:39 +00:00
AC_INIT(vpath.c)dnl dnl A distinctive file to look for in srcdir.
1997-08-18 18:11:04 +00:00
AM_INIT_AUTOMAKE(make, 3.79.1.90)
1997-08-18 18:11:04 +00:00
AM_CONFIG_HEADER(config.h)
dnl Regular configure stuff
1992-08-18 21:25:14 +00:00
AC_CANONICAL_HOST
1994-11-08 02:08:24 +00:00
AC_PROG_MAKE_SET
1993-01-05 22:40:32 +00:00
AC_PROG_CC
1992-08-18 21:25:14 +00:00
AC_PROG_INSTALL
1998-10-03 05:39:55 +00:00
AC_CHECK_PROG(AR, ar, ar, ar)
AC_PROG_RANLIB
1992-08-18 21:25:14 +00:00
AC_PROG_CPP dnl Later checks need this.
AC_AIX
AC_ISC_POSIX
AC_MINIX
1998-07-30 20:54:47 +00:00
AC_CHECK_PROG(PERL, perl, perl, perl) dnl Needed for the test suite (only)
1998-07-30 20:54:47 +00:00
dnl This test must come as early as possible after the compiler configuration
dnl tests, because the choice of the file model can (in principle) affect
dnl whether functions and headers are available, whether they work, etc.
AC_SYS_LARGEFILE
1998-07-30 20:54:47 +00:00
1994-11-08 02:08:24 +00:00
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_TYPE_UID_T dnl Also does gid_t.
AC_TYPE_PID_T
AC_TYPE_SIGNAL
1998-10-03 05:39:55 +00:00
AC_CHECK_HEADERS(stdlib.h unistd.h limits.h sys/param.h fcntl.h string.h \
memory.h sys/time.h sys/timeb.h)
1994-11-08 02:08:24 +00:00
AC_PROG_CC_C_O
AM_PROG_CC_STDC
1994-11-08 02:08:24 +00:00
AC_C_CONST dnl getopt needs this.
2000-01-27 00:00:27 +00:00
AC_C_INLINE dnl gettext needs this.
1994-11-08 02:08:24 +00:00
AC_HEADER_STAT
AC_HEADER_TIME
dnl Handle internationalization
ALL_LINGUAS="da de es fr gl ja ko nl pl pt_BR ru tr"
pds_WITH_GETTEXT
1992-08-18 21:25:14 +00:00
1998-10-03 05:39:55 +00:00
jm_AC_TYPE_UINTMAX_T
2000-07-30 18:26:42 +00:00
AC_STRUCT_ST_MTIM_NSEC
AC_MSG_CHECKING([whether to use high resolution file timestamps])
AC_CACHE_VAL(make_cv_file_timestamp_hi_res, [
make_cv_file_timestamp_hi_res=no
if test $ac_cv_struct_st_mtim_nsec != no; then
AC_TRY_COMPILE([
# if HAVE_INTTYPES_H
# include <inttypes.h>
# endif],
[char a[0x7fffffff < (uintmax_t) -1 >> 30 ? 1 : -1];],
make_cv_file_timestamp_hi_res=yes)
fi])
AC_MSG_RESULT($make_cv_file_timestamp_hi_res)
if test $make_cv_file_timestamp_hi_res = yes; then
val=1
else
val=0
fi
AC_DEFINE_UNQUOTED(FILE_TIMESTAMP_HI_RES, $val,
[Use high resolution file timestamps if nonzero.])
if test $make_cv_file_timestamp_hi_res = yes; then
# Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
# Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
AC_SEARCH_LIBS(clock_gettime, [rt posix4])
if test "$ac_cv_search_clock_gettime" != no; then
AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
[Define if you have the clock_gettime function.])
fi
fi
1998-10-03 05:39:55 +00:00
1992-08-18 21:25:14 +00:00
AC_SUBST(LIBOBJS)
1994-11-08 02:08:24 +00:00
AC_DEFUN(AC_CHECK_SYMBOL, [dnl
AC_MSG_CHECKING(for $1)
AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl
AC_TRY_LINK(, [extern char *sys_siglist[]; puts(*sys_siglist);],
ac_cv_check_symbol_$1=yes, ac_cv_check_symbol_$1=no)])
if test "$ac_cv_check_symbol_$1" = yes; then
changequote(,)dnl
ac_tr_symbol=`echo $1 | tr '[a-z]' '[A-Z]'`
changequote([,])dnl
AC_DEFINE_UNQUOTED(HAVE_${ac_tr_symbol})
1994-11-08 02:08:24 +00:00
fi
AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
# See if we have a standard version of gettimeofday(). Since actual
# implementations can differ, just make sure we have the most common
# one.
AC_CACHE_CHECK([for standard gettimeofday], ac_cv_func_gettimeofday,
[ac_cv_func_gettimeofday=no
AC_TRY_RUN([#include <sys/time.h>
int main ()
{
struct timeval t; t.tv_sec = -1; t.tv_usec = -1;
exit (gettimeofday (&t, 0) != 0
|| t.tv_sec < 0 || t.tv_usec < 0);
}],
ac_cv_func_gettimeofday=yes,
ac_cv_func_gettimeofday=no,
ac_cv_func_gettimeofday="no (cross-compiling)")])
if test $ac_cv_func_gettimeofday = yes; then
AC_DEFINE(HAVE_GETTIMEOFDAY, 1,
[Define if you have a standard gettimeofday function])
fi
AC_CHECK_FUNCS( memmove memcpy strchr strdup psignal mkstemp mktemp fdopen \
bsd_signal dup2 getcwd sigsetmask sigaction getgroups \
setlinebuf seteuid setegid setreuid setregid pipe \
strerror strsignal)
1998-10-03 05:39:55 +00:00
1994-11-08 02:08:24 +00:00
AC_CHECK_SYMBOL(sys_siglist)
AC_FUNC_ALLOCA
AC_FUNC_VFORK
1998-10-03 05:39:55 +00:00
AC_FUNC_VPRINTF
AC_FUNC_STRCOLL
AC_FUNC_CLOSEDIR_VOID
1994-11-08 02:08:24 +00:00
AC_FUNC_SETVBUF_REVERSED
AC_CHECK_LIB(kstat, kstat_open) dnl _Must_ come before AC_FUNC_GETLOADAVG.
AC_CHECK_FUNCS(pstat_getdynamic) dnl Supposedly in AC_FUNC_GETLOADAVG, but...?
AC_FUNC_GETLOADAVG
1992-08-18 21:25:14 +00:00
1994-11-08 02:08:24 +00:00
# Check out the wait reality.
1998-10-03 05:39:55 +00:00
AC_CHECK_HEADERS(sys/wait.h)
AC_CHECK_FUNCS(waitpid wait3)
1994-11-08 02:08:24 +00:00
AC_MSG_CHECKING(for union wait)
AC_CACHE_VAL(make_cv_union_wait, [dnl
AC_TRY_LINK([#include <sys/types.h>
1992-08-18 21:25:14 +00:00
#include <sys/wait.h>],
1994-11-08 02:08:24 +00:00
[union wait status; int pid; pid = wait (&status);
1993-01-26 02:24:51 +00:00
#ifdef WEXITSTATUS
/* Some POSIXoid systems have both the new-style macros and the old
1993-01-28 21:41:44 +00:00
union wait type, and they do not work together. If union wait
1993-01-26 02:24:51 +00:00
conflicts with WEXITSTATUS et al, we don't want to use it at all. */
if (WEXITSTATUS (status) != 0) pid = -1;
#ifdef WTERMSIG
/* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */
-- blow chunks here --
#endif
1993-01-26 02:24:51 +00:00
#endif
1993-02-05 20:24:00 +00:00
#ifdef HAVE_WAITPID
/* Make sure union wait works with waitpid. */
pid = waitpid (-1, &status, 0);
#endif
1993-01-26 02:24:51 +00:00
],
1994-11-08 02:08:24 +00:00
[make_cv_union_wait=yes], [make_cv_union_wait=no])])
if test "$make_cv_union_wait" = yes; then
AC_DEFINE(HAVE_UNION_WAIT, 1, [Define this if you have the \`union wait' type in <sys/wait.h>.])
1994-11-08 02:08:24 +00:00
fi
AC_MSG_RESULT($make_cv_union_wait)
1992-08-18 21:25:14 +00:00
1994-11-08 02:08:24 +00:00
AC_DECL_SYS_SIGLIST
1993-01-26 02:24:51 +00:00
1992-08-18 21:25:14 +00:00
# The presence of the following is not meant to imply
# that make necessarily works on those systems.
2000-06-23 18:55:43 +00:00
AC_SEARCH_LIBS(getpwnam, sun)
1992-08-18 21:25:14 +00:00
1993-03-11 19:25:28 +00:00
AC_SUBST(REMOTE) REMOTE=stub
1998-07-30 20:54:47 +00:00
make_try_customs=no
AC_ARG_WITH(customs,
[ --with-customs=DIR Enable remote jobs via Customs--see README.customs],
[case "$withval" in
n|no) ;;
*) make_cppflags="$CPPFLAGS"
case "$withval" in
y|ye|yes) ;;
*) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
make_ldflags="$LDFLAGS -L$with_customs/lib" ;;
esac
CF_NETLIBS
AC_CHECK_HEADER(customs.h,
REMOTE=cstms
LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags",
with_customs=no
CPPFLAGS="$make_cppflags" make_badcust=yes)
;;
esac])
1993-03-11 19:25:28 +00:00
dnl See if we can handle the job server feature, and if the user wants it.
AC_ARG_ENABLE(job-server,
[ --disable-job-server Disallow recursive make communication during -jN],
[make_cv_job_server="$enableval" user_job_server="$enableval"],
[make_cv_job_server="yes"])
has_wait_nohang=yes
case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
no/no) has_wait_nohang=no ;;
esac
AC_CACHE_CHECK(for SA_RESTART, make_cv_sa_restart, [
AC_TRY_COMPILE([#include <signal.h>],
[return SA_RESTART;],
make_cv_sa_restart=yes,
make_cv_sa_restart=no)])
if test "$make_cv_sa_restart" != no; then
AC_DEFINE(HAVE_SA_RESTART, 1,
[Define if <signal.h> defines the SA_RESTART constant.])
fi
case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in
yes/yes/yes/yes/yes)
AC_DEFINE(MAKE_JOBSERVER, 1,
[Define this to enable job server support in GNU make.]);;
esac
dnl Allow building with dmalloc
AC_ARG_ENABLE(dmalloc,
[ --enable-dmalloc Enable support for the dmalloc debugging library],
[make_cv_dmalloc="$enableval"],
[make_cv_dmalloc="no"])
case "$make_cv_dmalloc" in
yes) AC_CHECK_HEADERS(dmalloc.h)
AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK" ;;
esac
AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
1993-04-16 00:54:50 +00:00
if test -f /usr/sccs/get; then
make_cv_path_sccs_get=/usr/sccs/get
1993-04-16 00:54:50 +00:00
else
make_cv_path_sccs_get=get
fi])
AC_DEFINE_UNQUOTED(SCCS_GET,["$make_cv_path_sccs_get"])
1993-12-14 21:56:50 +00:00
ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
1993-12-23 19:46:50 +00:00
if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
test -f s.conftest; then
1993-12-14 21:56:50 +00:00
# We successfully created an SCCS file.
AC_CACHE_CHECK(if SCCS get command understands -G, make_cv_sys_get_minus_G, [
if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
test -f conftoast; then
make_cv_sys_get_minus_G=yes
else
make_cv_sys_get_minus_G=no
fi])
case "$make_cv_sys_get_minus_G" in
yes) AC_DEFINE(SCCS_GET_MINUS_G, 1,
[Define this if the SCCS \`get' command understands the \`-G<file>' option.]);;
esac
1993-12-14 21:56:50 +00:00
fi
rm -f s.conftest conftoast
1993-04-16 00:54:50 +00:00
AC_MSG_CHECKING(if system libc has GNU glob)
AC_CACHE_VAL(make_cv_sys_gnu_glob, [
AC_TRY_CPP([
#include <features.h>
#include <glob.h>
#include <fnmatch.h>
#define GLOB_INTERFACE_VERSION 1
#if defined _LIBC || !defined __GNU_LIBRARY__ || __GNU_LIBRARY__ <= 1
# error no gnu glob
#else
# include <gnu-versions.h>
# if _GNU_GLOB_INTERFACE_VERSION != GLOB_INTERFACE_VERSION
# error no gnu glob
# endif
#endif
], make_cv_sys_gnu_glob=yes, make_cv_sys_gnu_glob=no)])
case "$make_cv_sys_gnu_glob" in
yes) AC_MSG_RESULT(yes) ;;
no) AC_MSG_RESULT([no; using local copy])
AC_SUBST(GLOBDIR) GLOBDIR=glob
AC_SUBST(GLOBINC) GLOBINC='-I$(srcdir)/glob'
AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a
;;
esac
AC_DEFINE_UNQUOTED(MAKE_HOST,"$host",[Build host information.])
1999-09-15 22:23:35 +00:00
MAKE_HOST="$host"
AC_SUBST(MAKE_HOST)
MAINT_MAKEFILE=/dev/null
if test -r "$srcdir/maintMakefile"; then
MAINT_MAKEFILE="$srcdir/maintMakefile"
fi
AC_SUBST_FILE(MAINT_MAKEFILE)
AC_OUTPUT(build.sh Makefile glob/Makefile i18n/Makefile)
1992-08-18 21:25:14 +00:00
1999-07-24 04:55:08 +00:00
dnl If we don't yet have build.sh.in, build.sh is a bogus 0-length file
dnl so remove it.
1999-09-16 05:58:44 +00:00
dnl Can't do this because then remote builds with build.sh don't work.
dnl test -f build.sh.in || rm -f build.sh
1999-07-24 04:55:08 +00:00
1998-07-30 20:54:47 +00:00
case "$make_badcust" in
yes) echo
echo "WARNING: --with-customs specified but no customs.h could be found;"
echo " disabling Customs support."
echo ;;
esac
case "$with_customs" in
""|n|no|y|ye|yes) ;;
*) if test -f "$with_customs/lib/libcustoms.a"; then
:
else
echo
echo "WARNING: \`$with_customs/lib' does not appear to contain the"
echo " Customs library. You must build and install Customs"
echo " before compiling GNU make."
echo
fi ;;
esac
case "$has_wait_nohang" in
no) echo
echo "WARNING: Your system has neither waitpid() nor wait3()."
echo " Without one of these, signal handling is unreliable."
echo " You should be aware that running GNU make with -j"
echo " could result in erratic behavior."
echo ;;
esac
case "$make_cv_job_server/$user_job_server" in
no/yes) echo
echo "WARNING: Make job server requires a POSIX-ish system that"
echo " supports the pipe(), sigaction(), and either"
echo " waitpid() or wait3() functions. Your system doesn't"
echo " appear to provide one or more of those."
echo " Disabling job server support."
echo ;;
1998-10-03 05:39:55 +00:00
esac
1992-08-18 21:25:14 +00:00
dnl Local Variables:
1993-01-19 00:19:54 +00:00
dnl comment-start: "dnl "
1992-08-18 21:25:14 +00:00
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
1992-12-20 23:08:11 +00:00
dnl compile-command: "make configure config.h.in"
1992-08-18 21:25:14 +00:00
dnl End: