# Foundation, either version 3 of the License, or any later version.
VERSION_MAJOR=0
-VERSION_MINOR=8
+VERSION_MINOR=9
VERSION_NAMESPACE=armadillo.Version
VERSION_FILE=frontend/version.js.proto
VERSION_SOURCE=$(basename $(VERSION_FILE))
FRONTEND_BIN=frontend/armadillo.js
# Default target, used to produce the backend and uncompiled frontend.
-all: backend frontend
+all: backend version frontend ignore_fe_bin
# Creates the compiled frontend code.
-release: backend compiled
+release: backend version compiled ignore_fe_bin
# Performs a release build and stamps the actual version file.
-dist: stamp release
+dist: backend version copy_version_src compiled stamp ignore_fe_bin
# Compiles the backend server.
backend:
go build -v .
# Compiles the frontend code for development.
-frontend: version $(FRONTEND_BIN)
+frontend: $(FRONTEND_BIN)
$(FRONTEND_BIN): $(FRONTEND_SOURCES)
echo $(foreach f,$^,"document.write('<script src="fe/$(notdir $f)"></script>');\n") > $(FRONTEND_BIN)
# Builds the version file template.
version:
if [[ -f $(VERSION_FILE) ]]; then $(MAKE) $(VERSION_FILE); fi
-$(VERSION_FILE): STAMP=$(shell date +%s)
-$(VERSION_FILE): BUILD=$(shell gitcrement next)
$(VERSION_FILE):
+ which gitcrement
@echo "// This file is automatically generated." > $(VERSION_FILE)
@echo >> $(VERSION_FILE)
@echo "$$.namespace('$(VERSION_NAMESPACE)');" >> $(VERSION_FILE)
@echo >> $(VERSION_FILE)
echo "$(VERSION_NAMESPACE).MAJOR = $(VERSION_MAJOR);" >> $(VERSION_FILE)
echo "$(VERSION_NAMESPACE).MINOR = $(VERSION_MINOR);" >> $(VERSION_FILE)
- echo "$(VERSION_NAMESPACE).BUILD = $(BUILD);" >> $(VERSION_FILE)
- echo "$(VERSION_NAMESPACE).STAMP = $(STAMP);" >> $(VERSION_FILE)
+ echo "$(VERSION_NAMESPACE).BUILD = $(shell gitcrement next);" >> $(VERSION_FILE)
+ echo "$(VERSION_NAMESPACE).STAMP = $(shell date +%s);" >> $(VERSION_FILE)
-# Copies the version template to the source and commits it.
-stamp: $(VERSION_FILE)
+# Copies the version template to the source.
+copy_version_src:
cp $(VERSION_FILE) $(VERSION_SOURCE)
- git commit $(VERSION_SOURCE) \
+
+# Commits the version source and the frontend bin.
+stamp:
+ git commit $(VERSION_SOURCE) $(FRONTEND_BIN) \
--author='Armadillo Build Script <armadillo@bluestatic.org>' \
-m 'Stamp version.js @ $(shell gitcrement current)'
+
+# Marks the frontend binary as unmodified.
+ignore_fe_bin: $(FRONTEND_BIN)
+ git update-index --assume-unchanged $(FRONTEND_BIN)