From 04472528403b0c43456e46b3fda3669c02949ee2 Mon Sep 17 00:00:00 2001 From: Raja R Harinath Date: Wed, 15 Jul 1998 23:47:31 +0000 Subject: Add `need-declaration.m4'. * Makefile.am (MACROS): Add `need-declaration.m4'. * gnome-support.m4 (AC_REPLACE_FUNCS): Add memmove, strtod, strtol, strtoul. (GCC_NEED_DECLARATIONS): New check. Check whether `gethostname' needs to be declared. * need-declaration.m4: New file. Stolen from EGCS. svn path=/trunk/; revision=281 --- macros/ChangeLog | 11 +++++++++++ macros/Makefile.am | 19 ++++++++++--------- macros/gnome-support.m4 | 11 ++++++++--- macros/need-declaration.m4 | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 macros/need-declaration.m4 diff --git a/macros/ChangeLog b/macros/ChangeLog index 73dce0126f..bd76fc01fd 100644 --- a/macros/ChangeLog +++ b/macros/ChangeLog @@ -1,3 +1,14 @@ +1998-07-15 Raja R Harinath + + * Makefile.am (MACROS): Add `need-declaration.m4'. + + * gnome-support.m4 (AC_REPLACE_FUNCS): Add memmove, strtod, + strtol, strtoul. + (GCC_NEED_DECLARATIONS): New check. Check whether `gethostname' + needs to be declared. + + * need-declaration.m4: New file. Stolen from EGCS. + 1998-07-13 Raja R Harinath * gnome-support.m4 (AC_REPLACE_FUNCS): Add check for `mkstemp'. diff --git a/macros/Makefile.am b/macros/Makefile.am index 5d1b1e378b..28dc457462 100644 --- a/macros/Makefile.am +++ b/macros/Makefile.am @@ -1,16 +1,17 @@ ## Please update this variable if any new macros are created -MACROS= \ +MACROS= \ aclocal-include.m4 \ - curses.m4 \ - gnome-fileutils.m4 \ + curses.m4 \ + gnome-fileutils.m4 \ gnome-guile-checks.m4 \ - gnome-libgtop-check.m4 \ - gnome-libgtop-sysdeps.m4 \ + gnome-libgtop-check.m4 \ + gnome-libgtop-sysdeps.m4 \ gnome-objc-checks.m4 \ - gnome-pthread-check.m4 \ - gnome-support.m4 \ - gnome-x-checks.m4 \ - gnome.m4 + gnome-pthread-check.m4 \ + gnome-support.m4 \ + gnome-x-checks.m4 \ + gnome.m4 \ + need-declaration.m4 EXTRA_DIST=$(MACROS) autogen.sh macros.dep MAINTAINERCLEANFILES=macros.dep diff --git a/macros/gnome-support.m4 b/macros/gnome-support.m4 index 738c175a41..7d5fdbe1b1 100644 --- a/macros/gnome-support.m4 +++ b/macros/gnome-support.m4 @@ -78,10 +78,15 @@ AC_DEFUN([GNOME_SUPPORT_CHECKS],[ LIBOBJS="$LIBOBJS easy-vsnprintf.o", LIBOBJS="$LIBOBJS vsnprintf.o")]) - AC_REPLACE_FUNCS(mkstemp scandir strcasecmp strerror strndup strnlen) - AC_REPLACE_FUNCS(strtok_r vasprintf) + AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen) + AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf) - if test "$LIBOBJS" != ""; then + # see if we need to declare some functions. Solaris is notorious for + # putting functions into the `libc' but not listing them in the headers + AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h) + GCC_NEED_DECLARATIONS(gethostname) + + if test "$LIBOBJS$gcc_need_declarations" != ""; then need_gnome_support=yes fi # Turn our LIBOBJS into libtool objects. This is gross, but it diff --git a/macros/need-declaration.m4 b/macros/need-declaration.m4 new file mode 100644 index 0000000000..d5b7bc66d5 --- /dev/null +++ b/macros/need-declaration.m4 @@ -0,0 +1,42 @@ +dnl See whether we need a declaration for a function. +dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES]) +AC_DEFUN(GCC_NEED_DECLARATION, +[AC_MSG_CHECKING([whether $1 must be declared]) +AC_CACHE_VAL(gcc_cv_decl_needed_$1, +[AC_TRY_COMPILE([ +#include +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +$2], +[char *(*pfn) = (char *(*)) $1], +eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")]) +if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then + AC_MSG_RESULT(yes) + gcc_need_declarations="$gcc_need_declarations $1" + gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + AC_DEFINE_UNQUOTED($gcc_tr_decl) +else + AC_MSG_RESULT(no) +fi +])dnl + +dnl Check multiple functions to see whether each needs a declaration. +dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES]) +AC_DEFUN(GCC_NEED_DECLARATIONS, +[for ac_func in $1 +do +GCC_NEED_DECLARATION($ac_func, $2) +done +] +) -- cgit v1.2.3