From 3d8590a62eff455a3ecf31ce3e5f004567ec60f8 Mon Sep 17 00:00:00 2001 From: lohhiiccc Date: Mon, 18 May 2026 11:52:00 +0200 Subject: [PATCH] feat: version_gen.h --- .gitignore | 1 + src/Makefile.am | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/.gitignore b/.gitignore index fbb73b8..34ce0cd 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ *.d *.lo .dirstamp +include/version_gen.h # Automake test results *.log diff --git a/src/Makefile.am b/src/Makefile.am index a25a618..2c4f67c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,42 @@ lib_LTLIBRARIES = libcli.la + +LIBCLI_VERSION = 0.0.1 +VERSION_HEADER = $(top_srcdir)/include/version_gen.h + +BUILT_SOURCES = $(VERSION_HEADER) +CLEANFILES = $(VERSION_HEADER) + +$(VERSION_HEADER): FORCE + @NEW_HEADER=$$(mktemp); \ + LIBCLI_BUILD_DATE=$$(git -C $(top_srcdir) log -1 --format=%cd \ + --date=format:'%Y-%m-%d %H:%M:%S' 2>/dev/null \ + || date -u '+%Y-%m-%d %H:%M:%S'); \ + LIBCLI_GIT_COMMIT=$$(git -C $(top_srcdir) rev-parse --short HEAD 2>/dev/null \ + || echo "nogit"); \ + if test "$$LIBCLI_GIT_COMMIT" = "nogit"; then \ + HAS_GIT=0; \ + else \ + HAS_GIT=1; \ + fi; \ + echo "/* Auto-generated - DO NOT EDIT */" > $$NEW_HEADER; \ + echo "#ifndef LIBCLI_VERSION_GEN_H" >> $$NEW_HEADER; \ + echo "#define LIBCLI_VERSION_GEN_H" >> $$NEW_HEADER; \ + echo "#define LIBCLI_VERSION \"$(LIBCLI_VERSION)\"" >> $$NEW_HEADER; \ + echo "#define LIBCLI_BUILD_DATE \"$$LIBCLI_BUILD_DATE\"" >> $$NEW_HEADER; \ + echo "#define LIBCLI_GIT_COMMIT \"$$LIBCLI_GIT_COMMIT\"" >> $$NEW_HEADER; \ + echo "#define LIBCLI_HAS_GIT_COMMIT $$HAS_GIT" >> $$NEW_HEADER; \ + echo "" >> $$NEW_HEADER; \ + echo "#endif" >> $$NEW_HEADER; \ + if test ! -f $(VERSION_HEADER) || ! cmp -s $$NEW_HEADER $(VERSION_HEADER); then \ + mv $$NEW_HEADER $(VERSION_HEADER); \ + echo "[OK] Version header generated"; \ + else \ + rm -f $$NEW_HEADER; \ + fi + +FORCE: +.PHONY: FORCE libcli_la_SOURCES = \ parse.c \ help.c \