summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--acconfig.h17
-rw-r--r--aclocal.m498
-rw-r--r--configure.in102
3 files changed, 215 insertions, 2 deletions
diff --git a/acconfig.h b/acconfig.h
index fb03bfafce..a3f01168ab 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -36,12 +36,24 @@
/* Define if time.h or sys/time.h define the altzone variable */
#undef HAVE_ALTZONE
+/* Define if you have /bin/sh */
+#define HAVE_BIN_SH 0
+
+/* Define if you have the GetModuleFileName function. */
+#define HAVE_GETMODULEFILENAME 0
+
/* Define if C compiler supports long long types */
#undef HAVE_LONG_LONG
/* Define if fcntl.h defines O_BINARY */
#undef HAVE_O_BINARY
+/* Define if compiler supports prototypes. */
+#define HAVE_PROTOTYPES 0
+
+/* Define if you have the WinExec function. */
+#define HAVE_WINEXEC 0
+
/* Define if C Symbols have a leading underscore added by the compiler */
#undef LEADING_UNDERSCORE
@@ -51,6 +63,11 @@
/* Define to the type of the timezone variable (usually long or time_t) */
#undef TYPE_TIMEZONE
+/* Define if signal handlers have type void (*)(int)
+ * (Otherwise, they're assumed to have type int (*)(void).)
+ */
+#define VOID_INT_SIGNALS 0
+
/* Leave that blank line there!! Autoheader needs it.
If you're adding to this file, keep in mind:
diff --git a/aclocal.m4 b/aclocal.m4
index e8e36950ca..accbaa3689 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.30 1998/10/07 12:41:42 simonm Exp $
+dnl $Id: aclocal.m4,v 1.31 1998/11/17 01:24:58 reid Exp $
dnl
dnl Extra autoconf macros for the Glasgow fptools
dnl
@@ -498,3 +498,99 @@ else
fi
fi
])])
+
+
+
+dnl Based on AC_TRY_LINK - run iftrue if links cleanly with no warning
+
+dnl FPTOOLS_TRY_LINK_NOWARN(flags,main?,iftrue,iffalse)
+
+AC_DEFUN(FPTOOLS_TRY_LINK_NOWARN,
+[
+ac_save_LIBS="$LIBS"
+LIBS=[$1];
+cat > conftest.$ac_ext <<EOF
+dnl This sometimes fails to find confdefs.h, for some reason.
+dnl [#]line __oline__ "[$]0"
+[#]line __oline__ "configure"
+#include "confdefs.h"
+[$2]
+int t() { return 0; }
+EOF
+if AC_TRY_EVAL(ac_link); then
+ ifelse([$3], , :, [
+ LIBS="$ac_save_LIBS"
+ rm -rf conftest*
+ $3])
+ ifelse([$4], , , [else
+ LIBS="$ac_save_LIBS"
+ rm -rf conftest*
+ $4
+])dnl
+fi
+rm -f conftest*
+]
+)
+
+dnl Loosely based on AC_CHECK_LIB in acgeneral.m4 in autoconf distribution
+
+dnl FPTOOLS_CHECK_FLAG_NOWARN(NAME, FLAG, CODE, iftrue, iffalse)
+
+AC_DEFUN(FPTOOLS_CHECK_FLAG_NOWARN,
+[AC_MSG_CHECKING([for $1])
+ AC_CACHE_VAL(ac_cv_flag_$1,
+ [FPTOOLS_TRY_LINK_NOWARN("$2", [main() { $3; exit(0); } ],
+ eval "ac_cv_flag_$1=yes",
+ eval "ac_cv_flag_$1=no"
+ )]
+ )
+if eval "test \"`echo '$ac_cv_flag_'$1`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ LIBS="$2 $LIBS"
+ $4
+else
+ AC_MSG_RESULT(no)
+ $5
+fi
+])
+
+dnl FPTOOLS_CHECK_LIB_NOWARN(LIBRARY, FUNCTION)
+
+AC_DEFUN(FPTOOLS_CHECK_LIB_NOWARN,
+[FPTOOLS_CHECK_FLAG_NOWARN([function_$2],[],[extern char $2(); $2();],
+[changequote(, )dnl
+ ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ changequote([, ])dnl
+ AC_DEFINE_UNQUOTED($ac_tr_lib)
+],
+[FPTOOLS_CHECK_FLAG_NOWARN([library_$1],[-l$1],[extern char $2(); $2();],
+[changequote(, )dnl
+ ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ changequote([, ])dnl
+ AC_DEFINE_UNQUOTED($ac_tr_lib)
+],
+[]
+)])]
+)
+
+dnl check for prototypes
+dnl
+AC_DEFUN(AC_C_PROTOTYPES,
+[AC_CACHE_CHECK([prototypes], ac_cv_prototypes,
+[AC_TRY_COMPILE([
+void foo(int);
+void foo(i)
+int i; {
+return;
+}
+],
+[int i;],
+ac_cv_prototypes=yes,
+ac_cv_prototypes=no)])
+if test "$ac_cv_prototypes" = yes; then
+AC_DEFINE(HAVE_PROTOTYPES)
+fi
+])
+
+
+# LocalWords: fi
diff --git a/configure.in b/configure.in
index ff9d968ac3..9bf7dd236f 100644
--- a/configure.in
+++ b/configure.in
@@ -382,6 +382,9 @@ AC_PROG_LEX
dnl ** figure out how to do a BSD-ish install
AC_PROG_INSTALL
+dnl If you can run configure, you certainly have /bin/sh
+AC_DEFINE(HAVE_BIN_SH)
+
dnl ** how to invoke `ar' and `ranlib'
FPTOOLS_PROG_AR_AND_RANLIB
@@ -433,11 +436,26 @@ dnl ** check for full ANSI header (.h) files
AC_HEADER_STDC
dnl ** check for specific header (.h) files that we are interested in
-AC_CHECK_HEADERS(dirent.h fcntl.h grp.h malloc.h memory.h nlist.h pwd.h siginfo.h signal.h stdlib.h string.h sys/fault.h sys/file.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h netinet/tcp.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/vadvise.h sys/wait.h termios.h time.h types.h unistd.h utime.h vfork.h readline/readline.h bfd.h)
+AC_CHECK_HEADERS(Files.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdlib.h stdarg.h string.h sys/fault.h sys/file.h sys/ioctl.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h netinet/tcp.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/vadvise.h sys/wait.h termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h readline/readline.h bfd.h)
+
+dnl ** check for DOS include files
+AC_CHECK_HEADERS(dos.h conio.h io.h std.h)
+
+dnl ** check for Windows include files
+AC_CHECK_HEADERS(windows.h)
dnl ** check if it is safe to include both <time.h> and <sys/time.h>
AC_HEADER_TIME
+dnl dynamic loading include files
+AC_CHECK_HEADERS(dlfcn.h dl.h)
+
+dnl ** check for farcalloc (in bcc)
+AC_CHECK_HEADER(alloc.h,AC_CHECK_FUNCS(farcalloc))
+
+dnl ** check for valloc (in sunos, solaris, mips, amiga, next, minix, ultrix)
+AC_CHECK_HEADER(malloc.h,AC_CHECK_FUNCS(valloc))
+
dnl ** how do we get a timezone name, and UTC offset ?
AC_STRUCT_TIMEZONE
@@ -470,6 +488,78 @@ FPTOOLS_C_LONG_LONG
dnl ** can we open files in binary mode?
FPTOOLS_O_BINARY
+dnl ** check for GetModuleFileName and WinExec (windows only)
+dnl Old: AC_CHECK_FUNCS(WinExec GetModuleFileName) dnl Windows
+dnl Doesn't work because the linker can't see the functions if
+dnl you omit the #include <windows.h>. (I've no idea why not...)
+
+FPTOOLS_TRY_LINK_NOWARN(,[
+#if HAVE_WINDOWS_H
+#include <windows.h>
+#endif
+main() {
+ WinExec("",0);
+ exit(0);
+}
+],
+[have_winexec=1],
+[have_winexec=0])
+if test "$have_winexec" = "1"; then
+AC_DEFINE(HAVE_WINEXEC)
+fi
+
+FPTOOLS_TRY_LINK_NOWARN(,[
+#if HAVE_WINDOWS_H
+#include <windows.h>
+#endif
+main() {
+ char* dir;
+ GetModuleFileName((HMODULE)0,dir,0);
+ exit(0);
+}
+],
+[have_getmodulefilename=1],
+[have_getmodulefilename=0])
+if test "$have_getmodulefilename" = "1"; then
+AC_DEFINE(HAVE_GETMODULEFILENAME)
+fi
+
+dnl ** check return type of signal handlers
+dnl Foo: assumes we can use prototypes.
+dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
+dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler,
+dnl [AC_TRY_COMPILE([#include <sys/types.h>
+dnl #include <signal.h>
+dnl #ifdef signal
+dnl #undef signal
+dnl #endif
+dnl void (*signal (int, void (*)(int)))(int);
+dnl ],
+dnl [int i;],
+dnl ac_cv_type_signal_handler=void_int,
+dnl ac_cv_type_signal_handler=int_void)])
+dnl if test "$ac_cv_type_signal_handler" = void_int; then
+dnl AC_DEFINE(VOID_INT_SIGNALS)
+dnl fi
+
+dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
+AC_TYPE_SIGNAL
+if test "$ac_cv_type_signal" = void; then
+AC_DEFINE(VOID_INT_SIGNALS)
+fi
+
+dnl ** check for more functions
+AC_CHECK_FUNCS(strcasecmp _stricmp stricmp strcmpi)
+AC_CHECK_FUNCS(strcmp)
+AC_CHECK_FUNCS(realpath _fullpath)
+AC_CHECK_FUNCS(PBHSetVolSync macsystem)
+AC_CHECK_FUNCS(fgetpos fsetpos fseek ftell)
+AC_CHECK_FUNCS(vsnprintf _vsnprintf)
+AC_CHECK_FUNCS(snprintf _snprintf )
+AC_CHECK_FUNCS(popen _popen )
+AC_CHECK_FUNCS(pclose _pclose )
+
+
dnl ** check for specific library functions that we are interested in
AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect setitimer stat sysconf timelocal times vadvise vfork)
@@ -485,6 +575,13 @@ dnl the order of these tests matters: bfd needs liberty
AC_CHECK_LIB(iberty, xmalloc)
AC_CHECK_LIB(bfd, bfd_init)
+dnl ################################################################
+dnl Check for libraries
+dnl ################################################################
+
+FPTOOLS_CHECK_LIB_NOWARN(dl, dlopen)
+FPTOOLS_CHECK_LIB_NOWARN(dld, shl_load)
+FPTOOLS_CHECK_LIB_NOWARN(m, atan)
dnl --------------------------------------------------
dnl * Miscellaneous feature tests
@@ -496,6 +593,9 @@ AC_FUNC_ALLOCA
dnl ** determine whether or not const works
AC_C_CONST
+dnl ** determine whether ANSI-function prototypes work?
+AC_C_PROTOTYPES
+
dnl ** are we big endian?
AC_C_BIGENDIAN