3 # Copyright 1999-2005 The Apache Software Foundation or its licensors, as
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
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.
19 # binbuild.sh - Builds an Apache binary distribution.
20 # Initially written by Lars Eilebrecht <lars apache.org>.
22 OS=`./build/config.guess`
23 PRINTPATH="build/PrintPath"
25 BUILD_DIR="$APFULLDIR/bindist"
26 DEFAULT_DIR="/usr/local/apache2"
28 APDIR=`basename $APDIR`
29 CONFIGPARAM="--enable-layout=Apache --prefix=$BUILD_DIR --enable-mods-shared=most --with-expat=$APFULLDIR/srclib/apr-util/xml/expat --enable-static-support"
30 VER=`echo $APDIR | sed s/httpd-//`
31 TAR="`$PRINTPATH tar`"
32 GZIP="`$PRINTPATH gzip`"
33 COMPRESS="`$PRINTPATH compress`"
34 MD5="`$PRINTPATH md5`"
35 if [ x$MD5 = x ]; then
36 OPENSSL="`$PRINTPATH openssl`"
37 if [ x$OPENSSL != x ]; then
45 USER="`build/buildinfo.sh -n %u@%h%d`"
48 if [ ! -f ./ABOUT_APACHE ]; then
49 echo "ERROR: The current directory contains no valid Apache distribution."
50 echo "Please change the directory to the top level directory of a freshly"
51 echo "unpacked Apache 2.0 source distribution and re-execute the script"
52 echo "'./build/binbuild.sh'."
57 echo "ERROR: The current directory is a CVS checkout of Apache."
58 echo "Only a standard Apache 2.0 source distribution should be used to"
59 echo "create a binary distribution."
63 echo "Building Apache $VER binary distribution..."
64 echo "Platform is \"$OS\"..."
66 ( echo "Build log for Apache binary distribution" && \
67 echo "----------------------------------------------------------------------" && \
68 ./configure $CONFIGPARAM && \
69 echo "----------------------------------------------------------------------" && \
71 rm -rf bindist install-bindist.sh *.bindist
72 echo "----------------------------------------------------------------------" && \
74 echo "----------------------------------------------------------------------" && \
75 make install root="bindist/" && \
76 echo "----------------------------------------------------------------------" && \
78 echo "----------------------------------------------------------------------" && \
80 ) 2>&1 | tee build.log
82 if [ ! -f ./bindist/bin/httpd ]; then
83 echo "ERROR: Failed to build Apache. See \"build.log\" for details."
87 echo "Binary image successfully created..."
89 ./bindist/bin/httpd -v
91 echo "Creating supplementary files..."
94 echo "Apache $VER binary distribution" && \
95 echo "================================" && \
97 echo "This binary distribution is usable on a \"$OS\"" && \
98 echo "system and was built by \"$USER\"." && \
100 echo "The distribution contains all standard Apache modules as shared" && \
101 echo "objects. This allows you to enable or disable particular modules" && \
102 echo "with the LoadModule/AddModule directives in the configuration file" && \
103 echo "without the need to re-compile Apache." && \
105 echo "See \"INSTALL.bindist\" on how to install the distribution." && \
107 echo "NOTE: Please do not send support-related mails to the address mentioned" && \
108 echo " above or to any member of the Apache Group! Support questions" && \
109 echo " should be directed to the forums mentioned at" && \
110 echo " http://httpd.apache.org/lists.html#http-users" && \
111 echo " where some of the Apache team lurk, in the company of many other" && \
112 echo " Apache gurus who should be able to help." && \
113 echo " If you think you found a bug in Apache or have a suggestion please" && \
114 echo " visit the bug report page at http://httpd.apache.org/bug_report.html" && \
116 echo "----------------------------------------------------------------------" && \
117 ./bindist/bin/httpd -V && \
118 echo "----------------------------------------------------------------------" \
120 cp README.bindist ../httpd-$VER-$OS.README
123 echo "Apache $VER binary installation" && \
124 echo "================================" && \
126 echo "To install this binary distribution you have to execute the installation" && \
127 echo "script \"install-bindist.sh\" in the top-level directory of the distribution." && \
129 echo "The script takes the ServerRoot directory into which you want to install" && \
130 echo "Apache as an option. If you omit the option the default path" && \
131 echo "\"$DEFAULT_DIR\" is used." && \
132 echo "Make sure you have write permissions in the target directory, e.g. switch" && \
133 echo "to user \"root\" before you execute the script." && \
135 echo "See \"README.bindist\" for further details about this distribution." && \
137 echo "Please note that this distribution includes the complete Apache source code." && \
138 echo "Therefore you may compile Apache yourself at any time if you have a compiler" && \
139 echo "installation on your system." && \
140 echo "See \"INSTALL\" for details on how to accomplish this." && \
144 sed -e "s%\@default_dir\@%$DEFAULT_DIR%" \
145 -e "s%\@ver\@%$VER%" \
147 build/install-bindist.sh.in > install-bindist.sh
149 chmod 755 install-bindist.sh
151 sed -e "s%$BUILD_DIR%$DEFAULT_DIR%" \
152 -e "s%^ServerAdmin.*%ServerAdmin you@your.address%" \
153 -e "s%#ServerName.*%#ServerName localhost%" \
154 bindist/conf/httpd-std.conf > bindist/conf/httpd.conf
155 cp bindist/conf/httpd.conf bindist/conf/httpd-std.conf
157 for one_file in apachectl envvars envvars-std; do
158 sed -e "s%$BUILD_DIR%$DEFAULT_DIR%" \
159 bindist/bin/$one_file > bindist/bin/$one_file.tmp
160 mv bindist/bin/$one_file.tmp bindist/bin/$one_file
163 echo "Creating distribution archive and readme file..."
165 if [ ".`grep -i error build.log > /dev/null`" != . ]; then
166 echo "ERROR: Failed to build Apache. See \"build.log\" for details."
169 if [ "x$TAR" != "x" ]; then
171 x*os390*) $TAR -cfU ../httpd-$VER-$OS.tar -C .. httpd-$VER;;
172 *) (cd .. && $TAR -cf httpd-$VER-$OS.tar httpd-$VER);;
174 if [ "x$GZIP" != "x" ]; then
175 $GZIP -9 ../httpd-$VER-$OS.tar
176 ARCHIVE=../httpd-$VER-$OS.tar.gz
177 elif [ "x$COMPRESS" != "x" ]; then
178 $COMPRESS ../httpd-$VER-$OS.tar
179 ARCHIVE=../httpd-$VER-$OS.tar.Z
181 echo "WARNING: Could not find a 'gzip' program!"
182 echo " tar archive is not compressed."
183 ARCHIVE=../httpd-$VER-$OS.tar
186 echo "ERROR: Could not find a 'tar' program!"
187 echo " Please execute the following commands manually:"
188 echo " tar -cf ../httpd-$VER-$OS.tar ."
189 echo " gzip -9 ../httpd-$VER-$OS.tar"
192 if [ "x$MD5" != "x" ]; then
193 $MD5 $ARCHIVE > $ARCHIVE.md5
196 if [ -f $ARCHIVE ] && [ -f ../httpd-$VER-$OS.README ]; then
198 echo "You can find the binary archive ($ARCHIVE)"
199 echo "and the readme file (httpd-$VER-$OS.README) in the"
200 echo "parent directory."
203 echo "ERROR: Archive or README is missing."