summaryrefslogtreecommitdiff
path: root/utils/hwstub/stmp/Makefile
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-06-12 19:46:04 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-06-12 19:46:04 +0200
commit11da9d23fe323ce452fcd04a10a0ddf78eaa63ea (patch)
tree7ab4d162b2a944214bb01d498d5a0400dec031a0 /utils/hwstub/stmp/Makefile
parent3f4eeb850e91fd026a99f2b17bd7e0837f112bb5 (diff)
downloadrockbox-11da9d23fe323ce452fcd04a10a0ddf78eaa63ea.tar.gz
rockbox-11da9d23fe323ce452fcd04a10a0ddf78eaa63ea.zip
imxtools: move hwemul to its own directory
The hwemul is only partly imx specific: the stub is stmp specific but could be ported to other targets, the computer side and the protocol are mostly stmp independent (or should be). Change-Id: If88febffe591b0de86ea11cb740455ba20ddc401
Diffstat (limited to 'utils/hwstub/stmp/Makefile')
-rw-r--r--utils/hwstub/stmp/Makefile92
1 files changed, 92 insertions, 0 deletions
diff --git a/utils/hwstub/stmp/Makefile b/utils/hwstub/stmp/Makefile
new file mode 100644
index 0000000000..ca61fe392d
--- /dev/null
+++ b/utils/hwstub/stmp/Makefile
@@ -0,0 +1,92 @@
1PREFIX?=arm-elf-eabi-
2CC=$(PREFIX)gcc
3LD=$(PREFIX)gcc
4AS=$(PREFIX)gcc
5OC=$(PREFIX)objcopy
6SBTOOLS=../../sbtools/
7CFLAGS=-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
8CFLAGS_3700=$(CFLAGS) -DHAVE_STMP3700
9ASFLAGS=$(CFLAGS) -D__ASSEMBLER__
10ASFLAGS_3700=$(CFLAGS_3700) -D__ASSEMBLER__
11OCFLAGS=
12LINKER_FILE=hwemul.lds
13LDFLAGS=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul.map
14LDFLAGS_3700=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul3700.map
15SRC_C=$(wildcard *.c)
16SRC_S=$(wildcard *.S)
17OBJ_C=$(SRC_C:.c=.o)
18OBJ_S=$(SRC_S:.S=.o)
19OBJ_C_3700=$(SRC_C:.c=.3700.o)
20OBJ_S_3700=$(SRC_S:.S=.3700.o)
21OBJ=$(OBJ_C) $(OBJ_S)
22OBJ_3700=$(OBJ_C_3700) $(OBJ_S_3700)
23OBJ_EXCEPT_CRT0=$(filter-out crt0.o,$(OBJ))
24OBJ_EXCEPT_CRT0_3700=$(filter-out crt0.3700.o,$(OBJ_3700))
25DEPS=$(OBJ:.o=.d)
26EXEC_ELF=hwemul.elf
27EXEC_SB=hwemul.sb
28EXEC_ELF_3700=hwemul3700.elf
29EXEC_SB_3700=hwemul3700.sb
30
31ELF2SB=$(SBTOOLS)/elftosb -d
32ELF2SB_CMD=-c hwemul.db
33ELF2SB_KEY=-z
34SBLOADER=$(SBTOOLS)/sbloader
35SBLOADER_CMD=0 $(EXEC_SB)
36SBLOADER_CMD_3700=0 $(EXEC_SB_3700)
37
38TOOLS=../../../../tools/
39SCRAMBLE=$(TOOLS)/scramble
40
41EXEC=$(EXEC_SB) $(EXEC_SB_3700) $(EXEC_ELF) $(EXEC_ELF_3700)
42
43all: $(EXEC)
44
45# pull in dependency info for *existing* .o files
46-include $(DEPS)
47
48%.3700.o: %.c
49 $(CC) $(CFLAGS_3700) -c -o $@ $<
50 $(CC) -MM $(CFLAGS_3700) $*.c > $*.d
51 @cp -f $*.d $*.d.tmp
52 @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \
53 sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
54 @rm -f $*.d.tmp
55
56%.o: %.c
57 $(CC) $(CFLAGS) -c -o $@ $<
58 $(CC) -MM $(CFLAGS) $*.c > $*.d
59 @cp -f $*.d $*.d.tmp
60 @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \
61 sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
62 @rm -f $*.d.tmp
63
64%.3700.o: %.S
65 $(AS) $(ASFLAGS_3700) -c -o $@ $<
66
67%.o: %.S
68 $(AS) $(ASFLAGS) -c -o $@ $<
69
70link.lds: $(LINKER_FILE)
71 $(CC) -E -x c - < $< | sed '/#/d' > $@
72
73$(EXEC_ELF): $(OBJ) link.lds
74 $(LD) $(LDFLAGS) -o $@ $(OBJ_EXCEPT_CRT0)
75
76$(EXEC_SB): $(EXEC_ELF)
77 $(ELF2SB) $(ELF2SB_CMD) $(ELF2SB_KEY) -o $@
78
79$(EXEC_ELF_3700): $(OBJ_3700) link.lds
80 $(LD) $(LDFLAGS_3700) -o $@ $(OBJ_EXCEPT_CRT0_3700)
81
82$(EXEC_SB_3700): $(EXEC_ELF_3700)
83 $(ELF2SB) $(ELF2SB_CMD) $(ELF2SB_KEY) -o $@
84
85sbload: $(EXEC_SB)
86 $(SBLOADER) $(SBLOADER_CMD)
87
88sbload3700: $(EXEC_SB_3700)
89 $(SBLOADER) $(SBLOADER_CMD_3700)
90
91clean:
92 rm -rf $(OBJ) $(OBJ_3700) $(DEPS) $(EXEC) *.map