-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile.filerules
55 lines (50 loc) · 1.49 KB
/
Makefile.filerules
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
#
# generate dependencies
#
COBJS := $(filter %.o, $(ML_OBJS-y))
DEPS := $(COBJS:.o=.d)
-include $(DEPS)
all::
#
#
# file type rules
#
#
%.s: %.c
$(call build,CC -S,$(CC) $(CFLAGS) -S -o $@ $<)
%.sym: %
$(call build,SYMBOLS,$(READELF) -sW $< | $(GREP) GLOBAL | $(GREP) -v " UND " | $(GREP) -E 'FUNC|OBJECT|ABS|NOTYPE' | $(AWK) "{print \$$2 \" \" \$$8;}" | $(GREP) -v '^ ' | $(GREP) -v __config_ | $(GREP) -v -E ' _[a-zA-Z]' | sort > $@)
%.o: %.c
$(call build,CC,$(CC) $(CFLAGS) -c -o $@ $<)
%.o: $(PLATFORM_DIR)/%.c
$(call build,CC,$(CC) $(CFLAGS) -c -o $@ $<)
%.o: $(SRC_DIR)/%.c
$(call build,CC,$(CC) $(CFLAGS) -c -o $@ $<)
%.i: %.c
$(call build,CPP,$(CC) $(CFLAGS) -E -c -o $@ $<)
%: %.c
$(call build,LD,$(CC) $(CFLAGS) -o $@ $<)
%.o: $(PLATFORM_DIR)/%.S
$(call build,AS,$(CC) $(AFLAGS) -c -o $@ $<)
%.o: $(SRC_DIR)/%.S
$(call build,AS,$(CC) $(AFLAGS) -c -o $@ $<)
autoexec.bin: autoexec $(XOR_CHK)
$(call build,OBJCOPY,$(OBJCOPY) -O binary $< $@)
$(call build,XOR_CHK,$(XOR_CHK) $@)
autoexec-fir.bin: autoexec-fir $(XOR_CHK)
$(call build,OBJCOPY,$(OBJCOPY) -O binary $< $@)
$(call build,XOR_CHK,$(XOR_CHK) $@)
%.bin: %
$(call build,OBJCOPY,$(OBJCOPY) -O binary $< $@)
$(call build,STAT,$(STAT_CMD) $@)
%.rsc: %
$(call build,LD,$(LD) -r -b binary -o $@ $<)
%-stubs.S: %.map
perl -ne > $@ < $< 'BEGIN { print "#define SYM(a,n) n=a; .global n;\n" } s/[\r\n]//g; s/^\s*0001:([0-9A-Fa-f]+)\s+([^\s]+)$$/SYM(0x\1,\2)\n/ and print;'
%.dis: %.bin
$(OBJDUMP) \
-b binary \
-m arm \
-D \
$< \
> $@