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