diff options
Diffstat (limited to 'utils/imxtools/hwemul/dev/Makefile')
-rw-r--r-- | utils/imxtools/hwemul/dev/Makefile | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/utils/imxtools/hwemul/dev/Makefile b/utils/imxtools/hwemul/dev/Makefile new file mode 100644 index 0000000000..9bae1df21b --- /dev/null +++ b/utils/imxtools/hwemul/dev/Makefile | |||
@@ -0,0 +1,91 @@ | |||
1 | CC=arm-elf-eabi-gcc | ||
2 | LD=arm-elf-eabi-gcc | ||
3 | AS=arm-elf-eabi-gcc | ||
4 | OC=arm-elf-eabi-objcopy | ||
5 | SBTOOLS=../../sbtools/ | ||
6 | CFLAGS=-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe -std=gnu99 -mcpu=arm926ej-s -fomit-frame-pointer -Wno-pointer-sign -Wno-override-init -ffunction-sections | ||
7 | CFLAGS_3700=$(CFLAGS) -DHAVE_STMP3700 | ||
8 | ASFLAGS=$(CFLAGS) -D__ASSEMBLER__ | ||
9 | ASFLAGS_3700=$(CFLAGS_3700) -D__ASSEMBLER__ | ||
10 | OCFLAGS= | ||
11 | LINKER_FILE=hwemul.lds | ||
12 | LDFLAGS=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul.map | ||
13 | LDFLAGS_3700=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul3700.map | ||
14 | SRC_C=$(wildcard *.c) | ||
15 | SRC_S=$(wildcard *.S) | ||
16 | OBJ_C=$(SRC_C:.c=.o) | ||
17 | OBJ_S=$(SRC_S:.S=.o) | ||
18 | OBJ_C_3700=$(SRC_C:.c=.3700.o) | ||
19 | OBJ_S_3700=$(SRC_S:.S=.3700.o) | ||
20 | OBJ=$(OBJ_C) $(OBJ_S) | ||
21 | OBJ_3700=$(OBJ_C_3700) $(OBJ_S_3700) | ||
22 | OBJ_EXCEPT_CRT0=$(filter-out crt0.o,$(OBJ)) | ||
23 | OBJ_EXCEPT_CRT0_3700=$(filter-out crt0.3700.o,$(OBJ_3700)) | ||
24 | DEPS=$(OBJ:.o=.d) | ||
25 | EXEC_ELF=hwemul.elf | ||
26 | EXEC_SB=hwemul.sb | ||
27 | EXEC_ELF_3700=hwemul3700.elf | ||
28 | EXEC_SB_3700=hwemul3700.sb | ||
29 | |||
30 | ELF2SB=$(SBTOOLS)/elftosb -d | ||
31 | ELF2SB_CMD=-c hwemul.db | ||
32 | ELF2SB_KEY=-z | ||
33 | SBLOADER=$(SBTOOLS)/sbloader | ||
34 | SBLOADER_CMD=0 $(EXEC_SB) | ||
35 | SBLOADER_CMD_3700=0 $(EXEC_SB_3700) | ||
36 | |||
37 | TOOLS=../../../../tools/ | ||
38 | SCRAMBLE=$(TOOLS)/scramble | ||
39 | |||
40 | EXEC=$(EXEC_SB) $(EXEC_SB_3700) $(EXEC_ELF) $(EXEC_ELF_3700) | ||
41 | |||
42 | all: $(EXEC) | ||
43 | |||
44 | # pull in dependency info for *existing* .o files | ||
45 | -include $(DEPS) | ||
46 | |||
47 | %.3700.o: %.c | ||
48 | $(CC) $(CFLAGS_3700) -c -o $@ $< | ||
49 | $(CC) -MM $(CFLAGS_3700) $*.c > $*.d | ||
50 | @cp -f $*.d $*.d.tmp | ||
51 | @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \ | ||
52 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d | ||
53 | @rm -f $*.d.tmp | ||
54 | |||
55 | %.o: %.c | ||
56 | $(CC) $(CFLAGS) -c -o $@ $< | ||
57 | $(CC) -MM $(CFLAGS) $*.c > $*.d | ||
58 | @cp -f $*.d $*.d.tmp | ||
59 | @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \ | ||
60 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d | ||
61 | @rm -f $*.d.tmp | ||
62 | |||
63 | %.3700.o: %.S | ||
64 | $(AS) $(ASFLAGS_3700) -c -o $@ $< | ||
65 | |||
66 | %.o: %.S | ||
67 | $(AS) $(ASFLAGS) -c -o $@ $< | ||
68 | |||
69 | link.lds: $(LINKER_FILE) | ||
70 | $(CC) -E -x c - < $< | sed '/#/d' > $@ | ||
71 | |||
72 | $(EXEC_ELF): $(OBJ) link.lds | ||
73 | $(LD) $(LDFLAGS) -o $@ $(OBJ_EXCEPT_CRT0) | ||
74 | |||
75 | $(EXEC_SB): $(EXEC_ELF) | ||
76 | $(ELF2SB) $(ELF2SB_CMD) $(ELF2SB_KEY) -o $@ | ||
77 | |||
78 | $(EXEC_ELF_3700): $(OBJ_3700) link.lds | ||
79 | $(LD) $(LDFLAGS_3700) -o $@ $(OBJ_EXCEPT_CRT0_3700) | ||
80 | |||
81 | $(EXEC_SB_3700): $(EXEC_ELF_3700) | ||
82 | $(ELF2SB) $(ELF2SB_CMD) $(ELF2SB_KEY) -o $@ | ||
83 | |||
84 | sbload: $(EXEC_SB) | ||
85 | $(SBLOADER) $(SBLOADER_CMD) | ||
86 | |||
87 | sbload3700: $(EXEC_SB_3700) | ||
88 | $(SBLOADER) $(SBLOADER_CMD_3700) | ||
89 | |||
90 | clean: | ||
91 | rm -rf $(OBJ) $(OBJ_3700) $(DEPS) $(EXEC) *.map | ||