1 | dnl Process this file with autoconf to produce a configure script
|
---|
2 |
|
---|
3 | AC_PREREQ(2.13)
|
---|
4 | AC_INIT(pexecute.c)
|
---|
5 |
|
---|
6 | dnl We use these options to decide which functions to include.
|
---|
7 | AC_ARG_WITH(target-subdir,
|
---|
8 | [ --with-target-subdir=SUBDIR Configuring in a subdirectory])
|
---|
9 | AC_ARG_WITH(cross-host,
|
---|
10 | [ --with-cross-host=HOST Configuring with a cross compiler])
|
---|
11 | AC_ARG_WITH(newlib,
|
---|
12 | [ --with-newlib Configuring with newlib])
|
---|
13 |
|
---|
14 | if test "${srcdir}" = "."; then
|
---|
15 | if test -z "${with_target_subdir}"; then
|
---|
16 | libiberty_topdir="${srcdir}/.."
|
---|
17 | else
|
---|
18 | if test "${with_target_subdir}" != "."; then
|
---|
19 | libiberty_topdir="${srcdir}/${with_multisrctop}../.."
|
---|
20 | else
|
---|
21 | libiberty_topdir="${srcdir}/${with_multisrctop}.."
|
---|
22 | fi
|
---|
23 | fi
|
---|
24 | else
|
---|
25 | libiberty_topdir="${srcdir}/.."
|
---|
26 | fi
|
---|
27 | AC_CONFIG_AUX_DIR($libiberty_topdir)
|
---|
28 |
|
---|
29 | AC_CANONICAL_HOST
|
---|
30 |
|
---|
31 | dnl When we start using automake:
|
---|
32 | dnl AM_INIT_AUTOMAKE(libiberty, 1.0)
|
---|
33 |
|
---|
34 | dnl These must be called before AM_PROG_LIBTOOL, because it may want
|
---|
35 | dnl to call AC_CHECK_PROG.
|
---|
36 | AC_CHECK_TOOL(AR, ar)
|
---|
37 | AC_CHECK_TOOL(RANLIB, ranlib, :)
|
---|
38 |
|
---|
39 | LIB_AC_PROG_CC
|
---|
40 |
|
---|
41 | AC_ISC_POSIX
|
---|
42 | AC_C_CONST
|
---|
43 | AC_C_INLINE
|
---|
44 |
|
---|
45 | dnl When we start using libtool:
|
---|
46 | dnl Default to a non shared library. This may be overridden by the
|
---|
47 | dnl configure option --enable-shared.
|
---|
48 | dnl AM_DISABLE_SHARED
|
---|
49 |
|
---|
50 | dnl When we start using libtool:
|
---|
51 | dnl AM_PROG_LIBTOOL
|
---|
52 |
|
---|
53 | dnl When we start using automake:
|
---|
54 | dnl AM_CONFIG_HEADER(config.h:config.in)
|
---|
55 | AC_CONFIG_HEADER(config.h:config.in)
|
---|
56 |
|
---|
57 | dnl When we start using automake:
|
---|
58 | dnl AM_MAINTAINER_MODE
|
---|
59 | dnl AC_EXEEXT
|
---|
60 |
|
---|
61 | dnl When we start using automake:
|
---|
62 | dnl AM_PROG_INSTALL
|
---|
63 | AC_PROG_INSTALL
|
---|
64 |
|
---|
65 | . ${srcdir}/config.table
|
---|
66 | host_makefile_frag=${frag}
|
---|
67 | AC_SUBST_FILE(host_makefile_frag)
|
---|
68 |
|
---|
69 | # It's OK to check for header files. Although the compiler may not be
|
---|
70 | # able to link anything, it had better be able to at least compile
|
---|
71 | # something.
|
---|
72 | AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h)
|
---|
73 | AC_HEADER_SYS_WAIT
|
---|
74 | AC_HEADER_TIME
|
---|
75 |
|
---|
76 | libiberty_AC_DECLARE_ERRNO
|
---|
77 |
|
---|
78 | # This is the list of functions which libiberty will provide if they
|
---|
79 | # are not available on the host.
|
---|
80 |
|
---|
81 | funcs="asprintf"
|
---|
82 | funcs="$funcs atexit"
|
---|
83 | funcs="$funcs basename"
|
---|
84 | funcs="$funcs bcmp"
|
---|
85 | funcs="$funcs bcopy"
|
---|
86 | funcs="$funcs bsearch"
|
---|
87 | funcs="$funcs bzero"
|
---|
88 | funcs="$funcs calloc"
|
---|
89 | funcs="$funcs clock"
|
---|
90 | funcs="$funcs getcwd"
|
---|
91 | funcs="$funcs getpagesize"
|
---|
92 | funcs="$funcs index"
|
---|
93 | funcs="$funcs insque"
|
---|
94 | funcs="$funcs memchr"
|
---|
95 | funcs="$funcs memcmp"
|
---|
96 | funcs="$funcs memcpy"
|
---|
97 | funcs="$funcs memmove"
|
---|
98 | funcs="$funcs memset"
|
---|
99 | funcs="$funcs mkstemps"
|
---|
100 | funcs="$funcs putenv"
|
---|
101 | funcs="$funcs random"
|
---|
102 | funcs="$funcs rename"
|
---|
103 | funcs="$funcs rindex"
|
---|
104 | funcs="$funcs setenv"
|
---|
105 | funcs="$funcs sigsetmask"
|
---|
106 | funcs="$funcs strcasecmp"
|
---|
107 | funcs="$funcs strchr"
|
---|
108 | funcs="$funcs strdup"
|
---|
109 | funcs="$funcs strncasecmp"
|
---|
110 | funcs="$funcs strrchr"
|
---|
111 | funcs="$funcs strstr"
|
---|
112 | funcs="$funcs strtod"
|
---|
113 | funcs="$funcs strtol"
|
---|
114 | funcs="$funcs strtoul"
|
---|
115 | funcs="$funcs tmpnam"
|
---|
116 | funcs="$funcs vasprintf"
|
---|
117 | funcs="$funcs vfprintf"
|
---|
118 | funcs="$funcs vprintf"
|
---|
119 | funcs="$funcs vsprintf"
|
---|
120 | funcs="$funcs waitpid"
|
---|
121 |
|
---|
122 | # Also in the old function.def file: alloca, vfork, getopt.
|
---|
123 |
|
---|
124 | vars="sys_errlist sys_nerr sys_siglist"
|
---|
125 |
|
---|
126 | checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
|
---|
127 |
|
---|
128 | # These are neither executed nor required, but they help keep
|
---|
129 | # autoheader happy without adding a bunch of text to acconfig.h.
|
---|
130 | if test "x" = "y"; then
|
---|
131 | AC_CHECK_FUNCS(asprintf atexit basename bcmp bcopy bsearch bzero calloc clock)
|
---|
132 | AC_CHECK_FUNCS(getcwd getpagesize index insque mkstemps memchr memcmp memcpy)
|
---|
133 | AC_CHECK_FUNCS(memmove memset putenv random rename rindex sigsetmask)
|
---|
134 | AC_CHECK_FUNCS(strcasecmp setenv strchr strdup strncasecmp strrchr strstr)
|
---|
135 | AC_CHECK_FUNCS(strtod strtol strtoul tmpnam vasprintf vfprintf vprintf)
|
---|
136 | AC_CHECK_FUNCS(vsprintf waitpid getrusage on_exit psignal strerror strsignal)
|
---|
137 | AC_CHECK_FUNCS(sysconf times sbrk gettimeofday)
|
---|
138 | AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
|
---|
139 | AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.])
|
---|
140 | AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
|
---|
141 | fi
|
---|
142 |
|
---|
143 | # For each of these functions, if the host does not provide the
|
---|
144 | # function we want to put FN.o in LIBOBJS, and if the host does
|
---|
145 | # provide the function, we want to define HAVE_FN in config.h. Also,
|
---|
146 | # if the host does not provide alloca, we set ALLOCA to alloca.o
|
---|
147 |
|
---|
148 | setobjs=
|
---|
149 | CHECK=
|
---|
150 | if test -n "${with_target_subdir}"; then
|
---|
151 |
|
---|
152 | # We are being configured as a target library. AC_REPLACE_FUNCS
|
---|
153 | # may not work correctly, because the compiler may not be able to
|
---|
154 | # link executables. Note that we may still be being configured
|
---|
155 | # native.
|
---|
156 |
|
---|
157 | # If we are being configured for newlib, we know which functions
|
---|
158 | # newlib provide and which ones we will be expected to provide.
|
---|
159 |
|
---|
160 | if test "x${with_newlib}" = "xyes"; then
|
---|
161 | ALLOCA="alloca.o"
|
---|
162 | LIBOBJS="asprintf.o basename.o insque.o random.o strdup.o vasprintf.o"
|
---|
163 |
|
---|
164 | for f in $funcs; do
|
---|
165 | case "$f" in
|
---|
166 | asprintf | basename | insque | random | strdup | vasprintf)
|
---|
167 | ;;
|
---|
168 | *)
|
---|
169 | n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
---|
170 | AC_DEFINE_UNQUOTED($n)
|
---|
171 | ;;
|
---|
172 | esac
|
---|
173 | done
|
---|
174 |
|
---|
175 | # newlib doesnt provide any of the variables in $vars, so we
|
---|
176 | # dont have to check them here.
|
---|
177 |
|
---|
178 | # Of the functions in $checkfuncs, newlib only has strerror.
|
---|
179 | AC_DEFINE_NOAUTOHEADER(HAVE_STRERROR)
|
---|
180 |
|
---|
181 | setobjs=yes
|
---|
182 |
|
---|
183 | fi
|
---|
184 |
|
---|
185 | else
|
---|
186 |
|
---|
187 | # Not a target library, so we set things up to run the test suite.
|
---|
188 | CHECK=check-cplus-dem
|
---|
189 |
|
---|
190 | fi
|
---|
191 |
|
---|
192 | AC_SUBST(CHECK)
|
---|
193 |
|
---|
194 | if test -z "${setobjs}"; then
|
---|
195 | case "${host}" in
|
---|
196 |
|
---|
197 | *-*-vxworks*)
|
---|
198 | # Handle VxWorks configuration specially, since on VxWorks the
|
---|
199 | # libraries are actually on the target board, not in the file
|
---|
200 | # system.
|
---|
201 | LIBOBJS="basename.o getpagesize.o insque.o random.o strcasecmp.o"
|
---|
202 | LIBOBJS="$LIBOBJS strncasecmp.o strdup.o vfork.o waitpid.o vasprintf.o"
|
---|
203 | for f in $funcs; do
|
---|
204 | case "$f" in
|
---|
205 | basename | getpagesize | insque | random | strcasecmp)
|
---|
206 | ;;
|
---|
207 | strncasecmp | strdup | vfork | waitpid | vasprintf)
|
---|
208 | ;;
|
---|
209 | *)
|
---|
210 | n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
---|
211 | AC_DEFINE_UNQUOTED($n)
|
---|
212 | ;;
|
---|
213 | esac
|
---|
214 | done
|
---|
215 |
|
---|
216 | # VxWorks doesn't provide any of the variables in $vars, so we
|
---|
217 | # don't have to check them here.
|
---|
218 |
|
---|
219 | # Of the functions in $checkfuncs, VxWorks only has strerror.
|
---|
220 | AC_DEFINE_NOAUTOHEADER(HAVE_STRERROR)
|
---|
221 |
|
---|
222 | setobjs=yes
|
---|
223 | ;;
|
---|
224 |
|
---|
225 | esac
|
---|
226 | fi
|
---|
227 |
|
---|
228 | if test -z "${setobjs}"; then
|
---|
229 |
|
---|
230 | case "${host}" in
|
---|
231 |
|
---|
232 | *-*-cygwin*)
|
---|
233 | # The Cygwin library actually uses a couple of files from
|
---|
234 | # libiberty when it is built. If we are building a native
|
---|
235 | # Cygwin, and we run the tests, we will appear to have these
|
---|
236 | # files. However, when we go on to build winsup, we will wind up
|
---|
237 | # with a library which does not have the files, since they should
|
---|
238 | # have come from libiberty.
|
---|
239 |
|
---|
240 | # We handle this by removing the functions the winsup library
|
---|
241 | # provides from our shell variables, so that they appear to be
|
---|
242 | # missing.
|
---|
243 |
|
---|
244 | # DJ - only if we're *building* cygwin, not just building *with* cygwin
|
---|
245 |
|
---|
246 | if test -n "${with_target_subdir}"
|
---|
247 | then
|
---|
248 | funcs="`echo $funcs | sed -e 's/random//'`"
|
---|
249 | LIBOBJS="$LIBOBJS random.o"
|
---|
250 | vars="`echo $vars | sed -e 's/sys_siglist//'`"
|
---|
251 | checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`"
|
---|
252 | fi
|
---|
253 | ;;
|
---|
254 |
|
---|
255 | *-*-mingw32*)
|
---|
256 | # Under mingw32, sys_nerr and sys_errlist exist, but they are
|
---|
257 | # macros, so the test below won't find them.
|
---|
258 | libiberty_cv_var_sys_nerr=yes
|
---|
259 | libiberty_cv_var_sys_errlist=yes
|
---|
260 | ;;
|
---|
261 |
|
---|
262 | *-*-uwin*)
|
---|
263 | # Under some versions of uwin, vfork is notoriously buggy and the test
|
---|
264 | # can hang configure; on other versions, vfork exists just as a stub.
|
---|
265 | # FIXME: This should be removed once vfork in uwin's runtime is fixed.
|
---|
266 | ac_cv_func_vfork_works=no
|
---|
267 | # Under uwin 2.0+, sys_nerr and sys_errlist exist, but they are
|
---|
268 | # macros (actually, these are imported from a DLL, but the end effect
|
---|
269 | # is the same), so the test below won't find them.
|
---|
270 | libiberty_cv_var_sys_nerr=yes
|
---|
271 | libiberty_cv_var_sys_errlist=yes
|
---|
272 | ;;
|
---|
273 |
|
---|
274 | esac
|
---|
275 |
|
---|
276 | # We haven't set the list of objects yet. Use the standard autoconf
|
---|
277 | # tests. This will only work if the compiler works.
|
---|
278 | AC_PROG_CC_WORKS
|
---|
279 | AC_REPLACE_FUNCS($funcs)
|
---|
280 |
|
---|
281 | case "${host}" in
|
---|
282 | *-*-interix)
|
---|
283 | # On Interix, it wrongly concludes that the MSVC compiler supports alloca.
|
---|
284 | # (MSVC does on Win32, not on Interix.)
|
---|
285 | # This should be temporary.
|
---|
286 |
|
---|
287 | ac_cv_header_alloca_h=no
|
---|
288 | ac_cv_func_alloca_works=no
|
---|
289 | ALLOCA=alloca.o
|
---|
290 | cat >> confdefs.h <<\EOF
|
---|
291 | #define C_ALLOCA 1
|
---|
292 | EOF
|
---|
293 | cat >> confdefs.h <<EOF
|
---|
294 | #define STACK_DIRECTION -1
|
---|
295 | EOF
|
---|
296 | ;;
|
---|
297 | *)
|
---|
298 | AC_FUNC_ALLOCA
|
---|
299 | ;;
|
---|
300 | esac
|
---|
301 |
|
---|
302 | AC_FUNC_VFORK
|
---|
303 | if test $ac_cv_func_vfork_works = no; then
|
---|
304 | LIBOBJS="$LIBOBJS vfork.o"
|
---|
305 | fi
|
---|
306 | for v in $vars; do
|
---|
307 | AC_MSG_CHECKING([for $v])
|
---|
308 | AC_CACHE_VAL(libiberty_cv_var_$v,
|
---|
309 | [AC_TRY_LINK([int *p;], [extern int $v; p = &$v;],
|
---|
310 | [eval "libiberty_cv_var_$v=yes"],
|
---|
311 | [eval "libiberty_cv_var_$v=no"])])
|
---|
312 | if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then
|
---|
313 | AC_MSG_RESULT(yes)
|
---|
314 | n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
---|
315 | AC_DEFINE_UNQUOTED($n)
|
---|
316 | else
|
---|
317 | AC_MSG_RESULT(no)
|
---|
318 | fi
|
---|
319 | done
|
---|
320 | AC_CHECK_FUNCS($checkfuncs)
|
---|
321 | fi
|
---|
322 |
|
---|
323 | libiberty_AC_FUNC_STRNCMP
|
---|
324 |
|
---|
325 | # Install a library built with a cross compiler in $(tooldir) rather
|
---|
326 | # than $(libdir).
|
---|
327 | if test -z "${with_cross_host}"; then
|
---|
328 | INSTALL_DEST=libdir
|
---|
329 | else
|
---|
330 | INSTALL_DEST=tooldir
|
---|
331 | fi
|
---|
332 | AC_SUBST(INSTALL_DEST)
|
---|
333 |
|
---|
334 | # We need multilib support, but only if configuring for the target.
|
---|
335 | AC_OUTPUT(Makefile testsuite/Makefile,
|
---|
336 | [test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
|
---|
337 | if test -n "$CONFIG_FILES"; then
|
---|
338 | if test -n "${with_target_subdir}"; then
|
---|
339 | # FIXME: We shouldn't need to set ac_file
|
---|
340 | ac_file=Makefile
|
---|
341 | . ${libiberty_topdir}/config-ml.in
|
---|
342 | fi
|
---|
343 | fi],
|
---|
344 | srcdir=${srcdir}
|
---|
345 | host=${host}
|
---|
346 | target=${target}
|
---|
347 | with_target_subdir=${with_target_subdir}
|
---|
348 | with_multisubdir=${with_multisubdir}
|
---|
349 | ac_configure_args="--enable-multilib ${ac_configure_args}"
|
---|
350 | CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
---|
351 | libiberty_topdir=${libiberty_topdir}
|
---|
352 | )
|
---|