| 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 | ) | 
|---|