make/configure.in

350 lines
10 KiB
Plaintext
Raw Normal View History

# Process this file with autoconf to produce a configure script.
1997-08-19 02:11:04 +08:00
AC_INIT(GNU make,3.79.2rc1,bug-make@gnu.org)
1997-08-19 02:11:04 +08:00
AC_PREREQ(2.53)
1992-08-19 05:25:14 +08:00
AC_REVISION([[$Id$]])
# Autoconf setup
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(vpath.c)
AM_CONFIG_HEADER(config.h)
# Automake setup
AM_INIT_AUTOMAKE
1994-11-08 10:08:24 +08:00
AC_PROG_MAKE_SET
# Checks for programs.
1993-01-06 06:40:32 +08:00
AC_PROG_CC
1992-08-19 05:25:14 +08:00
AC_PROG_INSTALL
1998-10-03 13:39:55 +08:00
AC_PROG_RANLIB
AC_PROG_CPP
AC_CHECK_PROG(AR, ar, ar, ar)
# Perl is needed for the test suite (only)
AC_CHECK_PROG(PERL, perl, perl, perl)
# Specialized system macros
AC_CANONICAL_HOST
1992-08-19 05:25:14 +08:00
AC_AIX
AC_ISC_POSIX
AC_MINIX
1998-07-31 04:54:47 +08:00
# Enable gettext, in "external" mode.
# Maintainers: this requires gettext 0.11 or better!
AM_GNU_GETTEXT([external])
# This test must come as early as possible after the compiler configuration
# tests, because the choice of the file model can (in principle) affect
# whether functions and headers are available, whether they work, etc.
AC_SYS_LARGEFILE
1998-07-31 04:54:47 +08:00
# Checks for libraries.
AC_SEARCH_LIBS(getpwnam, [sun])
# Checks for header files.
1994-11-08 10:08:24 +08:00
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_HEADER_STAT
AC_HEADER_TIME
1998-10-03 13:39:55 +08: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)
AM_PROG_CC_C_O
AM_PROG_CC_STDC
AC_C_CONST
AC_TYPE_SIGNAL
AC_TYPE_UID_T
AC_TYPE_PID_T
# Find some definition for uintmax_t
AC_CHECK_TYPE(uintmax_t,,[
uintmax_t="unsigned long"
AC_CHECK_TYPE(unsigned long long,[uintmax_t="unsigned long long"])
AC_DEFINE_UNQUOTED(uintmax_t,$uintmax_t,[Define uintmax_t if not defined in <stdint.h> or <inttypes.h>.])])
# Find out whether our struct stat returns nanosecond resolution timestamps.
1992-08-19 05:25:14 +08:00
2000-07-31 02:26:42 +08: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 13:39:55 +08:00
1994-11-08 10:08:24 +08:00
# 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( memcpy strchr strdup mkstemp mktemp fdopen \
bsd_signal dup2 getcwd sigsetmask sigaction getgroups \
setlinebuf seteuid setegid setreuid setregid pipe \
strerror strsignal)
1998-10-03 13:39:55 +08:00
1994-11-08 10:08:24 +08:00
AC_FUNC_ALLOCA
AC_FUNC_VFORK
1998-10-03 13:39:55 +08:00
AC_FUNC_VPRINTF
AC_FUNC_STRCOLL
AC_FUNC_CLOSEDIR_VOID
1994-11-08 10:08:24 +08:00
AC_FUNC_SETVBUF_REVERSED
AC_FUNC_GETLOADAVG
1992-08-19 05:25:14 +08:00
AC_DECL_SYS_SIGLIST
1994-11-08 10:08:24 +08:00
# Check out the wait reality.
1998-10-03 13:39:55 +08:00
AC_CHECK_HEADERS(sys/wait.h)
AC_CHECK_FUNCS(waitpid wait3)
1994-11-08 10:08:24 +08:00
AC_MSG_CHECKING(for union wait)
AC_CACHE_VAL(make_cv_union_wait, [dnl
AC_TRY_LINK([#include <sys/types.h>
1992-08-19 05:25:14 +08:00
#include <sys/wait.h>],
1994-11-08 10:08:24 +08:00
[union wait status; int pid; pid = wait (&status);
1993-01-26 10:24:51 +08:00
#ifdef WEXITSTATUS
/* Some POSIXoid systems have both the new-style macros and the old
1993-01-29 05:41:44 +08:00
union wait type, and they do not work together. If union wait
1993-01-26 10:24:51 +08: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 10:24:51 +08:00
#endif
1993-02-06 04:24:00 +08:00
#ifdef HAVE_WAITPID
/* Make sure union wait works with waitpid. */
pid = waitpid (-1, &status, 0);
#endif
1993-01-26 10:24:51 +08:00
],
1994-11-08 10:08:24 +08: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 10:08:24 +08:00
fi
AC_MSG_RESULT($make_cv_union_wait)
1992-08-19 05:25:14 +08:00
1993-01-26 10:24:51 +08:00
# See if the user wants to use pmake's "customs" distributed build capability
1992-08-19 05:25:14 +08:00
use_customs=false
1998-07-31 04:54:47 +08:00
AC_ARG_WITH(customs,
AC_HELP_STRING([--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,
[use_customs=true
LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags"],
[with_customs=no
CPPFLAGS="$make_cppflags" make_badcust=yes])
;;
esac])
# Tell automake about this, so it can include the right .c files.
AM_CONDITIONAL(USE_CUSTOMS, test $use_customs = true)
# See if we can handle the job server feature, and if the user wants it.
AC_ARG_ENABLE(job-server,
AC_HELP_STRING([--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
AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
1993-04-16 08:54:50 +08:00
if test -f /usr/sccs/get; then
make_cv_path_sccs_get=/usr/sccs/get
1993-04-16 08:54:50 +08:00
else
make_cv_path_sccs_get=get
fi])
AC_DEFINE_UNQUOTED(SCCS_GET, ["$make_cv_path_sccs_get"], [Define to the name of the SCCS 'get' command.])
1993-12-15 05:56:50 +08:00
ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
1993-12-24 03:46:50 +08:00
if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
test -f s.conftest; then
1993-12-15 05:56:50 +08: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-15 05:56:50 +08:00
fi
rm -f s.conftest conftoast
1993-04-16 08:54:50 +08: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-16 06:23:35 +08: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)
# Allow building with dmalloc
AM_WITH_DMALLOC
1992-08-19 05:25:14 +08:00
1999-07-24 12:55:08 +08:00
# Sanity check and inform the user of what we found
1999-07-24 12:55:08 +08:00
1998-07-31 04:54:47 +08: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"
1998-07-31 04:54:47 +08:00
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 13:39:55 +08:00
esac
# Specify what files are to be created.
# We only generate the build.sh if we have a build.sh.in; we won't have
# one before we've created a distribution.
AC_CONFIG_FILES(Makefile glob/Makefile po/Makefile.in config/Makefile)
if test -f $srcdir/build.sh.in; then
AC_CONFIG_FILES(build.sh)
fi
# OK, do it!
AC_OUTPUT
1992-08-19 05:25:14 +08:00
dnl Local Variables:
1993-01-19 08:19:54 +08:00
dnl comment-start: "dnl "
1992-08-19 05:25:14 +08:00
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
1992-12-21 07:08:11 +08:00
dnl compile-command: "make configure config.h.in"
1992-08-19 05:25:14 +08:00
dnl End: