* configure.in: Check for --enable-shared. Substitute new
[binutils-gdb.git] / binutils / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 dnl
3 AC_PREREQ(2.0)
4 AC_INIT(ar.c)
5
6 AC_ARG_ENABLE(targets,
7 [ --enable-targets alternative target configurations],
8 [case "${enableval}" in
9 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
10 ;;
11 no) enable_targets= ;;
12 *) enable_targets=$enableval ;;
13 esac])dnl
14 AC_ARG_ENABLE(shared,
15 [ --enable-shared build shared BFD library],
16 [case "${enableval}" in
17 yes) shared=true ;;
18 no) shared=false ;;
19 *) AC_MSG_ERROR([bad value ${enableval} for BFD shared option]) ;;
20 esac])dnl
21
22 AC_CONFIG_HEADER(config.h:config.in)
23
24 AC_CONFIG_AUX_DIR(`cd $srcdir/..; pwd`)
25 AC_CANONICAL_SYSTEM
26 if test -z "$target" ; then
27 AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
28 fi
29 if test -z "$host" ; then
30 AC_MSG_ERROR(Unrecognized host system type; please check config.sub.)
31 fi
32 AC_ARG_PROGRAM
33
34 # host-specific stuff:
35
36 HDEFINES=
37 LDFLAGS=
38 HLDFLAGS=
39
40 . ${srcdir}/../bfd/configure.host
41
42 AC_PROG_CC
43 AC_SUBST(CFLAGS)
44 AC_SUBST(HDEFINES)
45 AC_SUBST(LDFLAGS)
46 AC_SUBST(HLDFLAGS)
47 AR=${AR-ar}
48 AC_SUBST(AR)
49 AC_PROG_RANLIB
50 AC_PROG_INSTALL
51
52 # For most hosts we can use a simple definition to pick up the BFD and
53 # opcodes libraries. However, if we are building shared libraries, we
54 # need to handle some hosts specially.
55 BFDLIB='-L../bfd -lbfd'
56 OPCODES='-L../opcodes -lopcodes'
57 if test "${shared}" = "true"; then
58 case "${host}" in
59 *-*-sunos*)
60 # On SunOS, we must link against the name we are going to install,
61 # not -lbfd, since SunOS does not support SONAME.
62 BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
63 OPCODES='-L../opcodes -l`echo opcodes | sed '"'"'$(program_transform_name)'"'"'`'
64 ;;
65 esac
66 fi
67 AC_SUBST(BFDLIB)
68 AC_SUBST(OPCODES)
69
70 BFD_CC_FOR_BUILD
71
72 AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h)
73 AC_HEADER_SYS_WAIT
74 AC_CHECK_FUNCS(sbrk utimes)
75
76 AC_MSG_CHECKING(for time_t in time.h)
77 AC_CACHE_VAL(bu_cv_decl_time_t_time_h,
78 [AC_TRY_COMPILE([#include <time.h>], [time_t i;],
79 bu_cv_decl_time_t_time_h=yes, bu_cv_decl_time_t_time_h=no)])
80 AC_MSG_RESULT($bu_cv_decl_time_t_time_h)
81 if test $bu_cv_decl_time_t_time_h = yes; then
82 AC_DEFINE([HAVE_TIME_T_IN_TIME_H])
83 fi
84
85 AC_MSG_CHECKING(for time_t in sys/types.h)
86 AC_CACHE_VAL(bu_cv_decl_time_t_types_h,
87 [AC_TRY_COMPILE([#include <sys/types.h>], [time_t i;],
88 bu_cv_decl_time_t_types_h=yes, bu_cv_decl_time_t_types_h=no)])
89 AC_MSG_RESULT($bu_cv_decl_time_t_types_h)
90 if test $bu_cv_decl_time_t_types_h = yes; then
91 AC_DEFINE([HAVE_TIME_T_IN_TYPES_H])
92 fi
93
94 # Under Next 3.2 <utime.h> apparently does not define struct utimbuf
95 # by default.
96 AC_MSG_CHECKING([for utime.h])
97 AC_CACHE_VAL(bu_cv_header_utime_h,
98 [AC_TRY_COMPILE([#include <sys/types.h>
99 #ifdef HAVE_TIME_H
100 #include <time.h>
101 #endif
102 #include <utime.h>],
103 [struct utimbuf s;],
104 bu_cv_header_utime_h=yes, bu_cv_header_utime_h=no)])
105 AC_MSG_RESULT($bu_cv_header_utime_h)
106 if test $bu_cv_header_utime_h = yes; then
107 AC_DEFINE(HAVE_GOOD_UTIME_H)
108 fi
109
110 BFD_NEED_DECLARATION(fprintf)
111
112 BFD_BINARY_FOPEN
113
114 # target-specific stuff:
115
116 # Canonicalize the secondary target names.
117 if test -n "$enable_targets"; then
118 for targ in `echo $enable_targets | sed 's/,/ /g'`
119 do
120 result=`$ac_config_sub $targ 2>/dev/null`
121 if test -n "$result"; then
122 canon_targets="$canon_targets $result"
123 else
124 # Allow targets that config.sub doesn't recognize, like "all".
125 canon_targets="$canon_targets $targ"
126 fi
127 done
128 fi
129
130 all_targets=false
131 BUILD_NLMCONV=
132 NLMCONV_DEFS=
133 BUILD_SRCONV=
134 BUILD_DLLTOOL=
135 DLLTOOL_DEFS=
136
137 for targ in $target $canon_targets
138 do
139 if test "x$targ" = "xall"; then
140 all_targets=true
141 BUILD_NLMCONV='$(NLMCONV_PROG)'
142 BUILD_SRCONV='$(SRCONV_PROG)'
143 NLMCONV_DEFS="-DNLMCONV_I386 -DNLMCONV_ALPHA -DNLMCONV_POWERPC -DNLMCONV_SPARC"
144 else
145 case $targ in
146 changequote(,)dnl
147 i[345]86*-*-netware*)
148 changequote([,])dnl
149 BUILD_NLMCONV='$(NLMCONV_PROG)'
150 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386"
151 ;;
152 alpha*-*-netware*)
153 BUILD_NLMCONV='$(NLMCONV_PROG)'
154 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_ALPHA"
155 ;;
156 powerpc*-*-netware*)
157 BUILD_NLMCONV='$(NLMCONV_PROG)'
158 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_POWERPC"
159 ;;
160 sparc*-*-netware*)
161 BUILD_NLMCONV='$(NLMCONV_PROG)'
162 NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_SPARC"
163 ;;
164 esac
165 case $targ in
166 *-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;;
167 esac
168 case $targ in
169 arm-*pe*)
170 BUILD_DLLTOOL='$(DLLTOOL_PROG)'
171 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
172 ;;
173 changequote(,)dnl
174 i[3-6]86-*pe* | i[3-6]86-*-cygwin32)
175 changequote([,])dnl
176 BUILD_DLLTOOL='$(DLLTOOL_PROG)'
177 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
178 ;;
179 powerpc*-*-*pe* | powerpc*-*-cygwin32)
180 BUILD_DLLTOOL='$(DLLTOOL_PROG)'
181 DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_PPC"
182 ;;
183 esac
184 fi
185 done
186
187 AC_SUBST(NLMCONV_DEFS)
188 AC_SUBST(BUILD_NLMCONV)
189 AC_SUBST(BUILD_SRCONV)
190 AC_SUBST(BUILD_DLLTOOL)
191 AC_SUBST(DLLTOOL_DEFS)
192
193 targ=$target
194 . $srcdir/../bfd/config.bfd
195 if test "x$targ_underscore" = "xyes"; then
196 UNDERSCORE=1
197 else
198 UNDERSCORE=0
199 fi
200 AC_SUBST(UNDERSCORE)
201
202 AC_OUTPUT(Makefile,
203 [case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])