
1: dnl Process this file with autoconf to produce a configure script 2: dnl 3: AC_PREREQ(2.57) 4: AC_INIT(ldmain.c) 5: 6: AC_CANONICAL_SYSTEM 7: AC_ISC_POSIX 8: 9: changequote(,)dnl 10: BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in` 11: changequote([,])dnl 12: AM_INIT_AUTOMAKE(ld, ${BFD_VERSION}) 13: 14: AM_PROG_LIBTOOL 15: 16: AC_ARG_WITH(lib-path, [ --with-lib-path=dir1:dir2... set default LIB_PATH],LIB_PATH=$withval) 17: AC_ARG_ENABLE(targets, 18: [ --enable-targets alternative target configurations], 19: [case "${enableval}" in 20: yes | "") AC_ERROR(enable-targets option must specify target names or 'all') 21: ;; 22: no) enable_targets= ;; 23: *) enable_targets=$enableval ;; 24: esac])dnl 25: AC_ARG_ENABLE(64-bit-bfd, 26: [ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)], 27: [case "${enableval}" in 28: yes) want64=true ;; 29: no) want64=false ;; 30: *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;; 31: esac],[want64=false])dnl 32: 33: AC_ARG_WITH(sysroot, 34: [ --with-sysroot[=DIR] Search for usr/lib et al within DIR.], 35: [ 36: case ${with_sysroot} in 37: yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;; 38: *) TARGET_SYSTEM_ROOT=$with_sysroot ;; 39: esac 40: 41: TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' 42: use_sysroot=yes 43: 44: if test "x$prefix" = xNONE; then 45: test_prefix=/usr/local 46: else 47: test_prefix=$prefix 48: fi 49: if test "x$exec_prefix" = xNONE; then 50: test_exec_prefix=$test_prefix 51: else 52: test_exec_prefix=$exec_prefix 53: fi 54: case ${TARGET_SYSTEM_ROOT} in 55: "${test_prefix}"|"${test_prefix}/"*|\ 56: "${test_exec_prefix}"|"${test_exec_prefix}/"*|\ 57: '${prefix}'|'${prefix}/'*|\ 58: '${exec_prefix}'|'${exec_prefix}/'*) 59: t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE" 60: TARGET_SYSTEM_ROOT_DEFINE="$t" 61: ;; 62: esac 63: ], [ 64: use_sysroot=no 65: TARGET_SYSTEM_ROOT= 66: TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"' 67: ]) 68: AC_SUBST(use_sysroot) 69: AC_SUBST(TARGET_SYSTEM_ROOT) 70: AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) 71: 72: AM_BINUTILS_WARNINGS 73: 74: AM_CONFIG_HEADER(config.h:config.in) 75: 76: if test -z "$target" ; then 77: AC_MSG_ERROR(Unrecognized target system type; please check config.sub.) 78: fi 79: if test -z "$host" ; then 80: AC_MSG_ERROR(Unrecognized host system type; please check config.sub.) 81: fi 82: 83: # host-specific stuff: 84: 85: AC_PROG_CC 86: AC_PROG_INSTALL 87: 88: ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi" 89: ZW_GNU_GETTEXT_SISTER_DIR 90: AM_PO_SUBDIRS 91: 92: AC_EXEEXT 93: 94: AC_PROG_YACC 95: AM_PROG_LEX 96: 97: AM_MAINTAINER_MODE 98: AM_CONDITIONAL(GENINSRC_NEVER, false) 99: 100: . ${srcdir}/configure.host 101: 102: AC_SUBST(HDEFINES) 103: AC_SUBST(HOSTING_CRT0) 104: AC_SUBST(HOSTING_LIBS) 105: AC_SUBST(NATIVE_LIB_DIRS) 106: 107: AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h sys/param.h) 108: AC_CHECK_FUNCS(glob mkstemp realpath sbrk waitpid) 109: AC_HEADER_DIRENT 110: 111: AC_MSG_CHECKING(for a known getopt prototype in unistd.h) 112: AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h, 113: [AC_TRY_COMPILE([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);], 114: ld_cv_decl_getopt_unistd_h=yes, ld_cv_decl_getopt_unistd_h=no)]) 115: AC_MSG_RESULT($ld_cv_decl_getopt_unistd_h) 116: if test $ld_cv_decl_getopt_unistd_h = yes; then 117: AC_DEFINE([HAVE_DECL_GETOPT], 1, 118: [Is the prototype for getopt in <unistd.h> in the expected format?]) 119: fi 120: 121: BFD_BINARY_FOPEN 122: 123: AC_CHECK_DECLS([strstr, free, sbrk, getenv, environ]) 124: 125: # When converting linker scripts into strings for use in emulation 126: # files, use astring.sed if the compiler supports ANSI string 127: # concatenation, or ostring.sed otherwise. This is to support the 128: # broken Microsoft MSVC compiler, which limits the length of string 129: # constants, while still supporting pre-ANSI compilers which do not 130: # support string concatenation. 131: AC_MSG_CHECKING([whether ANSI C string concatenation works]) 132: AC_CACHE_VAL(ld_cv_string_concatenation, 133: [AC_TRY_COMPILE(,[char *a = "a" "a";], 134: [ld_cv_string_concatenation=yes], 135: [ld_cv_string_concatenation=no])]) 136: AC_MSG_RESULT($ld_cv_string_concatenation) 137: if test "$ld_cv_string_concatenation" = "yes"; then 138: STRINGIFY=astring.sed 139: else 140: STRINGIFY=ostring.sed 141: fi 142: AC_SUBST(STRINGIFY) 143: 144: # target-specific stuff: 145: 146: all_targets= 147: EMUL= 148: all_emuls= 149: all_emul_extras= 150: all_libpath= 151: 152: dnl We need to get an arbitrary number of tdir definitions into 153: dnl Makefile. We can't do it using AC_SUBST, because autoconf does 154: dnl not permit literal newlines in an AC_SUBST variables. So we use a 155: dnl file. 156: rm -f tdirs 157: 158: for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` 159: do 160: if test "$targ_alias" = "all"; then 161: all_targets=true 162: else 163: # Canonicalize the secondary target names. 164: result=`$ac_config_sub $targ_alias 2>/dev/null` 165: if test -n "$result"; then 166: targ=$result 167: else 168: targ=$targ_alias 169: fi 170: 171: . ${srcdir}/configure.tgt 172: 173: if test "$targ" = "$target"; then 174: EMUL=$targ_emul 175: fi 176: 177: if test x${want64} = xfalse; then 178: . ${srcdir}/../bfd/config.bfd 179: fi 180: 181: if test x${want64} = xtrue; then 182: targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls" 183: targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath" 184: fi 185: 186: for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do 187: case " $all_emuls " in 188: *" e${i}.o "*) ;; 189: *) 190: all_emuls="$all_emuls e${i}.o" 191: eval result=\$tdir_$i 192: test -z "$result" && result=$targ_alias 193: echo tdir_$i=$result >> tdirs 194: ;; 195: esac 196: done 197: 198: for i in $targ_emul $targ_extra_libpath; do 199: case " $all_libpath " in 200: *" ${i} "*) ;; 201: *) 202: if test -z "$all_libpath"; then 203: all_libpath=${i} 204: else 205: all_libpath="$all_libpath ${i}" 206: fi 207: ;; 208: esac 209: done 210: 211: for i in $targ_extra_ofiles; do 212: case " $all_emul_extras " in 213: *" ${i} "*) ;; 214: *) 215: all_emul_extras="$all_emul_extras ${i}" 216: ;; 217: esac 218: done 219: fi 220: done 221: 222: AC_SUBST(EMUL) 223: 224: TDIRS=tdirs 225: AC_SUBST_FILE(TDIRS) 226: 227: if test x${all_targets} = xtrue; then 228: if test x${want64} = xfalse; then 229: AC_CHECK_SIZEOF(long) 230: if test "x${ac_cv_sizeof_long}" = "x8"; then 231: want64=true 232: fi 233: fi 234: if test x${want64} = xtrue; then 235: EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)' 236: else 237: EMULATION_OFILES='$(ALL_EMULATIONS)' 238: fi 239: EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES)' 240: else 241: EMULATION_OFILES=$all_emuls 242: EMUL_EXTRA_OFILES=$all_emul_extras 243: fi 244: AC_SUBST(EMULATION_OFILES) 245: AC_SUBST(EMUL_EXTRA_OFILES) 246: AC_SUBST(LIB_PATH) 247: 248: EMULATION_LIBPATH=$all_libpath 249: AC_SUBST(EMULATION_LIBPATH) 250: 251: if test x${enable_static} = xno; then 252: TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so" 253: else 254: TESTBFDLIB="../bfd/.libs/libbfd.a" 255: fi 256: AC_SUBST(TESTBFDLIB) 257: 258: target_vendor=${target_vendor=$host_vendor} 259: case "$target_vendor" in 260: hp) EXTRA_SHLIB_EXTENSION=".sl" ;; 261: *) EXTRA_SHLIB_EXTENSION= ;; 262: esac 263: 264: case "$target_os" in 265: lynxos) EXTRA_SHLIB_EXTENSION=".a" ;; 266: esac 267: 268: if test x${EXTRA_SHLIB_EXTENSION} != x ; then 269: AC_DEFINE_UNQUOTED(EXTRA_SHLIB_EXTENSION, "$EXTRA_SHLIB_EXTENSION", 270: [Additional extension a shared object might have.]) 271: fi 272: 273: dnl Required by html and install-html 274: AC_SUBST(datarootdir) 275: AC_SUBST(docdir) 276: AC_SUBST(htmldir) 277: 278: AC_OUTPUT(Makefile po/Makefile.in:po/Make-in)