mirror of
https://github.com/python/cpython.git
synced 2024-11-28 16:45:42 +01:00
45140f97a6
when building outside the source directory. Courtesy Donn Cave.
592 lines
16 KiB
Plaintext
592 lines
16 KiB
Plaintext
dnl Process this file with autoconf 2.0 or later to make a configure script.
|
|
AC_REVISION($Revision$)
|
|
AC_PREREQ(2.0)
|
|
AC_INIT(Include/object.h)
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
# Set VERSION so we only need to edit in one place (i.e., here)
|
|
AC_SUBST(VERSION)
|
|
VERSION=1.5
|
|
|
|
# NEXTSTEP stuff
|
|
if test -f /usr/lib/NextStep/software_version; then
|
|
|
|
AC_MSG_CHECKING(for --with-next-archs)
|
|
AC_ARG_WITH(next-archs,
|
|
[--with-next-archs='arch1 arch2 ..' build MAB binary], [
|
|
if test -n "$withval"; then
|
|
ac_arch_flags=`/usr/lib/arch_tool -archify_list $withval`
|
|
# GCC does not currently support multi archs on the NeXT
|
|
with_gcc=no
|
|
fi
|
|
AC_MSG_RESULT($with_next_archs)
|
|
], [AC_MSG_RESULT(none: using `arch`)])
|
|
|
|
if test -z "$MACHDEP"
|
|
then
|
|
set X `hostinfo | grep 'NeXT Mach.*:' | \
|
|
sed -e 's/://' -e 's/\./_/'` && \
|
|
ac_sys_system=next && ac_sys_release=$4
|
|
|
|
MACHDEP="$ac_sys_system$ac_sys_release"
|
|
fi
|
|
fi
|
|
|
|
# Set name for machine-dependent library files
|
|
AC_SUBST(MACHDEP)
|
|
AC_MSG_CHECKING(MACHDEP)
|
|
if test -z "$MACHDEP"
|
|
then
|
|
ac_sys_system=`uname -s`
|
|
if test "$ac_sys_system" = "AIX" ; then
|
|
ac_sys_release=`uname -v`
|
|
else
|
|
ac_sys_release=`uname -r`
|
|
fi
|
|
ac_md_system=`echo $ac_sys_system |
|
|
tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
|
|
ac_md_release=`echo $ac_sys_release |
|
|
tr -d '[/ ]' | sed 's/\..*//'`
|
|
MACHDEP="$ac_md_system$ac_md_release"
|
|
|
|
case $MACHDEP in
|
|
'') MACHDEP=unknown;;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($MACHDEP)
|
|
|
|
# checks for alternative programs
|
|
AC_MSG_CHECKING(for --without-gcc)
|
|
AC_ARG_WITH(gcc, [--without-gcc never use gcc], [
|
|
case $withval in
|
|
no) CC=cc
|
|
without_gcc=yes;;
|
|
yes) CC=gcc
|
|
without_gcc=no;;
|
|
*) CC=$withval
|
|
without_gcc=$withval;;
|
|
esac], [
|
|
case $ac_sys_system in
|
|
OSF1) CC=cc
|
|
without_gcc=;;
|
|
*) without_gcc=no;;
|
|
esac])
|
|
AC_MSG_RESULT($without_gcc)
|
|
|
|
# If the user switches compilers, we can't believe the cache
|
|
if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
|
|
then
|
|
AC_ERROR(cached CC is different -- throw away $cache_file
|
|
(it is also a good idea to do 'make clean' before compiling))
|
|
fi
|
|
|
|
AC_PROG_CC
|
|
|
|
case $ac_sys_system in
|
|
hp*|HP*)
|
|
case $CC in
|
|
cc|*/cc) CC="$CC -Aa -D_HPUX_SOURCE";;
|
|
esac;;
|
|
esac
|
|
|
|
# LINKCC is the command that links the python executable -- default is $(CC).
|
|
# This is altered for AIX in order to build the export list before linking.
|
|
AC_SUBST(LINKCC)
|
|
AC_MSG_CHECKING(LINKCC)
|
|
if test -z "$LINKCC"
|
|
then
|
|
case $ac_sys_system in
|
|
AIX*)
|
|
LINKCC="\$(srcdir)/makexp_aix python.exp \"\" \$(LIBRARY); \$(PURIFY) \$(CC)";;
|
|
*) LINKCC="\$(PURIFY) \$(CC)";;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($LINKCC)
|
|
|
|
AC_PROG_RANLIB
|
|
AC_SUBST(AR)
|
|
AC_CHECK_PROGS(AR, ar aal, ar)
|
|
AC_SUBST(INSTALL)
|
|
AC_SUBST(INSTALL_PROGRAM)
|
|
AC_SUBST(INSTALL_DATA)
|
|
# Install just never works :-(
|
|
if test -z "$INSTALL"
|
|
then
|
|
INSTALL=cp
|
|
INSTALL_PROGRAM=cp
|
|
INSTALL_DATA=cp
|
|
else
|
|
INSTALL_PROGRAM="$INSTALL"
|
|
INSTALL_DATA="$INSTALL -m 644"
|
|
fi
|
|
|
|
# Optimizer/debugger flags passed between Makefiles
|
|
AC_SUBST(OPT)
|
|
if test -z "$OPT"
|
|
then
|
|
case $GCC in
|
|
yes)
|
|
case $ac_cv_prog_cc_g in
|
|
yes) OPT="-g -O2";;
|
|
*) OPT="-O2";;
|
|
esac
|
|
;;
|
|
*) OPT="-O";;
|
|
esac
|
|
fi
|
|
|
|
if test "$ac_arch_flags"
|
|
then
|
|
OPT="$OPT $ac_arch_flags"
|
|
fi
|
|
# checks for UNIX variants that set C preprocessor variables
|
|
AC_AIX
|
|
AC_MINIX
|
|
|
|
AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
|
|
AC_CACHE_VAL(ac_cv_olimit_ok,
|
|
[ac_save_cc="$CC"
|
|
CC="$CC -Olimit 1500"
|
|
AC_TRY_RUN([int main() { return 0; }],
|
|
ac_cv_olimit_ok=yes,
|
|
ac_cv_olimit_ok=no)
|
|
CC="$ac_save_cc"])
|
|
AC_MSG_RESULT($ac_cv_olimit_ok)
|
|
if test $ac_cv_olimit_ok = yes; then
|
|
OPT="$OPT -Olimit 1500"
|
|
fi
|
|
|
|
# check for ANSI or K&R ("traditional") preprocessor
|
|
AC_MSG_CHECKING(for C preprocessor type)
|
|
AC_TRY_COMPILE([
|
|
#define spam(name, doc) {#name, &name, #name "() -- " doc}
|
|
int foo;
|
|
struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
|
|
], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
|
|
AC_MSG_RESULT($cpp_type)
|
|
|
|
# checks for header files
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(dlfcn.h fcntl.h limits.h ncurses.h pthread.h \
|
|
signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h \
|
|
sys/audioio.h sys/file.h sys/lock.h \
|
|
sys/param.h sys/select.h sys/time.h sys/times.h \
|
|
sys/un.h sys/utsname.h sys/wait.h)
|
|
AC_HEADER_DIRENT
|
|
|
|
# checks for typedefs
|
|
was_it_defined=no
|
|
AC_MSG_CHECKING(for clock_t in time.h)
|
|
AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, AC_DEFINE(clock_t, long))
|
|
AC_MSG_RESULT($was_it_defined)
|
|
|
|
# Add some code to confdefs.h so that the test for off_t works on SCO
|
|
cat >> confdefs.h <<\EOF
|
|
#if defined(SCO_DS)
|
|
#undef _OFF_T
|
|
#endif
|
|
EOF
|
|
|
|
AC_TYPE_MODE_T
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIGNAL
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_UID_T
|
|
|
|
AC_CHECK_SIZEOF(int)
|
|
AC_CHECK_SIZEOF(long)
|
|
|
|
# Set info about shared libraries.
|
|
AC_SUBST(SO)
|
|
AC_SUBST(LDSHARED)
|
|
AC_SUBST(CCSHARED)
|
|
AC_SUBST(LINKFORSHARED)
|
|
# SO is the extension of shared libraries `(including the dot!)
|
|
# -- usually .so, .sl on HP-UX
|
|
AC_MSG_CHECKING(SO)
|
|
if test -z "$SO"
|
|
then
|
|
case $ac_sys_system in
|
|
hp*|HP*) SO=.sl;;
|
|
*) SO=.so;;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($SO)
|
|
# LDSHARED is the ld *command* used to create shared library
|
|
# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5
|
|
AC_MSG_CHECKING(LDSHARED)
|
|
if test -z "$LDSHARED"
|
|
then
|
|
case $ac_sys_system/$ac_sys_release in
|
|
AIX*) LDSHARED="\$(srcdir)/ld_so_aix \$(CC)";;
|
|
IRIX/5*) LDSHARED="ld -shared";;
|
|
IRIX*/6*) LDSHARED="ld $SGI_ABI -shared -all"; OPT="$OPT $SGI_ABI";;
|
|
SunOS/4*) LDSHARED="ld";;
|
|
SunOS/5*) LDSHARED="ld -G";;
|
|
hp*|HP*) LDSHARED="ld -b";;
|
|
OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
|
|
DYNIX/ptx*) LDSHARED="ld -G";;
|
|
next/*) LDSHARED='$(CC) $(CFLAGS) -nostdlib -r';;
|
|
Linux*) LDSHARED="gcc -shared";;
|
|
FreeBSD*) LDSHARED="ld -Bshareable";;
|
|
SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
|
|
*) LDSHARED="ld";;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($LDSHARED)
|
|
# CCSHARED are the C *flags* used to create objects to go into a shared
|
|
# library -- this is only needed for a few systems
|
|
AC_MSG_CHECKING(CCSHARED)
|
|
if test -z "$CCSHARED"
|
|
then
|
|
case $ac_sys_system/$ac_sys_release in
|
|
hp*|HP*) if test "$GCC" = yes;
|
|
then CCSHARED="-fpic";
|
|
else CCSHARED="+z";
|
|
fi;;
|
|
Linux*) CCSHARED="-fpic";;
|
|
FreeBSD*) CCSHARED="-fpic";;
|
|
SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
|
|
IRIX*/6*) CCSHARED="$SGI_ABI -all";;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($CCSHARED)
|
|
# LINKFORSHARED are the flags passed to the $(CC) command that links
|
|
# the python executable -- this is only needed for a few systems
|
|
AC_MSG_CHECKING(LINKFORSHARED)
|
|
if test -z "$LINKFORSHARED"
|
|
then
|
|
case $ac_sys_system/$ac_sys_release in
|
|
AIX*) LINKFORSHARED='-Wl,-bE:$(srcdir)/python.exp -lld';;
|
|
hp*|HP*)
|
|
LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/sharedmodules";;
|
|
Linux*) LINKFORSHARED="-rdynamic";;
|
|
next/*) LINKFORSHARED="-u libsys_s";;
|
|
SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";;
|
|
IRIX*/6*) LINKFORSHARED="$SGI_ABI -all";;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($LINKFORSHARED)
|
|
|
|
# checks for libraries
|
|
AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
|
|
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
|
|
AC_CHECK_LIB(sun, getpwnam) # NIS (== YP) interface for IRIX 4
|
|
# The following three (nsl,inet,socket) are needed on Sequent;
|
|
# the order of checking must be this. Most SVR4 platforms will
|
|
# need -lsocket and -lnsl. However on SGI IRIX 5, these exist but
|
|
# broken. I see no elegant solution (probably CHECK_LIB should be
|
|
# fixed to only add the library if the given entry point is not
|
|
# satisfied without it).
|
|
if test "$ac_sys_system" != IRIX
|
|
then
|
|
AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
|
|
AC_CHECK_LIB(inet, gethostbyname, [LIBS="-linet $LIBS"], [], -lnsl) # Sequent
|
|
AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
|
|
fi
|
|
AC_MSG_CHECKING(for --with-libs)
|
|
AC_ARG_WITH(libs, [--with-libs='lib1 ...' link against additional libs], [
|
|
AC_MSG_RESULT($withval)
|
|
LIBS="$withval $LIBS"
|
|
], AC_MSG_RESULT(no))
|
|
|
|
AC_MSG_CHECKING(for --with(out)-readline)
|
|
AC_ARG_WITH(readline,
|
|
[--with(out)-readline obsolete, edit Modules/Setup instead],
|
|
[AC_MSG_RESULT($withval)
|
|
AC_ERROR(--with(out)-readline is obsolete, edit Modules/Setup instead)],
|
|
[AC_MSG_RESULT(not specified.)])
|
|
|
|
AC_MSG_CHECKING(for --with-dec-threads)
|
|
AC_SUBST(LDLAST)
|
|
AC_ARG_WITH(dec-threads,
|
|
[--with-dec-threads use DEC Alpha/OSF1 thread-safe libraries],
|
|
[AC_MSG_RESULT($withval)
|
|
LDLAST=-threads
|
|
if test "${with_thread+set}" != set; then
|
|
with_thread="$withval";
|
|
fi],
|
|
AC_MSG_RESULT(no))
|
|
|
|
AC_MSG_CHECKING(for --with-threads)
|
|
AC_ARG_WITH(threads, [--with-threads alias for --with-thread],
|
|
[AC_MSG_RESULT($withval)
|
|
if test "${with_thread+set}" != set; then
|
|
with_thread="$withval";
|
|
fi],
|
|
AC_MSG_RESULT(no))
|
|
|
|
AC_MSG_CHECKING(for --with-thread)
|
|
AC_ARG_WITH(thread, [--with-thread[=DIRECTORY] make interpreter thread-safe], [
|
|
AC_MSG_RESULT($withval)
|
|
if test -d "$withval"
|
|
then LDFLAGS="$LDFLAGS -L$withval"
|
|
fi
|
|
AC_DEFINE(_REENTRANT)
|
|
AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
|
|
AC_DEFINE(C_THREADS)
|
|
LIBOBJS="$LIBOBJS thread.o"],[
|
|
AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
|
|
AC_DEFINE(_POSIX_THREADS)
|
|
LIBS="$LIBS -lpthreads"
|
|
LIBOBJS="$LIBOBJS thread.o"], [
|
|
AC_CHECK_LIB(pthread, pthread_create, [AC_DEFINE(WITH_THREAD)
|
|
AC_DEFINE(_POSIX_THREADS)
|
|
LIBS="$LIBS -lpthread"
|
|
LIBOBJS="$LIBOBJS thread.o"], [
|
|
AC_CHECK_LIB(thread, __d6_pthread_create, [AC_DEFINE(WITH_THREAD)
|
|
AC_DEFINE(_POSIX_THREADS)
|
|
LIBS="$LIBS -lthread"
|
|
LIBOBJS="$LIBOBJS thread.o"])
|
|
])])])
|
|
|
|
AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
|
|
LIBS="$LIBS -lmpc"
|
|
LIBOBJS="$LIBOBJS thread.o"])
|
|
AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
|
|
LIBS="$LIBS -lthread"
|
|
LIBOBJS="$LIBOBJS thread.o"])
|
|
], AC_MSG_RESULT(no))
|
|
|
|
# -I${DLINCLDIR} is added to the compile rule for importdl.o
|
|
AC_SUBST(DLINCLDIR)
|
|
DLINCLDIR=/
|
|
|
|
AC_MSG_CHECKING(for --with-sgi-dl)
|
|
AC_ARG_WITH(sgi-dl, [--with-sgi-dl=DIRECTORY IRIX 4 dynamic linking], [
|
|
AC_MSG_RESULT($withval)
|
|
AC_DEFINE(WITH_SGI_DL)
|
|
dldir=$withval
|
|
if test -d "$dldir"
|
|
then LDFLAGS="$LDFLAGS -L$dldir"
|
|
else AC_ERROR(proper usage is --with-sgi-dl=DIRECTORY)
|
|
fi
|
|
DLINCLDIR=${dldir}
|
|
LIBS="$LIBS -ldl -lmld"], AC_MSG_RESULT(no))
|
|
|
|
AC_MSG_CHECKING(for --with-dl-dld)
|
|
AC_ARG_WITH(dl-dld, [--with-dl-dld=DL_DIR,DLD_DIR GNU dynamic linking], [
|
|
AC_MSG_RESULT($withval)
|
|
AC_DEFINE(WITH_DL_DLD)
|
|
dldir=`echo "$withval" | sed 's/,.*//'`
|
|
dlddir=`echo "$withval" | sed 's/.*,//'`
|
|
if test -d "$dldir" -a -d "$dlddir"
|
|
then LDFLAGS="$LDFLAGS -L$dldir -L$dlddir"
|
|
else AC_ERROR(proper usage is --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY)
|
|
fi
|
|
DLINCLDIR=${dldir}
|
|
LIBS="$LIBS -ldl -ldld"], AC_MSG_RESULT(no))
|
|
|
|
# checks for library functions
|
|
AC_CHECK_FUNCS(alarm chown clock dlopen execv flock fork ftime ftruncate \
|
|
gethostname_r getpeername getpgrp getpid getpwent gettimeofday getwd \
|
|
kill link lstat mkfifo nice pause plock putenv readlink \
|
|
select setgid setuid setsid setpgid setpgrp setvbuf \
|
|
sigaction siginterrupt sigrelse strftime symlink \
|
|
tcgetpgrp tcsetpgrp times truncate uname waitpid)
|
|
AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
|
|
AC_CHECK_FUNC(getpgrp, AC_TRY_COMPILE([#include <unistd.h>], [getpgrp(0);], AC_DEFINE(GETPGRP_HAVE_ARG)))
|
|
AC_CHECK_FUNC(setpgrp, AC_TRY_COMPILE([#include <unistd.h>], [setpgrp(0,0);], AC_DEFINE(SETPGRP_HAVE_ARG)))
|
|
AC_CHECK_FUNC(gettimeofday, AC_TRY_COMPILE([#include <sys/time.h>], [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,AC_DEFINE(GETTIMEOFDAY_NO_TZ)))
|
|
|
|
# checks for structures
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
AC_STRUCT_TIMEZONE
|
|
|
|
AC_MSG_CHECKING(for time.h that defines altzone)
|
|
AC_CACHE_VAL(ac_cv_header_time_altzone,
|
|
[AC_TRY_COMPILE([#include <time.h>], [return altzone;],
|
|
ac_cv_header_time_altzone=yes,
|
|
ac_cv_header_time_altzone=no)])
|
|
AC_MSG_RESULT($ac_cv_header_time_altzone)
|
|
if test $ac_cv_header_time_altzone = yes; then
|
|
AC_DEFINE(HAVE_ALTZONE)
|
|
fi
|
|
|
|
was_it_defined=no
|
|
AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
|
|
AC_TRY_COMPILE([
|
|
#include <sys/types.h>
|
|
#include <sys/select.h>
|
|
#include <sys/time.h>
|
|
], [;], [AC_DEFINE(SYS_SELECT_WITH_SYS_TIME) was_it_defined=yes])
|
|
AC_MSG_RESULT($was_it_defined)
|
|
|
|
# checks for compiler characteristics
|
|
|
|
AC_C_CHAR_UNSIGNED
|
|
|
|
AC_C_CONST
|
|
|
|
works=no
|
|
AC_MSG_CHECKING(for working volatile)
|
|
AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes, AC_DEFINE(volatile, []))
|
|
AC_MSG_RESULT($works)
|
|
|
|
works=no
|
|
AC_MSG_CHECKING(for working signed char)
|
|
AC_TRY_COMPILE([], [signed char c;], works=yes, AC_DEFINE(signed, []))
|
|
AC_MSG_RESULT($works)
|
|
|
|
have_prototypes=no
|
|
AC_MSG_CHECKING(for prototypes)
|
|
AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],
|
|
AC_DEFINE(HAVE_PROTOTYPES) have_prototypes=yes)
|
|
AC_MSG_RESULT($have_prototypes)
|
|
|
|
works=no
|
|
AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
|
|
AC_TRY_COMPILE([
|
|
#include <stdarg.h>
|
|
int foo(int x, ...) {
|
|
va_list va;
|
|
va_start(va, x);
|
|
va_arg(va, int);
|
|
va_arg(va, char *);
|
|
va_arg(va, double);
|
|
return 0;
|
|
}
|
|
], [return foo(10, "", 3.14);],
|
|
AC_DEFINE(HAVE_STDARG_PROTOTYPES) works=yes)
|
|
AC_MSG_RESULT($works)
|
|
|
|
if test "$have_prototypes" = yes; then
|
|
bad_prototypes=no
|
|
AC_MSG_CHECKING(for bad exec* prototypes)
|
|
AC_TRY_COMPILE([#include <unistd.h>], [char **t;execve("@",t,t);], ,
|
|
AC_DEFINE(BAD_EXEC_PROTOTYPES) bad_prototypes=yes)
|
|
AC_MSG_RESULT($bad_prototypes)
|
|
fi
|
|
|
|
bad_forward=no
|
|
AC_MSG_CHECKING(for bad static forward)
|
|
AC_TRY_RUN([
|
|
struct s { int a; int b; };
|
|
static struct s foo;
|
|
int foobar() {
|
|
static int random;
|
|
random = (int) &foo;
|
|
return random;
|
|
}
|
|
static struct s foo = { 1, 2 };
|
|
main() {
|
|
exit(!((int)&foo == foobar()));
|
|
}
|
|
], , AC_DEFINE(BAD_STATIC_FORWARD) bad_forward=yes)
|
|
AC_MSG_RESULT($bad_forward)
|
|
|
|
va_list_is_array=no
|
|
AC_MSG_CHECKING(whether va_list is an array)
|
|
AC_TRY_COMPILE([
|
|
#ifdef HAVE_STDARG_PROTOTYPES
|
|
#include <stdarg.h>
|
|
#else
|
|
#include <varargs.h>
|
|
#endif
|
|
], [va_list list1, list2; list1 = list2;], ,
|
|
AC_DEFINE(VA_LIST_IS_ARRAY) va_list_is_array=yes)
|
|
AC_MSG_RESULT($va_list_is_array)
|
|
|
|
# checks for system services
|
|
# (none yet)
|
|
|
|
# Linux requires this for correct f.p. operations
|
|
AC_CHECK_LIB(ieee, __fpu_control)
|
|
|
|
# Check for --with-fpectl
|
|
AC_MSG_CHECKING(for --with-fpectl)
|
|
AC_ARG_WITH(fpectl, [--with-fpectl enable SIGFPE catching], [
|
|
if test "$withval" != no
|
|
then AC_DEFINE(WANT_SIGFPE_HANDLER) AC_MSG_RESULT(yes)
|
|
else AC_MSG_RESULT(no)
|
|
fi])
|
|
|
|
# check for --with-libm=...
|
|
AC_SUBST(LIBM)
|
|
case $ac_sys_system in
|
|
next) ;;
|
|
*) LIBM=-lm
|
|
esac
|
|
AC_MSG_CHECKING(for --with-libm=STRING)
|
|
AC_ARG_WITH(libm, [--with-libm=STRING math library], [
|
|
if test "$withval" = no
|
|
then LIBM=
|
|
AC_MSG_RESULT(force LIBM empty)
|
|
elif test "$withval" != yes
|
|
then LIBM=$withval
|
|
AC_MSG_RESULT(set LIBM=\"$withval\")
|
|
else AC_ERROR(proper usage is --with-libm=STRING)
|
|
fi],
|
|
[AC_MSG_RESULT(default LIBM=\"$LIBM\")])
|
|
|
|
# check for --with-libc=...
|
|
AC_SUBST(LIBC)
|
|
AC_MSG_CHECKING(for --with-libc=STRING)
|
|
AC_ARG_WITH(libc, [--with-libc=STRING C library], [
|
|
if test "$withval" = no
|
|
then LIBC=
|
|
AC_MSG_RESULT(force LIBC empty)
|
|
elif test "$withval" != yes
|
|
then LIBC=$withval
|
|
AC_MSG_RESULT(set LIBC=\"$withval\")
|
|
else AC_ERROR(proper usage is --with-libc=STRING)
|
|
fi],
|
|
[AC_MSG_RESULT(default LIBC=\"$LIBC\")])
|
|
|
|
# check for hypot() in math library
|
|
LIBS_SAVE=$LIBS
|
|
LIBS="$LIBS $LIBM"
|
|
AC_CHECK_FUNCS(hypot)
|
|
AC_REPLACE_FUNCS(hypot)
|
|
LIBS=$LIBS_SAVE
|
|
|
|
# check for getopt
|
|
AC_MSG_CHECKING(for genuine getopt)
|
|
AC_CACHE_VAL(ac_cv_func_getopt,
|
|
[AC_TRY_RUN([#include <stdio.h>
|
|
extern int optind, opterr, getopt();
|
|
extern char* optarg;
|
|
int main() {
|
|
char* av[] = { "testprog", "parameter", "-fFlag", NULL };
|
|
opterr = 0;
|
|
if (getopt(3, av, "f:") == 'f') { exit(1); }
|
|
exit(0);
|
|
}], ac_cv_func_getopt=yes, ac_cv_func_getopt=no, ac_cv_func_getopt=no)])dnl
|
|
AC_MSG_RESULT($ac_cv_func_getopt)
|
|
test $ac_cv_func_getopt = no && LIBOBJS="$LIBOBJS getopt.o"
|
|
AC_SUBST(LIBOBJS)dnl
|
|
|
|
# check whether malloc(0) returns NULL or not
|
|
AC_MSG_CHECKING(what malloc(0) returns)
|
|
AC_CACHE_VAL(ac_cv_malloc_zero,
|
|
[AC_TRY_RUN([#include <stdio.h>
|
|
#ifdef HAVE_STDLIB
|
|
#include <stdlib.h>
|
|
#else
|
|
char *malloc(), *realloc();
|
|
int *free();
|
|
#endif
|
|
main() {
|
|
char *p;
|
|
p = malloc(0);
|
|
if (p == NULL) exit(1);
|
|
p = realloc(p, 0);
|
|
if (p == NULL) exit(1);
|
|
free(p);
|
|
exit(0);
|
|
}], ac_cv_malloc_zero=nonnull, ac_cv_malloc_zero=null)])
|
|
AC_MSG_RESULT($ac_cv_malloc_zero)
|
|
if test "$ac_cv_malloc_zero" = null
|
|
then
|
|
AC_DEFINE(MALLOC_ZERO_RETURNS_NULL)
|
|
fi
|
|
|
|
# generate output files
|
|
AC_OUTPUT(Makefile \
|
|
Objects/Makefile \
|
|
Parser/Makefile \
|
|
Python/Makefile \
|
|
Modules/Makefile.pre)
|