THRIFT-770. build: Get 'make dist' to work without first compiling source code
This patch ditches the old print_version.sh method and instead generates the compiler's version.h via the Makefile.
Patch: Anthony Molinaro
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940630 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/Makefile.am b/Makefile.am
index bd56601..29648a0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,5 +24,5 @@
dist-hook:
find $(distdir) -name '.[a-zA-Z0-9]*' | xargs rm -rf
-EXTRA_DIST = bootstrap.sh cleanup.sh print_version.sh doc tutorial contrib \
+EXTRA_DIST = bootstrap.sh cleanup.sh doc tutorial contrib \
CONTRIBUTORS LICENSE CHANGES DISCLAIMER NOTICE
diff --git a/compiler/cpp/Makefile.am b/compiler/cpp/Makefile.am
index 1d39a35..892b9a0 100644
--- a/compiler/cpp/Makefile.am
+++ b/compiler/cpp/Makefile.am
@@ -118,29 +118,3 @@
$(RM) thriftl.cc thrifty.cc thrifty.h version.h
src/main.cc: version.h
-
-# Adding this to BUILT_SOURCES will cause version.h to be
-# regenerated on every "make all" or "make check", which is
-# necessary because it changes whenever we "svn up" or similar.
-# Ideally, we would like this to be regenerated whenever the
-# compiler is rebuilt, but every way we could think of to do
-# that caused unnecessary rebuilds of the compiler.
-BUILT_SOURCES += regen_version_h
-
-THRIFT_VERSION=$(shell /bin/sh $(top_srcdir)/print_version.sh -v)
-THRIFT_REVISION=$(shell /bin/sh $(top_srcdir)/print_version.sh -r)
-
-regen_version_h:
- @printf "Regenerating version.h... "
- @TMPFILE=`mktemp ./version_h.tmp_XXXXXX` ; \
- echo "// AUTOGENERATED, DO NOT EDIT" > $$TMPFILE ; \
- echo '#define THRIFT_VERSION "$(THRIFT_VERSION)"' >> $$TMPFILE ; \
- echo '#define THRIFT_REVISION "$(THRIFT_REVISION)"' >> $$TMPFILE ; \
- if cmp $$TMPFILE version.h >/dev/null ; \
- then \
- rm -f $$TMPFILE ; \
- echo "No changes." ; \
- else \
- mv $$TMPFILE version.h ; \
- echo "Updated." ; \
- fi
diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 2c83690..512245b 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -618,7 +618,7 @@
* Prints the version number
*/
void version() {
- printf("Thrift version %s-%s\n", THRIFT_VERSION, THRIFT_REVISION);
+ printf("Thrift version %s\n", THRIFT_VERSION);
}
/**
diff --git a/compiler/cpp/version.h.in b/compiler/cpp/version.h.in
new file mode 100644
index 0000000..5770ec9
--- /dev/null
+++ b/compiler/cpp/version.h.in
@@ -0,0 +1 @@
+#define THRIFT_VERSION "@PACKAGE_VERSION@"
diff --git a/configure.ac b/configure.ac
index cc71f53..098b6ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -253,6 +253,7 @@
AC_CONFIG_FILES([
Makefile
compiler/cpp/Makefile
+ compiler/cpp/version.h
lib/Makefile
lib/cpp/Makefile
lib/cpp/thrift.pc
diff --git a/print_version.sh b/print_version.sh
deleted file mode 100755
index f36fa5e..0000000
--- a/print_version.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-cd "`dirname "$0"`"
-
-# Computing both the version and the revision on every invocation is wasteful,
-# but it is cheap and avoids the use of nonportable shell functions.
-
-VERSION=`sed -ne 's/^AC_INIT(\[thrift\], \[\(.*\)\])$/\1/p' configure.ac`
-
-if test -d .svn ; then
- REVISION="r`svnversion`"
-elif test -d .git ; then
- SHA1=`git rev-list --max-count=1 --grep='^git-svn-id:' HEAD`
- REVISION=`git cat-file commit $SHA1 | sed -ne 's/^git-svn-id:[^@]*@\([0-9][0-9]*\).*/r\1/p'`
- OFFSET=`git rev-list ^$SHA1 HEAD | wc -l | tr -d ' '`
- if test $OFFSET != 0 ; then
- REVISION="$REVISION-$OFFSET-`git rev-parse --verify HEAD | cut -c 1-7`"
- fi
-else
- REVISION="exported"
-fi
-
-case "$1" in
- -v) echo $VERSION ;;
- -r) echo $REVISION ;;
- -a) echo "$VERSION-$REVISION" ;;
- *) echo "Usage: $0 -v|-r|-a"; exit 1;;
-esac
diff --git a/test/Makefile.am b/test/Makefile.am
index 1463a6f..5fd4f0d 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -28,7 +28,7 @@
endif
noinst_LTLIBRARIES = libtestgencpp.la
-libtestgencpp_la_SOURCES = \
+nodist_libtestgencpp_la_SOURCES = \
gen-cpp/DebugProtoTest_types.cpp \
gen-cpp/OptionalRequiredTest_types.cpp \
gen-cpp/DebugProtoTest_types.cpp \
@@ -175,4 +175,7 @@
ThriftTest.thrift \
ZlibTest.cpp \
DenseProtoTest.cpp \
- FastbinaryTest.py
+ FastbinaryTest.py \
+ ThriftTest_extras.cpp \
+ DebugProtoTest_extras.cpp
+