Tue Feb 27 14:17:31 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
[deliverable/binutils-gdb.git] / bfd / configure.in
index 39eea25802d3cea25d65e9b7ad77ea14cb134b45..2ab9cb58159a519e79208a43266400f1dd9377e3 100644 (file)
@@ -18,8 +18,29 @@ AC_ARG_ENABLE(targets,
   no)       enable_targets= ;;
   *)        enable_targets=$enableval ;;
 esac])dnl
+AC_ARG_ENABLE(shared,
+[  --enable-shared         build shared BFD library],
+[case "${enableval}" in
+  yes) shared=true ;;
+  no)  shared=false ;;
+  *)   AC_MSG_ERROR([bad value ${enableval} for BFD shared option]) ;;
+esac])dnl
+AC_ARG_ENABLE(commonbfdlib,
+[  --enable-commonbfdlib   build shared BFD/opcodes/libiberty library],
+[case "${enableval}" in
+  yes) commonbfdlib=true ;;
+  no)  commonbfdlib=false ;;
+  *)   AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
+esac])dnl
+AC_ARG_WITH(mmap,
+[  --with-mmap             try using mmap for BFD input files if available],
+[case "${withval}" in
+  yes)  want_mmap=true ;;
+  no)   want_mmap=false ;;
+  *)    AC_MSG_ERROR(bad value ${withval} for BFD with-mmap option) ;;
+esac],[want_mmap=false])dnl
 
-AC_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADER(config.h:config.in)
 
 AC_CONFIG_AUX_DIR(`cd $srcdir/..;pwd`)
 AC_CANONICAL_SYSTEM
@@ -33,17 +54,58 @@ target64=false
 
 # host stuff:
 
+ALLLIBS='$(TARGETLIB)'
+PICFLAG=
+SHLIB=
+SHLINK=
+if test "${shared}" = "true"; then
+  PICFLAG=-fpic
+  if test "${commonbfdlib}" = "true"; then
+    ALLLIBS='$(TARGETLIB)'
+  else
+    ALLLIBS='$(TARGETLIB) $(SHLIB) $(SHLINK)'
+changequote(,)dnl
+    SHLIB=libbfd.so.`sed -e 's/[^0-9]*\([0-9.]*\).*/\1/' ${srcdir}/VERSION`
+changequote([,])dnl
+    SHLINK=libbfd.so
+  fi
+fi
+
+AC_PROG_CC
+
 # Permit host specific settings.
 . ${srcdir}/configure.host
 
-AC_PROG_CC
-AC_SUBST(CFLAGS)
 AC_SUBST(HDEFINES)
-AR=${AR-ar}
-AC_SUBST(AR)
+AC_CHECK_PROG(AR, ar, ar, :)
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 
+if test "${shared}" = "true"; then
+  if test "${GCC}" != "yes" && test "${shared_non_gcc}" != "yes"; then
+    AC_MSG_WARN([BFD --enable-shared only supported when using gcc])
+    shared=false
+    PICFLAG=
+    SHLIB=
+  fi
+fi
+
+AC_SUBST(ALLLIBS)
+AC_SUBST(PICFLAG)
+AC_SUBST(SHLIB)
+AC_SUBST(SHLIB_CC)
+AC_SUBST(SHLIB_CFLAGS)
+if test "${commonbfdlib}" = "true"; then
+  COMMON_SHLIB=yes
+  PICLIST=piclist
+else
+  COMMON_SHLIB=
+  PICLIST=
+fi
+AC_SUBST(COMMON_SHLIB)
+AC_SUBST(PICLIST)
+AC_SUBST(SHLINK)
+
 HOST_64BIT_LONG=0
 if test "x${HOST_64BIT_TYPE}" = "xlong"; then
   HOST_64BIT_LONG=1
@@ -53,51 +115,24 @@ AC_SUBST(HOST_64BIT_LONG)
 BFD_CC_FOR_BUILD
 
 AC_CHECK_HEADERS(stddef.h string.h strings.h stdlib.h time.h unistd.h)
-AC_CHECK_HEADERS(fcntl.h sys/file.h sys/procfs.h)
-AC_CHECK_FUNCS(fcntl)
+AC_CHECK_HEADERS(fcntl.h sys/file.h)
+AC_CHECK_FUNCS(fcntl getpagesize)
 
 BFD_BINARY_FOPEN
 
