forked from well-typed/libedsign
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrules.mk
27 lines (22 loc) · 814 Bytes
/
rules.mk
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
define c-objs # args: $1 = dir, $2 = source files
$1/%.dyn_o: $1/%.c
$$(QCC) $$(MY_CFLAGS) -fPIC -o $$@ -c $$<
$1/%.o: $1/%.c
$$(QCC) $$(MY_CFLAGS) -o $$@ -c $$<
STATIC_OBJS+=$$(patsubst %.c,$1/%.o,$2)
DYNAMIC_OBJS+=$$(patsubst %.c,$1/%.dyn_o,$2)
endef
define test # args: $1 = dir, $2 = source file names
$1/%.t: $1/%.o
$$(QLINK) $$(MY_CFLAGS) -o $$@ $$<
$1/%.o: $1/%.c amalg-src
$$(QCC) $$(MY_CFLAGS) -o $$@ -c $$<
$1/%.frama_c.txt: $1/%.c amalg-src
$$(QFRAMAC) -val -no-val-show-progress -machdep x86_64 \
-obviously-terminates -cpp-extra-args="$$(MY_INCLUDES)" $$< \
| (egrep -i "(user error|assert)" > $$@; test "$$$$?" -eq 1)
TEST_OBJS+=$$(patsubst %,$1/%.o,$2)
TEST_EXES+=$$(patsubst %,$1/%.t,$2)
FRAMAC_ANALYSIS+=$$(patsubst %,$1/%.frama_c.txt,$2)
.INTERMEDIATE: $$(patsubst %,$1/%.o,$2)
endef