summaryrefslogtreecommitdiff
path: root/utils/imxtools/hwemul/dev/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'utils/imxtools/hwemul/dev/Makefile')
-rw-r--r--utils/imxtools/hwemul/dev/Makefile91
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 @@
1CC=arm-elf-eabi-gcc
2LD=arm-elf-eabi-gcc
3AS=arm-elf-eabi-gcc
4OC=arm-elf-eabi-objcopy
5SBTOOLS=../../sbtools/
6CFLAGS=-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
7CFLAGS_3700=$(CFLAGS) -DHAVE_STMP3700
8ASFLAGS=$(CFLAGS) -D__ASSEMBLER__
9ASFLAGS_3700=$(CFLAGS_3700) -D__ASSEMBLER__
10OCFLAGS=
11LINKER_FILE=hwemul.lds
12LDFLAGS=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul.map
13LDFLAGS_3700=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul3700.map
14SRC_C=$(wildcard *.c)
15SRC_S=$(wildcard *.S)
16OBJ_C=$(SRC_C:.c=.o)
17OBJ_S=$(SRC_S:.S=.o)
18OBJ_C_3700=$(SRC_C:.c=.3700.o)
19OBJ_S_3700=$(SRC_S:.S=.3700.o)
20OBJ=$(OBJ_C) $(OBJ_S)
21OBJ_3700=$(OBJ_C_3700) $(OBJ_S_3700)
22OBJ_EXCEPT_CRT0=$(filter-out crt0.o,$(OBJ))
23OBJ_EXCEPT_CRT0_3700=$(filter-out crt0.3700.o,$(OBJ_3700))
24DEPS=$(OBJ:.o=.d)
25EXEC_ELF=hwemul.elf
26EXEC_SB=hwemul.sb
27EXEC_ELF_3700=hwemul3700.elf
28EXEC_SB_3700=hwemul3700.sb
29
30ELF2SB=$(SBTOOLS)/elftosb -d
31ELF2SB_CMD=-c hwemul.db
32ELF2SB_KEY=-z
33SBLOADER=$(SBTOOLS)/sbloader
34SBLOADER_CMD=0 $(EXEC_SB)
35SBLOADER_CMD_3700=0 $(EXEC_SB_3700)
36
37TOOLS=../../../../tools/
38SCRAMBLE=$(TOOLS)/scramble
39
40EXEC=$(EXEC_SB) $(EXEC_SB_3700) $(EXEC_ELF) $(EXEC_ELF_3700)
41
42all: $(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
69link.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
84sbload: $(EXEC_SB)
85 $(SBLOADER) $(SBLOADER_CMD)
86
87sbload3700: $(EXEC_SB_3700)
88 $(SBLOADER) $(SBLOADER_CMD_3700)
89
90clean:
91 rm -rf $(OBJ) $(OBJ_3700) $(DEPS) $(EXEC) *.map