-AC_MSG_CHECKING([whether malloc must be declared])
-AC_CACHE_VAL(bfd_cv_decl_needed_malloc,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif],
-[char *(*pfn) = (char *(*)) malloc],
-bfd_cv_decl_needed_malloc=no, bfd_cv_decl_needed_malloc=yes)])
-AC_MSG_RESULT($bfd_cv_decl_needed_malloc)
-if test $bfd_cv_decl_needed_malloc = yes; then
-  AC_DEFINE(NEED_DECLARATION_MALLOC)
-fi
-
-AC_MSG_CHECKING([whether free must be declared])
-AC_CACHE_VAL(bfd_cv_decl_needed_free,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif],
-[int (*pfn) = (int (*)) free],
-bfd_cv_decl_needed_free=no, bfd_cv_decl_needed_free=yes)])
-AC_MSG_RESULT($bfd_cv_decl_needed_free)
-if test $bfd_cv_decl_needed_free = yes; then
-  AC_DEFINE(NEED_DECLARATION_FREE)
-fi
+BFD_NEED_DECLARATION(malloc)
+BFD_NEED_DECLARATION(free)
 
 # If we are configured native, pick a core file support file.
 COREFILE=
 COREFLAG=
 if test "${target}" = "${host}"; then
   case "${host}" in
-  alpha-*-*)           COREFILE=osf-core.o ;;
+  alpha*-*-linux*)
+       COREFILE=trad-core.o
+       AC_DEFINE(TRAD_HEADER,"hosts/alphalinux.h")
+       ;;
+  alpha*-*-*)          COREFILE=osf-core.o ;;
   arm-*-riscix)                COREFILE=trad-core.o ;;
   hppa*-*-hpux*)       COREFILE=hpux-core.o ;;
   hppa*-*-hiux*)       COREFILE=hpux-core.o ;;
@@ -117,11 +152,16 @@ changequote([,])dnl
        AC_DEFINE(TRAD_HEADER,"hosts/symmetry.h")
        ;;
 changequote(,)dnl
-  i[345]86-*-bsd* | i[345]86-*-freebsd* | i[345]86-*-netbsd*)
+  i[345]86-*-bsd* | i[345]86-*-freebsd*)
 changequote([,])dnl
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/i386bsd.h")
        ;;
+changequote(,)dnl
+  i[345]86-*-netbsd*)
+changequote([,])dnl
+       COREFILE=netbsd-core.o
+       ;;
 changequote(,)dnl
   i[345]86-esix-sysv3*)
 changequote([,])dnl
@@ -150,6 +190,10 @@ changequote(,)dnl
   i[345]86-*-isc*)     COREFILE=trad-core.o ;;
   i[345]86-*-aix*)     COREFILE=aix386-core.o ;;
 changequote([,])dnl
+  i860-*-mach3* | i860-*-osf1*)
+       COREFILE=trad-core.o
+       AC_DEFINE(TRAD_HEADER,"hosts/i860mach3.h")
+       ;;
   mips-dec-bsd*)
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/mipsbsd.h")
@@ -158,6 +202,9 @@ changequote([,])dnl
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/mipsmach3.h")
        ;;
+  mips-*-netbsd*)
+       COREFILE=netbsd-core.o
+       ;;
   mips-dec-*)
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/decstation.h")
@@ -186,13 +233,27 @@ changequote([,])dnl
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/hp300bsd.h")
        ;;
-  m68*-motorola-sysv*) COREFILE=ptrace-core.o ;;
+  m68*-*-linux*)
+       COREFILE=trad-core.o
+       AC_DEFINE(TRAD_HEADER,"hosts/m68klinux.h")
+       ;;
+  m68*-motorola-sysv*)
+       COREFILE=trad-core.o
+       AC_DEFINE(TRAD_HEADER, "hosts/delta68.h")
+       ;;
   m68*-sony-*)
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/news.h")
        ;;
+  m68*-*-netbsd*)
+       COREFILE=netbsd-core.o
+       ;;
+  m68*-apple-aux*)
+       COREFILE=trad-core.o
+       AC_DEFINE(TRAD_HEADER,"hosts/m68kaux.h")
+       ;;
   m88*-*-sysv4*)       ;;
