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
+