mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 10:19:26 +00:00
222 lines
6.0 KiB
Plaintext
222 lines
6.0 KiB
Plaintext
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 <stdio.h>
|
|
#ifdef HAVE_STRING_H
|
|
#include <string.h>
|
|
#else
|
|
#ifdef HAVE_STRINGS_H
|
|
#include <strings.h>
|
|
#endif
|
|
#endif
|
|
#ifdef HAVE_STDLIB_H
|
|
#include <stdlib.h>
|
|
#endif
|
|
#ifdef HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
#ifndef HAVE_RINDEX
|
|
#define rindex strrchr
|
|
#endif
|
|
#ifndef HAVE_INDEX
|
|
#define index strchr
|
|
#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_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
|
|
])
|
|
|
|
dnl Check if we have vprintf and possibly _doprnt.
|
|
dnl Note autoconf checks for vprintf even though we care about vfprintf.
|
|
AC_DEFUN(GCC_FUNC_VFPRINTF_DOPRNT,
|
|
[AC_FUNC_VPRINTF
|
|
vfprintf=
|
|
doprint=
|
|
if test $ac_cv_func_vprintf != yes ; then
|
|
vfprintf=vfprintf.o
|
|
if test $ac_cv_func__doprnt != yes ; then
|
|
doprint=doprint.o
|
|
fi
|
|
fi
|
|
AC_SUBST(vfprintf)
|
|
AC_SUBST(doprint)
|
|
])
|
|
|
|
dnl See if the printf functions in libc support %p in format strings.
|
|
AC_DEFUN(GCC_FUNC_PRINTF_PTR,
|
|
[AC_CACHE_CHECK(whether the printf functions support %p,
|
|
gcc_cv_func_printf_ptr,
|
|
[AC_TRY_RUN([#include <stdio.h>
|
|
|
|
main()
|
|
{
|
|
char buf[64];
|
|
char *p = buf, *q = NULL;
|
|
sprintf(buf, "%p", p);
|
|
sscanf(buf, "%p", &q);
|
|
exit (p != q);
|
|
}], gcc_cv_func_printf_ptr=yes, gcc_cv_func_printf_ptr=no,
|
|
gcc_cv_func_printf_ptr=no)
|
|
rm -f core core.* *.core])
|
|
if test $gcc_cv_func_printf_ptr = yes ; then
|
|
AC_DEFINE(HAVE_PRINTF_PTR)
|
|
fi
|
|
])
|
|
|
|
dnl See if symbolic links work and if not, try to substitute either hard links or simple copy.
|
|
AC_DEFUN(GCC_PROG_LN_S,
|
|
[AC_MSG_CHECKING(whether ln -s works)
|
|
AC_CACHE_VAL(gcc_cv_prog_LN_S,
|
|
[rm -f conftestdata_t
|
|
echo >conftestdata_f
|
|
if ln -s conftestdata_f conftestdata_t 2>/dev/null
|
|
then
|
|
gcc_cv_prog_LN_S="ln -s"
|
|
else
|
|
if ln conftestdata_f conftestdata_t 2>/dev/null
|
|
then
|
|
gcc_cv_prog_LN_S=ln
|
|
else
|
|
gcc_cv_prog_LN_S=cp
|
|
fi
|
|
fi
|
|
rm -f conftestdata_f conftestdata_t
|
|
])dnl
|
|
LN_S="$gcc_cv_prog_LN_S"
|
|
if test "$gcc_cv_prog_LN_S" = "ln -s"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
if test "$gcc_cv_prog_LN_S" = "ln"; then
|
|
AC_MSG_RESULT([no, using ln])
|
|
else
|
|
AC_MSG_RESULT([no, and neither does ln, so using cp])
|
|
fi
|
|
fi
|
|
AC_SUBST(LN_S)dnl
|
|
])
|
|
|
|
dnl See if hard links work and if not, try to substitute either symbolic links or simple copy.
|
|
AC_DEFUN(GCC_PROG_LN,
|
|
[AC_MSG_CHECKING(whether ln works)
|
|
AC_CACHE_VAL(gcc_cv_prog_LN,
|
|
[rm -f conftestdata_t
|
|
echo >conftestdata_f
|
|
if ln conftestdata_f conftestdata_t 2>/dev/null
|
|
then
|
|
gcc_cv_prog_LN="ln"
|
|
else
|
|
if ln -s conftestdata_f conftestdata_t 2>/dev/null
|
|
then
|
|
gcc_cv_prog_LN="ln -s"
|
|
else
|
|
gcc_cv_prog_LN=cp
|
|
fi
|
|
fi
|
|
rm -f conftestdata_f conftestdata_t
|
|
])dnl
|
|
LN="$gcc_cv_prog_LN"
|
|
if test "$gcc_cv_prog_LN" = "ln"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
if test "$gcc_cv_prog_LN" = "ln -s"; then
|
|
AC_MSG_RESULT([no, using ln -s])
|
|
else
|
|
AC_MSG_RESULT([no, and neither does ln -s, so using cp])
|
|
fi
|
|
fi
|
|
AC_SUBST(LN)dnl
|
|
])
|
|
|
|
dnl See whether the stage1 host compiler accepts the volatile keyword.
|
|
AC_DEFUN(GCC_C_VOLATILE,
|
|
[AC_CACHE_CHECK([for volatile], gcc_cv_c_volatile,
|
|
[AC_TRY_COMPILE(, [volatile int foo;],
|
|
gcc_cv_c_volatile=yes, gcc_cv_c_volatile=no)])
|
|
if test $gcc_cv_c_volatile = yes ; then
|
|
AC_DEFINE(HAVE_VOLATILE)
|
|
fi
|
|
])
|
|
|
|
AC_DEFUN(EGCS_PROG_INSTALL,
|
|
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
|
|
# Find a good install program. We prefer a C program (faster),
|
|
# so one script is as good as another. But avoid the broken or
|
|
# incompatible versions:
|
|
# SysV /etc/install, /usr/sbin/install
|
|
# SunOS /usr/etc/install
|
|
# IRIX /sbin/install
|
|
# AIX /bin/install
|
|
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
|
|
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
|
# ./install, which can be erroneously created by make from ./install.sh.
|
|
AC_MSG_CHECKING(for a BSD compatible install)
|
|
if test -z "$INSTALL"; then
|
|
AC_CACHE_VAL(ac_cv_path_install,
|
|
[ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
|
|
for ac_dir in $PATH; do
|
|
# Account for people who put trailing slashes in PATH elements.
|
|
case "$ac_dir/" in
|
|
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
|
|
*)
|
|
# OSF1 and SCO ODT 3.0 have their own names for install.
|
|
for ac_prog in ginstall scoinst install; do
|
|
if test -f $ac_dir/$ac_prog; then
|
|
if test $ac_prog = install &&
|
|
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
|
|
# AIX install. It has an incompatible calling convention.
|
|
# OSF/1 installbsd also uses dspmsg, but is usable.
|
|
:
|
|
else
|
|
ac_cv_path_install="$ac_dir/$ac_prog -c"
|
|
break 2
|
|
fi
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
done
|
|
IFS="$ac_save_IFS"
|
|
])dnl
|
|
if test "${ac_cv_path_install+set}" = set; then
|
|
INSTALL="$ac_cv_path_install"
|
|
else
|
|
# As a last resort, use the slow shell script. We don't cache a
|
|
# path for INSTALL within a source directory, because that will
|
|
# break other packages using the cache if that directory is
|
|
# removed, or if the path is relative.
|
|
INSTALL="$ac_install_sh"
|
|
fi
|
|
fi
|
|
dnl We do special magic for INSTALL instead of AC_SUBST, to get
|
|
dnl relative paths right.
|
|
AC_MSG_RESULT($INSTALL)
|
|
AC_SUBST(INSTALL)dnl
|
|
|
|
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
|
|
# It thinks the first close brace ends the variable substitution.
|
|
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
|
AC_SUBST(INSTALL_PROGRAM)dnl
|
|
|
|
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
|
AC_SUBST(INSTALL_DATA)dnl
|
|
])
|