-  m88*-motorola-sysv*) COREFILE=trad-core.o ;;
+  m88*-motorola-sysv*) COREFILE=ptrace-core.o ;;
   m88*-*-mach3*)
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/m88kmach3.h")
@@ -201,13 +262,17 @@ changequote([,])dnl
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/pc532mach.h")
        ;;
+  ns32k-*-netbsd*)
+       COREFILE=netbsd-core.o
+       ;;
   rs6000-*-lynx*)      COREFILE=lynx-core.o ;;
-  rs6000-*-aix4*)      COREFILE=rs6000-core.o
-                       COREFLAG=-DALTERNATE_AIX_CORE_FORMAT ;;
+  rs6000-*-aix4*)      COREFILE=rs6000-core.o ;;
   rs6000-*-*)          COREFILE=rs6000-core.o ;;
-  powerpc-*-aix4*)     COREFILE=rs6000-core.o
-                       COREFLAG=-DALTERNATE_AIX_CORE_FORMAT ;;
+  powerpc-*-aix4*)     COREFILE=rs6000-core.o ;;
   powerpc-*-aix*)      COREFILE=rs6000-core.o ;;
+  sparc-*-netbsd*)
+       COREFILE=netbsd-core.o
+       ;;
   tahoe-*-*)
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/tahoe.h")
@@ -237,6 +302,20 @@ changequote([,])dnl
   rs6000-core.o)       COREFLAG="$COREFLAG -DAIX_CORE" ;;
   trad-core.o)         COREFLAG="$COREFLAG -DTRAD_CORE" ;;
   esac
+
+  # The ELF code uses the native <sys/procfs.h> to handle core files.
+  # Define HAVE_SYS_PROCFS_H if the file exists and defines
+  # prstatus_t.
+  AC_MSG_CHECKING([for sys/procfs.h])
+  AC_CACHE_VAL(bfd_cv_header_sys_procfs_h,
+  [AC_TRY_COMPILE([#include <sys/procfs.h>],
+  [prstatus_t t;],
+  bfd_cv_header_sys_procfs_h=yes, bfd_cv_header_sys_procfs_h=no)])
+  AC_MSG_RESULT($bfd_cv_header_sys_procfs_h)
+  if test $bfd_cv_header_sys_procfs_h = yes; then
+    AC_DEFINE(HAVE_SYS_PROCFS_H)
+  fi
+
 fi
 AC_SUBST(COREFILE)
 AC_SUBST(COREFLAG)
@@ -317,6 +396,8 @@ do
     # with the two vector lists in targets.c.
     a29kcoff_big_vec)          tb="$tb coff-a29k.o cofflink.o" ;;
     a_out_adobe_vec)           tb="$tb aout-adobe.o aout32.o stab-syms.o" ;;
+    armcoff_little_vec)                tb="$tb coff-arm.o cofflink.o " ;;
+    armcoff_big_vec)           tb="$tb coff-arm.o cofflink.o " ;;
     armpe_little_vec)          tb="$tb pe-arm.o cofflink.o " ;;
     armpe_big_vec)             tb="$tb pe-arm.o cofflink.o " ;;
     armpei_little_vec)         tb="$tb pei-arm.o cofflink.o " ;;
@@ -365,8 +446,9 @@ do
     hp300hpux_vec)             tb="$tb hp300hpux.o aout32.o stab-syms.o" ;;
     i386aout_vec)              tb="$tb i386aout.o aout32.o stab-syms.o" ;;
     i386bsd_vec)               tb="$tb i386bsd.o aout32.o stab-syms.o" ;;
-    i386dynix_vec)             tb="$tb i386dynix.o aout32.o stab-syms.o" ;;
     i386coff_vec)              tb="$tb coff-i386.o cofflink.o" ;;
+    i386dynix_vec)             tb="$tb i386dynix.o aout32.o stab-syms.o" ;;
+    i386freebsd_vec)           tb="$tb i386freebsd.o aout32.o stab-syms.o" ;;
     i386msdos_vec)             tb="$tb i386msdos.o" ;;
     i386pe_vec)                        tb="$tb pe-i386.o cofflink.o " ;;
     i386pei_vec)               tb="$tb pei-i386.o cofflink.o" ;;
@@ -376,14 +458,18 @@ do
     i386mach3_vec)             tb="$tb i386mach3.o aout32.o stab-syms.o" ;;
     i386netbsd_vec)            tb="$tb i386netbsd.o aout32.o stab-syms.o" ;;
     i386os9k_vec)              tb="$tb i386os9k.o aout32.o stab-syms.o" ;;
