1dnl Process this file with autoconf to produce a configure script 2dnl 3AC_PREREQ(2.59) 4AC_INIT 5AC_CONFIG_SRCDIR(ldmain.c) 6 7AC_CANONICAL_TARGET 8AC_ISC_POSIX 9 10changequote(,)dnl 11BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in` 12changequote([,])dnl 13AM_INIT_AUTOMAKE(ld, ${BFD_VERSION}) 14AM_MAINTAINER_MODE 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_MSG_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$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]) 68AC_SUBST(use_sysroot) 69AC_SUBST(TARGET_SYSTEM_ROOT) 70AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) 71 72dnl Use --enable-gold to decide if this linker should be the default. 73dnl "install_as_default" is set to false if gold is the default linker. 74dnl "installed_linker" is the installed BFD linker name. 75AC_ARG_ENABLE(gold, 76[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]], 77[case "${enableval}" in 78 default) 79 install_as_default=no 80 installed_linker=ld.bfd 81 ;; 82 yes|no) 83 install_as_default=yes 84 installed_linker=ld.bfd 85 ;; 86 *) 87 AC_MSG_ERROR([invalid --enable-gold argument]) 88 ;; 89 esac], 90[install_as_default=yes 91 installed_linker=ld.bfd]) 92AC_SUBST(install_as_default) 93AC_SUBST(installed_linker) 94 95AC_ARG_ENABLE([got], 96AS_HELP_STRING([--enable-got=<type>], 97 [GOT handling scheme (target, single, negative, multigot)]), 98[case "${enableval}" in 99 target | single | negative | multigot) got_handling=$enableval ;; 100 *) AC_MSG_ERROR(bad value ${enableval} for --enable-got option) ;; 101esac], 102[got_handling=target]) 103 104case "${got_handling}" in 105 target) 106 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_TARGET_DEFAULT], 107 [Define to choose default GOT handling scheme]) ;; 108 single) 109 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_SINGLE], 110 [Define to choose default GOT handling scheme]) ;; 111 negative) 112 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_NEGATIVE], 113 [Define to choose default GOT handling scheme]) ;; 114 multigot) 115 AC_DEFINE([GOT_HANDLING_DEFAULT], [GOT_HANDLING_MULTIGOT], 116 [Define to choose default GOT handling scheme]) ;; 117 *) AC_MSG_ERROR(bad value ${got_handling} for --enable-got option) ;; 118esac 119 120AM_BINUTILS_WARNINGS 121 122AC_CONFIG_HEADERS([config.h:config.in]) 123 124if test -z "$target" ; then 125 AC_MSG_ERROR(Unrecognized target system type; please check config.sub.) 126fi 127if test -z "$host" ; then 128 AC_MSG_ERROR(Unrecognized host system type; please check config.sub.) 129fi 130 131# host-specific stuff: 132 133AC_PROG_CC 134AC_PROG_CXX 135AC_GNU_SOURCE 136AC_USE_SYSTEM_EXTENSIONS 137ACX_LARGEFILE 138AC_PROG_INSTALL 139 140LT_INIT 141 142ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi id bg" 143ZW_GNU_GETTEXT_SISTER_DIR 144AM_PO_SUBDIRS 145 146AC_EXEEXT 147 148AC_PROG_YACC 149AM_PROG_LEX 150 151AM_MAINTAINER_MODE 152AM_CONDITIONAL(GENINSRC_NEVER, false) 153ACX_PROG_CMP_IGNORE_INITIAL 154 155. ${srcdir}/configure.host 156 157AC_SUBST(HDEFINES) 158AC_SUBST(HOSTING_CRT0) 159AC_SUBST(HOSTING_LIBS) 160AC_SUBST(NATIVE_LIB_DIRS) 161 162AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h sys/param.h) 163AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h) 164AC_CHECK_FUNCS(glob mkstemp realpath sbrk waitpid) 165AC_CHECK_FUNCS(open lseek close) 166AC_HEADER_DIRENT 167 168# Check for dlopen support and enable plugins if possible. 169enable_plugins=yes 170AC_CHECK_HEADER([dlfcn.h],[],[enable_plugins=no],[AC_INCLUDES_DEFAULT]) 171AC_SEARCH_LIBS([dlopen],[dl],[],[enable_plugins=no],[]) 172AC_CHECK_FUNCS([dlopen dlsym dlclose],[],[enable_plugins=no]) 173# We also support plugins on Windows (MinGW). 174if test x$enable_plugins = xno ; then 175 AC_CHECK_HEADERS([Windows.h],[enable_plugins=yes],[],[AC_INCLUDES_DEFAULT]) 176fi 177AM_CONDITIONAL([ENABLE_PLUGINS], [test x$enable_plugins = xyes]) 178 179AC_MSG_CHECKING(for a known getopt prototype in unistd.h) 180AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h, 181[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])], 182ld_cv_decl_getopt_unistd_h=yes, ld_cv_decl_getopt_unistd_h=no)]) 183AC_MSG_RESULT($ld_cv_decl_getopt_unistd_h) 184if test $ld_cv_decl_getopt_unistd_h = yes; then 185 AC_DEFINE([HAVE_DECL_GETOPT], 1, 186 [Is the prototype for getopt in <unistd.h> in the expected format?]) 187fi 188 189BFD_BINARY_FOPEN 190 191AC_CHECK_DECLS([strstr, free, sbrk, getenv, environ]) 192 193# Link in zlib if we can. This is needed only for the bootstrap tests 194# right now, since those tests use libbfd, which depends on zlib. 195AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)]) 196 197# When converting linker scripts into strings for use in emulation 198# files, use astring.sed if the compiler supports ANSI string 199# concatenation, or ostring.sed otherwise. This is to support the 200# broken Microsoft MSVC compiler, which limits the length of string 201# constants, while still supporting pre-ANSI compilers which do not 202# support string concatenation. 203AC_MSG_CHECKING([whether ANSI C string concatenation works]) 204AC_CACHE_VAL(ld_cv_string_concatenation, 205[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [char *a = "a" "a";])], 206 ld_cv_string_concatenation=yes, 207 ld_cv_string_concatenation=no)]) 208AC_MSG_RESULT($ld_cv_string_concatenation) 209if test "$ld_cv_string_concatenation" = "yes"; then 210 STRINGIFY=astring.sed 211else 212 STRINGIFY=ostring.sed 213fi 214AC_SUBST(STRINGIFY) 215 216# target-specific stuff: 217 218all_targets= 219EMUL= 220all_emuls= 221all_emul_extras= 222all_libpath= 223 224dnl We need to get an arbitrary number of tdir definitions into 225dnl Makefile. We can't do it using AC_SUBST, because autoconf does 226dnl not permit literal newlines in an AC_SUBST variables. So we use a 227dnl file. 228rm -f tdirs 229 230for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` 231do 232 if test "$targ_alias" = "all"; then 233 all_targets=true 234 else 235 # Canonicalize the secondary target names. 236 result=`$ac_config_sub $targ_alias 2>/dev/null` 237 if test -n "$result"; then 238 targ=$result 239 else 240 targ=$targ_alias 241 fi 242 243 . ${srcdir}/configure.tgt 244 245 if test "$targ" = "$target"; then 246 EMUL=$targ_emul 247 fi 248 249 if test x${want64} = xfalse; then 250 . ${srcdir}/../bfd/config.bfd 251 fi 252 253 if test x${want64} = xtrue; then 254 targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls" 255 targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath" 256 fi 257 258 for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do 259 case " $all_emuls " in 260 *" e${i}.o "*) ;; 261 *) 262 all_emuls="$all_emuls e${i}.o" 263 eval result=\$tdir_$i 264 test -z "$result" && result=$targ_alias 265 echo tdir_$i=$result >> tdirs 266 ;; 267 esac 268 done 269 270 for i in $targ_emul $targ_extra_libpath; do 271 case " $all_libpath " in 272 *" ${i} "*) ;; 273 *) 274 if test -z "$all_libpath"; then 275 all_libpath=${i} 276 else 277 all_libpath="$all_libpath ${i}" 278 fi 279 ;; 280 esac 281 done 282 283 for i in $targ_extra_ofiles; do 284 case " $all_emul_extras " in 285 *" ${i} "*) ;; 286 *) 287 all_emul_extras="$all_emul_extras ${i}" 288 ;; 289 esac 290 done 291 fi 292done 293 294AC_SUBST(EMUL) 295 296TDIRS=tdirs 297AC_SUBST_FILE(TDIRS) 298 299if test x${all_targets} = xtrue; then 300 if test x${want64} = xfalse; then 301 AC_CHECK_SIZEOF(long) 302 if test "x${ac_cv_sizeof_long}" = "x8"; then 303 want64=true 304 fi 305 fi 306 if test x${want64} = xtrue; then 307 EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)' 308 else 309 EMULATION_OFILES='$(ALL_EMULATIONS)' 310 fi 311 EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES)' 312else 313 EMULATION_OFILES=$all_emuls 314 EMUL_EXTRA_OFILES=$all_emul_extras 315fi 316AC_SUBST(EMULATION_OFILES) 317AC_SUBST(EMUL_EXTRA_OFILES) 318AC_SUBST(LIB_PATH) 319 320EMULATION_LIBPATH=$all_libpath 321AC_SUBST(EMULATION_LIBPATH) 322 323if test x${enable_static} = xno; then 324 TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so" 325else 326 TESTBFDLIB="../bfd/.libs/libbfd.a" 327fi 328AC_SUBST(TESTBFDLIB) 329 330target_vendor=${target_vendor=$host_vendor} 331case "$target_vendor" in 332 hp) EXTRA_SHLIB_EXTENSION=".sl" ;; 333 *) EXTRA_SHLIB_EXTENSION= ;; 334esac 335 336case "$target_os" in 337 lynxos) EXTRA_SHLIB_EXTENSION=".a" ;; 338esac 339 340if test x${EXTRA_SHLIB_EXTENSION} != x ; then 341 AC_DEFINE_UNQUOTED(EXTRA_SHLIB_EXTENSION, "$EXTRA_SHLIB_EXTENSION", 342 [Additional extension a shared object might have.]) 343fi 344 345dnl Required by html, pdf, install-pdf and install-html 346AC_SUBST(datarootdir) 347AC_SUBST(docdir) 348AC_SUBST(htmldir) 349AC_SUBST(pdfdir) 350 351AC_CONFIG_FILES(Makefile po/Makefile.in:po/Make-in) 352AC_OUTPUT 353