]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blobdiff - Makefile
Makefile: Allow building and releasing for multiple targets
[pes-rpp/rpp-test-sw.git] / Makefile
index 683f181db692478ca5c5e231d93bd3742ff3a1a4..2761ab96ef0350602651b04d19e3f5893d7f58e4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,9 +12,11 @@ all: rpp-test-sw
 RELEASE_PREFIX = rpp-test-sw
 include rpp-lib/common.mk
 
+TARGET ?= $(error TARGET variable not defined)
+
 rpp-test-sw: $(TMP_WORKSPACE)
        $(ECLIPSE) -noSplash -data $(TMP_WORKSPACE) -application com.ti.ccstudio.apps.projectImport -ccs.location $(CURDIR)/rpp-test-sw
-       $(ECLIPSE) -noSplash -data $(TMP_WORKSPACE) -application com.ti.ccstudio.apps.projectImport -ccs.location $(CURDIR)/rpp-lib/build/tms570_hdk
+       $(ECLIPSE) -noSplash -data $(TMP_WORKSPACE) -application com.ti.ccstudio.apps.projectImport -ccs.location $(CURDIR)/rpp-lib/build/$(TARGET)
        $(ECLIPSE) -noSplash -data $(TMP_WORKSPACE) -application com.ti.ccstudio.apps.projectBuild -ccs.projects rpp-test-sw
 # Previous commands do not always return non-zero exit code on build failure - invoke make directly to not miss a potential error
        $(MAKE) -C $(CURDIR)/rpp-test-sw/Debug all
@@ -48,29 +50,30 @@ uncrustify:
 
 release: $(RELEASE_BASENAME).zip
 
-RELEASE_TARGET ?= tms570_hdk
-include rpp-lib/build/$(RELEASE_TARGET)/Makefile.config
+RELEASE_TARGET = $(TARGET)
 
-$(RELEASE_BASENAME):: lib
-       @echo 'Get version from git'
-       mkdir -p $@/rpp-test-sw/Debug
-       $(MAKE) -C $@/rpp-test-sw/Debug -f $(CURDIR)/rpp-test-sw/Makefile.version version.h
+RELEASE_LIB_GIT_FILES = \
+       Makefile.var \
+       build/$(RELEASE_TARGET)/$(TARGET_LDCMD) \
+       build/Makefile.rules \
+       build/Makefile.rules.arm \
+       common.mk \
+       os/$(rpp_lib_OS)/include/ \
+       rpp/include/
 
-       mkdir -p $@/rpp-lib/build/$(RELEASE_TARGET)/
-       mkdir -p $@/rpp-lib/rpp/
-       mkdir -p $@/rpp-lib/os/$(rpp_lib_OS)
 ifneq ($(filter lwip/src/include,$(rpp_lib_INCLUDES)),)
-       mkdir -p $@/rpp-lib/lwip/src
+RELEASE_LIB_GIT_FILES += lwip/src/include/
 endif
 
-       cp --parents rpp-lib/rpp-lib.lib rpp-lib/common.mk rpp-lib/Makefile.config $@/
-       cp --parents rpp-lib/.ccsproject rpp-lib/.cproject rpp-lib/.project $@/
-       cp -r rpp-lib/rpp/include $@/rpp-lib/rpp/include
-       cp --parents rpp-lib/build/$(RELEASE_TARGET)/$(TARGET_LDCMD) $@/
-       cp -r rpp-lib/os/$(rpp_lib_OS)/include $@/rpp-lib/os/$(rpp_lib_OS)/include
-ifneq ($(filter lwip/src/include,$(rpp_lib_INCLUDES)),)
-       cp -r rpp-lib/lwip/src/include $@/rpp-lib/lwip/src/include
-endif
+RELEASE_LIB_GEN_FILES = Makefile.config build/$(RELEASE_TARGET)/Debug/rpp-lib.lib
+
+$(RELEASE_BASENAME):: lib
+       @echo 'Generate version.h from git'
+       mkdir -p $@/rpp-test-sw/Debug
+       $(MAKE) -C $@/rpp-test-sw/Debug -f $(CURDIR)/rpp-test-sw/Makefile.version version.h
+
+       git --git-dir=rpp-lib/.git archive --worktree-attributes --prefix=$@/rpp-lib/ HEAD $(RELEASE_LIB_GIT_FILES) | tar xf -
+       cp --parents  $(RELEASE_LIB_GEN_FILES:%=rpp-lib/%) $@/
 
 lib:
-       $(MAKE) -C rpp-lib/build/$(RELEASE_TARGET)/Release
+       $(MAKE) -C rpp-lib/build/$(RELEASE_TARGET)/Debug