Annotation of parser3/src/lib/libltdl/configure.in, revision 1.1
1.1 ! paf 1: dnl Process this file with autoconf to create configure.
! 2:
! 3: AC_INIT(ltdl.c)
! 4:
! 5: enable_ltdl_install=yes
! 6:
! 7: AM_INIT_AUTOMAKE(libltdl,1.0,-)
! 8: AM_CONFIG_HEADER(config_auto.h)
! 9: AM_MAINTAINER_MODE
! 10:
! 11: AC_PROG_CC
! 12: AC_C_CONST
! 13: AC_C_INLINE
! 14:
! 15: dnl Checks for programs.
! 16: AC_PROG_RANLIB
! 17:
! 18: AC_CACHE_CHECK([which extension is used for shared libraries],
! 19: libltdl_cv_shlibext, [dnl
! 20: (
! 21: last=
! 22: for spec in $library_names_spec; do
! 23: last="$spec"
! 24: done
! 25: changequote(, )
! 26: echo "$last" | sed 's/\[.*\]//;s/^[^.]*//;s/\$.*$//;s/\.$//' > conftest
! 27: changequote([, ])
! 28: )
! 29: libltdl_cv_shlibext=`cat conftest`
! 30: rm -f conftest
! 31: ])
! 32: if test -n "$libltdl_cv_shlibext"; then
! 33: AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext",
! 34: [Define to the extension used for shared libraries, say, ".so". ])
! 35: fi
! 36:
! 37: AC_CACHE_CHECK([which variable specifies run-time library path],
! 38: libltdl_cv_shlibpath_var, [libltdl_cv_shlibpath_var="$shlibpath_var"])
! 39: if test -n "$libltdl_cv_shlibpath_var"; then
! 40: AC_DEFINE_UNQUOTED(LTDL_SHLIBPATH_VAR, "$libltdl_cv_shlibpath_var",
! 41: [Define to the name of the environment variable that determines the dynamic library search path. ])
! 42: fi
! 43:
! 44: AC_CACHE_CHECK([for objdir],
! 45: libltdl_cv_objdir, [libltdl_cv_objdir="$objdir"])
! 46: test -z "$libltdl_cv_objdir" && libltdl_cv_objdir=".libs"
! 47: AC_DEFINE_UNQUOTED(LTDL_OBJDIR, "$libltdl_cv_objdir/",
! 48: [Define to the sub-directory in which libtool stores uninstalled libraries. ])
! 49:
! 50: AC_HEADER_STDC
! 51: AC_CHECK_HEADERS(malloc.h memory.h stdlib.h stdio.h ctype.h dlfcn.h dl.h dld.h)
! 52: AC_CHECK_HEADERS(string.h strings.h, break)
! 53: AC_CHECK_FUNCS(strchr index, break)
! 54: AC_CHECK_FUNCS(strrchr rindex, break)
! 55:
! 56: AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],
! 57: libltdl_cv_preloaded_symbols, [dnl
! 58: if test -n "$global_symbol_pipe"; then
! 59: libltdl_cv_preloaded_symbols=yes
! 60: else
! 61: libltdl_cv_preloaded_symbols=no
! 62: fi
! 63: ])
! 64: if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then
! 65: AC_DEFINE(HAVE_PRELOADED_SYMBOLS, 1,
! 66: [Define if libtool can extract symbol lists from object files. ])
! 67: fi
! 68:
! 69: dnl LIBADD_DL=
! 70: dnl AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1) LIBADD_DL="-ldl"],
! 71: dnl [AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1)])])
! 72: dnl AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1)],
! 73: dnl [AC_CHECK_LIB(dld, shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1) LIBADD_DL="$LIBADD_DL -ldld"])])
! 74: dnl AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1)dnl
! 75: dnl test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"])
! 76: dnl AC_SUBST(LIBADD_DL)
! 77: dnl
! 78: dnl if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then
! 79: dnl LIBS_SAVE="$LIBS"
! 80: dnl LIBS="$LIBS $LIBADD_DL"
! 81: dnl AC_CHECK_FUNCS(dlerror)
! 82: dnl LIBS="$LIBS_SAVE"
! 83: dnl fi
! 84:
! 85: dnl Check for command to grab the raw symbol name followed
! 86: dnl by C symbol name from nm.
! 87: AC_REQUIRE([AC_CANONICAL_HOST])dnl
! 88: dnl AC_REQUIRE([AC_PROG_NM])dnl
! 89: # Check for command to grab the raw symbol name followed by C symbol from nm.
! 90: AC_MSG_CHECKING([command to parse $NM output])
! 91: AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
! 92: [# These are sane defaults that work on at least a few old systems.
! 93: # {They come from Ultrix. What could be older than Ultrix?!! ;)}
! 94:
! 95: changequote(,)dnl
! 96: # Character class describing NM global symbol codes.
! 97: ac_symcode='[BCDEGRST]'
! 98:
! 99: # Regexp to match symbols that can be accessed directly from C.
! 100: ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
! 101:
! 102: # Transform the above into a raw symbol and a C symbol.
! 103: ac_symxfrm='\1 \2\3 \3'
! 104:
! 105: # Transform an extracted symbol line into a proper C declaration
! 106: ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
! 107:
! 108: # Define system-specific variables.
! 109: case "$host_os" in
! 110: aix*)
! 111: ac_symcode='[BCDT]'
! 112: ;;
! 113: cygwin* | mingw*)
! 114: ac_symcode='[ABCDGISTW]'
! 115: ;;
! 116: hpux*)
! 117: ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
! 118: ;;
! 119: irix*)
! 120: ac_symcode='[BCDEGRST]'
! 121: ;;
! 122: solaris*)
! 123: ac_symcode='[BDT]'
! 124: ;;
! 125: esac
! 126:
! 127: # If we're using GNU nm, then use its standard symbol codes.
! 128: if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
! 129: ac_symcode='[ABCDGISTW]'
! 130: fi
! 131: changequote([,])dnl
! 132:
! 133: # Try without a prefix undercore, then with it.
! 134: for ac_symprfx in "" "_"; do
! 135:
! 136: ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
! 137:
! 138: # Check to see that the pipe works correctly.
! 139: ac_pipe_works=no
! 140: rm -f conftest.$ac_ext
! 141: cat > conftest.$ac_ext <<EOF
! 142: #ifdef __cplusplus
! 143: extern "C" {
! 144: #endif
! 145: char nm_test_var;
! 146: void nm_test_func(){}
! 147: #ifdef __cplusplus
! 148: }
! 149: #endif
! 150: int main(){nm_test_var='a';nm_test_func;return 0;}
! 151: EOF
! 152:
! 153: if AC_TRY_EVAL(ac_compile); then
! 154: # Now try to grab the symbols.
! 155: ac_nlist=conftest.nm
! 156:
! 157: if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
! 158:
! 159: # Try sorting and uniquifying the output.
! 160: if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
! 161: mv -f "$ac_nlist"T "$ac_nlist"
! 162: else
! 163: rm -f "$ac_nlist"T
! 164: fi
! 165:
! 166: # Make sure that we snagged all the symbols we need.
! 167: if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
! 168: if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
! 169: cat <<EOF > conftest.c
! 170: #ifdef __cplusplus
! 171: extern "C" {
! 172: #endif
! 173:
! 174: EOF
! 175: # Now generate the symbol file.
! 176: eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
! 177:
! 178: cat <<EOF >> conftest.c
! 179: #if defined (__STDC__) && __STDC__
! 180: # define lt_ptr_t void *
! 181: #else
! 182: # define lt_ptr_t char *
! 183: # define const
! 184: #endif
! 185:
! 186: /* The mapping between symbol names and symbols. */
! 187: const struct {
! 188: const char *name;
! 189: lt_ptr_t address;
! 190: }
! 191: changequote(,)dnl
! 192: lt_preloaded_symbols[] =
! 193: changequote([,])dnl
! 194: {
! 195: EOF
! 196: sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
! 197: cat <<\EOF >> conftest.c
! 198: {0, (lt_ptr_t) 0}
! 199: };
! 200:
! 201: #ifdef __cplusplus
! 202: }
! 203: #endif
! 204: EOF
! 205: # Now try linking the two files.
! 206: mv conftest.$ac_objext conftstm.$ac_objext
! 207: ac_save_LIBS="$LIBS"
! 208: ac_save_CFLAGS="$CFLAGS"
! 209: LIBS="conftstm.$ac_objext"
! 210: CFLAGS="$CFLAGS$no_builtin_flag"
! 211: if AC_TRY_EVAL(ac_link) && test -s conftest; then
! 212: ac_pipe_works=yes
! 213: else
! 214: echo "configure: failed program was:" >&AC_FD_CC
! 215: cat conftest.c >&AC_FD_CC
! 216: fi
! 217: LIBS="$ac_save_LIBS"
! 218: CFLAGS="$ac_save_CFLAGS"
! 219: else
! 220: echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
! 221: fi
! 222: else
! 223: echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC
! 224: fi
! 225: else
! 226: echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
! 227: fi
! 228: else
! 229: echo "$progname: failed program was:" >&AC_FD_CC
! 230: cat conftest.c >&AC_FD_CC
! 231: fi
! 232: rm -rf conftest* conftst*
! 233:
! 234: # Do not use the global_symbol_pipe unless it works.
! 235: if test "$ac_pipe_works" = yes; then
! 236: if test x"$ac_symprfx" = x"_"; then
! 237: ac_cv_sys_symbol_underscore=yes
! 238: else
! 239: ac_cv_sys_symbol_underscore=no
! 240: fi
! 241: break
! 242: else
! 243: ac_cv_sys_global_symbol_pipe=
! 244: fi
! 245: done
! 246: ])
! 247:
! 248: ac_result=yes
! 249: if test -z "$ac_cv_sys_global_symbol_pipe"; then
! 250: ac_result=no
! 251: fi
! 252: AC_MSG_RESULT($ac_result)
! 253:
! 254: dnl does the compiler prefix global symbols with an underscore?
! 255: AC_MSG_CHECKING([for _ prefix in compiled symbols])
! 256: AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
! 257: [ac_cv_sys_symbol_underscore=no
! 258: cat > conftest.$ac_ext <<EOF
! 259: void nm_test_func(){}
! 260: int main(){nm_test_func;return 0;}
! 261: EOF
! 262: if AC_TRY_EVAL(ac_compile); then
! 263: # Now try to grab the symbols.
! 264: ac_nlist=conftest.nm
! 265: if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
! 266: # See whether the symbols have a leading underscore.
! 267: if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
! 268: ac_cv_sys_symbol_underscore=yes
! 269: else
! 270: if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
! 271: :
! 272: else
! 273: echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
! 274: fi
! 275: fi
! 276: else
! 277: echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
! 278: fi
! 279: else
! 280: echo "configure: failed program was:" >&AC_FD_CC
! 281: cat conftest.c >&AC_FD_CC
! 282: fi
! 283: rm -rf conftest*
! 284: ])
! 285: AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
! 286:
! 287: if test x"$ac_cv_sys_symbol_underscore" = xyes; then
! 288: if test x"$ac_cv_func_dlopen" = xyes ||
! 289: test x"$ac_cv_lib_dl_dlopen" = xyes ; then
! 290: AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
! 291: libltdl_cv_need_uscore, [dnl
! 292: AC_TRY_RUN([
! 293: #if HAVE_DLFCN_H
! 294: #include <dlfcn.h>
! 295: #endif
! 296:
! 297: #include <stdio.h>
! 298:
! 299: #ifdef RTLD_GLOBAL
! 300: # define LTDL_GLOBAL RTLD_GLOBAL
! 301: #else
! 302: # ifdef DL_GLOBAL
! 303: # define LTDL_GLOBAL DL_GLOBAL
! 304: # else
! 305: # define LTDL_GLOBAL 0
! 306: # endif
! 307: #endif
! 308:
! 309: /* We may have to define LTDL_LAZY_OR_NOW in the command line if we
! 310: find out it does not work in some platform. */
! 311: #ifndef LTDL_LAZY_OR_NOW
! 312: # ifdef RTLD_LAZY
! 313: # define LTDL_LAZY_OR_NOW RTLD_LAZY
! 314: # else
! 315: # ifdef DL_LAZY
! 316: # define LTDL_LAZY_OR_NOW DL_LAZY
! 317: # else
! 318: # ifdef RTLD_NOW
! 319: # define LTDL_LAZY_OR_NOW RTLD_NOW
! 320: # else
! 321: # ifdef DL_NOW
! 322: # define LTDL_LAZY_OR_NOW DL_NOW
! 323: # else
! 324: # define LTDL_LAZY_OR_NOW 0
! 325: # endif
! 326: # endif
! 327: # endif
! 328: # endif
! 329: #endif
! 330:
! 331: fnord() { int i=42;}
! 332: main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
! 333: if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
! 334: if(ptr1 && !ptr2) { dlclose(self); exit(0); } } exit(1); }
! 335: ], libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes,
! 336: libltdl_cv_need_uscore=cross
! 337: )])
! 338: fi
! 339: fi
! 340:
! 341: if test x"$libltdl_cv_need_uscore" = xyes; then
! 342: AC_DEFINE(NEED_USCORE, 1,
! 343: [Define if dlsym() requires a leading underscode in symbol names. ])
! 344: fi
! 345:
! 346: dnl Output the makefile
! 347: AC_OUTPUT(Makefile)
! 348:
! 349: # Local Variables:
! 350: # mode:shell-script
! 351: # sh-indentation:2
! 352: # End:
E-mail: