From a1e268c54b6702dc9223623fd51a8c96df8335d2 Mon Sep 17 00:00:00 2001 From: Bryan Duxbury Date: Mon, 3 May 2010 21:33:00 +0000 Subject: [PATCH] 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 --- Makefile.am | 2 +- compiler/cpp/Makefile.am | 26 ---------------------- compiler/cpp/src/main.cc | 2 +- compiler/cpp/version.h.in | 1 + configure.ac | 1 + print_version.sh | 47 --------------------------------------- test/Makefile.am | 7 ++++-- 7 files changed, 9 insertions(+), 77 deletions(-) create mode 100644 compiler/cpp/version.h.in delete mode 100755 print_version.sh diff --git a/Makefile.am b/Makefile.am index bd5660100..29648a06a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/compiler/cpp/Makefile.am b/compiler/cpp/Makefile.am index 1d39a358f..892b9a00e 100644 --- a/compiler/cpp/Makefile.am +++ b/compiler/cpp/Makefile.am @@ -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 diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc index 2c83690be..512245bef 100644 --- a/compiler/cpp/src/main.cc +++ b/compiler/cpp/src/main.cc @@ -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); } /** diff --git a/compiler/cpp/version.h.in b/compiler/cpp/version.h.in new file mode 100644 index 000000000..5770ec9b9 --- /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 cc71f536e..098b6cac5 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/print_version.sh b/print_version.sh deleted file mode 100755 index f36fa5ea5..000000000 --- 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 1463a6f46..5fd4f0d7b 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -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 +