1dnl TEST_APACHE_VERSION(RELEASE, [MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) 2dnl Test for Apache 3dnl 4AC_DEFUN(TEST_APACHE_VERSION, 5[dnl 6 AC_REQUIRE([AC_CANONICAL_TARGET]) 7 releasetest=$1 8 min_apache_version="$2" 9 no_apache="" 10 ac_save_CFLAGS="$CFLAGS" 11 CFLAGS="$CFLAGS $AP_CFLAGS" 12 if test $releasetest -eq 20; then 13 CFLAGS="$CFLAGS $APU_INCLUDES $APR_INCLUDES" 14 fi 15 AC_TRY_RUN([ 16#include <stdio.h> 17#include <stdlib.h> 18#include <string.h> 19#include "httpd.h" 20 21#ifndef AP_SERVER_BASEREVISION 22 #define AP_SERVER_BASEREVISION SERVER_BASEREVISION 23#endif 24 25char* my_strdup (char *str) 26{ 27 char *new_str; 28 29 if (str) { 30 new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); 31 strcpy (new_str, str); 32 } else 33 new_str = NULL; 34 35 return new_str; 36} 37 38int main (int argc, char *argv[]) 39{ 40 int major1, minor1, micro1; 41 int major2, minor2, micro2; 42 char *tmp_version; 43 44 { FILE *fp = fopen("conf.apachetest", "a"); if ( fp ) fclose(fp); } 45 46 tmp_version = my_strdup("$min_apache_version"); 47 if (sscanf(tmp_version, "%d.%d.%d", &major1, &minor1, µ1) != 3) { 48 printf("%s, bad version string\n", "$min_apache_version"); 49 exit(1); 50 } 51 tmp_version = my_strdup(AP_SERVER_BASEREVISION); 52 if (sscanf(tmp_version, "%d.%d.%d", &major2, &minor2, µ2) != 3) { 53 printf("%s, bad version string\n", AP_SERVER_BASEREVISION); 54 exit(1); 55 } 56 57 if ( (major2 == major1) && 58 ( (minor2 > minor1) || 59 ((minor2 == minor1) && (micro2 >= micro1)) ) ) { 60 exit(0); 61 } else { 62 exit(1); 63 } 64} 65 66],, no_apache=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) 67 CFLAGS="$ac_save_CFLAGS" 68 69 if test "x$no_apache" = x ; then 70 ifelse([$3], , :, [$3]) 71 else 72 if test -f conf.apachetest ; then 73 : 74 else 75 echo "*** Could not run Apache test program, checking why..." 76 CFLAGS="$CFLAGS $AP_CFLAGS" 77 if test $releasetest -eq 20; then 78 CFLAGS="$CFLAGS $APU_INCLUDES $APR_INCLUDES" 79 fi 80 AC_TRY_LINK([ 81#include <stdio.h> 82#include "httpd.h" 83 84int main(int argc, char *argv[]) 85{ return 0; } 86#undef main 87#define main K_and_R_C_main 88], [ return 0; ], 89 [ echo "*** The test program compiled, but failed to run. Check config.log" ], 90 [ echo "*** The test program failed to compile or link. Check config.log" ]) 91 CFLAGS="$ac_save_CFLAGS" 92 fi 93 ifelse([$4], , :, [$4]) 94 fi 95 rm -f conf.apachetest 96]) 97