]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blob - Makefile
Use handwritten Makefile to compile the library
[pes-rpp/rpp-lib.git] / Makefile
1 # This makefile tries to build all RPP projects by calling various
2 # Eclipse commands from command line.
3 #
4 # See http://processors.wiki.ti.com/index.php/Projects_-_Command_Line_Build/Create
5 # and https://bugs.eclipse.org/bugs/show_bug.cgi?id=186847
6
7 ECLIPSE=/opt/ti/ccsv5/eclipse/eclipse
8
9 WORKSPACE:=$(shell mktemp --dry-run --tmpdir -d rpp-lib-workspace.XXXXXXXXXX)
10
11 all:
12         rm -rf $(WORKSPACE)
13
14 lib: rpp-lib.lib
15
16 clean:
17         rm -rf $(wildcard $(dir $(WORKSPACE))rpp-lib-workspace.*) rpp-lib.lib
18
19 .PHONY: rpp-lib.lib
20 rpp-lib.lib:
21         $(MAKE) -C Debug
22
23 $(WORKSPACE):
24         mkdir -p $(WORKSPACE)
25
26 # Usage: $(call build_ccs,project directory) or
27 #        $(call build_ccs,,project name) for project in current directory
28 define build_ccs
29 all: $(or $2,$(notdir $1))
30 $(or $2,$(notdir $1)): $(WORKSPACE)
31         $(ECLIPSE) -noSplash -data $(WORKSPACE) -application com.ti.ccstudio.apps.projectImport -ccs.location $(if $1,$(CURDIR)/$1,$(CURDIR))
32         $(ECLIPSE) -noSplash -data $(WORKSPACE) -application com.ti.ccstudio.apps.projectBuild -ccs.projects $(or $2,$(notdir $1))
33 # Previous commands do not return non-zero exit code on build failure - invoke make directly to not miss a potential error
34         $(MAKE) -C $(CURDIR)/$1/Debug all
35 endef
36
37 define build_cdt
38 all: $1
39 $1: $(WORKSPACE)
40         $(ECLIPSE) -noSplash -data $(WORKSPACE) -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import $(CURDIR)/apps/$1
41         $(ECLIPSE) -noSplash -data $(WORKSPACE) -application org.eclipse.cdt.managedbuilder.core.headlessbuild -build $1
42 endef
43
44 $(eval $(call build_ccs,,rpp-lib))
45 $(eval $(call build_ccs,apps/rpp-test-suite))
46
47 $(eval $(call build_cdt,rpp-lib_posix))
48 $(eval $(call build_cdt,rpp-test-suite_posix))
49
50 ccs-help: $(WORKSPACE)
51         $(ECLIPSE) -noSplash -data $(WORKSPACE) -application com.ti.ccstudio.apps.projectBuild -ccs.help