1dnl Process this file with autoconf to produce a configure script. 2dnl 3dnl Copyright (C) 2012-2016 Free Software Foundation, Inc. 4dnl 5dnl This file is free software; you can redistribute it and/or modify 6dnl it under the terms of the GNU General Public License as published by 7dnl the Free Software Foundation; either version 3 of the License, or 8dnl (at your option) any later version. 9dnl 10dnl This program is distributed in the hope that it will be useful, 11dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 12dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13dnl GNU General Public License for more details. 14dnl 15dnl You should have received a copy of the GNU General Public License 16dnl along with this program; see the file COPYING3. If not see 17dnl <http://www.gnu.org/licenses/>. 18dnl 19 20AC_PREREQ(2.59) 21m4_include([../bfd/version.m4]) 22AC_INIT([binutils], BFD_VERSION) 23AC_CONFIG_SRCDIR(ar.c) 24 25AC_CANONICAL_TARGET 26AC_ISC_POSIX 27 28AM_INIT_AUTOMAKE 29 30AC_PROG_CC 31AC_GNU_SOURCE 32AC_USE_SYSTEM_EXTENSIONS 33 34LT_INIT 35ACX_LARGEFILE 36 37AC_ARG_ENABLE(targets, 38[ --enable-targets alternative target configurations], 39[case "${enableval}" in 40 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all') 41 ;; 42 no) enable_targets= ;; 43 *) enable_targets=$enableval ;; 44esac])dnl 45 46AC_ARG_ENABLE(deterministic-archives, 47[AS_HELP_STRING([--enable-deterministic-archives], 48 [ar and ranlib default to -D behavior])], [ 49if test "${enableval}" = no; then 50 default_ar_deterministic=0 51else 52 default_ar_deterministic=1 53fi], [default_ar_deterministic=0]) 54 55AC_DEFINE_UNQUOTED(DEFAULT_AR_DETERMINISTIC, $default_ar_deterministic, 56 [Should ar and ranlib use -D behavior by default?]) 57 58AC_ARG_ENABLE(default-strings-all, 59[AS_HELP_STRING([--disable-default-strings-all], 60 [strings defaults to --data behavior])], [ 61if test "${enableval}" = no; then 62 default_strings_all=0 63else 64 default_strings_all=1 65fi], [default_strings_all=1]) 66 67AC_DEFINE_UNQUOTED(DEFAULT_STRINGS_ALL, $default_strings_all, 68 [Should strings use -a behavior by default?]) 69 70AM_BINUTILS_WARNINGS 71 72AC_CONFIG_HEADERS(config.h:config.in) 73 74AH_VERBATIM([00_CONFIG_H_CHECK], 75[/* Check that config.h is #included before system headers 76 (this works only for glibc, but that should be enough). */ 77#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__) 78# error config.h must be #included before system headers 79#endif 80#define __CONFIG_H__ 1]) 81 82if test -z "$target" ; then 83 AC_MSG_ERROR(Unrecognized target system type; please check config.sub.) 84fi 85if test -z "$host" ; then 86 AC_MSG_ERROR(Unrecognized host system type; please check config.sub.) 87fi 88 89AC_PROG_YACC 90AM_PROG_LEX 91 92ALL_LINGUAS="bg da es fi fr id it ja ro ru rw sk sv tr uk vi zh_CN zh_TW hr ca" 93ZW_GNU_GETTEXT_SISTER_DIR 94AM_PO_SUBDIRS 95 96AM_MAINTAINER_MODE 97AM_CONDITIONAL(GENINSRC_NEVER, false) 98AC_EXEEXT 99if test -n "$EXEEXT"; then 100 AC_DEFINE(HAVE_EXECUTABLE_SUFFIX, 1, 101 [Does the platform use an executable suffix?]) 102fi 103AC_DEFINE_UNQUOTED(EXECUTABLE_SUFFIX, "${EXEEXT}", 104 [Suffix used for executables, if any.]) 105 106# host-specific stuff: 107 108HDEFINES= 109 110. ${srcdir}/../bfd/configure.host 111 112AC_SUBST(HDEFINES) 113AR=${AR-ar} 114AC_SUBST(AR) 115AC_PROG_RANLIB 116AC_PROG_INSTALL 117 118BFD_CC_FOR_BUILD 119 120DEMANGLER_NAME=c++filt 121case "${host}" in 122 *-*-go32* | *-*-msdos*) 123 DEMANGLER_NAME=cxxfilt 124esac 125AC_SUBST(DEMANGLER_NAME) 126 127AC_CHECK_SIZEOF([long]) 128AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)]) 129 130AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h limits.h locale.h sys/param.h wchar.h) 131AC_HEADER_SYS_WAIT 132ACX_HEADER_STRING 133AC_FUNC_ALLOCA 134AC_CHECK_FUNCS(sbrk utimes setmode getc_unlocked strcoll setlocale) 135AC_CHECK_FUNC([mkstemp], 136 AC_DEFINE([HAVE_MKSTEMP], 1, 137 [Define to 1 if you have the `mkstemp' function.])) 138AC_CHECK_FUNC([mkdtemp], 139 AC_DEFINE([HAVE_MKDTEMP], 1, 140 [Define to 1 if you have the `mkdtemp' function.])) 141 AC_MSG_CHECKING([for mbstate_t]) 142 AC_TRY_COMPILE([#include <wchar.h>], 143 [mbstate_t teststate;], 144 have_mbstate_t=yes, have_mbstate_t=no) 145 AC_MSG_RESULT($have_mbstate_t) 146 if test x"$have_mbstate_t" = xyes; then 147 AC_DEFINE(HAVE_MBSTATE_T,1,[Define if mbstate_t exists in wchar.h.]) 148 fi 149 150# Some systems have frexp only in -lm, not in -lc. 151AC_SEARCH_LIBS(frexp, m) 152 153AM_LC_MESSAGES 154 155AC_MSG_CHECKING(for time_t in time.h) 156AC_CACHE_VAL(bu_cv_decl_time_t_time_h, 157[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <time.h>], [time_t i;])], 158bu_cv_decl_time_t_time_h=yes, bu_cv_decl_time_t_time_h=no)]) 159AC_MSG_RESULT($bu_cv_decl_time_t_time_h) 160if test $bu_cv_decl_time_t_time_h = yes; then 161 AC_DEFINE([HAVE_TIME_T_IN_TIME_H], 1, 162 [Is the type time_t defined in <time.h>?]) 163fi 164 165AC_MSG_CHECKING(for time_t in sys/types.h) 166AC_CACHE_VAL(bu_cv_decl_time_t_types_h, 167[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>], [time_t i;])], 168bu_cv_decl_time_t_types_h=yes, bu_cv_decl_time_t_types_h=no)]) 169AC_MSG_RESULT($bu_cv_decl_time_t_types_h) 170if test $bu_cv_decl_time_t_types_h = yes; then 171 AC_DEFINE([HAVE_TIME_T_IN_TYPES_H], 1, 172 [Is the type time_t defined in <sys/types.h>?]) 173fi 174 175AC_MSG_CHECKING(for a known getopt prototype in unistd.h) 176AC_CACHE_VAL(bu_cv_decl_getopt_unistd_h, 177[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])], 178bu_cv_decl_getopt_unistd_h=yes, bu_cv_decl_getopt_unistd_h=no)]) 179AC_MSG_RESULT($bu_cv_decl_getopt_unistd_h) 180if test $bu_cv_decl_getopt_unistd_h = yes; then 181 AC_DEFINE([HAVE_DECL_GETOPT], 1, 182 [Is the prototype for getopt in <unistd.h> in the expected format?]) 183fi 184 185# Under Next 3.2 <utime.h> apparently does not define struct utimbuf 186# by default. 187AC_MSG_CHECKING([for utime.h]) 188AC_CACHE_VAL(bu_cv_header_utime_h, 189[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h> 190#ifdef HAVE_TIME_H 191#include <time.h> 192#endif 193#include <utime.h>], 194[struct utimbuf s;])], 195bu_cv_header_utime_h=yes, bu_cv_header_utime_h=no)]) 196AC_MSG_RESULT($bu_cv_header_utime_h) 197if test $bu_cv_header_utime_h = yes; then 198 AC_DEFINE(HAVE_GOOD_UTIME_H, 1, [Does <utime.h> define struct utimbuf?]) 199fi 200 201AC_CHECK_DECLS([environ, fprintf, getc_unlocked, getenv, 202 sbrk, snprintf, stpcpy, strnlen, strstr, vsnprintf]) 203 204# Link in zlib if we can. This allows us to read compressed debug 205# sections. This is used only by readelf.c (objdump uses bfd for 206# reading compressed sections). 207AM_ZLIB 208 209BFD_BINARY_FOPEN 210 211# target-specific stuff: 212 213# Canonicalize the secondary target names. 214if test -n "$enable_targets"; then 215 for targ in `echo $enable_targets | sed 's/,/ /g'` 216 do 217 result=`$ac_config_sub $targ 2>/dev/null` 218 if test -n "$result"; then 219 canon_targets="$canon_targets $result" 220 else 221 # Allow targets that config.sub doesn't recognize, like "all". 222 canon_targets="$canon_targets $targ" 223 fi 224 done 225fi 226 227AC_CHECK_HEADER(iconv.h) 228AM_ICONV 229 230all_targets=false 231BUILD_NLMCONV= 232NLMCONV_DEFS= 233BUILD_SRCONV= 234BUILD_DLLTOOL= 235DLLTOOL_DEFS= 236DLLTOOL_DEFAULT= 237BUILD_WINDRES= 238BUILD_WINDMC= 239BUILD_DLLWRAP= 240BUILD_MISC= 241BUILD_INSTALL_MISC= 242OBJDUMP_DEFS= 243OBJDUMP_PRIVATE_VECTORS= 244OBJDUMP_PRIVATE_OFILES= 245od_vectors= 246 247for targ in $target $canon_targets 248do 249 if test "x$targ" = "xall"; then 250 all_targets=true 251 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 252 BUILD_SRCONV='$(SRCONV_PROG)' 253 NLMCONV_DEFS="-DNLMCONV_I386 -DNLMCONV_ALPHA -DNLMCONV_POWERPC -DNLMCONV_SPARC" 254 BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)' 255 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 256 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 257 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 258 if test -z "$DLLTOOL_DEFAULT"; then 259 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" 260 fi 261 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" 262 BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' 263 od_vectors="$od_vectors objdump_private_desc_xcoff" 264 else 265 case $targ in 266changequote(,)dnl 267 i[3-7]86*-*-netware*) 268changequote([,])dnl 269 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 270 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386" 271 ;; 272 alpha*-*-netware*) 273 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 274 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_ALPHA" 275 ;; 276 powerpc*-*-netware*) 277 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 278 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_POWERPC" 279 ;; 280 sparc*-*-netware*) 281 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 282 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_SPARC" 283 ;; 284 esac 285 286 case $targ in 287 *-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;; 288 esac 289 290 case $targ in 291 arm-epoc-pe*) 292 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 293 if test -z "$DLLTOOL_DEFAULT"; then 294 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_EPOC" 295 fi 296 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_EPOC -DDLLTOOL_ARM" 297 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 298 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 299 ;; 300 arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) 301 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 302 if test -z "$DLLTOOL_DEFAULT"; then 303 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE" 304 fi 305 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM" 306 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 307 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 308 ;; 309 arm-*-pe*) 310 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 311 if test -z "$DLLTOOL_DEFAULT"; then 312 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM" 313 fi 314 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM" 315 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 316 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 317 ;; 318 x86_64-*-mingw* | x86_64-*-cygwin*) 319 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 320 if test -z "$DLLTOOL_DEFAULT"; then 321 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64" 322 fi 323 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64" 324 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 325 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 326 BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' 327 ;; 328changequote(,)dnl 329 i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) 330changequote([,])dnl 331 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 332 if test -z "$DLLTOOL_DEFAULT"; then 333 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" 334 fi 335 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" 336 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 337 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 338 BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' 339 ;; 340changequote(,)dnl 341 i[3-7]86-*-interix) 342changequote([,])dnl 343 BUILD_DLLTOOL='$(DLLTOOL_PROG)' 344 if test -z "$DLLTOOL_DEFAULT"; then 345 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" 346 fi 347 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" 348 ;; 349changequote(,)dnl 350 powerpc*-aix5.[01]) 351changequote([,])dnl 352 ;; 353changequote(,)dnl 354 powerpc*-aix[5-9].*) 355changequote([,])dnl 356 OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT" 357 ;; 358 powerpc*-*-pe* | powerpc*-*-cygwin*) 359 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 360 if test -z "$DLLTOOL_DEFAULT"; then 361 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_PPC" 362 fi 363 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_PPC" 364 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 365 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 366 ;; 367 powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*) 368 case "$BUILD_INSTALL_MISC" in 369 *embedspu*) ;; 370 *) BUILD_INSTALL_MISC="${BUILD_INSTALL_MISC} embedspu" 371 esac 372 ;; 373 sh*-*-pe) 374 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 375 if test -z "$DLLTOOL_DEFAULT"; then 376 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH" 377 fi 378 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH" 379 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 380 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 381 ;; 382 spu-*-*) 383 BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)' 384 ;; 385 mips*-*-pe) 386 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 387 if test -z "$DLLTOOL_DEFAULT"; then 388 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MIPS" 389 fi 390 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MIPS" 391 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 392 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 393 ;; 394 mcore-*-pe) 395 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 396 if test -z "$DLLTOOL_DEFAULT"; then 397 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE" 398 fi 399 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE" 400 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 401 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 402 ;; 403 mcore-*-elf) 404 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 405 if test -z "$DLLTOOL_DEFAULT"; then 406 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE_ELF" 407 fi 408 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF" 409 ;; 410 mep-*) 411 OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0" 412 ;; 413 esac 414 415 # Add objdump private vectors. 416 case $targ in 417 avr-*-*) 418 od_vectors="$od_vectors objdump_private_desc_elf32_avr" 419 ;; 420 powerpc-*-aix*) 421 od_vectors="$od_vectors objdump_private_desc_xcoff" 422 ;; 423 *-*-darwin*) 424 od_vectors="$od_vectors objdump_private_desc_mach_o" 425 ;; 426 esac 427 fi 428done 429 430# Uniq objdump private vector, build objdump target ofiles. 431od_files= 432f="" 433for i in $od_vectors ; do 434 case " $f " in 435 *" $i "*) ;; 436 *) 437 f="$f $i" 438 OBJDUMP_PRIVATE_VECTORS="$OBJDUMP_PRIVATE_VECTORS &$i," 439 case $i in 440 objdump_private_desc_elf32_avr) 441 od_files="$od_files od-elf32_avr" ;; 442 objdump_private_desc_xcoff) 443 od_files="$od_files od-xcoff" ;; 444 objdump_private_desc_mach_o) 445 od_files="$od_files od-macho" ;; 446 *) AC_MSG_ERROR(*** unknown private vector $i) ;; 447 esac 448 ;; 449 esac 450done 451 452# Uniq objdump target ofiles 453f="" 454for i in $od_files ; do 455 case " $f " in 456 *" $i "*) ;; 457 *) 458 f="$f $i" 459 OBJDUMP_PRIVATE_OFILES="$OBJDUMP_PRIVATE_OFILES $i.$objext" 460 ;; 461 esac 462done 463 464DLLTOOL_DEFS="$DLLTOOL_DEFS $DLLTOOL_DEFAULT" 465 466if test "${with_windres+set}" = set; then 467 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 468fi 469 470if test "${with_windmc+set}" = set; then 471 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 472fi 473 474OBJDUMP_DEFS="${OBJDUMP_DEFS} -DOBJDUMP_PRIVATE_VECTORS=\"${OBJDUMP_PRIVATE_VECTORS}\"" 475 476AC_SUBST(NLMCONV_DEFS) 477AC_SUBST(BUILD_NLMCONV) 478AC_SUBST(BUILD_SRCONV) 479AC_SUBST(BUILD_DLLTOOL) 480AC_SUBST(DLLTOOL_DEFS) 481AC_SUBST(BUILD_WINDRES) 482AC_SUBST(BUILD_WINDMC) 483AC_SUBST(BUILD_DLLWRAP) 484AC_SUBST(BUILD_MISC) 485AC_SUBST(BUILD_INSTALL_MISC) 486AC_SUBST(OBJDUMP_DEFS) 487AC_SUBST(OBJDUMP_PRIVATE_OFILES) 488 489AC_DEFINE_UNQUOTED(TARGET, "${target}", [Configured target name.]) 490 491targ=$target 492. $srcdir/../bfd/config.bfd 493if test "x$targ_underscore" = "xyes"; then 494 UNDERSCORE=1 495else 496 UNDERSCORE=0 497fi 498AC_DEFINE_UNQUOTED(TARGET_PREPENDS_UNDERSCORE, $UNDERSCORE, 499 [Define to 1 if user symbol names have a leading underscore, 0 if not.]) 500 501# Emulation 502targ=$target 503. ${srcdir}/configure.tgt 504EMULATION=$targ_emul 505EMULATION_VECTOR=$targ_emul_vector 506 507AC_SUBST(EMULATION) 508AC_SUBST(EMULATION_VECTOR) 509 510# Required for html and install-html 511AC_SUBST(datarootdir) 512AC_SUBST(docdir) 513AC_SUBST(htmldir) 514AC_SUBST(pdfdir) 515 516AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in) 517AC_OUTPUT 518