dnl Process this file with autoconf to produce a configure script AC_PREREQ(2.13) AC_INIT(pexecute.c) dnl We use these options to decide which functions to include. AC_ARG_WITH(target-subdir, [ --with-target-subdir=SUBDIR Configuring in a subdirectory]) AC_ARG_WITH(cross-host, [ --with-cross-host=HOST Configuring with a cross compiler]) AC_ARG_WITH(newlib, [ --with-newlib Configuring with newlib]) if test "${srcdir}" = "."; then if test -z "${with_target_subdir}"; then libiberty_topdir="${srcdir}/.." else if test "${with_target_subdir}" != "."; then libiberty_topdir="${srcdir}/${with_multisrctop}../.." else libiberty_topdir="${srcdir}/${with_multisrctop}.." fi fi else libiberty_topdir="${srcdir}/.." fi AC_CONFIG_AUX_DIR($libiberty_topdir) AC_CANONICAL_HOST dnl When we start using automake: dnl AM_INIT_AUTOMAKE(libiberty, 1.0) dnl These must be called before AM_PROG_LIBTOOL, because it may want dnl to call AC_CHECK_PROG. AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) # FIXME: We temporarily define our own version of AC_PROG_CC. This is # copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We # are probably using a cross compiler, which will not be able to fully # link an executable. This should really be fixed in autoconf # itself. AC_DEFUN(LIB_AC_PROG_CC, [AC_BEFORE([$0], [AC_PROG_CPP])dnl AC_PROVIDE([AC_PROG_CC]) AC_CHECK_PROG(CC, gcc, gcc) if test -z "$CC"; then AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) fi AC_PROG_CC_GNU if test $ac_cv_prog_gcc = yes; then GCC=yes ac_libiberty_warn_cflags='-W -Wall -Wtraditional -pedantic' dnl Check whether -g works, even if CFLAGS is set, in case the package dnl plays around with CFLAGS (such as to build both debugging and dnl normal versions of a library), tasteless as that idea is. ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= AC_PROG_CC_G if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" elif test $ac_cv_prog_cc_g = yes; then CFLAGS="-g -O2" else CFLAGS="-O2" fi else GCC= ac_libiberty_warn_cflags= test "${CFLAGS+set}" = set || CFLAGS="-g" fi ]) AC_SUBST(ac_libiberty_warn_cflags) LIB_AC_PROG_CC AC_ISC_POSIX dnl When we start using libtool: dnl Default to a non shared library. This may be overridden by the dnl configure option --enable-shared. dnl AM_DISABLE_SHARED dnl When we start using libtool: dnl AM_PROG_LIBTOOL dnl When we start using automake: dnl AM_CONFIG_HEADER(config.h:config.in) AC_CONFIG_HEADER(config.h:config.in) dnl When we start using automake: dnl AM_MAINTAINER_MODE dnl AC_EXEEXT dnl When we start using automake: dnl AM_PROG_INSTALL AC_PROG_INSTALL . ${srcdir}/config.table host_makefile_frag=${frag} AC_SUBST_FILE(host_makefile_frag) # It's OK to check for header files. Although the compiler may not be # able to link anything, it had better be able to at least compile # something. AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h) AC_HEADER_SYS_WAIT AC_HEADER_TIME libiberty_AC_DECLARE_ERRNO # This is the list of functions which libiberty will provide if they # are not available on the host. funcs="asprintf" funcs="$funcs atexit" funcs="$funcs basename" funcs="$funcs bcmp" funcs="$funcs bcopy" funcs="$funcs bzero" funcs="$funcs calloc" funcs="$funcs clock" funcs="$funcs getcwd" funcs="$funcs getpagesize" funcs="$funcs index" funcs="$funcs insque" funcs="$funcs memchr" funcs="$funcs memcmp" funcs="$funcs memcpy" funcs="$funcs memmove" funcs="$funcs memset" funcs="$funcs mkstemps" funcs="$funcs putenv" funcs="$funcs random" funcs="$funcs rename" funcs="$funcs rindex" funcs="$funcs setenv" funcs="$funcs sigsetmask" funcs="$funcs strcasecmp" funcs="$funcs strchr" funcs="$funcs strdup" funcs="$funcs strncasecmp" funcs="$funcs strrchr" funcs="$funcs strstr" funcs="$funcs strtod" funcs="$funcs strtol" funcs="$funcs strtoul" funcs="$funcs tmpnam" funcs="$funcs vasprintf" funcs="$funcs vfprintf" funcs="$funcs vprintf" funcs="$funcs vsprintf" funcs="$funcs waitpid" # Also in the old function.def file: alloca, vfork, getopt. vars="sys_errlist sys_nerr sys_siglist" checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday" # These are neither executed nor required, but they help keep # autoheader happy without adding a bunch of text to acconfig.h. if test "x" = "y"; then AC_CHECK_FUNCS(asprintf atexit basename bcmp bcopy bzero calloc clock getcwd) AC_CHECK_FUNCS(getpagesize index insque mkstemps memchr memcmp memcpy memmove) AC_CHECK_FUNCS(memset putenv random rename rindex sigsetmask strcasecmp) AC_CHECK_FUNCS(setenv strchr strdup strncasecmp strrchr strstr strtod strtol) AC_CHECK_FUNCS(strtoul tmpnam vasprintf vfprintf vprintf vsprintf waitpid) AC_DEFINE(HAVE_SYS_ERRLIST) AC_DEFINE(HAVE_SYS_NERR) AC_DEFINE(HAVE_SYS_SIGLIST) AC_CHECK_FUNCS(getrusage on_exit psignal strerror strsignal sysconf times) AC_CHECK_FUNCS(sbrk gettimeofday) fi # For each of these functions, if the host does not provide the # function we want to put FN.o in LIBOBJS, and if the host does # provide the function, we want to define HAVE_FN in config.h. Also, # if the host does not provide alloca, we set ALLOCA to alloca.o setobjs= CHECK= if test -n "${with_target_subdir}"; then # We are being configured as a target library. AC_REPLACE_FUNCS # may not work correctly, because the compiler may not be able to # link executables. Note that we may still be being configured # native. # If we are being configured for newlib, we know which functions # newlib provide and which ones we will be expected to provide. if test "x${with_newlib}" = "xyes"; then ALLOCA="alloca.o" LIBOBJS="asprintf.o basename.o insque.o random.o strdup.o vasprintf.o" for f in $funcs; do case "$f" in asprintf | basename | insque | random | strdup | vasprintf) ;; *) n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` AC_DEFINE_UNQUOTED($n) ;; esac done # newlib doesnt provide any of the variables in $vars, so we # dont have to check them here. # Of the functions in $checkfuncs, newlib only has strerror. AC_DEFINE(HAVE_STRERROR) setobjs=yes fi else # Not a target library, so we set things up to run the test suite. CHECK=check-cplus-dem fi AC_SUBST(CHECK) if test -z "${setobjs}"; then case "${host}" in *-*-vxworks*) # Handle VxWorks configuration specially, since on VxWorks the # libraries are actually on the target board, not in the file # system. LIBOBJS="basename.o getpagesize.o insque.o random.o strcasecmp.o" LIBOBJS="$LIBOBJS strncasecmp.o strdup.o vfork.o waitpid.o vasprintf.o" for f in $funcs; do case "$f" in basename | getpagesize | insque | random | strcasecmp) ;; strncasecmp | strdup | vfork | waitpid | vasprintf) ;; *) n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` AC_DEFINE_UNQUOTED($n) ;; esac done # VxWorks doesn't provide any of the variables in $vars, so we # don't have to check them here. # Of the functions in $checkfuncs, VxWorks only has strerror. AC_DEFINE(HAVE_STRERROR) setobjs=yes ;; esac fi if test -z "${setobjs}"; then case "${host}" in *-*-cygwin*) # The Cygwin library actually uses a couple of files from # libiberty when it is built. If we are building a native # Cygwin, and we run the tests, we will appear to have these # files. However, when we go on to build winsup, we will wind up # with a library which does not have the files, since they should # have come from libiberty. # We handle this by removing the functions the winsup library # provides from our shell variables, so that they appear to be # missing. funcs="`echo $funcs | sed -e 's/random//'`" LIBOBJS="$LIBOBJS random.o" vars="`echo $vars | sed -e 's/sys_siglist//'`" checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`" ;; *-*-mingw32*) # Under mingw32, sys_nerr and sys_errlist exist, but they are # macros, so the test below won't find them. vars="`echo $vars | sed -e 's/sys_nerr//' -e 's/sys_errlist//'`" AC_DEFINE(HAVE_SYS_NERR) AC_DEFINE(HAVE_SYS_ERRLIST) ;; *-*-uwin*) # Under some versions of uwin, vfork is notoriously buggy and the test # can hang configure; on other versions, vfork exists just as a stub. # FIXME: This should be removed once vfork in uwin's runtime is fixed. ac_cv_func_vfork_works=no # Under uwin 2.0+, sys_nerr and sys_errlist exist, but they are # macros (actually, these are imported from a DLL, but the end effect # is the same), so the test below won't find them. AC_DEFINE(HAVE_SYS_NERR) AC_DEFINE(HAVE_SYS_ERRLIST) ;; esac # We haven't set the list of objects yet. Use the standard autoconf # tests. This will only work if the compiler works. AC_PROG_CC_WORKS AC_REPLACE_FUNCS($funcs) case "${host}" in *-*-interix) # On Interix, it wrongly concludes that the MSVC compiler supports alloca. # (MSVC does on Win32, not on Interix.) # This should be temporary. ac_cv_header_alloca_h=no ac_cv_func_alloca_works=no ALLOCA=alloca.o cat >> confdefs.h <<\EOF #define C_ALLOCA 1 EOF cat >> confdefs.h < stamp-h if test -n "$CONFIG_FILES"; then if test -n "${with_target_subdir}"; then # FIXME: We shouldn't need to set ac_file ac_file=Makefile . ${libiberty_topdir}/config-ml.in fi fi], srcdir=${srcdir} host=${host} target=${target} with_target_subdir=${with_target_subdir} with_multisubdir=${with_multisubdir} ac_configure_args="--enable-multilib ${ac_configure_args}" CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} libiberty_topdir=${libiberty_topdir} )