]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/blob - Makefile
Change license to MIT
[jenkicar/rpp-simulink.git] / Makefile
1
2 release4eaton:
3         $(MAKE) release RELEASE_TARGET=tms570_hydctr RELEASE_ATTR=eaton
4
5 release4us:
6         $(MAKE) release RELEASE_TARGET=tms570_rpp RELEASE_ATTR=
7
8 .PHONY: commit-lib-update
9 commit-lib-update:
10         test $$($(TESTSW_LIB_COMMIT)) = $$($(SIMULINK_LIB_COMMIT))
11         if git --git-dir=doc/test-sw/.git diff-index --quiet HEAD -- rpp-lib; \
12         then echo "Nothing to commit in test-sw"; \
13         else git --git-dir=doc/test-sw/.git commit -m "Update lib submodule" rpp-lib; \
14         fi
15         git commit  -m "Update lib submodule" doc/test-sw rpp/lib
16
17 TESTSW_LIB_COMMIT = git --git-dir=doc/test-sw/rpp-lib/.git rev-parse HEAD
18 SIMULINK_LIB_COMMIT = git --git-dir=rpp/lib/.git rev-parse HEAD
19
20
21 ifeq ($(or $(release_in_progress),$(MAKECMDGOALS)),release)
22 export release_in_progress = release
23
24 include rpp/lib/Makefile.var    # for rpp_lib_* variables
25 include rpp/lib/common.mk
26
27 RELEASE_TARGET = $(error Please set RELEASE_TARGET variable on command line)
28
29 include rpp/lib/build/$(RELEASE_TARGET)/Makefile.config
30
31 $(eval $(call release_rules,rpp-simulink))
32
33 release: $(RELEASE_BASENAME).zip
34         if [ $$($(SIMULINK_LIB_COMMIT)) != $$($(TESTSW_LIB_COMMIT)) ]; then echo >&2 "Library version mismatch"; exit 1; fi
35         cp rpp/lib/$(shell make -C rpp/lib --silent print-release-basename).zip .
36         $(MAKE) -C doc/test-sw release
37         cp doc/test-sw/$(shell make -C doc/test-sw --silent print-release-basename).zip .
38         cp doc/rpp_simulink.pdf rpp_simulink-$(RELEASE_VERSION).pdf
39
40 RELEASE_LIB_GIT_FILES = \
41         common.mk \
42         Makefile.var \
43         build/$(RELEASE_TARGET)/$(TARGET_CCXML) \
44         build/$(RELEASE_TARGET)/$(TARGET_LDCMD) \
45         build/Makefile.rules \
46         build/Makefile.rules.arm \
47         os/$(rpp_lib_OS)/include/ \
48         rpp/include/
49
50 RELEASE_LIB_GEN_FILES = Makefile.config rpp-lib.lib build/gio_names.txt
51
52 $(RELEASE_BASENAME):: LIB_RELEASE_BASENAME:=$(shell make -C rpp/lib --silent print-release-basename)
53 $(RELEASE_BASENAME):: release-lib
54 # Copy library headers and binaries
55         git --git-dir=rpp/lib/.git archive --worktree-attributes --prefix=$@/rpp/lib/ HEAD $(RELEASE_LIB_GIT_FILES) | tar xf -
56 ifneq ($(filter lwip/src/include,$(rpp_lib_INCLUDES)),)
57         git --git-dir=rpp/lib/lwip/.git archive --worktree-attributes --prefix=$@/rpp/lib/lwip/ HEAD src/include/ | tar xf -
58 endif
59         cp --parents  $(RELEASE_LIB_GEN_FILES:%=rpp/lib/%) $@/
60 # Compile and include the PDF documentation
61         $(MAKE) -C doc
62         mkdir -p $@/doc
63         cp doc/rpp_simulink.pdf $@/doc
64
65 release-lib:
66 # Compile the lib
67         $(MAKE) -C rpp/lib/build/$(RELEASE_TARGET)/Release
68 # Create release zip and directory. Note that this also setups ignored
69 # files, which is required for correct function of $(RELEASE_BASENAME)
70 # target.
71         $(MAKE) -C rpp/lib release
72
73 endif # release