-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
78 lines (53 loc) · 1.47 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
PACKAGE_NAME = feetech
AVERSIVE_ROOT ?= $(PWD)/../..
CONAN ?= $(AVERSIVE_ROOT)/tools/bin/conan
################################
.PHONY: arduino_package test all export
################################
all:
@echo "Usage: make {export,arduino_package,test,clean,mrpoper}"
################################
TESTS = sc
test: export
define TEST_RULE
test: test_$(1)
test_$(1):
@cd test/$(1) && $(MAKE) -s test
endef
$(foreach t,$(TESTS),$(eval $(call TEST_RULE,$(t))))
################################
clean:
@rm -rf build
define CLEAN_RULE
clean: clean_$(1)
clean_$(1):
@cd test/$(1) && $(MAKE) -s clean
endef
$(foreach t,$(TESTS),$(eval $(call CLEAN_RULE,$(t))))
mrproper: clean
@rm -f *~
@rm -f *.pyc
define MRPROPER_RULE
mrproper: mrproper_$(1)
mrproper_$(1):
@cd test/$(1) && $(MAKE) -s mrproper
endef
$(foreach t,$(TESTS),$(eval $(call MRPROPER_RULE,$(t))))
################################
SOURCES = $(wildcard include/$(PACKAGE_NAME)/*.hpp)
export: build/exported
@touch build/exported
build/exported: build $(SOURCES)
@$(CONAN) export AversivePlusPlus/dev
################################
arduino_package: build/${PACKAGE_NAME}.zip
build/${PACKAGE_NAME}.zip: build/arduino/${PACKAGE_NAME}.h
@cd build/arduino && zip ${PACKAGE_NAME}.zip . -r && mv ${PACKAGE_NAME}.zip ..
build/arduino/${PACKAGE_NAME}.h: build/arduino
@cp -r include/* $<
@cp pro/arduino/aversive_${PACKAGE_NAME}.h $<
build/arduino: build
@mkdir $@
################################
build:
@mkdir $@