]> cloudbase.mooo.com Git - ddt180.git/blobdiff - Makefile
read_symfile: Check symbols for valid characters.
[ddt180.git] / Makefile
index 0b580869e06a0f09e34b3dec681020a6213f692a..bdfc336303084e89bb464f10ed71faaf41bb3ed5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,24 @@
-# Build ddtz.com from ddtz.z80
+# Build ddt180.com from ddt180.z80
 
-PROG   := ddtz
+PROG   := ddt180
 
 SRC    := $(PROG).z80
 
+EXTRA_DIST := autorevision.cache version.inc
+
 OBJ    := $(SRC:.z80=.rel)
 
-AS_OPT := MF
+DIST_NAME = $(PROG)_$(VERS).zip
+PREFIX = $(PROG)_$(VERS)
+
+ASM    := zxcc slrz80.com
+LINK   := zxcc link80.com
+CP     := cp
+RM     := rm -f
+GIT    := git
+ZIP    := zip
 
-ASM  := zxcc slrz80.com
-LINK := zxcc link80.com
+AS_OPT := MFS
 
 .phony: all
 all: $(PROG).com
@@ -23,7 +32,38 @@ $(PROG).com: $(PROG).prl
 $(PROG).prl: $(OBJ)
        $(LINK) -'$(PROG)[op,$$SZ]'
 
+$(PROG).rel: version.inc
+
+$(foreach X,$(subst =,:=,$(subst ",,$(filter VCS_%,\
+       $(shell autorevision -t sh -o $(CURDIR)/autorevision.cache)))),$(eval $X))
+
+VERS := $(shell echo "$(VCS_TAG)" | sed -e 's/^v//g')
+
+ifneq ($(VCS_TICK),0)
+  VERS := $(VERS)-$(VCS_TICK)
+endif
+ifneq ($(VCS_BRANCH),master)
+  VERS := $(VERS)-$(VCS_BRANCH)
+endif
+ifeq ($(VCS_WC_MODIFIED),1)
+  VERS := $(VERS)-dirty
+endif
+
+
+
+version.inc: autorevision.cache
+       @echo update $@
+       @printf "defvers        macro\r\n\
+               db      '$(VERS)'\r\n\
+               endm\r\n\032" > $@
 
+.phony: dist
+dist: $(PROG).com version.inc
+       $(GIT) archive --format=zip --prefix=$(PREFIX)/ -9 -o $(DIST_NAME) HEAD^{tree}
+       @mkdir -p $(PREFIX)
+       @$(CP) -p $(EXTRA_DIST) $(PREFIX)
+       $(ZIP) -r -9 $(DIST_NAME) $(PREFIX) $(PROG).com
+       @$(RM) -r $(PREFIX)
 
 .phony: clean
 clean: