]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Add code to buildconf that produces an httpd.spec file from
authorGraham Leggett <minfrin@apache.org>
Sat, 12 Apr 2003 17:28:55 +0000 (17:28 +0000)
committerGraham Leggett <minfrin@apache.org>
Sat, 12 Apr 2003 17:28:55 +0000 (17:28 +0000)
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

CHANGES
build/get-version.sh [new file with mode: 0755]
buildconf

diff --git a/CHANGES b/CHANGES
index bab061625fa84937f416d6d132e01bbf8cf2e8a1..72b552264ce5c8c0e8c289d49e4386cc6d3ce2e7 100644 (file)
--- 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 (executable)
index 0000000..c6e6890
--- /dev/null
@@ -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
index 71808600d0594b84a63d988a66e33d0e5e40cd8d..3bfb09b274d9ecf944a7fed0bde6e843813e80f0 100755 (executable)
--- 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