From: Graham Leggett Date: Sat, 12 Apr 2003 17:28:55 +0000 (+0000) Subject: Add code to buildconf that produces an httpd.spec file from X-Git-Tag: pre_ajp_proxy~1856 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f54208ac441ce3abce08a0344f11ea3c4b34a195;p=thirdparty%2Fapache%2Fhttpd.git Add code to buildconf that produces an httpd.spec file from httpd.spec.in, using build/get-version.sh from APR. PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99346 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index bab061625fa..72b552264ce 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.1.0-dev [Remove entries to the current 2.0 section below, when backported] + *) Add code to buildconf that produces an httpd.spec file from + httpd.spec.in, using build/get-version.sh from APR. + [Graham Leggett] + *) ssl_toolkit_compat.h and code fixes to build clean on SSLC. [William Rowe, Madhusudan Mathihalli] diff --git a/build/get-version.sh b/build/get-version.sh new file mode 100755 index 00000000000..c6e6890d20d --- /dev/null +++ b/build/get-version.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# +# extract version numbers from a header file +# +# USAGE: get-version.sh CMD VERSION_HEADER PREFIX +# where CMD is one of: all, major, libtool +# where PREFIX is the prefix to {MAJOR|MINOR|PATCH}_VERSION defines +# +# get-version.sh all returns a dotted version number +# get-version.sh major returns just the major version number +# get-version.sh libtool returns a version "libtool -version-info" format +# + +if test $# != 3; then + echo "USAGE: $0 CMD INCLUDEDIR PREFIX" + echo " where CMD is one of: all, major" + exit 1 +fi + +major_sed="/#define.*$3_MAJORVERSION/s/^.*\([0-9][0-9]*\).*$/\1/p" +minor_sed="/#define.*$3_MINORVERSION/s/^.*\([0-9][0-9]*\).*$/\1/p" +patch_sed="/#define.*$3_PATCHLEVEL/s/^[^0-9]*\([0-9][0-9a-z-]*\).*$/\1/p" +mmn_sed="/#define.*$3_MAJOR/s/^[^0-9]*\([0-9][0-9]*\).*$/\1/p" +major="`sed -n $major_sed $2`" +minor="`sed -n $minor_sed $2`" +patch="`sed -n $patch_sed $2`" +mmn="`sed -n $mmn_sed $2`" + +if test "$1" = "all"; then + echo ${major}.${minor}.${patch} +elif test "$1" = "major"; then + echo ${major} +elif test "$1" = "mmn"; then + echo ${mmn} +elif test "$1" = "libtool"; then + # Yes, ${minor}:${patch}:${minor} is correct due to libtool idiocy. + echo ${minor}:${patch}:${minor} +else + echo "ERROR: unknown version CMD ($1)" + exit 1 +fi diff --git a/buildconf b/buildconf index 71808600d05..3bfb09b274d 100755 --- a/buildconf +++ b/buildconf @@ -181,4 +181,21 @@ echo rebuilding configure rm -f config.cache ${AUTOCONF:-autoconf} 2>&1 | grep -v "$cross_compile_warning" +if [ -f `which cut` ]; then + echo rebuilding rpm spec file + ( VMMN=`build/get-version.sh mmn include/ap_mmn.h MODULE_MAGIC_NUMBER` + REVISION=`build/get-version.sh all include/ap_release.h AP_SERVER` + VERSION=`echo $REVISION | cut -d- -s -f1` + RELEASE=`echo $REVISION | cut -d- -s -f2` + if [ "x$VERSION" = "x" ]; then + VERSION=$REVISION + RELEASE=1 + fi + cat ./build/rpm/httpd.spec.in | \ + sed -e "s/APACHE_VERSION/$VERSION/" \ + -e "s/APACHE_RELEASE/$RELEASE/" \ + -e "s/APACHE_MMN/$VMMN/" \ + > httpd.spec ) +fi + exit 0