mirror of https://github.com/postgres/postgres
Interfaced a lot of the custom tests to the config.cache, in the process made them separate macros and grouped them out into files. Made naming adjustments. Removed a couple of useless/unused configure tests. Disabled C++ by default. C++ is no more special than Perl, Python, and Tcl. And it breaks equally often. :(REL7_1_STABLE
parent
b4182b1327
commit
06cd0f1a32
@ -0,0 +1,65 @@ |
||||
# $Header: /cvsroot/pgsql/config/ac_func_accept_argtypes.m4,v 1.1 2000/06/11 11:39:46 petere Exp $ |
||||
# This comes from the official Autoconf macro archive at |
||||
# <http://research.cys.de/autoconf-archive/> |
||||
# (I removed the $ before the Id CVS keyword below.) |
||||
|
||||
|
||||
dnl @synopsis AC_FUNC_ACCEPT_ARGTYPES |
||||
dnl |
||||
dnl Checks the data types of the three arguments to accept(). Results are |
||||
dnl placed into the symbols ACCEPT_TYPE_ARG[123], consistent with the |
||||
dnl following example: |
||||
dnl |
||||
dnl #define ACCEPT_TYPE_ARG1 int |
||||
dnl #define ACCEPT_TYPE_ARG2 struct sockaddr * |
||||
dnl #define ACCEPT_TYPE_ARG3 socklen_t |
||||
dnl |
||||
dnl This macro requires AC_CHECK_HEADERS to have already verified the |
||||
dnl presence or absence of sys/types.h and sys/socket.h. |
||||
dnl |
||||
dnl NOTE: This is just a modified version of the AC_FUNC_SELECT_ARGTYPES |
||||
dnl macro. Credit for that one goes to David MacKenzie et. al. |
||||
dnl |
||||
dnl @version Id: ac_func_accept_argtypes.m4,v 1.1 1999/12/03 11:29:29 simons Exp $ |
||||
dnl @author Daniel Richard G. <skunk@mit.edu> |
||||
dnl |
||||
|
||||
# PostgreSQL local changes: In the original version ACCEPT_TYPE_ARG3 |
||||
# is a pointer type. That's kind of useless because then you can't |
||||
# use the macro to define a corresponding variable. We also make the |
||||
# reasonable(?) assumption that you can use arg3 for getsocktype etc. |
||||
# as well (i.e., anywhere POSIX.2 has socklen_t). |
||||
|
||||
AC_DEFUN(AC_FUNC_ACCEPT_ARGTYPES, |
||||
[AC_MSG_CHECKING([types of arguments for accept()]) |
||||
AC_CACHE_VAL(ac_cv_func_accept_arg1,dnl |
||||
[AC_CACHE_VAL(ac_cv_func_accept_arg2,dnl |
||||
[AC_CACHE_VAL(ac_cv_func_accept_arg3,dnl |
||||
[for ac_cv_func_accept_arg1 in 'int' 'unsigned int'; do |
||||
for ac_cv_func_accept_arg2 in 'struct sockaddr *' 'void *'; do |
||||
for ac_cv_func_accept_arg3 in 'socklen_t' 'size_t' 'unsigned int' 'int'; do |
||||
AC_TRY_COMPILE(dnl |
||||
[#ifdef HAVE_SYS_TYPES_H |
||||
#include <sys/types.h> |
||||
#endif |
||||
#ifdef HAVE_SYS_SOCKET_H |
||||
#include <sys/socket.h> |
||||
#endif |
||||
extern accept ($ac_cv_func_accept_arg1, $ac_cv_func_accept_arg2, $ac_cv_func_accept_arg3 *);],,dnl |
||||
[ac_not_found=no ; break 3], ac_not_found=yes) |
||||
done |
||||
done |
||||
done |
||||
])dnl AC_CACHE_VAL |
||||
])dnl AC_CACHE_VAL |
||||
])dnl AC_CACHE_VAL |
||||
if test "$ac_not_found" = yes; then |
||||
ac_cv_func_accept_arg1=int |
||||
ac_cv_func_accept_arg2='struct sockaddr *' |
||||
ac_cv_func_accept_arg3='socklen_t' |
||||
fi |
||||
AC_MSG_RESULT([$ac_cv_func_accept_arg1, $ac_cv_func_accept_arg2, $ac_cv_func_accept_arg3 *]) |
||||
AC_DEFINE_UNQUOTED(ACCEPT_TYPE_ARG1,$ac_cv_func_accept_arg1) |
||||
AC_DEFINE_UNQUOTED(ACCEPT_TYPE_ARG2,$ac_cv_func_accept_arg2) |
||||
AC_DEFINE_UNQUOTED(ACCEPT_TYPE_ARG3,$ac_cv_func_accept_arg3) |
||||
]) |
@ -0,0 +1,120 @@ |
||||
# Macros to detect C compiler features |
||||
# $Header: /cvsroot/pgsql/config/c-compiler.m4,v 1.1 2000/06/11 11:39:46 petere Exp $ |
||||
|
||||
|
||||
# PGAC_C_SIGNED |
||||
# ------------- |
||||
# Check if the C compiler understands signed types. |
||||
# (Of course any ISO C compiler should, what is this still doing here?) |
||||
AC_DEFUN([PGAC_C_SIGNED], |
||||
[AC_CACHE_CHECK(for signed types, pgac_cv_c_signed, |
||||
[AC_TRY_COMPILE([], |
||||
[signed char c; signed short s; signed int i;], |
||||
[pgac_cv_c_signed=yes], |
||||
[pgac_cv_c_signed=no])]) |
||||
if test x"$pgac_cv_c_signed" = xno ; then |
||||
AC_DEFINE(signed,, [Define empty if the C compiler does not understand signed types]) |
||||
fi])# PGAC_C_SIGNED |
||||
|
||||
|
||||
|
||||
# PGAC_C_VOLATILE |
||||
# --------------- |
||||
# Check if the C compiler understands `volatile'. Note that if it doesn't |
||||
# then this will potentially break the program semantics. |
||||
AC_DEFUN([PGAC_C_VOLATILE], |
||||
[AC_CACHE_CHECK(for volatile, pgac_cv_c_volatile, |
||||
[AC_TRY_COMPILE([], |
||||
[extern volatile int i;], |
||||
[pgac_cv_c_volatile=yes], |
||||
[pgac_cv_c_volatile=no])]) |
||||
if test x"$pgac_cv_c_volatile" = xno ; then |
||||
AC_DEFINE(volatile,, [Define empty if the C compiler does not understand `volatile']) |
||||
fi])# PGAC_C_VOLATILE |
||||
|
||||
|
||||
|
||||
# PGAC_TYPE_64BIT_INT(TYPE) |
||||
# ------------------------- |
||||
# Check if TYPE is a working 64 bit integer type. Set HAVE_TYPE_64 to |
||||
# yes or no respectively, and define HAVE_TYPE_64 if yes. |
||||
AC_DEFUN([PGAC_TYPE_64BIT_INT], |
||||
[define([Ac_define], [translit([have_$1_64], [a-z *], [A-Z_P])])dnl |
||||
define([Ac_cachevar], [translit([pgac_cv_type_$1_64], [ *], [_p])])dnl |
||||
AC_CACHE_CHECK([whether $1 is 64 bits], [Ac_cachevar], |
||||
[AC_TRY_RUN( |
||||
[typedef $1 int64; |
||||
|
||||
/* |
||||
* These are globals to discourage the compiler from folding all the |
||||
* arithmetic tests down to compile-time constants. |
||||
*/ |
||||
int64 a = 20000001; |
||||
int64 b = 40000005; |
||||
|
||||
int does_int64_work() |
||||
{ |
||||
int64 c,d; |
||||
|
||||
if (sizeof(int64) != 8) |
||||
return 0; /* definitely not the right size */ |
||||
|
||||
/* Do perfunctory checks to see if 64-bit arithmetic seems to work */ |
||||
c = a * b; |
||||
d = (c + b) / b; |
||||
if (d != a+1) |
||||
return 0; |
||||
return 1; |
||||
} |
||||
main() { |
||||
exit(! does_int64_work()); |
||||
}], |
||||
[Ac_cachevar=yes], |
||||
[Ac_cachevar=no], |
||||
[Ac_cachevar=no |
||||
dnl We will do better here with Autoconf 2.50 |
||||
AC_MSG_WARN([64 bit arithmetic disabled when cross-compiling])])]) |
||||
|
||||
Ac_define=$Ac_cachevar |
||||
if test x"$Ac_cachevar" = xyes ; then |
||||
AC_DEFINE(Ac_define,, [Set to 1 if `]$1[' is 64 bits]) |
||||
fi |
||||
undefine([Ac_define])dnl |
||||
undefine([Ac_cachevar])dnl |
||||
])# PGAC_TYPE_64BIT_INT |
||||
|
||||
|
||||
|
||||
# PGAC_CHECK_ALIGNOF(TYPE) |
||||
# ------------------------ |
||||
# Find the alignment requirement of the given type. Define the result |
||||
# as ALIGNOF_TYPE. If cross-compiling, sizeof(type) is used as a |
||||
# default assumption. |
||||
# |
||||
# This is modeled on the standard autoconf macro AC_CHECK_SIZEOF. |
||||
# That macro never got any points for style. |
||||
AC_DEFUN([PGAC_CHECK_ALIGNOF], |
||||
[changequote(<<, >>)dnl |
||||
dnl The name to #define. |
||||
define(<<AC_TYPE_NAME>>, translit(alignof_$1, [a-z *], [A-Z_P]))dnl |
||||
dnl The cache variable name. |
||||
define(<<AC_CV_NAME>>, translit(pgac_cv_alignof_$1, [ *], [_p]))dnl |
||||
changequote([, ])dnl |
||||
AC_MSG_CHECKING(alignment of $1) |
||||
AC_CACHE_VAL(AC_CV_NAME, |
||||
[AC_TRY_RUN([#include <stdio.h> |
||||
struct { char filler; $1 field; } mystruct; |
||||
main() |
||||
{ |
||||
FILE *f=fopen("conftestval", "w"); |
||||
if (!f) exit(1); |
||||
fprintf(f, "%d\n", ((char*) & mystruct.field) - ((char*) & mystruct)); |
||||
exit(0); |
||||
}], AC_CV_NAME=`cat conftestval`, |
||||
AC_CV_NAME='sizeof($1)', |
||||
AC_CV_NAME='sizeof($1)')])dnl |
||||
AC_MSG_RESULT($AC_CV_NAME) |
||||
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The alignment requirement of a `]$1[']) |
||||
undefine([AC_TYPE_NAME])dnl |
||||
undefine([AC_CV_NAME])dnl |
||||
])# PGAC_CHECK_ALIGNOF |
@ -0,0 +1,79 @@ |
||||
# Macros that test various C library quirks |
||||
# $Header: /cvsroot/pgsql/config/c-library.m4,v 1.1 2000/06/11 11:39:46 petere Exp $ |
||||
|
||||
|
||||
# PGAC_VAR_INT_TIMEZONE |
||||
# --------------------- |
||||
# Check if the global variable `timezone' exists. If so, define |
||||
# HAVE_INT_TIMEZONE. |
||||
AC_DEFUN([PGAC_VAR_INT_TIMEZONE], |
||||
[AC_CACHE_CHECK(for int timezone, pgac_cv_var_int_timezone, |
||||
[AC_TRY_LINK([#include <time.h>], |
||||
[int res = timezone / 60;], |
||||
[pgac_cv_var_int_timezone=yes], |
||||
[pgac_cv_var_int_timezone=no])]) |
||||
if test x"$pgac_cv_var_int_timezone" = xyes ; then |
||||
AC_DEFINE(HAVE_INT_TIMEZONE,, [Set to 1 if you have the global variable timezone]) |
||||
fi])# PGAC_VAR_INT_TIMEZONE |
||||
|
||||
|
||||
# PGAC_FUNC_GETTIMEOFDAY_1ARG |
||||
# --------------------------- |
||||
# Check if gettimeofday() has only one arguments. (Normal is two.) |
||||
# If so, define GETTIMEOFDAY_1ARG. |
||||
AC_DEFUN([PGAC_FUNC_GETTIMEOFDAY_1ARG], |
||||
[AC_CACHE_CHECK(whether gettimeofday takes only one argument, |
||||
pgac_cv_func_gettimeofday_1arg, |
||||
[AC_TRY_COMPILE([#include <sys/time.h>], |
||||
[struct timeval *tp; |
||||
struct timezone *tzp; |
||||
gettimeofday(tp,tzp);], |
||||
[pgac_cv_func_gettimeofday_1arg=no], |
||||
[pgac_cv_func_gettimeofday_1arg=yes])]) |
||||
if test x"$pgac_cv_func_gettimeofday_1arg" = xyes ; then |
||||
AC_DEFINE(GETTIMEOFDAY_1ARG,, [Set to 1 if gettimeofday() takes only 1 argument]) |
||||
fi])# PGAC_FUNC_GETTIMEOFDAY_1ARG |
||||
|
||||
|
||||
# PGAC_UNION_SEMUN |
||||
# ---------------- |
||||
# Check if `union semun' exists. Define HAVE_UNION_SEMUN if so. |
||||
# If it doesn't then one could define it as |
||||
# union semun { int val; struct semid_ds *buf; unsigned short *array; } |
||||
AC_DEFUN([PGAC_UNION_SEMUN], |
||||
[AC_CACHE_CHECK(for union semun, pgac_cv_union_semun, |
||||
[AC_TRY_COMPILE([#include <sys/types.h> |
||||
#include <sys/ipc.h> |
||||
#include <sys/sem.h>], |
||||
[union semun semun;], |
||||
[pgac_cv_union_semun=yes], |
||||
[pgac_cv_union_semun=no])]) |
||||
if test x"$pgac_cv_union_semun" = xyes ; then |
||||
AC_DEFINE(HAVE_UNION_SEMUN,, [Set to 1 if you have `union semun']) |
||||
fi])# PGAC_UNION_SEMUN |
||||
|
||||
|
||||
# PGAC_FUNC_POSIX_SIGNALS |
||||
# ----------------------- |
||||
# Check to see if the machine has the POSIX signal interface. Define |
||||
# HAVE_POSIX_SIGNALS if so. Also set the output variable HAVE_POSIX_SIGNALS |
||||
# to yes or no. |
||||
# |
||||
# Note that this test only compiles a test program, it doesn't check |
||||
# whether the routines actually work. If that becomes a problem, make |
||||
# a fancier check. |
||||
AC_DEFUN([PGAC_FUNC_POSIX_SIGNALS], |
||||
[AC_CACHE_CHECK(for POSIX signal interface, pgac_cv_func_posix_signals, |
||||
[AC_TRY_LINK([#include <signal.h> |
||||
], |
||||
[struct sigaction act, oact; |
||||
sigemptyset(&act.sa_mask); |
||||
act.sa_flags = SA_RESTART; |
||||
sigaction(0, &act, &oact);], |
||||
[pgac_cv_func_posix_signals=yes], |
||||
[pgac_cv_func_posix_signals=no])]) |
||||
if test x"$pgac_cv_func_posix_signals" = xyes ; then |
||||
AC_DEFINE(HAVE_POSIX_SIGNALS,, [Set to 1 if you have the POSIX signal interface]) |
||||
fi |
||||
HAVE_POSIX_SIGNALS=$pgac_cv_func_posix_signals |
||||
AC_SUBST(HAVE_POSIX_SIGNALS)])# PGAC_FUNC_POSIX_SIGNALS |
@ -0,0 +1,67 @@ |
||||
# Macros to detect certain C++ features |
||||
# $Header: /cvsroot/pgsql/config/Attic/cxx.m4,v 1.1 2000/06/11 11:39:46 petere Exp $ |
||||
|
||||
|
||||
# PGAC_CLASS_STRING |
||||
# ----------------- |
||||
# Look for class `string'. First look for the <string> header. If this |
||||
# is found a <string> header then it's probably safe to assume that |
||||
# class string exists. If not, check to make sure that <string.h> |
||||
# defines class `string'. |
||||
AC_DEFUN([PGAC_CLASS_STRING], |
||||
[AC_LANG_SAVE |
||||
AC_LANG_CPLUSPLUS |
||||
AC_CHECK_HEADER(string, |
||||
[AC_DEFINE(HAVE_CXX_STRING_HEADER)]) |
||||
|
||||
if test x"$ac_cv_header_string" != xyes ; then |
||||
AC_CACHE_CHECK([for class string in <string.h>], |
||||
[pgac_cv_class_string_in_string_h], |
||||
[AC_TRY_COMPILE([#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#include <string.h> |
||||
], |
||||
[string foo = "test"], |
||||
[pgac_cv_class_string_in_string_h=yes], |
||||
[pgac_cv_class_string_in_string_h=no])]) |
||||
|
||||
if test x"$pgac_cv_class_string_in_string_h" != xyes ; then |
||||
AC_MSG_ERROR([neither <string> nor <string.h> seem to define the C++ class \`string\']) |
||||
fi |
||||
fi |
||||
AC_LANG_RESTORE])# PGAC_CLASS_STRING |
||||
|
||||
|
||||
# PGAC_CXX_NAMESPACE_STD |
||||
# ---------------------- |
||||
# Check whether the C++ compiler understands `using namespace std'. |
||||
# |
||||
# Note 1: On at least some compilers, it will not work until you've |
||||
# included a header that mentions namespace std. Thus, include the |
||||
# usual suspects before trying it. |
||||
# |
||||
# Note 2: This test does not actually reveal whether the C++ compiler |
||||
# properly understands namespaces in all generality. (GNU C++ 2.8.1 |
||||
# is one that doesn't.) However, we don't care. |
||||
AC_DEFUN([PGAC_CXX_NAMESPACE_STD], |
||||
[AC_REQUIRE([PGAC_CLASS_STRING]) |
||||
AC_CACHE_CHECK([for namespace std in C++], |
||||
pgac_cv_cxx_namespace_std, |
||||
[ |
||||
AC_LANG_SAVE |
||||
AC_LANG_CPLUSPLUS |
||||
AC_TRY_COMPILE( |
||||
[#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#ifdef HAVE_CXX_STRING_HEADER |
||||
#include <string> |
||||
#endif |
||||
using namespace std; |
||||
], [], |
||||
[pgac_cv_cxx_namespace_std=yes], |
||||
[pgac_cv_cxx_namespace_std=no]) |
||||
AC_LANG_RESTORE]) |
||||
|
||||
if test $pgac_cv_cxx_namespace_std = yes ; then |
||||
AC_DEFINE(HAVE_NAMESPACE_STD, 1, [Define to 1 if the C++ compiler understands `using namespace std']) |
||||
fi])# PGAC_CXX_NAMESPACE_STD |
Loading…
Reference in new issue