1 |
douglas |
63 |
dnl TEST_APACHE_VERSION(RELEASE, [MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) |
2 |
|
|
dnl Test for Apache |
3 |
|
|
dnl |
4 |
|
|
AC_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 |
|
|
|
25 |
|
|
char* 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 |
|
|
|
38 |
|
|
int 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 |
|
|
|
84 |
|
|
int 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 |
|
|
]) |