mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-11-28 17:41:37 +00:00
82f0c5495a
* Put the host info in the --version output. * Don't croak if the user forces -jN on submakes.
273 lines
7.8 KiB
Text
273 lines
7.8 KiB
Text
dnl Process this file with autoconf to produce a configure script.
|
|
AC_REVISION([$Id$])
|
|
AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required.
|
|
AC_INIT(vpath.c)dnl dnl A distinctive file to look for in srcdir.
|
|
|
|
AM_INIT_AUTOMAKE(make, 3.77.95)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
dnl Regular configure stuff
|
|
|
|
AC_CANONICAL_HOST
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_CHECK_PROG(AR, ar, ar, ar)
|
|
AC_PROG_RANLIB
|
|
AC_PROG_CPP dnl Later checks need this.
|
|
AC_AIX
|
|
AC_ISC_POSIX
|
|
AC_MINIX
|
|
|
|
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
|
|
|
|
AC_HEADER_STDC
|
|
AC_HEADER_DIRENT
|
|
AC_TYPE_UID_T dnl Also does gid_t.
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIGNAL
|
|
AC_CHECK_HEADERS(stdlib.h unistd.h limits.h sys/param.h fcntl.h string.h \
|
|
memory.h sys/timeb.h)
|
|
AC_PROG_CC_C_O
|
|
AM_PROG_CC_STDC
|
|
AC_C_CONST dnl getopt needs this.
|
|
AC_HEADER_STAT
|
|
|
|
AC_STRUCT_ST_MTIM_NSEC
|
|
jm_AC_TYPE_UINTMAX_T
|
|
|
|
AC_SUBST(LIBOBJS)
|
|
|
|
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})
|
|
fi
|
|
AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
|
|
|
|
# clock_gettime is in -lposix4 in Solaris 2.6.
|
|
AC_CHECK_LIB(posix4, clock_gettime)
|
|
|
|
AC_CHECK_FUNCS(memmove strdup psignal mktemp pstat_getdynamic \
|
|
clock_gettime dup2 getcwd sigsetmask sigaction getgroups \
|
|
setlinebuf seteuid setegid setreuid setregid pipe \
|
|
strerror strsignal)
|
|
AC_CHECK_SYMBOL(sys_siglist)
|
|
AC_FUNC_ALLOCA
|
|
AC_FUNC_VFORK
|
|
AC_FUNC_VPRINTF
|
|
AC_FUNC_STRCOLL
|
|
AC_FUNC_CLOSEDIR_VOID
|
|
AC_FUNC_SETVBUF_REVERSED
|
|
AC_FUNC_SELECT
|
|
|
|
AC_CHECK_LIB(kstat, kstat_open) dnl _Must_ come before AC_FUNC_GETLOADAVG.
|
|
AC_FUNC_GETLOADAVG
|
|
|
|
# Check out the wait reality.
|
|
AC_CHECK_HEADERS(sys/wait.h)
|
|
AC_CHECK_FUNCS(waitpid wait3)
|
|
AC_MSG_CHECKING(for union wait)
|
|
AC_CACHE_VAL(make_cv_union_wait, [dnl
|
|
AC_TRY_LINK([#include <sys/types.h>
|
|
#include <sys/wait.h>],
|
|
[union wait status; int pid; pid = wait (&status);
|
|
#ifdef WEXITSTATUS
|
|
/* Some POSIXoid systems have both the new-style macros and the old
|
|
union wait type, and they do not work together. If union wait
|
|
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
|
|
#endif
|
|
#ifdef HAVE_WAITPID
|
|
/* Make sure union wait works with waitpid. */
|
|
pid = waitpid (-1, &status, 0);
|
|
#endif
|
|
],
|
|
[make_cv_union_wait=yes], [make_cv_union_wait=no])])
|
|
if test "$make_cv_union_wait" = yes; then
|
|
AC_DEFINE(HAVE_UNION_WAIT)
|
|
fi
|
|
AC_MSG_RESULT($make_cv_union_wait)
|
|
|
|
AC_DECL_SYS_SIGLIST
|
|
|
|
# The presence of the following is not meant to imply
|
|
# that make necessarily works on those systems.
|
|
AC_CHECK_LIB(sun, getpwnam)
|
|
|
|
AC_SUBST(REMOTE) REMOTE=stub
|
|
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])
|
|
|
|
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
|
|
|
|
case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$has_wait_nohang/$make_cv_job_server" in
|
|
yes/yes/yes/yes) AC_DEFINE(MAKE_JOBSERVER) ;;
|
|
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, [
|
|
if test -f /usr/sccs/get; then
|
|
make_cv_path_sccs_get=/usr/sccs/get
|
|
else
|
|
make_cv_path_sccs_get=get
|
|
fi])
|
|
AC_DEFINE_UNQUOTED(SCCS_GET,["$make_cv_path_sccs_get"])
|
|
|
|
ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
|
|
if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
|
|
test -f s.conftest; then
|
|
# 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);;
|
|
esac
|
|
fi
|
|
rm -f s.conftest conftoast
|
|
|
|
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])
|
|
CPPFLAGS="$CPPFLAGS -I$srcdir/glob"
|
|
AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a
|
|
;;
|
|
esac
|
|
|
|
|
|
AC_DEFINE_UNQUOTED(MAKE_HOST,"$host",[Build host information.])
|
|
|
|
|
|
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)
|
|
|
|
dnl If we don't yet have build.sh.in, build.sh is a bogus 0-length file
|
|
dnl so remove it.
|
|
|
|
test -f build.sh.in || rm -f build.sh
|
|
|
|
|
|
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 ;;
|
|
esac
|
|
|
|
dnl Local Variables:
|
|
dnl comment-start: "dnl "
|
|
dnl comment-end: ""
|
|
dnl comment-start-skip: "\\bdnl\\b\\s *"
|
|
dnl compile-command: "make configure config.h.in"
|
|
dnl End:
|