From: Colm MacCarthaigh Date: Tue, 11 Oct 2005 16:05:15 +0000 (+0000) Subject: Backport the APACHE_CHECK_VOID_PTR_LEN and APACHE_CHECK_APxVER autoconf macros X-Git-Tag: 2.1.9~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7547f31650075a3644b7e55409220e306d9f524;p=thirdparty%2Fapache%2Fhttpd.git Backport the APACHE_CHECK_VOID_PTR_LEN and APACHE_CHECK_APxVER autoconf macros from the trunk branch. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@312904 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/acinclude.m4 b/acinclude.m4 index 38d3993fd62..360a47279e2 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -528,3 +528,65 @@ AC_DEFUN(APACHE_EXPORT_ARGUMENTS,[ APACHE_SUBST_EXPANDED_ARG(proxycachedir) ]) +dnl +dnl APACHE_CHECK_APxVER({apr|apu}, major, minor, +dnl [actions-if-ok], [actions-if-not-ok]) +dnl +dnl Checks for APR or APR-util of given major/minor version or later; +dnl if so, runs actions-if-ok; otherwise runs actions-if-not-ok if given. +dnl If the version is not satisfactory and actions-if-not-ok is not +dnl given, then an error is printed and the configure script is aborted. +dnl +dnl The first argument must be [apr] or [apu]. +dnl +AC_DEFUN([APACHE_CHECK_APxVER], [ +define(ap_ckver_major, translit($1, [apru], [APRU])[_MAJOR_VERSION]) +define(ap_ckver_minor, translit($1, [apru], [APRU])[_MINOR_VERSION]) +define(ap_ckver_cvar, [ap_cv_$1ver$2$3]) +define(ap_ckver_name, ifelse([$1],[apr],[APR],[APR-util])) + +ap_ckver_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS `$[$1]_config --includes`" + +AC_CACHE_CHECK([for ap_ckver_name version $2.$3.0 or later], ap_ckver_cvar, [ +AC_EGREP_CPP([good], [ +#include <$1_version.h> +#if ]ap_ckver_major[ > $2 || (]ap_ckver_major[ == $2 && ]ap_ckver_minor[ >= $3) +good +#endif +], [ap_ckver_cvar=yes], [ap_ckver_cvar=no])]) + +if test "$ap_ckver_cvar" = "yes"; then + ifelse([$4],[],[:],[$4]) +else + ifelse([$5],[],[AC_MSG_ERROR([ap_ckver_name version $2.$3.0 or later is required])], [$5]) +fi + +CPPFLAGS="$ap_ckver_CPPFLAGS" + +undefine([ap_ckver_major]) +undefine([ap_ckver_minor]) +undefine([ap_ckver_cvar]) +undefine([ap_ckver_name]) +]) + +dnl +dnl APACHE_CHECK_VOID_PTR_LEN +dnl +dnl Checks if the size of a void pointer is at least as big as a "long" +dnl integer type. +dnl +AC_DEFUN([APACHE_CHECK_VOID_PTR_LEN], [ + +AC_CACHE_CHECK([for void pointer length], [ap_void_ptr_lt_long], +[AC_TRY_RUN([ +int main(void) +{ + return sizeof(void *) < sizeof(long); +}], [ap_void_ptr_lt_long=no], [ap_void_ptr_lt_long=yes], + [ap_void_ptr_lt_long=yes])]) + +if test "$ap_void_ptr_lt_long" = "yes"; then + AC_MSG_ERROR([Size of "void *" is less than size of "long"]) +fi +]) diff --git a/configure.in b/configure.in index ea97e3849e2..86ca5bee678 100644 --- a/configure.in +++ b/configure.in @@ -366,6 +366,9 @@ prctl \ timegm \ ) +dnl confirm that a void pointer is large enough to store a long integer +APACHE_CHECK_VOID_PTR_LEN + dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff, [AC_TRY_COMPILE([#include