Sfoglia il codice sorgente

Release and bundle rules

Eiyeron Fulmincendii 10 anni fa
parent
commit
3b0c0a977d
2 ha cambiato i file con 17 aggiunte e 2 eliminazioni
  1. 2 1
      .gitignore
  2. 15 1
      rules.mk

+ 2 - 1
.gitignore

@@ -1,4 +1,5 @@
 out/
+release/
 config.mk
 
 *.swp
@@ -10,4 +11,4 @@ config.mk
 
 # Sublime
 *.sublime-project
-*.sublime-workspace
+*.sublime-workspace

+ 15 - 1
rules.mk

@@ -1,9 +1,11 @@
-.PHONY: format clean all run versionning include
+.PHONY: format clean all run versionning include release bundle
 
 all: $(EXE)
 
 include $(wildcard */rules.mk)
 
+RELEASE_DIRECTORY=release/$(PLATFORM)
+
 # Object dependency files
 -include $(OBJS:%.o=%.d)
 
@@ -34,6 +36,18 @@ clean:
 	@echo "RM: $(OUT)"
 	@rm -rf $(OUT)
 
+release: $(ELF)
+	@echo "Packing binary and data files into $(RELEASE_DIRECTORY)"
+	@mkdir -p "$(RELEASE_DIRECTORY)"
+	@cp $(ELF) "$(RELEASE_DIRECTORY)"
+	@cp -ru data "$(RELEASE_DIRECTORY)" 2>/dev/null || :
+
+bundle: release
+	@echo "Tar-zipping"
+	@tar cf "$(RELEASE_DIRECTORY).tar" "$(RELEASE_DIRECTORY)"
+	@gzip "$(RELEASE_DIRECTORY).tar" -f
+	@echo "Archive ready at $(RELEASE_DIRECTORY).tar.gzip"
+
 format:
 	@echo "Formatting source using clang-format"
 	@clang-format -i -style=file $(shell git ls-files -c -o --exclude-standard *.c *.cpp *.h)