-    icoff_big_vec)             tb="$tb coff-i960.o" ;;
-    icoff_little_vec)          tb="$tb coff-i960.o" ;;
+    i860coff_vec)              tb="$tb coff-i860.o cofflink.o" ;;
+    icoff_big_vec)             tb="$tb coff-i960.o cofflink.o" ;;
+    icoff_little_vec)          tb="$tb coff-i960.o cofflink.o" ;;
     ieee_vec)                  tb="$tb ieee.o" ;;
     m68kcoff_vec)              tb="$tb coff-m68k.o cofflink.o" ;;
     m68kcoffun_vec)            tb="$tb coff-u68k.o coff-m68k.o cofflink.o" ;;
+    m68klinux_vec)             tb="$tb m68klinux.o aout32.o stab-syms.o" ;;
     m68klynx_aout_vec)         tb="$tb m68klynx.o lynx-core.o aout32.o stab-syms.o" ;;
     m68klynx_coff_vec)         tb="$tb cf-m68klynx.o coff-m68k.o cofflink.o lynx-core.o stab-syms.o" ;;
     m68knetbsd_vec)            tb="$tb m68knetbsd.o aout32.o stab-syms.o" ;;
+    m68k4knetbsd_vec)          tb="$tb m68k4knetbsd.o aout32.o stab-syms.o" ;;
+    m68kaux_coff_vec)          tb="$tb coff-aux.o coff-m68k.o cofflink.o" ;;
     m88kbcs_vec)               tb="$tb coff-m88k.o" ;;
     newsos3_vec)               tb="$tb newsos3.o aout32.o stab-syms.o" ;;
     nlm32_i386_vec)            tb="$tb nlm32-i386.o nlm32.o nlm.o" ;;
@@ -394,7 +480,12 @@ do
     nlm32_powerpc_vec)         tb="$tb nlm32-ppc.o nlm32.o nlm.o" ;;
     pc532netbsd_vec)           tb="$tb ns32knetbsd.o aout-ns32k.o stab-syms.o" ;;
     pc532machaout_vec)         tb="$tb pc532-mach.o aout-ns32k.o stab-syms.o" ;;
-    rs6000coff_vec)            tb="$tb coff-rs6000.o" ;;
+    pmac_xcoff_vec)            tb="$tb coff-pmac.o xcofflink.o" ;;
+    rs6000coff_vec)            tb="$tb coff-rs6000.o xcofflink.o" ;;
+    bfd_powerpc_pe_vec)         tb="$tb pe-ppc.o cofflink.o" ;;  
+    bfd_powerpcle_pe_vec)       tb="$tb pe-ppc.o cofflink.o" ;;  
+    bfd_powerpc_pei_vec)        tb="$tb pei-ppc.o cofflink.o" ;;
+    bfd_powerpcle_pei_vec)      tb="$tb pei-ppc.o cofflink.o" ;;
     shcoff_vec)                        tb="$tb coff-sh.o cofflink.o" ;;
 # start-sanitize-rce
     rce_aout_vec)              tb="$tb aout-rce.o aout32.o stab-syms.o" ;;
@@ -454,7 +545,7 @@ else        # all_targets is true
   test -n "$selvecs" &&
     selvecs=`echo $selvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
   test -n "$selarchs" &&
-    selarchs=`echo $selarchs | sed -e 's/ \(.\)/,\1/g'`
+    selarchs=`echo $selarchs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
 fi     # all_targets is true
 
 case ${host64}-${target64}-${want64} in
@@ -479,6 +570,13 @@ test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'"
 test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'"
 AC_SUBST(tdefaults)
 
+dnl AC_CHECK_HEADERS(sys/mman.h)
+AC_FUNC_MMAP
+AC_CHECK_FUNCS(madvise mprotect)
+case ${want_mmap}+${ac_cv_func_mmap} in
+  true+yes )  AC_DEFINE(USE_MMAP) ;;
+esac
+
 rm -f doc/config.status
 AC_OUTPUT(Makefile doc/Makefile,
-[case x$CONFIG_HEADERS in xconfig.h) echo > stamp-h ;; esac])
+[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])
This page took 0.03142 seconds and 4 git commands to generate.