From 1e19a3838d83166b379e64381bf774d543f0b08e Mon Sep 17 00:00:00 2001 From: reid <unknown> Date: Tue, 17 Nov 1998 01:25:00 +0000 Subject: [PATCH] [project @ 1998-11-17 01:24:58 by reid] Added tests required by Hugs --- acconfig.h | 17 +++++++++ aclocal.m4 | 98 ++++++++++++++++++++++++++++++++++++++++++++++++- configure.in | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 215 insertions(+), 2 deletions(-) diff --git a/acconfig.h b/acconfig.h index fb03bfafce78..a3f01168abf4 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 e8e36950ca3f..accbaa368938 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 ff9d968ac381..9bf7dd236f28 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 -- GitLab