X-Git-Url: http://rtime.felk.cvut.cz/gitweb/pes-rpp/rpp-simulink.git/blobdiff_plain/222a955d33188a5c1b3da1ff6116764cb63003b8..HEAD:/Makefile diff --git a/Makefile b/Makefile index f2e76c7..e9e3f4f 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,73 @@ -RELEASE_PREFIX = rpp-simulink +release4eaton: + $(MAKE) release RELEASE_TARGET=tms570_hydctr RELEASE_ATTR=eaton + +release4us: + $(MAKE) release RELEASE_TARGET=tms570_rpp RELEASE_ATTR= + +.PHONY: commit-lib-update +commit-lib-update: + test $$($(TESTSW_LIB_COMMIT)) = $$($(SIMULINK_LIB_COMMIT)) + if git --git-dir=doc/test-sw/.git diff-index --quiet HEAD -- rpp-lib; \ + then echo "Nothing to commit in test-sw"; \ + else git --git-dir=doc/test-sw/.git commit -m "Update lib submodule" rpp-lib; \ + fi + git commit -m "Update lib submodule" doc/test-sw rpp/lib + +TESTSW_LIB_COMMIT = git --git-dir=doc/test-sw/rpp-lib/.git rev-parse HEAD +SIMULINK_LIB_COMMIT = git --git-dir=rpp/lib/.git rev-parse HEAD + + +ifeq ($(or $(release_in_progress),$(MAKECMDGOALS)),release) +export release_in_progress = release + +include rpp/lib/Makefile.var # for rpp_lib_* variables include rpp/lib/common.mk +RELEASE_TARGET = $(error Please set RELEASE_TARGET variable on command line) + +include rpp/lib/build/$(RELEASE_TARGET)/Makefile.config + +$(eval $(call release_rules,rpp-simulink)) + release: $(RELEASE_BASENAME).zip - $(MAKE) -C rpp/lib release - cp rpp/lib/rpp-lib-*.zip . + if [ $$($(SIMULINK_LIB_COMMIT)) != $$($(TESTSW_LIB_COMMIT)) ]; then echo >&2 "Library version mismatch"; exit 1; fi + cp rpp/lib/$(shell make -C rpp/lib --silent print-release-basename).zip . $(MAKE) -C doc/test-sw release - cp doc/test-sw/rpp-test-*.zip . + cp doc/test-sw/$(shell make -C doc/test-sw --silent print-release-basename).zip . cp doc/rpp_simulink.pdf rpp_simulink-$(RELEASE_VERSION).pdf -$(RELEASE_BASENAME):: lib - mkdir -p $@ - cp --parents rpp/lib/rpp-lib.lib $@/ +RELEASE_LIB_GIT_FILES = \ + common.mk \ + Makefile.var \ + build/$(RELEASE_TARGET)/$(TARGET_CCXML) \ + build/$(RELEASE_TARGET)/$(TARGET_LDCMD) \ + build/Makefile.rules \ + build/Makefile.rules.arm \ + os/$(rpp_lib_OS)/include/ \ + rpp/include/ + +RELEASE_LIB_GEN_FILES = Makefile.config rpp-lib.lib build/gio_names.txt + +$(RELEASE_BASENAME):: LIB_RELEASE_BASENAME:=$(shell make -C rpp/lib --silent print-release-basename) +$(RELEASE_BASENAME):: release-lib +# Copy library headers and binaries + git --git-dir=rpp/lib/.git archive --worktree-attributes --prefix=$@/rpp/lib/ HEAD $(RELEASE_LIB_GIT_FILES) | tar xf - +ifneq ($(filter lwip/src/include,$(rpp_lib_INCLUDES)),) + git --git-dir=rpp/lib/lwip/.git archive --worktree-attributes --prefix=$@/rpp/lib/lwip/ HEAD src/include/ | tar xf - +endif + cp --parents $(RELEASE_LIB_GEN_FILES:%=rpp/lib/%) $@/ +# Compile and include the PDF documentation $(MAKE) -C doc mkdir -p $@/doc cp doc/rpp_simulink.pdf $@/doc -lib: - $(MAKE) -C rpp/lib/Release +release-lib: +# Compile the lib + $(MAKE) -C rpp/lib/build/$(RELEASE_TARGET)/Release +# Create release zip and directory. Note that this also setups ignored +# files, which is required for correct function of $(RELEASE_BASENAME) +# target. + $(MAKE) -C rpp/lib release + +endif # release