summaryrefslogtreecommitdiff
path: root/src/Makefile.am
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2013-01-25 17:11:44 -0500
committerMorgan Deters <mdeters@cs.nyu.edu>2013-02-16 15:14:55 -0500
commit72832c1a749e4bde8d16930b0f59e5db9810cafc (patch)
treeee86841b13d5fa8e020e938fdcc79059a9177d47 /src/Makefile.am
parentd389114bc99897fc7ea3c744194225ebab368851 (diff)
Fix version identification for new git repository.
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am41
1 files changed, 36 insertions, 5 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 1d54bc2a8..3087d934c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,8 +30,8 @@ libcvc4_la_LDFLAGS = -version-info $(LIBCVC4_VERSION)
# as a C library, which messes up exception handling support)
nodist_EXTRA_libcvc4_noinst_la_SOURCES = dummy.cpp
nodist_EXTRA_libcvc4_la_SOURCES = dummy.cpp
-libcvc4_noinst_la_SOURCES = subversion_versioninfo.cpp
-libcvc4_la_SOURCES = subversion_versioninfo.cpp
+libcvc4_noinst_la_SOURCES = git_versioninfo.cpp svn_versioninfo.cpp
+libcvc4_la_SOURCES = git_versioninfo.cpp svn_versioninfo.cpp
libcvc4_la_LIBADD = \
@builddir@/options/liboptions.la \
@builddir@/util/libutil.la \
@@ -67,9 +67,12 @@ libcvc4_noinst_la_LIBADD += \
endif
CLEANFILES = \
- subversion_versioninfo.cpp \
+ svn_versioninfo.cpp \
svninfo.tmp \
- svninfo
+ svninfo \
+ git_versioninfo.cpp \
+ gitinfo.tmp \
+ gitinfo
EXTRA_DIST = \
include/cvc4_private_library.h \
@@ -80,7 +83,7 @@ EXTRA_DIST = \
include/cvc4.h \
cvc4.i
-subversion_versioninfo.cpp: svninfo
+svn_versioninfo.cpp: svninfo
$(AM_V_GEN)( \
if test -s svninfo; then \
issvn=true; \
@@ -108,6 +111,34 @@ svninfo: svninfo.tmp
svninfo.tmp:
$(AM_V_GEN)(cd "$(top_srcdir)" && svn info && echo "Modifications: `test -z \"\`svn status -q\`\" && echo false || echo true`") >"$@" 2>/dev/null || true
+git_versioninfo.cpp: gitinfo
+ $(AM_V_GEN)( \
+ if test -s gitinfo; then \
+ isgit=true; \
+ branch=`head -1 gitinfo`; \
+ rev=`head -2 gitinfo | tail -1 | awk '{print$$1}'`; \
+ mods=`grep '^Modifications: ' gitinfo | awk '{print$$2}'`; \
+ else \
+ isgit=false; \
+ branch=unknown; \
+ rev=0; \
+ mods=false; \
+ fi; \
+ echo "#include \"util/configuration.h\""; \
+ echo "const bool ::CVC4::Configuration::IS_GIT_BUILD = $$isgit;"; \
+ echo "const char* const ::CVC4::Configuration::GIT_BRANCH_NAME = \"$$branch\";"; \
+ echo "const char* const ::CVC4::Configuration::GIT_COMMIT = \"$$rev\";"; \
+ echo "const bool ::CVC4::Configuration::GIT_HAS_MODIFICATIONS = $$mods;"; \
+ ) >"$@"
+# This .tmp business is to keep from having to re-compile options.cpp
+# (and then re-link the libraries) if nothing has changed.
+gitinfo: gitinfo.tmp
+ $(AM_V_GEN)diff -q gitinfo.tmp gitinfo &>/dev/null || mv gitinfo.tmp gitinfo || true
+# .PHONY ensures the .tmp version is always rebuilt (to check for any changes)
+.PHONY: gitinfo.tmp
+gitinfo.tmp:
+ $(AM_V_GEN)(cd "$(top_srcdir)" && sed 's,^ref: refs/heads/,,' .git/HEAD && git show-ref refs/heads/`sed 's,^ref: refs/heads/,,' .git/HEAD` && echo "Modifications: `test -z \"\`git status -s -uno\`\" && echo false || echo true`") >"$@" 2>/dev/null || true
+
install-data-local:
(echo include/cvc4.h; \
echo include/cvc4_public.h; \
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback