1: dnl Process this file with autoconf to produce a configure script
2:
3: AC_PREREQ(2.59)
4: AC_INIT
5: AC_CONFIG_SRCDIR([xmalloc.c])
6:
7:
8:
9:
10:
11: ORIGINAL_LD_FOR_MULTILIBS=$LD
12:
13: dnl We use these options to decide which functions to include.
14: AC_ARG_WITH(target-subdir,
15: [ --with-target-subdir=SUBDIR Configuring in a subdirectory for target])
16: AC_ARG_WITH(build-subdir,
17: [ --with-build-subdir=SUBDIR Configuring in a subdirectory for build])
18: AC_ARG_WITH(cross-host,
19: [ --with-cross-host=HOST Configuring with a cross compiler])
20: AC_ARG_WITH(newlib,
21: [ --with-newlib Configuring with newlib])
22:
23: if test "${srcdir}" = "."; then
24: if test -n "${with_build_subdir}"; then
25: libiberty_topdir="${srcdir}/../.."
26: with_target_subdir=
27: elif test -z "${with_target_subdir}"; then
28: libiberty_topdir="${srcdir}/.."
29: else
30: if test "${with_target_subdir}" != "."; then
31: libiberty_topdir="${srcdir}/${with_multisrctop}../.."
32: else
33: libiberty_topdir="${srcdir}/${with_multisrctop}.."
34: fi
35: fi
36: else
37: libiberty_topdir="${srcdir}/.."
38: fi
39: AC_SUBST(libiberty_topdir)
40: AC_CONFIG_AUX_DIR($libiberty_topdir)
41:
42: dnl Very limited version of automake's enable-maintainer-mode
43:
44: AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
45: dnl maintainer-mode is disabled by default
46: AC_ARG_ENABLE(maintainer-mode,
47: [ --enable-maintainer-mode
48: enable make rules and dependencies not useful
49: (and sometimes confusing) to the casual installer],
50: maintainer_mode=$enableval,
51: maintainer_mode=no)
52:
53: AC_MSG_RESULT($maintainer_mode)
54:
55: if test "$maintainer_mode" = "yes"; then
56: MAINT=''
57: NOTMAINT='
58: else
59: MAINT='#'
60: NOTMAINT=''
61: fi
62: AC_SUBST(MAINT)dnl
63: AC_SUBST(NOTMAINT)dnl
64:
65:
66:
67: AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
68: if test "x$MAKEINFO" = "x"; then
69: MAKEINFO="@echo makeinfo missing; true"
70: BUILD_INFO=
71: else
72: BUILD_INFO=info
73: case "$MAKEINFO" in
74: */missing\ makeinfo*)
75: BUILD_INFO=
76: AC_MSG_WARN([
77: *** Makeinfo is missing. Info documentation will not be built.])
78: ;;
79: *)
80: case x"`$MAKEINFO --version | grep 'GNU texinfo'`" in
81: x*\ [[1-3]].* )
82: MAKEINFO="@echo $MAKEINFO is too old, 4.0 or newer required; true"
83: BUILD_INFO=
84: AC_MSG_WARN([
85: *** Makeinfo is too old. Info documentation will not be built.])
86: ;;
87: esac
88: ;;
89: esac
90: fi
91: AC_SUBST(MAKEINFO)
92: AC_SUBST(BUILD_INFO)
93:
94: AC_CHECK_PROG(PERL, perl, perl, )
95: if test x"$PERL" = x""; then
96: HAVE_PERL='#'
97: else
98: HAVE_PERL=''
99: fi
100: AC_SUBST(HAVE_PERL)
101:
102: AC_CANONICAL_HOST
103:
104: dnl When we start using automake:
105: dnl AM_INIT_AUTOMAKE(libiberty, 1.0)
106:
107: dnl These must be called before AM_PROG_LIBTOOL, because it may want
108: dnl to call AC_CHECK_PROG.
109: AC_CHECK_TOOL(AR, ar)
110: AC_CHECK_TOOL(RANLIB, ranlib, :)
111:
112: dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB.
113:
114:
115: AC_ARG_ENABLE(multilib,
116: [ --enable-multilib build many library versions (default)],
117: [case "$enableval" in
118: yes) multilib=yes ;;
119: no) multilib=no ;;
120: *) AC_MSG_ERROR([bad value $enableval for multilib option]) ;;
121: esac],
122: [multilib=yes])
123:
124:
125:
126: if test $cross_compiling = no && test $multilib = yes \
127: && test "x${with_multisubdir}" != x ; then
128: cross_compiling=maybe
129: fi
130:
131: GCC_NO_EXECUTABLES
132: AC_PROG_CC
133: AC_PROG_CPP_WERROR
134:
135: ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wc++-compat \
136: -Wstrict-prototypes], [ac_libiberty_warn_cflags])
137: ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([], [ac_libiberty_warn_cflags])
138:
139: AC_PROG_CC_C_O
140:
141: if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
142: NO_MINUS_C_MINUS_O=yes
143: else
144: OUTPUT_OPTION='-o $@'
145: fi
146: AC_SUBST(NO_MINUS_C_MINUS_O)
147: AC_SUBST(OUTPUT_OPTION)
148:
149: AC_C_CONST
150: AC_C_INLINE
151: AC_C_BIGENDIAN
152:
153: dnl When we start using libtool:
154: dnl Default to a non shared library. This may be overridden by the
155: dnl configure option --enable-shared.
156: dnl AM_DISABLE_SHARED
157:
158: dnl When we start using libtool:
159: dnl AM_PROG_LIBTOOL
160:
161: dnl When we start using automake:
162: dnl AM_CONFIG_HEADER(config.h:config.in)
163: AC_CONFIG_HEADER(config.h:config.in)
164:
165: dnl When we start using automake:
166: dnl AM_MAINTAINER_MODE
167: dnl AC_EXEEXT
168:
169: dnl When we start using automake:
170: dnl AM_PROG_INSTALL
171: AC_PROG_INSTALL
172:
173:
174: if [[ -n "${with_build_subdir}" ]]; then
175: enable_shared=no
176: fi
177:
178: frag=
179: case "${host}" in
180: rs6000-ibm-aix3.1 | rs6000-ibm-aix)
181: frag=mh-aix ;;
182: *-*-cxux7*) frag=mh-cxux7 ;;
183: *-*-freebsd2.1.*) frag=mh-fbsd21 ;;
184: *-*-freebsd2.2.[[012]]) frag=mh-fbsd21 ;;
185: i370-*-opened*) frag=mh-openedition ;;
186: i[[34567]]86-*-windows*) frag=mh-windows ;;
187: esac
188:
189: if [[ -n "${frag}" ]]; then
190: frags=${libiberty_topdir}/libiberty/config/$frag
191: else
192: frags=
193: fi
194:
195:
196: case "${enable_shared}" in
197: yes) shared=yes ;;
198: no) shared=no ;;
199: "") shared=no ;;
200: *) shared=yes ;;
201: esac
202: if [[ "${shared}" = "yes" ]]; then
203: frag=
204: case "${host}" in
205: *-*-cygwin*) ;;
206: alpha*-*-linux*) frag=mh-elfalphapic ;;
207: arm*-*-*) frag=mh-armpic ;;
208: hppa*-*-*) frag=mh-papic ;;
209: i[[34567]]86-*-* | x86_64-*-*)
210: frag=mh-x86pic ;;
211: powerpc*-*-aix*) ;;
212: powerpc*-*-*) frag=mh-ppcpic ;;
213: sparc*-*-*) frag=mh-sparcpic ;;
214: s390*-*-*) frag=mh-s390pic ;;
215: *) frag=mh-${host_cpu}pic ;;
216: esac
217: if [[ -n "${frag}" ]]; then
218: frags="${frags} ${libiberty_topdir}/config/${frag}"
219: fi
220: fi
221:
222: echo "# Warning: this fragment is automatically generated" > temp-frag
223:
224: for frag in ${frags}; do
225: if [[ -f ${frag} ]]; then
226: echo "Appending ${frag} to xhost-mkfrag"
227: echo "# Following fragment copied from ${frag}" >> temp-frag
228: cat ${frag} >> temp-frag
229: fi
230: done
231:
232:
233: if [[ "${shared}" = "yes" ]]; then
234: echo enable_shared = yes >> temp-frag
235: else
236: echo enable_shared = no >> temp-frag
237: fi
238:
239: frag=xhost-mkfrag
240: ${CONFIG_SHELL-/bin/sh} ${libiberty_topdir}/move-if-change temp-frag xhost-mkfrag
241:
242: host_makefile_frag=${frag}
243: AC_SUBST_FILE(host_makefile_frag)
244:
245:
246:
247:
248: AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h)
249: AC_HEADER_SYS_WAIT
250: AC_HEADER_TIME
251:
252: libiberty_AC_DECLARE_ERRNO
253:
254:
255: AC_CHECK_SIZEOF([int])
256:
257: AC_CHECK_TYPE(uintptr_t, unsigned long)
258:
259:
260: AC_MSG_CHECKING([for a 64-bit type])
261: AC_CACHE_VAL(liberty_cv_uint64,
262: [AC_TRY_COMPILE(
263: [
264:
265:
266: [extern uint64_t foo;],
267: liberty_cv_uint64=uint64_t,
268: [AC_TRY_COMPILE(
269: [
270:
271:
272:
273:
274:
275: [extern char foo[sizeof(long) * CHAR_BIT >= 64 ? 1 : -1];],
276: liberty_cv_uint64="unsigned long",
277: [AC_TRY_COMPILE(
278: [
279:
280:
281:
282:
283:
284: [extern char foo[sizeof(long long) * CHAR_BIT >= 64 ? 1 : -1];],
285: liberty_cv_uint64="unsigned long long", liberty_cv_uint64=none)])])])
286: AC_MSG_RESULT($liberty_cv_uint64)
287: if test "$liberty_cv_uint64" != none; then
288: AC_DEFINE_UNQUOTED(UNSIGNED_64BIT_TYPE, $liberty_cv_uint64,
289: [Define to an unsigned 64-bit type available in the compiler.])
290: fi
291:
292:
293:
294:
295: AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if you have the \`uintptr_t' type.])
296:
297: AC_TYPE_PID_T
298:
299: # This is the list of functions which libiberty will provide if they
300: # are not available on the host.
301:
302: funcs="asprintf"
303: funcs="$funcs atexit"
304: funcs="$funcs basename"
305: funcs="$funcs bcmp"
306: funcs="$funcs bcopy"
307: funcs="$funcs bsearch"
308: funcs="$funcs bzero"
309: funcs="$funcs calloc"
310: funcs="$funcs clock"
311: funcs="$funcs ffs"
312: funcs="$funcs getcwd"
313: funcs="$funcs getpagesize"
314: funcs="$funcs gettimeofday"
315: funcs="$funcs index"
316: funcs="$funcs insque"
317: funcs="$funcs memchr"
318: funcs="$funcs memcmp"
319: funcs="$funcs memcpy"
320: funcs="$funcs memmove"
321: funcs="$funcs mempcpy"
322: funcs="$funcs memset"
323: funcs="$funcs mkstemps"
324: funcs="$funcs putenv"
325: funcs="$funcs random"
326: funcs="$funcs rename"
327: funcs="$funcs rindex"
328: funcs="$funcs setenv"
329: funcs="$funcs snprintf"
330: funcs="$funcs sigsetmask"
331: funcs="$funcs stpcpy"
332: funcs="$funcs stpncpy"
333: funcs="$funcs strcasecmp"
334: funcs="$funcs strchr"
335: funcs="$funcs strdup"
336: funcs="$funcs strncasecmp"
337: funcs="$funcs strndup"
338: funcs="$funcs strrchr"
339: funcs="$funcs strstr"
340: funcs="$funcs strtod"
341: funcs="$funcs strtol"
342: funcs="$funcs strtoul"
343: funcs="$funcs strverscmp"
344: funcs="$funcs tmpnam"
345: funcs="$funcs vasprintf"
346: funcs="$funcs vfprintf"
347: funcs="$funcs vprintf"
348: funcs="$funcs vsnprintf"
349: funcs="$funcs vsprintf"
350: funcs="$funcs waitpid"
351:
352: # Also in the old function.def file: alloca, vfork, getopt.
353:
354: vars="sys_errlist sys_nerr sys_siglist"
355:
356: checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
357: checkfuncs="$checkfuncs realpath canonicalize_file_name pstat_getstatic pstat_getdynamic sysmp"
358: checkfuncs="$checkfuncs getsysinfo table sysctl wait3 wait4 __fsetlocking"
359:
360: # These are neither executed nor required, but they help keep
361: # autoheader happy without adding a bunch of text to acconfig.h.
362: if test "x" = "y"; then
363: AC_CHECK_FUNCS(asprintf atexit basename bcmp bcopy bsearch bzero calloc clock \
364: getcwd getpagesize gettimeofday index insque mkstemps memchr memcmp memcpy \
365: memmove mempcpy memset putenv random rename rindex sigsetmask \
366: strcasecmp setenv stpcpy stpncpy strchr strdup strncasecmp strndup strrchr strstr \
367: strtod strtol strtoul strverscmp tmpnam vasprintf vfprintf vprintf \
368: vsprintf waitpid getrusage on_exit psignal strerror strsignal \
369: sysconf times sbrk gettimeofday ffs snprintf vsnprintf \
370: pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl wait3 wait4 \
371: realpath canonicalize_file_name __fsetlocking)
372: AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf])
373: AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
374: AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.])
375: AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
376: fi
377:
378: # For each of these functions, if the host does not provide the
379: # function we want to put FN.o in LIBOBJS, and if the host does
380: # provide the function, we want to define HAVE_FN in config.h.
381:
382: setobjs=
383: CHECK=
384: target_header_dir=
385: if test -n "${with_target_subdir}"; then
386:
387: # We are being configured as a target library. AC_REPLACE_FUNCS
388: # may not work correctly, because the compiler may not be able to
389: # link executables. Note that we may still be being configured
390: # native.
391:
392: # If we are being configured for newlib, we know which functions
393: # newlib provide and which ones we will be expected to provide.
394:
395: if test "x${with_newlib}" = "xyes"; then
396: AC_LIBOBJ([asprintf])
397: AC_LIBOBJ([basename])
398: AC_LIBOBJ([insque])
399: AC_LIBOBJ([random])
400: AC_LIBOBJ([strdup])
401: AC_LIBOBJ([vasprintf])
402:
403: for f in $funcs; do
404: case "$f" in
405: asprintf | basename | insque | random | strdup | vasprintf)
406: ;;
407: *)
408: n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
409: AC_DEFINE_UNQUOTED($n)
410: ;;
411: esac
412: done
413:
414: # newlib doesnt provide any of the variables in $vars, so we
415: # dont have to check them here.
416:
417: # Of the functions in $checkfuncs, newlib only has strerror.
418: AC_DEFINE(HAVE_STRERROR)
419:
420: setobjs=yes
421:
422: fi
423:
424: # If we are being configured for Mingw, we know which functions
425: # Mingw provides and which ones we will be expected to provide.
426:
427: case "${host}" in
428: *-*-mingw*)
429: AC_LIBOBJ([asprintf])
430: AC_LIBOBJ([basename])
431: AC_LIBOBJ([bcmp])
432: AC_LIBOBJ([bcopy])
433: AC_LIBOBJ([bzero])
434: AC_LIBOBJ([clock])
435: AC_LIBOBJ([ffs])
436: AC_LIBOBJ([getpagesize])
437: AC_LIBOBJ([index])
438: AC_LIBOBJ([insque])
439: AC_LIBOBJ([mempcpy])
440: AC_LIBOBJ([mkstemps])
441: AC_LIBOBJ([random])
442: AC_LIBOBJ([rindex])
443: AC_LIBOBJ([sigsetmask])
444: AC_LIBOBJ([stpcpy])
445: AC_LIBOBJ([stpncpy])
446: AC_LIBOBJ([strndup])
447: AC_LIBOBJ([strverscmp])
448: AC_LIBOBJ([vasprintf])
449: AC_LIBOBJ([waitpid])
450:
451: for f in $funcs; do
452: case "$f" in
453: asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strverscmp | vasprintf | waitpid)
454: ;;
455: *)
456: n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
457: AC_DEFINE_UNQUOTED($n)
458: ;;
459: esac
460: done
461:
462: # Mingw doesnt provide any of the variables in $vars, so we
463: # dont have to check them here.
464:
465: # Of the functions in $checkfuncs, Mingw only has strerror.
466: AC_DEFINE(HAVE_STRERROR)
467:
468: setobjs=yes
469: ;;
470:
471: esac
472:
473: # We may wish to install the target headers somewhere.
474: AC_ARG_ENABLE(install-libiberty,
475: [ --enable-install-libiberty Install headers for end users],
476: enable_install_libiberty=$enableval,
477: enable_install_libiberty=no)dnl
478:
479: # Option parsed, now set things appropriately.
480: case x"$enable_install_libiberty" in
481: xyes|x)
482: target_header_dir=libiberty
483: ;;
484: xno)
485: target_header_dir=
486: ;;
487: *)
488: # This could be sanity-checked in various ways...
489: target_header_dir="${enable_install_libiberty}"
490: ;;
491: esac
492:
493:
494: else
495:
496: # Not a target library, so we set things up to run the test suite.
497: CHECK=really-check
498:
499: fi
500:
501: AC_SUBST(CHECK)
502: AC_SUBST(target_header_dir)
503:
504: case "${host}" in
505: *-*-cygwin* | *-*-mingw*)
506: AC_DEFINE(HAVE_SYS_ERRLIST)
507: AC_DEFINE(HAVE_SYS_NERR)
508: ;;
509: esac
510:
511: if test -z "${setobjs}"; then
512: case "${host}" in
513:
514: *-*-vxworks*)
515: # Handle VxWorks configuration specially, since on VxWorks the
516: # libraries are actually on the target board, not in the file
517: # system.
518: AC_LIBOBJ([basename])
519: AC_LIBOBJ([getpagesize])
520: AC_LIBOBJ([insque])
521: AC_LIBOBJ([random])
522: AC_LIBOBJ([strcasecmp])
523: AC_LIBOBJ([strncasecmp])
524: AC_LIBOBJ([strdup])
525: AC_LIBOBJ([vfork])
526: AC_LIBOBJ([waitpid])
527: AC_LIBOBJ([vasprintf])
528: for f in $funcs; do
529: case "$f" in
530: basename | getpagesize | insque | random | strcasecmp)
531: ;;
532: strncasecmp | strdup | vfork | waitpid | vasprintf)
533: ;;
534: *)
535: n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
536: AC_DEFINE_UNQUOTED($n)
537: ;;
538: esac
539: done
540:
541: # VxWorks doesn't provide any of the variables in $vars, so we
542:
543:
544:
545: AC_DEFINE(HAVE_STRERROR)
546:
547: setobjs=yes
548: ;;
549:
550: *-*-msdosdjgpp)
551: for f in atexit basename bcmp bcopy bsearch bzero calloc clock ffs \
552: getcwd getpagesize getrusage gettimeofday \
553: index insque memchr memcmp memcpy memmove memset psignal \
554: putenv random rename rindex sbrk setenv stpcpy strcasecmp \
555: strchr strdup strerror strncasecmp strrchr strstr strtod \
556: strtol strtoul sysconf times tmpnam vfprintf vprintf \
557: vsprintf waitpid
558: do
559: n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
560: AC_DEFINE_UNQUOTED($n)
561: done
562:
563:
564: setobjs=yes
565: ;;
566:
567: esac
568: fi
569:
570: if test -z "${setobjs}"; then
571:
572: case "${host}" in
573:
574: *-*-cygwin*)
575: