X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=libiberty%2Fconfigure.ac;h=371864e1e7a293544b710653edb5e5916d90a579;hb=36fc76aebb7315571094d66b35e13d69d512fbe2;hp=012bbfc262cd192db6ef06b1add0eebbe8a7146a;hpb=11a338da34e1bcffa0341261c573e6cf16d0f34f;p=deliverable%2Fbinutils-gdb.git diff --git a/libiberty/configure.ac b/libiberty/configure.ac index 012bbfc262..371864e1e7 100644 --- a/libiberty/configure.ac +++ b/libiberty/configure.ac @@ -4,9 +4,6 @@ AC_PREREQ(2.59) AC_INIT AC_CONFIG_SRCDIR([xmalloc.c]) -# FIXME: libiberty doesn't support --disable-static -enable_static=yes - # This works around the fact that libtool configuration may change LD # for this particular configuration, but some shells, instead of # keeping the changes in LD private, export them just because LD is @@ -112,24 +109,54 @@ dnl to call AC_CHECK_PROG. AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) +dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB. +# Add --enable-multilib to configure. +# Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "$enableval" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR([bad value $enableval for multilib option]) ;; + esac], + [multilib=yes]) + +# Even if the default multilib is not a cross compilation, +# it may be that some of the other multilibs are. +if test $cross_compiling = no && test $multilib = yes \ + && test "x${with_multisubdir}" != x ; then + cross_compiling=maybe +fi + GCC_NO_EXECUTABLES AC_PROG_CC AC_PROG_CPP_WERROR -if test x$GCC = xyes; then - ac_libiberty_warn_cflags='-W -Wall -Wtraditional -pedantic' +ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wc++-compat \ + -Wstrict-prototypes], [ac_libiberty_warn_cflags]) +ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([], [ac_libiberty_warn_cflags]) + +AC_PROG_CC_C_O +# autoconf is lame and doesn't give us any substitution variable for this. +if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then + NO_MINUS_C_MINUS_O=yes +else + OUTPUT_OPTION='-o $@' fi -AC_SUBST(ac_libiberty_warn_cflags) +AC_SUBST(NO_MINUS_C_MINUS_O) +AC_SUBST(OUTPUT_OPTION) AC_C_CONST AC_C_INLINE -AC_C_BIGENDIAN_CROSS +AC_C_BIGENDIAN +dnl When we start using libtool: dnl Default to a non shared library. This may be overridden by the dnl configure option --enable-shared. -AM_DISABLE_SHARED +dnl AM_DISABLE_SHARED -AM_PROG_LIBTOOL +dnl When we start using libtool: +dnl AM_PROG_LIBTOOL dnl When we start using automake: dnl AM_CONFIG_HEADER(config.h:config.in) @@ -143,14 +170,82 @@ dnl When we start using automake: dnl AM_PROG_INSTALL AC_PROG_INSTALL -. ${srcdir}/config.table +# Don't build the shared library for build. +if [[ -n "${with_build_subdir}" ]]; then + enable_shared=no +fi + +frag= +case "${host}" in + rs6000-ibm-aix3.1 | rs6000-ibm-aix) + frag=mh-aix ;; + *-*-cxux7*) frag=mh-cxux7 ;; + *-*-freebsd2.1.*) frag=mh-fbsd21 ;; + *-*-freebsd2.2.[[012]]) frag=mh-fbsd21 ;; + i370-*-opened*) frag=mh-openedition ;; + i[[34567]]86-*-windows*) frag=mh-windows ;; +esac + +if [[ -n "${frag}" ]]; then + frags=${libiberty_topdir}/libiberty/config/$frag +else + frags= +fi + +# If they didn't specify --enable-shared, don't generate shared libs. +case "${enable_shared}" in + yes) shared=yes ;; + no) shared=no ;; + "") shared=no ;; + *) shared=yes ;; +esac +if [[ "${shared}" = "yes" ]]; then + frag= + case "${host}" in + *-*-cygwin*) ;; + alpha*-*-linux*) frag=mh-elfalphapic ;; + arm*-*-*) frag=mh-armpic ;; + hppa*-*-*) frag=mh-papic ;; + i[[34567]]86-*-* | x86_64-*-*) + frag=mh-x86pic ;; + powerpc*-*-aix*) ;; + powerpc*-*-*) frag=mh-ppcpic ;; + sparc*-*-*) frag=mh-sparcpic ;; + s390*-*-*) frag=mh-s390pic ;; + *) frag=mh-${host_cpu}pic ;; + esac + if [[ -n "${frag}" ]]; then + frags="${frags} ${libiberty_topdir}/config/${frag}" + fi +fi + +echo "# Warning: this fragment is automatically generated" > temp-frag + +for frag in ${frags}; do + if [[ -f ${frag} ]]; then + echo "Appending ${frag} to xhost-mkfrag" + echo "# Following fragment copied from ${frag}" >> temp-frag + cat ${frag} >> temp-frag + fi +done + +# record if we want to build shared libs. +if [[ "${shared}" = "yes" ]]; then + echo enable_shared = yes >> temp-frag +else + echo enable_shared = no >> temp-frag +fi + +frag=xhost-mkfrag +${CONFIG_SHELL-/bin/sh} ${libiberty_topdir}/move-if-change temp-frag xhost-mkfrag + 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 malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h) +AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h) AC_HEADER_SYS_WAIT AC_HEADER_TIME @@ -216,6 +311,7 @@ funcs="$funcs clock" funcs="$funcs ffs" funcs="$funcs getcwd" funcs="$funcs getpagesize" +funcs="$funcs gettimeofday" funcs="$funcs index" funcs="$funcs insque" funcs="$funcs memchr" @@ -238,11 +334,13 @@ funcs="$funcs strcasecmp" funcs="$funcs strchr" funcs="$funcs strdup" funcs="$funcs strncasecmp" +funcs="$funcs strndup" funcs="$funcs strrchr" funcs="$funcs strstr" funcs="$funcs strtod" funcs="$funcs strtol" funcs="$funcs strtoul" +funcs="$funcs strverscmp" funcs="$funcs tmpnam" funcs="$funcs vasprintf" funcs="$funcs vfprintf" @@ -257,20 +355,21 @@ vars="sys_errlist sys_nerr sys_siglist" checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday" checkfuncs="$checkfuncs realpath canonicalize_file_name pstat_getstatic pstat_getdynamic sysmp" -checkfuncs="$checkfuncs getsysinfo table sysctl" +checkfuncs="$checkfuncs getsysinfo table sysctl wait3 wait4 __fsetlocking" # 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 bsearch bzero calloc clock \ - getcwd getpagesize index insque mkstemps memchr memcmp memcpy \ + getcwd getpagesize gettimeofday index insque mkstemps memchr memcmp memcpy \ memmove mempcpy memset putenv random rename rindex sigsetmask \ - strcasecmp setenv stpcpy stpncpy strchr strdup strncasecmp strrchr strstr \ - strtod strtol strtoul tmpnam vasprintf vfprintf vprintf \ + strcasecmp setenv stpcpy stpncpy strchr strdup strncasecmp strndup strrchr strstr \ + strtod strtol strtoul strverscmp tmpnam vasprintf vfprintf vprintf \ vsprintf waitpid getrusage on_exit psignal strerror strsignal \ sysconf times sbrk gettimeofday ffs snprintf vsnprintf \ - pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl \ - realpath canonicalize_file_name) + pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl wait3 wait4 \ + realpath canonicalize_file_name __fsetlocking) + AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf]) AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.]) AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.]) AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.]) @@ -316,12 +415,61 @@ if test -n "${with_target_subdir}"; then # dont have to check them here. # Of the functions in $checkfuncs, newlib only has strerror. - AC_DEFINE_NOAUTOHEADER(HAVE_STRERROR) + AC_DEFINE(HAVE_STRERROR) setobjs=yes fi + # If we are being configured for Mingw, we know which functions + # Mingw provides and which ones we will be expected to provide. + + case "${host}" in + *-*-mingw*) + AC_LIBOBJ([asprintf]) + AC_LIBOBJ([basename]) + AC_LIBOBJ([bcmp]) + AC_LIBOBJ([bcopy]) + AC_LIBOBJ([bzero]) + AC_LIBOBJ([clock]) + AC_LIBOBJ([ffs]) + AC_LIBOBJ([getpagesize]) + AC_LIBOBJ([index]) + AC_LIBOBJ([insque]) + AC_LIBOBJ([mempcpy]) + AC_LIBOBJ([mkstemps]) + AC_LIBOBJ([random]) + AC_LIBOBJ([rindex]) + AC_LIBOBJ([sigsetmask]) + AC_LIBOBJ([stpcpy]) + AC_LIBOBJ([stpncpy]) + AC_LIBOBJ([strndup]) + AC_LIBOBJ([strverscmp]) + AC_LIBOBJ([vasprintf]) + AC_LIBOBJ([waitpid]) + + for f in $funcs; do + case "$f" in + asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strverscmp | vasprintf | waitpid) + ;; + *) + n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + AC_DEFINE_UNQUOTED($n) + ;; + esac + done + + # Mingw doesnt provide any of the variables in $vars, so we + # dont have to check them here. + + # Of the functions in $checkfuncs, Mingw only has strerror. + AC_DEFINE(HAVE_STRERROR) + + setobjs=yes + ;; + + esac + # We may wish to install the target headers somewhere. AC_ARG_ENABLE(install-libiberty, [ --enable-install-libiberty Install headers for end users], @@ -346,7 +494,7 @@ if test -n "${with_target_subdir}"; then else # Not a target library, so we set things up to run the test suite. - CHECK=check-cplus-dem + CHECK=really-check fi @@ -355,8 +503,8 @@ AC_SUBST(target_header_dir) case "${host}" in *-*-cygwin* | *-*-mingw*) - AC_DEFINE_NOAUTOHEADER(HAVE_SYS_ERRLIST) - AC_DEFINE_NOAUTOHEADER(HAVE_SYS_NERR) + AC_DEFINE(HAVE_SYS_ERRLIST) + AC_DEFINE(HAVE_SYS_NERR) ;; esac @@ -394,7 +542,24 @@ if test -z "${setobjs}"; then # don't have to check them here. # Of the functions in $checkfuncs, VxWorks only has strerror. - AC_DEFINE_NOAUTOHEADER(HAVE_STRERROR) + AC_DEFINE(HAVE_STRERROR) + + setobjs=yes + ;; + + *-*-msdosdjgpp) + for f in atexit basename bcmp bcopy bsearch bzero calloc clock ffs \ + getcwd getpagesize getrusage gettimeofday gettimeofday \ + index insque memchr memcmp memcpy memmove memset psignal \ + putenv random rename rindex sbrk setenv stpcpy strcasecmp \ + strchr strdup strerror strncasecmp strrchr strstr strtod \ + strtol strtoul sysconf times tmpnam vfprintf vprintf \ + vsprintf waitpid + do + n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + AC_DEFINE_UNQUOTED($n) + done + setobjs=yes ;; @@ -436,6 +601,11 @@ if test -z "${setobjs}"; then libiberty_cv_var_sys_errlist=yes ;; + *-*-msdosdjgpp*) + # vfork and fork are stubs. + ac_cv_func_vfork_works=no + ;; + *-*-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. @@ -501,21 +671,20 @@ if test -z "${setobjs}"; then [AC_MSG_RESULT([no])]) AC_CHECK_FUNCS($checkfuncs) + AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf]) + AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc, sbrk]) + AC_CHECK_DECLS([strverscmp]) libiberty_NEED_DECLARATION(canonicalize_file_name) fi # Figure out which version of pexecute to use. case "${host}" in - *-*-mingw* | *-*-winnt*) pex=./pex-win32 ;; - *-*-msdosdjgpp*) pex=./pex-djgpp ;; - *-*-msdos*) pex=./pex-msdos ;; - *-*-os2-emx*) pex=./pex-os2 ;; - *) pex=./pex-unix ;; + *-*-mingw* | *-*-winnt*) pexecute=./pex-win32.o ;; + *-*-msdosdjgpp*) pexecute=./pex-djgpp.o ;; + *-*-msdos*) pexecute=./pex-msdos.o ;; + *) pexecute=./pex-unix.o ;; esac -pexecute=${pex}.o -ltpexecute=${pex}.lo AC_SUBST(pexecute) -AC_SUBST(ltpexecute) libiberty_AC_FUNC_STRNCMP @@ -528,7 +697,6 @@ else fi AC_SUBST(INSTALL_DEST) -# Add `./' to avoid VPATH. m4_pattern_allow(LIBOBJS) L="" for l in x $LIBOBJS; do @@ -539,18 +707,10 @@ for l in x $LIBOBJS; do done LIBOBJS="$L" -m4_pattern_allow(LTLIBOBJS) -L="" -for l in x $LTLIBOBJS; do - case $l in - x) ;; - *) L="$L ./$l" ;; - esac -done -LTLIBOBJS="$L" - -dnl Delete it when we start creating shared library with libtool. -AC_SUBST(enable_shared) +dnl Required by html and install-html +AC_SUBST(datarootdir) +AC_SUBST(docdir) +AC_SUBST(htmldir) # We need multilib support, but only if configuring for the target. AC_CONFIG_FILES([Makefile testsuite/Makefile])