THRIFT-770. build: Get 'make dist' to work without first compiling source code
authorBryan Duxbury <bryanduxbury@apache.org>
Mon, 3 May 2010 21:33:00 +0000 (21:33 +0000)
committerBryan Duxbury <bryanduxbury@apache.org>
Mon, 3 May 2010 21:33:00 +0000 (21:33 +0000)
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
compiler/cpp/Makefile.am
compiler/cpp/src/main.cc
compiler/cpp/version.h.in [new file with mode: 0644]
configure.ac
print_version.sh [deleted file]
test/Makefile.am

index bd56601..29648a0 100644 (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
index 1d39a35..892b9a0 100644 (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
index 2c83690..512245b 100644 (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);
 }
 
 /**
diff --git a/compiler/cpp/version.h.in b/compiler/cpp/version.h.in
new file mode 100644 (file)
index 0000000..5770ec9
--- /dev/null
@@ -0,0 +1 @@
+#define THRIFT_VERSION "@PACKAGE_VERSION@"
index cc71f53..098b6ca 100644 (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
diff --git a/print_version.sh b/print_version.sh
deleted file mode 100755 (executable)
index f36fa5e..0000000
+++ /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
index 1463a6f..5fd4f0d 100644 (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
+