From b96c7ba85781e7ca732aeb05eb940b7bb05ee2a1 Mon Sep 17 00:00:00 2001 From: Daniel Kroening Date: Sun, 1 Jul 2018 11:11:36 +0100 Subject: [PATCH] move build commands for version.h from common to util/ --- CMakeLists.txt | 42 ------------------- jbmc/src/janalyzer/CMakeLists.txt | 2 - .../src/janalyzer/janalyzer_parse_options.cpp | 3 +- jbmc/src/jbmc/CMakeLists.txt | 2 - jbmc/src/jbmc/jbmc_parse_options.cpp | 7 ++-- jbmc/src/jdiff/CMakeLists.txt | 2 - jbmc/src/jdiff/jdiff_parse_options.cpp | 3 +- src/cbmc/CMakeLists.txt | 2 - src/cbmc/Makefile | 2 - src/cbmc/cbmc_parse_options.cpp | 7 ++-- src/cbmc/cbmc_solvers.cpp | 4 +- src/clobber/CMakeLists.txt | 2 - src/clobber/clobber_parse_options.cpp | 5 +-- src/common | 19 +-------- src/goto-analyzer/CMakeLists.txt | 2 - .../goto_analyzer_parse_options.cpp | 25 ++++++----- src/goto-cc/CMakeLists.txt | 2 - src/goto-cc/Makefile | 2 - src/goto-cc/as_mode.cpp | 8 ++-- src/goto-cc/compile.cpp | 3 +- src/goto-cc/gcc_mode.cpp | 18 ++++---- src/goto-cc/goto_cc_mode.cpp | 3 +- src/goto-diff/CMakeLists.txt | 2 - src/goto-diff/goto_diff_parse_options.cpp | 6 +-- src/goto-instrument/CMakeLists.txt | 2 - .../goto_instrument_parse_options.cpp | 6 +-- src/memory-models/CMakeLists.txt | 2 - src/memory-models/mmcc_parse_options.cpp | 2 +- src/util/CMakeLists.txt | 39 +++++++++++++++++ src/util/Makefile | 21 +++++++++- 30 files changed, 105 insertions(+), 140 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ed952e80190..384cb34c5ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,48 +39,6 @@ if(${enable_cbmc_tests}) enable_testing() endif() -# based on https://cmake.org/pipermail/cmake/2010-July/038015.html -find_package(Git) -if(GIT_FOUND) - file(WRITE ${CMAKE_BINARY_DIR}/version.cmake - " - file(STRINGS \${CBMC_SOURCE_DIR}/config.inc - config_inc_v REGEX \"CBMC_VERSION *= *[0-9\.]+\") - string(REGEX REPLACE \"^CBMC_VERSION *= *\" \"\" CBMC_RELEASE \${config_inc_v}) - execute_process( - COMMAND \"${GIT_EXECUTABLE}\" \"describe\" \"--tags\" \"--always\" \"--dirty\" - OUTPUT_VARIABLE GIT_INFO - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - configure_file(\${CUR}/version.h.in version.h) - " - ) -else() - file(WRITE ${CMAKE_BINARY_DIR}/version.cmake - " - file(STRINGS \${CBMC_SOURCE_DIR}/config.inc - config_inc_v REGEX \"CBMC_VERSION *= *[0-9\.]+\") - string(REGEX REPLACE \"^CBMC_VERSION *= *\" \"\" CBMC_RELEASE \${config_inc_v}) - set(GIT_INFO \"n/a\") - configure_file(\${CUR}/version.h.in version.h) - " - ) -endif() - -macro(git_revision target) - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.h.in - "\#define CBMC_VERSION \"@CBMC_RELEASE@ (@GIT_INFO@)\"\n") - add_custom_target( - ${target}-version.h - COMMAND ${CMAKE_COMMAND} - -D CBMC_SOURCE_DIR=${CBMC_SOURCE_DIR} - -D CUR=${CMAKE_CURRENT_BINARY_DIR} - -P ${CMAKE_BINARY_DIR}/version.cmake - ) - add_dependencies(${target} ${target}-version.h) -endmacro() -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - add_subdirectory(src) add_subdirectory(regression) add_subdirectory(unit) diff --git a/jbmc/src/janalyzer/CMakeLists.txt b/jbmc/src/janalyzer/CMakeLists.txt index a9fcbe725a8..f4ff29ae0d4 100644 --- a/jbmc/src/janalyzer/CMakeLists.txt +++ b/jbmc/src/janalyzer/CMakeLists.txt @@ -24,5 +24,3 @@ target_link_libraries(janalyzer-lib # Executable add_executable(janalyzer janalyzer_main.cpp) target_link_libraries(janalyzer janalyzer-lib) - -git_revision(janalyzer-lib) diff --git a/jbmc/src/janalyzer/janalyzer_parse_options.cpp b/jbmc/src/janalyzer/janalyzer_parse_options.cpp index 6d98ee0cbee..aa08282f4aa 100644 --- a/jbmc/src/janalyzer/janalyzer_parse_options.cpp +++ b/jbmc/src/janalyzer/janalyzer_parse_options.cpp @@ -49,6 +49,7 @@ Author: Daniel Kroening, kroening@kroening.com #include #include #include +#include #include #include @@ -56,8 +57,6 @@ Author: Daniel Kroening, kroening@kroening.com #include #include -#include "version.h" - janalyzer_parse_optionst::janalyzer_parse_optionst(int argc, const char **argv) : parse_options_baset(JANALYZER_OPTIONS, argc, argv), messaget(ui_message_handler), diff --git a/jbmc/src/jbmc/CMakeLists.txt b/jbmc/src/jbmc/CMakeLists.txt index b6a6a266fb7..7015ae0fdbe 100644 --- a/jbmc/src/jbmc/CMakeLists.txt +++ b/jbmc/src/jbmc/CMakeLists.txt @@ -29,5 +29,3 @@ target_link_libraries(jbmc-lib # Executable add_executable(jbmc jbmc_main.cpp) target_link_libraries(jbmc jbmc-lib) - -git_revision(jbmc-lib) diff --git a/jbmc/src/jbmc/jbmc_parse_options.cpp b/jbmc/src/jbmc/jbmc_parse_options.cpp index 2bbdfc2391f..7d04c553b96 100644 --- a/jbmc/src/jbmc/jbmc_parse_options.cpp +++ b/jbmc/src/jbmc/jbmc_parse_options.cpp @@ -16,10 +16,11 @@ Author: Daniel Kroening, kroening@kroening.com #include #include -#include #include -#include +#include #include +#include +#include #include @@ -60,8 +61,6 @@ Author: Daniel Kroening, kroening@kroening.com #include #include -#include "version.h" - jbmc_parse_optionst::jbmc_parse_optionst(int argc, const char **argv): parse_options_baset(JBMC_OPTIONS, argc, argv), messaget(ui_message_handler), diff --git a/jbmc/src/jdiff/CMakeLists.txt b/jbmc/src/jdiff/CMakeLists.txt index ee861db2daa..1f1b82e6ad2 100644 --- a/jbmc/src/jdiff/CMakeLists.txt +++ b/jbmc/src/jdiff/CMakeLists.txt @@ -26,5 +26,3 @@ target_link_libraries(jdiff-lib # Executable add_executable(jdiff jdiff_main.cpp) target_link_libraries(jdiff jdiff-lib) - -git_revision(jdiff-lib) diff --git a/jbmc/src/jdiff/jdiff_parse_options.cpp b/jbmc/src/jdiff/jdiff_parse_options.cpp index 43888b72f23..877aef28c1b 100644 --- a/jbmc/src/jdiff/jdiff_parse_options.cpp +++ b/jbmc/src/jdiff/jdiff_parse_options.cpp @@ -20,6 +20,7 @@ Author: Peter Schrammel #include #include #include +#include #include @@ -60,8 +61,6 @@ Author: Peter Schrammel #include #include -#include "version.h" - jdiff_parse_optionst::jdiff_parse_optionst(int argc, const char **argv) : parse_options_baset(JDIFF_OPTIONS, argc, argv), jdiff_languagest(cmdline, ui_message_handler), diff --git a/src/cbmc/CMakeLists.txt b/src/cbmc/CMakeLists.txt index a9deb883d16..b1cae0f8b01 100644 --- a/src/cbmc/CMakeLists.txt +++ b/src/cbmc/CMakeLists.txt @@ -31,5 +31,3 @@ add_if_library(cbmc-lib jsil) # Executable add_executable(cbmc cbmc_main.cpp) target_link_libraries(cbmc cbmc-lib) - -git_revision(cbmc-lib) diff --git a/src/cbmc/Makefile b/src/cbmc/Makefile index 996a0901bdc..e1045b7bc9c 100644 --- a/src/cbmc/Makefile +++ b/src/cbmc/Makefile @@ -63,8 +63,6 @@ CLEANFILES = cbmc$(EXEEXT) all: cbmc$(EXEEXT) -cbmc_solvers$(OBJEXT): $(GIT_INFO_FILE) - ifneq ($(wildcard ../bv_refinement/Makefile),) OBJ += ../bv_refinement/bv_refinement$(LIBEXT) CP_CXXFLAGS += -DHAVE_BV_REFINEMENT diff --git a/src/cbmc/cbmc_parse_options.cpp b/src/cbmc/cbmc_parse_options.cpp index b5ea4553f17..ad64f5e8a17 100644 --- a/src/cbmc/cbmc_parse_options.cpp +++ b/src/cbmc/cbmc_parse_options.cpp @@ -17,9 +17,10 @@ Author: Daniel Kroening, kroening@kroening.com #include #include -#include -#include #include +#include +#include +#include #include @@ -64,8 +65,6 @@ Author: Daniel Kroening, kroening@kroening.com #include "xml_interface.h" -#include "version.h" - cbmc_parse_optionst::cbmc_parse_optionst(int argc, const char **argv): parse_options_baset(CBMC_OPTIONS, argc, argv), xml_interfacet(cmdline), diff --git a/src/cbmc/cbmc_solvers.cpp b/src/cbmc/cbmc_solvers.cpp index 8b216839f92..3668295bf56 100644 --- a/src/cbmc/cbmc_solvers.cpp +++ b/src/cbmc/cbmc_solvers.cpp @@ -15,8 +15,9 @@ Author: Daniel Kroening, kroening@kroening.com #include #include -#include #include +#include +#include #include #include @@ -28,7 +29,6 @@ Author: Daniel Kroening, kroening@kroening.com #include "bv_cbmc.h" #include "cbmc_dimacs.h" #include "counterexample_beautification.h" -#include "version.h" /// Uses the options to pick an SMT 2.0 solver /// \return An smt2_dect::solvert giving the solver to use. diff --git a/src/clobber/CMakeLists.txt b/src/clobber/CMakeLists.txt index e3dbd108a09..de48db53b9f 100644 --- a/src/clobber/CMakeLists.txt +++ b/src/clobber/CMakeLists.txt @@ -29,5 +29,3 @@ add_if_library(clobber-lib bv_refinement) # Executable add_executable(clobber clobber_main.cpp) target_link_libraries(clobber clobber-lib) - -git_revision(clobber-lib) diff --git a/src/clobber/clobber_parse_options.cpp b/src/clobber/clobber_parse_options.cpp index 57d2e142c4f..83c2ad6f004 100644 --- a/src/clobber/clobber_parse_options.cpp +++ b/src/clobber/clobber_parse_options.cpp @@ -16,8 +16,9 @@ Author: Daniel Kroening, kroening@kroening.com #include #include -#include #include +#include +#include #include #include @@ -34,8 +35,6 @@ Author: Daniel Kroening, kroening@kroening.com #include -#include "version.h" - clobber_parse_optionst::clobber_parse_optionst(int argc, const char **argv): parse_options_baset(CLOBBER_OPTIONS, argc, argv), language_uit(cmdline, ui_message_handler), diff --git a/src/common b/src/common index e69f47cabd3..080a157b69d 100644 --- a/src/common +++ b/src/common @@ -227,29 +227,12 @@ OBJ += $(patsubst %.cc, %$(OBJEXT), $(filter %.cc, $(SRC))) %.obj:%.c $(CC) $(CP_CFLAGS) /nologo /c /EHsc $< /Fo$@ -# get version from git -GIT_INFO = $(shell git describe --tags --always --dirty || echo "n/a") -RELEASE_INFO = \#define CBMC_VERSION "$(CBMC_VERSION) ($(GIT_INFO))" -GIT_INFO_FILE = version.h - -$(GIT_INFO_FILE): - echo '$(RELEASE_INFO)' > $@ - -$(filter %_parse_options$(OBJEXT), $(OBJ)): $(GIT_INFO_FILE) - -# mark the actually generated file as a phony target to enforce a rebuild - but -# only of the version information has changed! -KNOWN_RELEASE_INFO = $(shell cat $(GIT_INFO_FILE) 2>/dev/null) -ifneq ($(RELEASE_INFO), $(KNOWN_RELEASE_INFO)) -.PHONY: $(GIT_INFO_FILE) -endif - clean: $(RM) $(patsubst %.cpp, %$(OBJEXT), $(filter %.cpp, $(SRC))) \ $(patsubst %.cpp, %$(DEPEXT), $(filter %.cpp, $(SRC))) \ $(patsubst %.cc, %$(OBJEXT), $(filter %.cc, $(SRC))) \ $(patsubst %.cc, %$(DEPEXT), $(filter %.cc, $(SRC))) \ - $(CLEANFILES) $(GIT_INFO_FILE) + $(CLEANFILES) .PHONY: first_target clean all .PHONY: sources generated_files diff --git a/src/goto-analyzer/CMakeLists.txt b/src/goto-analyzer/CMakeLists.txt index 86e39f073dc..0ad6aadc0de 100644 --- a/src/goto-analyzer/CMakeLists.txt +++ b/src/goto-analyzer/CMakeLists.txt @@ -26,5 +26,3 @@ add_if_library(goto-analyzer-lib jsil) # Executable add_executable(goto-analyzer goto_analyzer_main.cpp) target_link_libraries(goto-analyzer goto-analyzer-lib) - -git_revision(goto-analyzer-lib) diff --git a/src/goto-analyzer/goto_analyzer_parse_options.cpp b/src/goto-analyzer/goto_analyzer_parse_options.cpp index 4593d3eb642..17051b664e7 100644 --- a/src/goto-analyzer/goto_analyzer_parse_options.cpp +++ b/src/goto-analyzer/goto_analyzer_parse_options.cpp @@ -24,20 +24,21 @@ Author: Daniel Kroening, kroening@kroening.com #include +#include +#include +#include #include -#include +#include +#include +#include +#include #include -#include #include #include -#include -#include -#include +#include +#include #include #include -#include -#include -#include #include #include @@ -49,19 +50,17 @@ Author: Daniel Kroening, kroening@kroening.com #include #include -#include #include -#include #include - -#include +#include +#include +#include #include "taint_analysis.h" #include "unreachable_instructions.h" #include "static_show_domain.h" #include "static_simplifier.h" #include "static_verifier.h" -#include "version.h" goto_analyzer_parse_optionst::goto_analyzer_parse_optionst( int argc, diff --git a/src/goto-cc/CMakeLists.txt b/src/goto-cc/CMakeLists.txt index a2562caf92b..bd281a73c93 100644 --- a/src/goto-cc/CMakeLists.txt +++ b/src/goto-cc/CMakeLists.txt @@ -34,5 +34,3 @@ else() COMMAND "${CMAKE_COMMAND}" -E create_symlink goto-cc $/goto-gcc) endif() - -git_revision(goto-cc-lib) diff --git a/src/goto-cc/Makefile b/src/goto-cc/Makefile index 25ee6514b42..3e8e6e8bdb1 100644 --- a/src/goto-cc/Makefile +++ b/src/goto-cc/Makefile @@ -46,8 +46,6 @@ all: goto-cl$(EXEEXT) endif all: goto-cc$(EXEEXT) -as_mode$(OBJEXT) compile$(OBJEXT) gcc_mode$(OBJEXT) goto_cc_mode$(OBJEXT): $(GIT_INFO_FILE) - ifneq ($(wildcard ../jsil/Makefile),) OBJ += ../jsil/jsil$(LIBEXT) CP_CXXFLAGS += -DHAVE_JSIL diff --git a/src/goto-cc/as_mode.cpp b/src/goto-cc/as_mode.cpp index c8b308a056f..1a3739237a8 100644 --- a/src/goto-cc/as_mode.cpp +++ b/src/goto-cc/as_mode.cpp @@ -23,14 +23,14 @@ Author: Michael Tautschnig #include #include -#include -#include #include -#include #include +#include +#include +#include +#include #include "compile.h" -#include "version.h" static std::string assembler_name( const cmdlinet &cmdline, diff --git a/src/goto-cc/compile.cpp b/src/goto-cc/compile.cpp index e51d324cecc..2e586ce5c96 100644 --- a/src/goto-cc/compile.cpp +++ b/src/goto-cc/compile.cpp @@ -24,6 +24,7 @@ Date: June 2006 #include #include #include +#include #include #include @@ -63,8 +64,6 @@ Date: June 2006 #define pclose _pclose #endif -#include "version.h" - /// reads and source and object files, compiles and links them into goto program /// objects. /// \return true on error, false otherwise diff --git a/src/goto-cc/gcc_mode.cpp b/src/goto-cc/gcc_mode.cpp index 45be480e88e..16b28afcda9 100644 --- a/src/goto-cc/gcc_mode.cpp +++ b/src/goto-cc/gcc_mode.cpp @@ -31,24 +31,24 @@ Author: CM Wintersteiger, 2006 #include -#include -#include #include -#include -#include -#include +#include #include -#include -#include +#include #include -#include +#include +#include #include +#include +#include +#include +#include +#include #include #include "hybrid_binary.h" #include "linker_script_merge.h" -#include "version.h" static std::string compiler_name( const cmdlinet &cmdline, diff --git a/src/goto-cc/goto_cc_mode.cpp b/src/goto-cc/goto_cc_mode.cpp index c50b404c023..a971c954af5 100644 --- a/src/goto-cc/goto_cc_mode.cpp +++ b/src/goto-cc/goto_cc_mode.cpp @@ -23,8 +23,7 @@ Author: CM Wintersteiger, 2006 #endif #include - -#include "version.h" +#include /// constructor goto_cc_modet::goto_cc_modet( diff --git a/src/goto-diff/CMakeLists.txt b/src/goto-diff/CMakeLists.txt index ac09c817587..080bb643e66 100644 --- a/src/goto-diff/CMakeLists.txt +++ b/src/goto-diff/CMakeLists.txt @@ -28,5 +28,3 @@ add_if_library(goto-diff-lib jsil) # Executable add_executable(goto-diff goto_diff_main.cpp) target_link_libraries(goto-diff goto-diff-lib) - -git_revision(goto-diff-lib) diff --git a/src/goto-diff/goto_diff_parse_options.cpp b/src/goto-diff/goto_diff_parse_options.cpp index 05c67a7424e..c09841c701c 100644 --- a/src/goto-diff/goto_diff_parse_options.cpp +++ b/src/goto-diff/goto_diff_parse_options.cpp @@ -17,9 +17,10 @@ Author: Peter Schrammel #include #include -#include -#include #include +#include +#include +#include #include @@ -59,7 +60,6 @@ Author: Peter Schrammel #include "syntactic_diff.h" #include "unified_diff.h" #include "change_impact.h" -#include "version.h" goto_diff_parse_optionst::goto_diff_parse_optionst(int argc, const char **argv): parse_options_baset(GOTO_DIFF_OPTIONS, argc, argv), diff --git a/src/goto-instrument/CMakeLists.txt b/src/goto-instrument/CMakeLists.txt index b29c038fc41..a28c1d97487 100644 --- a/src/goto-instrument/CMakeLists.txt +++ b/src/goto-instrument/CMakeLists.txt @@ -29,5 +29,3 @@ add_if_library(goto-instrument-lib glpk) # Executable add_executable(goto-instrument goto_instrument_main.cpp) target_link_libraries(goto-instrument goto-instrument-lib) - -git_revision(goto-instrument-lib) diff --git a/src/goto-instrument/goto_instrument_parse_options.cpp b/src/goto-instrument/goto_instrument_parse_options.cpp index 12d05874369..fd9a511eeb4 100644 --- a/src/goto-instrument/goto_instrument_parse_options.cpp +++ b/src/goto-instrument/goto_instrument_parse_options.cpp @@ -16,10 +16,11 @@ Author: Daniel Kroening, kroening@kroening.com #include #include +#include +#include #include #include -#include -#include +#include #include #include @@ -99,7 +100,6 @@ Author: Daniel Kroening, kroening@kroening.com #include "undefined_functions.h" #include "remove_function.h" #include "splice_call.h" -#include "version.h" /// invoke main modules int goto_instrument_parse_optionst::doit() diff --git a/src/memory-models/CMakeLists.txt b/src/memory-models/CMakeLists.txt index 8378dca8968..9cb6152a86f 100644 --- a/src/memory-models/CMakeLists.txt +++ b/src/memory-models/CMakeLists.txt @@ -11,5 +11,3 @@ add_library(mmcc generic_includes(mmcc) target_link_libraries(mmcc util) - -git_revision(mmcc) diff --git a/src/memory-models/mmcc_parse_options.cpp b/src/memory-models/mmcc_parse_options.cpp index d992eb8e654..2bd312f5bab 100644 --- a/src/memory-models/mmcc_parse_options.cpp +++ b/src/memory-models/mmcc_parse_options.cpp @@ -15,10 +15,10 @@ Author: Daniel Kroening, kroening@kroening.com #include #include +#include #include "mm_parser.h" #include "mm2cpp.h" -#include "version.h" mmcc_parse_optionst::mmcc_parse_optionst(int argc, const char **argv): parse_options_baset(MMCC_OPTIONS, argc, argv) diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 055eabc7891..710b8086a66 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -4,3 +4,42 @@ add_library(util ${sources}) generic_includes(util) target_link_libraries(util big-int langapi) + +# based on https://cmake.org/pipermail/cmake/2010-July/038015.html +find_package(Git) +if(GIT_FOUND) + file(WRITE ${CMAKE_BINARY_DIR}/version.cmake + " + file(STRINGS \${CBMC_SOURCE_DIR}/config.inc + config_inc_v REGEX \"CBMC_VERSION *= *[0-9\.]+\") + string(REGEX REPLACE \"^CBMC_VERSION *= *\" \"\" CBMC_RELEASE \${config_inc_v}) + execute_process( + COMMAND \"${GIT_EXECUTABLE}\" \"describe\" \"--tags\" \"--always\" \"--dirty\" + OUTPUT_VARIABLE GIT_INFO + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + configure_file(\${CUR}/version.h.in version.h) + " + ) +else() + file(WRITE ${CMAKE_BINARY_DIR}/version.cmake + " + file(STRINGS \${CBMC_SOURCE_DIR}/config.inc + config_inc_v REGEX \"CBMC_VERSION *= *[0-9\.]+\") + string(REGEX REPLACE \"^CBMC_VERSION *= *\" \"\" CBMC_RELEASE \${config_inc_v}) + set(GIT_INFO \"n/a\") + configure_file(\${CUR}/version.h.in version.h) + " + ) +endif() + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.h.in + "\#define CBMC_VERSION \"@CBMC_RELEASE@ (@GIT_INFO@)\"\n") +add_custom_target( + version.h + COMMAND ${CMAKE_COMMAND} + -D CBMC_SOURCE_DIR=${CBMC_SOURCE_DIR} + -D CUR=${CMAKE_CURRENT_BINARY_DIR} + -P ${CMAKE_BINARY_DIR}/version.cmake +) +add_dependencies(util version.h) diff --git a/src/util/Makefile b/src/util/Makefile index bc2094ed676..a0c34a66ad1 100644 --- a/src/util/Makefile +++ b/src/util/Makefile @@ -103,9 +103,26 @@ INCLUDES= -I .. include ../config.inc include ../common -CLEANFILES = util$(LIBEXT) +# get version from git +GIT_INFO = $(shell git describe --tags --always --dirty || echo "n/a") +RELEASE_INFO = \#define CBMC_VERSION "$(CBMC_VERSION) ($(GIT_INFO))" +GIT_INFO_FILE = version.h -all: util$(LIBEXT) +$(GIT_INFO_FILE): + echo '$(RELEASE_INFO)' > $@ + +generated_files: $(GIT_INFO_FILE) + +# mark the actually generated file as a phony target to enforce a rebuild - but +# only if the version information has changed! +KNOWN_RELEASE_INFO = $(shell cat $(GIT_INFO_FILE) 2>/dev/null) +ifneq ($(RELEASE_INFO), $(KNOWN_RELEASE_INFO)) +.PHONY: $(GIT_INFO_FILE) +endif + +CLEANFILES = $(GIT_INFO_FILE) util$(LIBEXT) + +all: util$(LIBEXT) $(GIT_INFO_FILE) util$(LIBEXT): $(OBJ) $(LINKLIB)