* dynl.c: Only check that HAVE_DLOPEN is defined before loading
[bpt/guile.git] / configure.in
index 53ae0a6..69f685c 100644 (file)
@@ -45,7 +45,7 @@ AC_HEADER_STDC
 AC_HEADER_DIRENT
 AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(libc.h limits.h malloc.h memory.h string.h sys/ioctl.h sys/select.h sys/time.h sys/timeb.h sys/times.h sys/types.h sys/utime.h time.h unistd.h utime.h)
+AC_CHECK_HEADERS(libc.h limits.h malloc.h memory.h string.h regex.h rxposix.h rx/rxposix.h sys/ioctl.h sys/select.h sys/time.h sys/timeb.h sys/times.h sys/types.h sys/utime.h time.h unistd.h utime.h)
 GUILE_HEADER_LIBC_WITH_UNISTD
 
 AC_TYPE_GETGROUPS
@@ -53,7 +53,6 @@ AC_TYPE_SIGNAL
 AC_TYPE_MODE_T
 
 AC_CHECK_LIB(m, main)
-AC_CHECK_LIB(rx, main)
 AC_CHECK_FUNC(gethostbyname)
 if test $ac_cv_func_gethostbyname = no; then
     AC_CHECK_LIB(nsl, gethostbyname)
@@ -62,6 +61,8 @@ AC_CHECK_FUNC(connect)
 if test $ac_cv_func_connect = no; then
     AC_CHECK_LIB(socket, connect)
 fi
+AC_CHECK_LIB(termcap, tgoto)
+AC_CHECK_LIB(readline, readline)
 
 # Checks for dynamic linking
 
@@ -69,6 +70,7 @@ if test "$enable_dynamic_linking" = "yes"; then
 
 AC_CHECK_LIB(dl,dlopen)
 if test "$ac_cv_lib_dl_dlopen" = "yes"; then
+  AC_DEFINE(HAVE_DLOPEN)
   AC_DEFINE(DYNAMIC_LINKING)
 else
 AC_CHECK_LIB(dld,dld_link)
@@ -78,14 +80,57 @@ else
 AC_CHECK_FUNCS(shl_load)
 if test "$ac_cv_func_shl_load" = "yes"; then
   AC_DEFINE(DYNAMIC_LINKING)
+else
+AC_CHECK_FUNCS(dlopen)
+if test "$ac_cv_func_dlopen" = "yes"; then
+  AC_DEFINE(DYNAMIC_LINKING)
+fi
 fi
 fi
 fi
 
 fi
 
+GUILE_DLSYM_USCORE
+
+AC_CHECK_FUNCS(ctermid ftime getcwd geteuid gethostent gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid bzero system)
+
+dnl <GNU-WIN32 hacks>
+
+AC_CHECK_HEADER(sys/un.h, have_sys_un_h=1)
+if test -n "$have_sys_un_h" ; then
+AC_DEFINE(HAVE_UNIX_DOMAIN_SOCKETS)
+fi
+
+AC_CHECK_FUNCS(socketpair getgroups setpwent pause tzset)
+
+dnl I don't know what this prefixing of cygwin32_ is for.
+dnl scmconfig.h wasn't updated with the test results.
+dnl so use AC_CHECK_FUNCS for now.
+
+dnl how about:
+dnl save confdefs.h
+dnl if test $ac_cv_cigwin = yes; then
+dnl   modify confdefs.h
+dnl fi
+dnl AC_CHECK_FUNCS...
+dnl restore confdefs.h
+
+dnl cp confdefs.h confdefs.h.bak
+dnl for func in sethostent endhostent getnetent setnetent endnetent getprotoent endprotoent getservent endservent getnetbyaddr getnetbyname inet_lnaof inet_makeaddr inet_netof ; do
+dnl cp confdefs.h.bak confdefs.h
+dnl cat >> confdefs.h << EOF 
+dnl #ifdef __CYGWIN32__
+dnl #define $func cygwin32_$func
+dnl #endif
+dnl EOF
+dnl AC_CHECK_FUNC($func)
+dnl done
+dnl cp confdefs.h.bak confdefs.h
+
+AC_CHECK_FUNCS(sethostent endhostent getnetent setnetent endnetent getprotoent endprotoent getservent endservent getnetbyaddr getnetbyname inet_lnaof inet_makeaddr inet_netof)
 
-AC_CHECK_FUNCS(ctermid ftime getcwd geteuid gethostent gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid)
+dnl </GNU-WIN32 hacks>
 
 AC_CACHE_CHECK([for restartable system calls], scm_cv_restarts,
        if test $ac_cv_func_sigaction = yes; then
@@ -100,7 +145,20 @@ if test $scm_cv_restarts = yes; then
        AC_DEFINE(HAVE_RESTARTS)
 fi
 
-AC_CHECK_FUNCS(regcomp, [LIBOBJS="regex-posix.o $LIBOBJS"])
+if test "$ac_cv_header_regex_h" = yes ||
+   test "$ac_cv_header_rxposix_h" = yes ||
+   test "$ac_cv_header_rx_rxposix_h" = yes; then
+  GUILE_NAMED_CHECK_FUNC(regcomp, norx, [LIBOBJS="regex-posix.o $LIBOBJS"],
+  [AC_CHECK_LIB(rx, main)
+   GUILE_NAMED_CHECK_FUNC(regcomp, rx, [LIBOBJS="regex-posix.o $LIBOBJS"])]
+  )
+  dnl The following should not be necessary, but for some reason
+  dnl autoheader misses it if we don't include it!
+  if test "$ac_cv_func_regcomp_norx" = yes ||
+     test "$ac_cv_func_regcomp_rx" = yes; then
+    AC_DEFINE(HAVE_REGCOMP)
+  fi
+fi
 
 AC_REPLACE_FUNCS(inet_aton putenv strerror)
 
@@ -263,6 +321,19 @@ if test "$cy_cv_threads_package" != ""; then
   LIBOBJS="$LIBOBJS threads.o"
 fi
 
+#--------------------------------------------------------------------
+#
+# scm_internal_select
+#
+#--------------------------------------------------------------------
+
+if test "$cy_cv_threads_package" != "" &&
+   test $ac_cv_func_gettimeofday = yes &&
+   test $ac_cv_func_select = yes; then
+  AC_DEFINE(GUILE_ISELECT, 1)
+  LIBOBJS="$LIBOBJS iselect.o"
+fi
+
 ## If we're using GCC, ask for aggressive warnings.
 case "$GCC" in
   yes ) CFLAGS="$CFLAGS -Wall -Wpointer-arith" ;;
@@ -278,6 +349,8 @@ LIBLOBJS="`echo ${LIBOBJS} | sed 's/\.o/.lo/g'`"
 AC_SUBST(GUILE_MAJOR_VERSION)
 AC_SUBST(GUILE_MINOR_VERSION)
 AC_SUBST(GUILE_VERSION)
+GUILE_LIBS="$LDFLAGS $THREAD_LIBS $LIBS"
+AC_SUBST(GUILE_LIBS)
 
 dnl timestamping the interpreter and scheme libraries:
 dnl
@@ -319,7 +392,7 @@ i[3456]86-*-*)
        qtmd_h=md/i386.h
        qtmdc_c=$qtsrcdir/md/null.c 
        ;;
-mips-sgi-irix5*)
+mips-sgi-irix[56]*)
        qtmds_s=$qtsrcdir/md/mips-irix5.s
        qtmd_h=md/mips.h
        qtmdc_c=$qtsrcdir/md/null.c
@@ -343,6 +416,12 @@ sparc-*-*)
        qtmds_s=$qtsrcdir/md/sparc.s
        qtdmdb_s=$qtsrcdir/md/sparc_b.s 
        ;;
+alpha-*-*)
+       qtmd_h=md/axp.h
+       qtmdc_c=$qtsrcdir/md/null.c
+       qtmds_s=$qtsrcdir/md/axp.s
+       qtdmdb_s=$qtsrcdir/md/axp_b.s 
+       ;;
 *)
        echo "Unknown configuration; threads package disabled"
        threads_enabled=false
@@ -352,7 +431,7 @@ changequote([, ])
 
 
 if $threads_enabled; then
-   target_libs=libqt.a
+   target_libs=libqthreads.a
 else
    target_libs=
 fi
@@ -370,7 +449,7 @@ AC_SUBST(qtmds_s)
 AC_SUBST(qtmds_o)
 AC_SUBST(qtmdb_s)
 
-AC_OUTPUT([Makefile libguile/Makefile libguile/guile-snarf ice-9/Makefile ice-9/version.scm qt/Makefile qt/qt.h qt/md/Makefile qt/time/Makefile], [chmod +x libguile/guile-snarf])
+AC_OUTPUT([Makefile libguile/Makefile libguile/guile-snarf ice-9/Makefile ice-9/version.scm qt/Makefile qt/qt.h qt/md/Makefile qt/time/Makefile build/Makefile], [chmod +x libguile/guile-snarf])
 
 dnl Local Variables:
 dnl comment-start: "dnl "