]> granicus.if.org Git - apache/blob - buildconf
Update transformations.
[apache] / buildconf
1 #!/bin/sh
2 #
3 # Licensed to the Apache Software Foundation (ASF) under one or more
4 # contributor license agreements.  See the NOTICE file distributed with
5 # this work for additional information regarding copyright ownership.
6 # The ASF licenses this file to You under the Apache License, Version 2.0
7 # (the "License"); you may not use this file except in compliance with
8 # the License.  You may obtain a copy of the License at
9 #
10 #     http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 #
19 # buildconf: Build the support scripts needed to compile from a
20 #            checked-out version of the source code.
21
22 # version check for AC_PROG_CC_C99
23 ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;q'`
24 case "$ac_version" in
25 # versions older than 2.50 are denied by AC_PREREQ
26 2.5*)
27     echo WARNING: You are using an outdated version of autoconf.
28     echo WARNING: This may lead to less than optimal performance of httpd.
29     echo WARNING: You should use autoconf 2.60 or newer.
30     sleep 1
31     ;;
32 esac
33
34 # set a couple of defaults for where we should be looking for our support libs.
35 # can be overridden with --with-apr=[dir] and --with-apr-util=[dir]
36
37 apr_src_dir="srclib/apr ../apr"
38 apu_src_dir=""
39
40 while test $# -gt 0 
41 do
42   # Normalize
43   case "$1" in
44   -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
45   *) optarg= ;;
46   esac
47
48   case "$1" in
49   --with-apr=*)
50   apr_src_dir=$optarg
51   ;;
52   esac
53
54   case "$1" in
55   --with-apr-util=*)
56   apu_src_dir=$optarg
57   ;;
58   esac
59
60   shift
61 done
62
63 #
64 # Check to be sure that we have the srclib dependencies checked-out
65 #
66
67 should_exit=0
68 apr_found=0
69 apu_found=0
70 apr_major_version=2
71
72 for dir in $apr_src_dir
73 do
74     if [ -f "${dir}/build/apr_common.m4" ]; then
75         echo "found apr source: ${dir}"
76         apr_src_dir=$dir
77         apr_found=1
78         break
79     fi
80 done
81
82 if [ $apr_found -lt 1 ]; then
83     echo ""
84     echo "APR could not be found automatically."
85     echo ""
86     echo "Please refer to the documentation on APR in the httpd INSTALL file."
87     echo ""
88     should_exit=1
89 else
90     apr_major_version=`grep "#define APR_MAJOR_VERSION" \
91                       $apr_src_dir/include/apr_version.h | sed 's/[^0-9]//g'`
92 fi
93
94 if [ $apr_major_version -lt 2 ] ; then
95     if test -z "$apu_src_dir"; then
96         apu_src_dir=`echo $apr_src_dir | sed -e 's#/apr#/apr-util#g;'`
97         apu_src_dir="$apu_src_dir `echo $apr_src_dir | sed -e 's#/apr#/aprutil#;g'`"
98         apu_src_dir="$apu_src_dir srclib/apr-util ../apr-util"
99     fi
100
101     for dir in $apu_src_dir
102     do
103         if [ -f "${dir}/Makefile.in" ]; then
104             echo "found apr-util source: ${dir}"
105             apu_src_dir=$dir
106             apu_found=1
107             break
108         fi
109     done
110
111     if [ $apu_found -lt 1 ]; then
112         echo ""
113         echo "You are using APR 1.x but APR-util 1.x was not found."
114         echo ""
115         echo "Please refer to the documentation on APR in the httpd INSTALL file."
116         echo ""
117         should_exit=1
118     fi
119 fi
120
121 if [ $should_exit -gt 0 ]; then
122     exit 1
123 fi
124
125 # These are temporary until Roy finishes the other build changes
126 #
127 touch .deps
128 rm -f aclocal.m4
129 rm -f generated_lists
130
131 # Remove autoconf 2.5x cache directories
132 rm -rf autom4te*.cache
133
134 case "`uname`" in
135 *BSD/OS*)
136     ./build/bsd_makefile;;
137 esac
138 #
139 # end temporary stuff
140
141 apr_configure="$apr_src_dir/configure"
142 if [ $apr_major_version -lt 2 ] ; then
143     aprutil_configure="$apu_src_dir/configure"
144 fi
145 config_h_in="include/ap_config_auto.h.in"
146
147 cross_compile_warning="warning: AC_TRY_RUN called without default to allow cross compiling"
148
149 if [ "$apr_src_dir" = "srclib/apr" ]; then
150     echo rebuilding $apr_configure
151     (cd srclib/apr && ./buildconf) || {
152         echo "./buildconf failed for apr"
153         exit 1
154     }
155     rm -f srclib/apr/apr.spec
156 fi
157
158 apr_src_dir=`cd $apr_src_dir && pwd` 
159
160 if [ $apr_major_version -lt 2 ] ; then
161     if [ "$apu_src_dir" = "srclib/apr-util" ]; then
162         echo rebuilding $aprutil_configure
163         (cd srclib/apr-util && ./buildconf --with-apr=$apr_src_dir) || {
164             echo "./buildconf failed for apr-util" 
165             exit 1
166         }
167         rm -f srclib/apr-util/apr-util.spec
168     fi
169
170     apu_src_dir=`cd $apu_src_dir && pwd`
171 fi
172
173 echo copying build files
174 cp $apr_src_dir/build/config.guess $apr_src_dir/build/config.sub \
175    $apr_src_dir/build/PrintPath $apr_src_dir/build/apr_common.m4 \
176    $apr_src_dir/build/find_apr.m4 build
177 if [ $apr_major_version -lt 2 ] ; then
178     cp $apu_src_dir/build/find_apu.m4 build
179 fi
180
181 # Remove any libtool files so one can switch between libtool 1.3
182 # and libtool 1.4 by simply rerunning the buildconf script.
183 (cd build ; rm -f ltconfig ltmain.sh)
184
185 # Optionally copy libtool-1.3.x files
186 if [ -f $apr_src_dir/build/ltconfig ]; then
187     cp $apr_src_dir/build/ltconfig build
188 fi
189 if [ -f $apr_src_dir/build/ltmain.sh ]; then
190     cp $apr_src_dir/build/ltmain.sh build
191 fi
192
193 echo rebuilding $config_h_in
194 rm -f $config_h_in
195 ${AUTOHEADER:-autoheader} 2>&1 | grep -v "$cross_compile_warning"
196
197 echo rebuilding configure
198 rm -f config.cache
199 ${AUTOCONF:-autoconf} 2>&1 | grep -v "$cross_compile_warning"
200
201 # Remove autoconf 2.5x cache directories
202 rm -rf autom4te*.cache
203
204 # Remove possible bsd_converted file
205 rm -rf bsd_converted
206
207 if [ -f `which cut` ]; then
208   echo rebuilding rpm spec file
209   ( VMMN=`build/get-version.sh mmn include/ap_mmn.h MODULE_MAGIC_NUMBER`
210     EPOCH=`build/get-version.sh epoch include/ap_release.h AP_SERVER`
211     REVISION=`build/get-version.sh all include/ap_release.h AP_SERVER`
212     VERSION=`echo $REVISION | cut -d- -s -f1`
213     RELEASE=`echo $REVISION | cut -d- -s -f2`
214     if [ "x$VERSION" = "x" ]; then
215       VERSION=$REVISION
216       RELEASE=1
217     fi
218     cat ./build/rpm/httpd.spec.in | \
219     sed -e "s/APACHE_VERSION/$VERSION/" \
220         -e "s/APACHE_RELEASE/$RELEASE/" \
221         -e "s/APACHE_MMN/$VMMN/" \
222         -e "s/APACHE_EPOCH/$EPOCH/" \
223     > httpd.spec )
224 fi
225
226 # ensure that the ap_expr expression parser sources are never regenerated
227 # when running make
228 echo fixing timestamps for ap_expr sources
229 cd server
230 touch util_expr_parse.y util_expr_scan.l
231 sleep 1
232 touch util_expr_parse.c util_expr_parse.h util_expr_scan.c
233 cd ..
234
235 exit 0