X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2FMakefile.am;h=6c07a31659201644fb514ad3d6b589d8ffe7274c;hp=9d00bee4ecb79d73bf49dbb029106798ddaee7c2;hb=3e40ee67e45d41f30a3cb3e9c6cacb4f14bebc75;hpb=1239a312e7e0e4c33948fdaf04e7637cb93c8b10 diff --git a/include/Makefile.am b/include/Makefile.am index 9d00bee4e..6c07a3165 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,3 +1,9 @@ +if LTTNG_TOOLS_BUILD_GIT_SOURCE +GIT_DESCRIBE_CMD = (cd $(top_srcdir); git describe) +else +GIT_DESCRIBE_CMD = /bin/true +endif + ## ## The version.h file must be verified and generated or updated if the ## git commit id (called git version here) changed since the last build @@ -6,71 +12,58 @@ version.h: ## ## We first create variables for the current git version and - ## the locations of the version.h and version.h.tmpl files + ## the locations of the version.h and version.h.tmpl files. ## - @echo -n "Generating version.h ... " - @(version_h_tmpl="$(top_builddir)/include/version.h.tmpl"; \ + @echo $(ECHO_N) "Generating version.h... $(ECHO_C)" + @(version_h_tmpl="$(top_srcdir)/include/version.h.tmpl"; \ if [ -f "$${version_h_tmpl}" ]; then \ version_h="$(top_builddir)/include/version.h"; \ ## - ## We check the git version format we will use depending on - ## whether or not we are in the master branch or on a tag + ## Check whether we are in a git repo. ## - git_branch="$$(git describe --all 2>/dev/null)"; \ - if [ -z "$${git_branch}" ]; then \ - git_version=""; \ + git_describe="$$($(GIT_DESCRIBE_CMD) 2>/dev/null)"; \ + if [ $$? -eq 0 ]; then \ + git_version="$${git_describe}"; \ else \ - git_describe="$$(git describe)"; \ - if [ "$${git_branch}" == "$${git_describe}" ] || \ - [ "$${git_branch}" == "heads/master" ]; then \ - git_version="$${git_describe}"; \ - else \ - git_version="$$(git describe --long --all)"; \ - fi; \ + git_version=""; \ fi; \ ## ## If the version.h file doesn't exist or is not up to date, - ## We replace it by the version.h.tmpl file + ## We replace it by the version.h.tmpl file. ## if [ ! -e "$${version_h}" ] || \ [ "$${version_h_tmpl}" -nt "$${version_h}" ]; then \ cp "$${version_h_tmpl}" "$${version_h}"; \ fi; \ - if [ -n "$${git_version}" ]; then \ - ## - ## We remove the leading "v" for the version number - ## - git_version="$$(echo "$${git_version}" | sed -r "s/^v([0-9])/\1/")"; \ - ## - ## If we have a git version, we verify that it isn't the same - ## as the one currently in the file (if there is one), as we - ## don't want to update the file if it is already up to date - ## - if [ $$(grep -cE "^#define GIT_VERSION \"?$${git_version}\"?$$" "$${version_h}") -eq 0 ]; then \ - if [ $$(grep -c "^#define GIT_VERSION" "$${version_h}") -gt 0 ]; then \ - ## - ## If there is already a GIT_VERSION defined, - ## we just replace it by the new version - ## - sed -i "s'^#define GIT_VERSION.*$$'#define GIT_VERSION \"$${git_version}\"'" "$${version_h}"; \ - else \ - ## - ## Else, we add a GIT_VERSION define - ## containing our new version. - ## - sed -i "s'^\(#define VERSION_H.*\)$$'\1\n\n#define GIT_VERSION \"$${git_version}\"'" "$${version_h}"; \ - fi; \ - fi; \ + echo $(ECHO_N) "git version: \"$${git_version}\"$(ECHO_C)"; \ + ## + ## We verify that git_version isn't the same as the one + ## currently in the file (if there is one), as we don't + ## want to update the file if it is already up to date. + ## + version_match='^#define GIT_VERSION.*'; \ + old_version=$$($(GREP) "$${version_match}" "$${version_h}"); \ + new_version="#define GIT_VERSION \"$${git_version}\""; \ + if [ x"$${old_version}" != x"$${new_version}" ]; then \ + $(SED) -i "s'$${version_match}'$${new_version}'" "$${version_h}"; \ + else \ + echo $(ECHO_N) " (cached)$(ECHO_C)"; \ fi; \ + echo $(ECHO_N) "... $(ECHO_C)"; \ fi) - @echo "ok" + @echo "$(ECHO_T)ok" ## ## version.h is defined as a .PHONY file even if it's a real file as -## we want our routine to be runned for each build. +## we want our routine to be ran for each build. ## .PHONY: version.h +CLEANFILES = version.h + +nodist_noinst_HEADERS = \ + version.h + lttnginclude_HEADERS = \ lttng/health.h \ lttng/lttng.h \ @@ -83,9 +76,11 @@ lttnginclude_HEADERS = \ lttng/lttng-error.h \ lttng/snapshot.h \ lttng/save.h \ - version.h + lttng/load.h \ + version.h.tmpl noinst_HEADERS = \ lttng/snapshot-internal.h \ lttng/health-internal.h \ - lttng/save-internal.h + lttng/save-internal.h \ + lttng/load-internal.h