From: Jim Meyering Date: Thu, 23 Oct 1997 04:53:06 +0000 (+0000) Subject: . X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d830e1ffac19244bea585e2a14845d0835322553;p=pspp . --- diff --git a/m4/decl.m4 b/m4/decl.m4 new file mode 100644 index 0000000000..65aed74ffc --- /dev/null +++ b/m4/decl.m4 @@ -0,0 +1,54 @@ +AC_DEFUN(jm_CHECK_DECLARATION, +[ +test -z "$ac_cv_header_strings_h" && AC_CHECK_HEADERS(strings.h) +test -z "$ac_cv_header_stdlib_h" && AC_CHECK_HEADERS(stdlib.h) +test -z "$ac_cv_header_unistd_h" && AC_CHECK_HEADERS(unistd.h) +AC_MSG_CHECKING([whether $1 is declared]) +AC_CACHE_VAL(jm_cv_func_decl_$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], +[ +#ifndef $1 +char *(*pfn) = (char *(*)) $1 +#endif +], + eval "jm_cv_func_decl_$1=yes", + eval "jm_cv_func_decl_$1=no")]) + +if eval "test \"`echo '$jm_cv_func_decl_'$1`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) +else + AC_MSG_RESULT(no) + ifelse([$3], , , [$3 +])dnl +fi +])dnl + +dnl jm_CHECK_DECLARATIONS(FUNCTION... [, ACTION-IF-DECLARED +dnl [, ACTION-IF-NOT-DECLARED]]) +AC_DEFUN(jm_CHECK_DECLARATIONS, +[ + for jm_func in $1 + do + jm_CHECK_DECLARATION($jm_func, + [ + lower=abcdefghijklmnopqrstuvwxyz + upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ + jm_tr_func=HAVE_DECLARATION_`echo $jm_func | tr $lower $upper` + AC_DEFINE_UNQUOTED($jm_tr_func) $2], $3)dnl + done +]) diff --git a/m4/do-decl.m4 b/m4/do-decl.m4 new file mode 100644 index 0000000000..def399bb71 --- /dev/null +++ b/m4/do-decl.m4 @@ -0,0 +1,14 @@ +dnl This is just a wrapper function to encapsulate this kludge. +dnl Putting it in a separate file like this helps share it between +dnl different packages. +AC_DEFUN(jm_CHECK_DECLS, +[ + if test x = y; then + dnl This code is deliberately never run via ./configure. + dnl FIXME: this is a gross hack to make autoheader put entries + dnl for each of these symbols in the config.h.in. + AC_CHECK_FUNCS(DECLARATION_FREE DECLARATION_MALLOC DECLARATION_REALLOC \ + DECLARATION_STPCPY DECLARATION_STRSTR) + fi + jm_CHECK_DECLARATIONS(free malloc realloc stpcpy strstr) +])