1dnl Process this file with autoconf to produce a configure script. 2dnl 3dnl Copyright (C) 2012-2014 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" 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_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h limits.h locale.h sys/param.h wchar.h) 128AC_HEADER_SYS_WAIT 129ACX_HEADER_STRING 130AC_FUNC_ALLOCA 131AC_CHECK_FUNCS(sbrk utimes setmode getc_unlocked strcoll setlocale) 132AC_CHECK_FUNC([mkstemp], 133 AC_DEFINE([HAVE_MKSTEMP], 1, 134 [Define to 1 if you have the `mkstemp' function.])) 135AC_CHECK_FUNC([mkdtemp], 136 AC_DEFINE([HAVE_MKDTEMP], 1, 137 [Define to 1 if you have the `mkdtemp' function.])) 138 AC_MSG_CHECKING([for mbstate_t]) 139 AC_TRY_COMPILE([#include <wchar.h>], 140 [mbstate_t teststate;], 141 have_mbstate_t=yes, have_mbstate_t=no) 142 AC_MSG_RESULT($have_mbstate_t) 143 if test x"$have_mbstate_t" = xyes; then 144 AC_DEFINE(HAVE_MBSTATE_T,1,[Define if mbstate_t exists in wchar.h.]) 145 fi 146 147# Some systems have frexp only in -lm, not in -lc. 148AC_SEARCH_LIBS(frexp, m) 149 150AM_LC_MESSAGES 151 152AC_MSG_CHECKING(for time_t in time.h) 153AC_CACHE_VAL(bu_cv_decl_time_t_time_h, 154[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <time.h>], [time_t i;])], 155bu_cv_decl_time_t_time_h=yes, bu_cv_decl_time_t_time_h=no)]) 156AC_MSG_RESULT($bu_cv_decl_time_t_time_h) 157if test $bu_cv_decl_time_t_time_h = yes; then 158 AC_DEFINE([HAVE_TIME_T_IN_TIME_H], 1, 159 [Is the type time_t defined in <time.h>?]) 160fi 161 162AC_MSG_CHECKING(for time_t in sys/types.h) 163AC_CACHE_VAL(bu_cv_decl_time_t_types_h, 164[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>], [time_t i;])], 165bu_cv_decl_time_t_types_h=yes, bu_cv_decl_time_t_types_h=no)]) 166AC_MSG_RESULT($bu_cv_decl_time_t_types_h) 167if test $bu_cv_decl_time_t_types_h = yes; then 168 AC_DEFINE([HAVE_TIME_T_IN_TYPES_H], 1, 169 [Is the type time_t defined in <sys/types.h>?]) 170fi 171 172AC_MSG_CHECKING(for a known getopt prototype in unistd.h) 173AC_CACHE_VAL(bu_cv_decl_getopt_unistd_h, 174[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])], 175bu_cv_decl_getopt_unistd_h=yes, bu_cv_decl_getopt_unistd_h=no)]) 176AC_MSG_RESULT($bu_cv_decl_getopt_unistd_h) 177if test $bu_cv_decl_getopt_unistd_h = yes; then 178 AC_DEFINE([HAVE_DECL_GETOPT], 1, 179 [Is the prototype for getopt in <unistd.h> in the expected format?]) 180fi 181 182# Under Next 3.2 <utime.h> apparently does not define struct utimbuf 183# by default. 184AC_MSG_CHECKING([for utime.h]) 185AC_CACHE_VAL(bu_cv_header_utime_h, 186[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h> 187#ifdef HAVE_TIME_H 188#include <time.h> 189#endif 190#include <utime.h>], 191[struct utimbuf s;])], 192bu_cv_header_utime_h=yes, bu_cv_header_utime_h=no)]) 193AC_MSG_RESULT($bu_cv_header_utime_h) 194if test $bu_cv_header_utime_h = yes; then 195 AC_DEFINE(HAVE_GOOD_UTIME_H, 1, [Does <utime.h> define struct utimbuf?]) 196fi 197 198AC_CHECK_DECLS([environ, fprintf, getc_unlocked, getenv, 199 sbrk, snprintf, stpcpy, strnlen, strstr, vsnprintf]) 200 201# Link in zlib if we can. This allows us to read compressed debug 202# sections. This is used only by readelf.c (objdump uses bfd for 203# reading compressed sections). 204AM_ZLIB 205 206BFD_BINARY_FOPEN 207 208# target-specific stuff: 209 210# Canonicalize the secondary target names. 211if test -n "$enable_targets"; then 212 for targ in `echo $enable_targets | sed 's/,/ /g'` 213 do 214 result=`$ac_config_sub $targ 2>/dev/null` 215 if test -n "$result"; then 216 canon_targets="$canon_targets $result" 217 else 218 # Allow targets that config.sub doesn't recognize, like "all". 219 canon_targets="$canon_targets $targ" 220 fi 221 done 222fi 223 224AC_CHECK_HEADER(iconv.h) 225AM_ICONV 226 227all_targets=false 228BUILD_NLMCONV= 229NLMCONV_DEFS= 230BUILD_SRCONV= 231BUILD_DLLTOOL= 232DLLTOOL_DEFS= 233DLLTOOL_DEFAULT= 234BUILD_WINDRES= 235BUILD_WINDMC= 236BUILD_DLLWRAP= 237BUILD_MISC= 238BUILD_INSTALL_MISC= 239OBJDUMP_DEFS= 240OBJDUMP_PRIVATE_VECTORS= 241OBJDUMP_PRIVATE_OFILES= 242od_vectors= 243 244for targ in $target $canon_targets 245do 246 if test "x$targ" = "xall"; then 247 all_targets=true 248 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 249 BUILD_SRCONV='$(SRCONV_PROG)' 250 NLMCONV_DEFS="-DNLMCONV_I386 -DNLMCONV_ALPHA -DNLMCONV_POWERPC -DNLMCONV_SPARC" 251 BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)' 252 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 253 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 254 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 255 if test -z "$DLLTOOL_DEFAULT"; then 256 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" 257 fi 258 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" 259 BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' 260 od_vectors="$od_vectors objdump_private_desc_xcoff" 261 else 262 case $targ in 263changequote(,)dnl 264 i[3-7]86*-*-netware*) 265changequote([,])dnl 266 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 267 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386" 268 ;; 269 alpha*-*-netware*) 270 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 271 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_ALPHA" 272 ;; 273 powerpc*-*-netware*) 274 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 275 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_POWERPC" 276 ;; 277 sparc*-*-netware*) 278 BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' 279 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_SPARC" 280 ;; 281 esac 282 283 case $targ in 284 *-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;; 285 esac 286 287 case $targ in 288 arm-epoc-pe*) 289 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 290 if test -z "$DLLTOOL_DEFAULT"; then 291 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_EPOC" 292 fi 293 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_EPOC -DDLLTOOL_ARM" 294 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 295 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 296 ;; 297 arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) 298 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 299 if test -z "$DLLTOOL_DEFAULT"; then 300 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE" 301 fi 302 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM" 303 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 304 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 305 ;; 306 arm-*-pe*) 307 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 308 if test -z "$DLLTOOL_DEFAULT"; then 309 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM" 310 fi 311 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM" 312 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 313 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 314 ;; 315 x86_64-*-mingw* | x86_64-*-cygwin*) 316 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 317 if test -z "$DLLTOOL_DEFAULT"; then 318 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64" 319 fi 320 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64" 321 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 322 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 323 BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' 324 ;; 325changequote(,)dnl 326 i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) 327changequote([,])dnl 328 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 329 if test -z "$DLLTOOL_DEFAULT"; then 330 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" 331 fi 332 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" 333 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 334 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 335 BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' 336 ;; 337changequote(,)dnl 338 i[3-7]86-*-interix) 339changequote([,])dnl 340 BUILD_DLLTOOL='$(DLLTOOL_PROG)' 341 if test -z "$DLLTOOL_DEFAULT"; then 342 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" 343 fi 344 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386" 345 ;; 346changequote(,)dnl 347 powerpc*-aix5.[01]) 348changequote([,])dnl 349 ;; 350changequote(,)dnl 351 powerpc*-aix[5-9].*) 352changequote([,])dnl 353 OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT" 354 ;; 355 powerpc*-*-pe* | powerpc*-*-cygwin*) 356 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 357 if test -z "$DLLTOOL_DEFAULT"; then 358 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_PPC" 359 fi 360 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_PPC" 361 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 362 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 363 ;; 364 powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*) 365 case "$BUILD_INSTALL_MISC" in 366 *embedspu*) ;; 367 *) BUILD_INSTALL_MISC="${BUILD_INSTALL_MISC} embedspu" 368 esac 369 ;; 370 sh*-*-pe) 371 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 372 if test -z "$DLLTOOL_DEFAULT"; then 373 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH" 374 fi 375 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH" 376 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 377 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 378 ;; 379 spu-*-*) 380 BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)' 381 ;; 382 mips*-*-pe) 383 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 384 if test -z "$DLLTOOL_DEFAULT"; then 385 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MIPS" 386 fi 387 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MIPS" 388 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 389 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 390 ;; 391 mcore-*-pe) 392 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 393 if test -z "$DLLTOOL_DEFAULT"; then 394 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE" 395 fi 396 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE" 397 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 398 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 399 ;; 400 mcore-*-elf) 401 BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' 402 if test -z "$DLLTOOL_DEFAULT"; then 403 DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE_ELF" 404 fi 405 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF" 406 ;; 407 mep-*) 408 OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0" 409 ;; 410 esac 411 412 # Add objdump private vectors. 413 case $targ in 414 powerpc-*-aix*) 415 od_vectors="$od_vectors objdump_private_desc_xcoff" 416 ;; 417 *-*-darwin*) 418 od_vectors="$od_vectors objdump_private_desc_mach_o" 419 ;; 420 esac 421 fi 422done 423 424# Uniq objdump private vector, build objdump target ofiles. 425od_files= 426f="" 427for i in $od_vectors ; do 428 case " $f " in 429 *" $i "*) ;; 430 *) 431 f="$f $i" 432 OBJDUMP_PRIVATE_VECTORS="$OBJDUMP_PRIVATE_VECTORS &$i," 433 case $i in 434 objdump_private_desc_xcoff) 435 od_files="$od_files od-xcoff" ;; 436 objdump_private_desc_mach_o) 437 od_files="$od_files od-macho" ;; 438 *) AC_MSG_ERROR(*** unknown private vector $i) ;; 439 esac 440 ;; 441 esac 442done 443 444# Uniq objdump target ofiles 445f="" 446for i in $od_files ; do 447 case " $f " in 448 *" $i "*) ;; 449 *) 450 f="$f $i" 451 OBJDUMP_PRIVATE_OFILES="$OBJDUMP_PRIVATE_OFILES $i.$objext" 452 ;; 453 esac 454done 455 456DLLTOOL_DEFS="$DLLTOOL_DEFS $DLLTOOL_DEFAULT" 457 458if test "${with_windres+set}" = set; then 459 BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' 460fi 461 462if test "${with_windmc+set}" = set; then 463 BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' 464fi 465 466OBJDUMP_DEFS="${OBJDUMP_DEFS} -DOBJDUMP_PRIVATE_VECTORS=\"${OBJDUMP_PRIVATE_VECTORS}\"" 467 468AC_SUBST(NLMCONV_DEFS) 469AC_SUBST(BUILD_NLMCONV) 470AC_SUBST(BUILD_SRCONV) 471AC_SUBST(BUILD_DLLTOOL) 472AC_SUBST(DLLTOOL_DEFS) 473AC_SUBST(BUILD_WINDRES) 474AC_SUBST(BUILD_WINDMC) 475AC_SUBST(BUILD_DLLWRAP) 476AC_SUBST(BUILD_MISC) 477AC_SUBST(BUILD_INSTALL_MISC) 478AC_SUBST(OBJDUMP_DEFS) 479AC_SUBST(OBJDUMP_PRIVATE_OFILES) 480 481AC_DEFINE_UNQUOTED(TARGET, "${target}", [Configured target name.]) 482 483targ=$target 484. $srcdir/../bfd/config.bfd 485if test "x$targ_underscore" = "xyes"; then 486 UNDERSCORE=1 487else 488 UNDERSCORE=0 489fi 490AC_DEFINE_UNQUOTED(TARGET_PREPENDS_UNDERSCORE, $UNDERSCORE, 491 [Define to 1 if user symbol names have a leading underscore, 0 if not.]) 492 493# Emulation 494targ=$target 495. ${srcdir}/configure.tgt 496EMULATION=$targ_emul 497EMULATION_VECTOR=$targ_emul_vector 498 499AC_SUBST(EMULATION) 500AC_SUBST(EMULATION_VECTOR) 501 502# Required for html and install-html 503AC_SUBST(datarootdir) 504AC_SUBST(docdir) 505AC_SUBST(htmldir) 506AC_SUBST(pdfdir) 507 508AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in) 509AC_OUTPUT 510