ChangeLog rotation
[deliverable/binutils-gdb.git] / binutils / configure.ac
... / ...
CommitLineData
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
This page took 0.048101 seconds and 4 git commands to generate.