]> j8takagi.net git repositories - autotest_mk.git/commitdiff
Makefileの修正
authorj8takagi <j8takagi@nifty.com>
Sat, 13 Jun 2026 08:11:35 +0000 (17:11 +0900)
committerj8takagi <j8takagi@nifty.com>
Sat, 13 Jun 2026 08:11:35 +0000 (17:11 +0900)
.gitignore
Makefile
VERSION
git.mk [new file with mode: 0644]

index 4d73bda6004b521b594863f7c7b93cc920d9ae78..16498d98a2d30be549d00683189976f70aa597da 100644 (file)
@@ -1,3 +1,4 @@
 *.log
 1.txt
 sample/sort/sort.c
+*___stamp
index e4d34652886a879f227d05893c2413ac92edcee6..442c759631e18ef90db33065b223eb44163722f0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,25 +1,20 @@
-CAT := cat
-GIT := git
-PRINTF := printf
-WC = wc
-XARGS := xargs
+.PHONY: release docbase docall gitpush gittag clean distclean
 
-VERSION := $(shell $(CAT) VERSION)
+release:
 
-VERSIONGITREF := $(shell $(GIT) show-ref -s --tags $(VERSION))
-
-MAINGITREF := $(shell $(GIT) show-ref -s refs/heads/main)
-
-.PHONY: docall gittag version
-
-doc:
+docbase:
        $(MAKE) -C doc base
 
 docall:
        $(MAKE) -C doc all
 
-gittag:
-       if test `$(GIT) status -s | $(WC) -l` -gt 0; then $(PRINTF) "Error: commit, first.\n"; exit 1; fi; if test "$(VERSIONGITREF)" != "$(MAINGITREF)"; then $(GIT) tag $(VERSION); fi
+gitpush: gitpush___stamp
+
+gittag: gittag___stamp
+
+include git.mk
+
+distclean: clean
 
-version: VERSION
-       @$(PRINTF) "Autotest.mk Version: $(VERSION)"
+clean: gitclean
+       $(MAKE) -C doc clean
diff --git a/VERSION b/VERSION
index b05cf893cc997c2bc5491406065c928cca0fb626..025ae89afebeaec84b758ea0bbf156f40b15222c 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.2p26
+v0.2p27
diff --git a/git.mk b/git.mk
new file mode 100644 (file)
index 0000000..2e9d8f8
--- /dev/null
+++ b/git.mk
@@ -0,0 +1,32 @@
+CAT := cat
+EXPR := expr
+GIT := git
+PRINTF := printf
+SED := sed
+
+# VERSION FORMAT: v<VERSIONNO>p<PATCHNO> (Example: v0.1p00)
+VERSION = $(shell $(CAT) VERSION)
+VERSIONNO = $(shell $(CAT) VERSION | $(SED) 's/v\([0-9]*\.[0-9]*\)p.*$$/\1/' )
+PATCHNO = $(shell $(CAT) VERSION | $(SED) 's/^.*p//' )
+
+gitpush___stamp: gittag___stamp
+       $(GIT) push origin main --follow-tags
+       $(GIT) push github main --follow-tags
+       $(GIT) rev-parse HEAD > $@
+
+gittag___stamp: commit___stamp
+       $(GIT) tag $(VERSION) main
+       $(PRINTF) "%s\n" "$(VERSION)" > $@
+
+commit___stamp: version_up___stamp
+       $(GIT) add VERSION
+       $(GIT) commit
+       $(GIT) rev-parse HEAD > $@
+
+version_up___stamp: VERSION
+       if [ -n "$$($(GIT) status -s)" ]; then $(PRINTF) "Error: commit, first.\n"; exit 1; fi
+       while $(GIT) rev-parse -q --verify $$($(CAT) VERSION) >/dev/null 2>&1; do $(PRINTF) "v%sp%s\n" $(VERSIONNO) $$($(EXPR) $(PATCHNO) + 1) >$<; done
+       $(CAT) $< >$@
+
+gitclean:
+       $(RM) *___stamp