• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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