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
This commit is contained in:
Bryan Duxbury 2010-05-03 21:33:00 +00:00
parent f7d9f8e489
commit a1e268c54b
7 changed files with 9 additions and 77 deletions

View File

@ -24,5 +24,5 @@ SUBDIRS = compiler/cpp lib test
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

View File

@ -118,29 +118,3 @@ clean-local:
$(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

View File

@ -618,7 +618,7 @@ void generate_all_fingerprints(t_program* program) {
* Prints the version number
*/
void version() {
printf("Thrift version %s-%s\n", THRIFT_VERSION, THRIFT_REVISION);
printf("Thrift version %s\n", THRIFT_VERSION);
}
/**

View File

@ -0,0 +1 @@
#define THRIFT_VERSION "@PACKAGE_VERSION@"

View File

@ -253,6 +253,7 @@ AC_CONFIG_HEADERS(config.h:config.hin)
AC_CONFIG_FILES([
Makefile
compiler/cpp/Makefile
compiler/cpp/version.h
lib/Makefile
lib/cpp/Makefile
lib/cpp/thrift.pc

View File

@ -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

View File

@ -28,7 +28,7 @@ SUBDIRS += rb
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 @@ EXTRA_DIST = \
ThriftTest.thrift \
ZlibTest.cpp \
DenseProtoTest.cpp \
FastbinaryTest.py
FastbinaryTest.py \
ThriftTest_extras.cpp \
DebugProtoTest_extras.cpp