]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blobdiff - Makefile
Change license to MIT
[pes-rpp/rpp-test-sw.git] / Makefile
index 6be686dbf6433418972b17cd84cda75764dafcf9..165a428bc743feafdc7ac1808572b0c4e26fd8ea 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,25 +4,76 @@
 # See http://processors.wiki.ti.com/index.php/Projects_-_Command_Line_Build/Create
 # and https://bugs.eclipse.org/bugs/show_bug.cgi?id=186847
 
-ECLIPSE=/opt/ti/ccsv5/eclipse/eclipse
-
-WORKSPACE:=$(shell mktemp --dry-run --tmpdir -d rpp-test-sw-workspace.XXXXXXXXXX)
+include rpp-lib/Makefile.var
 
 all: rpp-test-sw
-       rm -rf $(WORKSPACE)
+       $(call rmdir,$(TMP_WORKSPACE))
+
+include rpp-lib/common.mk
 
-rpp-test-sw: $(WORKSPACE)
-       $(ECLIPSE) -noSplash -data $(WORKSPACE) -application com.ti.ccstudio.apps.projectImport -ccs.location $(CURDIR)/rpp-test-sw
-       $(ECLIPSE) -noSplash -data $(WORKSPACE) -application com.ti.ccstudio.apps.projectImport -ccs.location $(CURDIR)/rpp-lib
-       $(ECLIPSE) -noSplash -data $(WORKSPACE) -application com.ti.ccstudio.apps.projectBuild -ccs.projects rpp-test-sw
+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/$(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
 
+define RM_OLD_WORKSPACES
+$(foreach i,$(wildcard $(TMP_WORKSPACE) $(basename $(TMP_WORKSPACE)).*),$(call rmdir,$(i))
+)
+endef
+
 clean:
-       rm -rf $(wildcard $(dir $(WORKSPACE))rpp-test-sw-workspace.*)
+       -$(RM_OLD_WORKSPACES)
+
+$(TMP_WORKSPACE):
+       $(call mkdir,$(TMP_WORKSPACE))
+
+ccs-help: $(TMP_WORKSPACE)
+       $(ECLIPSE) -noSplash -data $(TMP_WORKSPACE) -application com.ti.ccstudio.apps.projectBuild -ccs.help
+       $(call rmdir,$(TMP_WORKSPACE))
+
+UNCRUSTIFY_FILES = $(shell git ls-files|git check-attr --stdin uncrustify|awk -F: '/uncrustify: set$$/ {print $$1}')
+define UNCRUSTIFY_ALL
+$(foreach i,$(UNCRUSTIFY_FILES),git show HEAD:$i | uncrustify -c rpp-lib/etc/uncrustify.cfg -o $i
+)
+endef
+
+# Usage: Run 'make uncrustify' and then 'git add -p' to commit the
+# changes you agree with.
+uncrustify:
+       git diff --quiet # Check that the tree is clean
+       $(UNCRUSTIFY_ALL)
+
+$(eval $(call release_rules,rpp-test-sw))
+
+release: $(RELEASE_BASENAME).zip
+
+RELEASE_TARGET = $(TARGET)
+
+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/
+
+RELEASE_LIB_GEN_FILES = Makefile.config build/$(RELEASE_TARGET)/Debug/rpp-lib.lib
 
-$(WORKSPACE):
-       mkdir -p $(WORKSPACE)
+$(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 -
+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/%) $@/
 
-ccs-help: $(WORKSPACE)
-       $(ECLIPSE) -noSplash -data $(WORKSPACE) -application com.ti.ccstudio.apps.projectBuild -ccs.help
+lib:
+       $(MAKE) -C rpp-lib .git/info/attributes # Setup ignored files
+       $(MAKE) -C rpp-lib/build/$(RELEASE_TARGET)/Debug