diff options
Diffstat (limited to 'utils/hwstub/stmp/Makefile')
-rw-r--r-- | utils/hwstub/stmp/Makefile | 87 |
1 files changed, 34 insertions, 53 deletions
diff --git a/utils/hwstub/stmp/Makefile b/utils/hwstub/stmp/Makefile index ca61fe392d..7fd33c3d9e 100644 --- a/utils/hwstub/stmp/Makefile +++ b/utils/hwstub/stmp/Makefile | |||
@@ -1,58 +1,51 @@ | |||
1 | PREFIX?=arm-elf-eabi- | 1 | # |
2 | CC=$(PREFIX)gcc | 2 | # common |
3 | LD=$(PREFIX)gcc | 3 | # |
4 | AS=$(PREFIX)gcc | 4 | CC=arm-elf-eabi-gcc |
5 | OC=$(PREFIX)objcopy | 5 | LD=arm-elf-eabi-gcc |
6 | SBTOOLS=../../sbtools/ | 6 | AS=arm-elf-eabi-gcc |
7 | OC=arm-elf-eabi-objcopy | ||
7 | 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 | 8 | 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 |
8 | CFLAGS_3700=$(CFLAGS) -DHAVE_STMP3700 | ||
9 | ASFLAGS=$(CFLAGS) -D__ASSEMBLER__ | 9 | ASFLAGS=$(CFLAGS) -D__ASSEMBLER__ |
10 | ASFLAGS_3700=$(CFLAGS_3700) -D__ASSEMBLER__ | ||
11 | OCFLAGS= | 10 | OCFLAGS= |
12 | LINKER_FILE=hwemul.lds | 11 | LINKER_FILE=hwstub.lds |
13 | LDFLAGS=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul.map | 12 | TMP_LDS=link.lds |
14 | LDFLAGS_3700=-lgcc -Os -nostdlib -Tlink.lds -Wl,-Map,hwemul3700.map | 13 | TMP_MAP=hwstub.map |
14 | LDFLAGS=-lgcc -Os -nostdlib -T$(TMP_LDS) -Wl,-Map,$(TMP_MAP) | ||
15 | SRC_C=$(wildcard *.c) | 15 | SRC_C=$(wildcard *.c) |
16 | SRC_S=$(wildcard *.S) | 16 | SRC_S=$(wildcard *.S) |
17 | OBJ_C=$(SRC_C:.c=.o) | 17 | OBJ_C=$(SRC_C:.c=.o) |
18 | OBJ_S=$(SRC_S:.S=.o) | 18 | OBJ_S=$(SRC_S:.S=.o) |
19 | OBJ_C_3700=$(SRC_C:.c=.3700.o) | ||
20 | OBJ_S_3700=$(SRC_S:.S=.3700.o) | ||
21 | OBJ=$(OBJ_C) $(OBJ_S) | 19 | OBJ=$(OBJ_C) $(OBJ_S) |
22 | OBJ_3700=$(OBJ_C_3700) $(OBJ_S_3700) | ||
23 | OBJ_EXCEPT_CRT0=$(filter-out crt0.o,$(OBJ)) | 20 | OBJ_EXCEPT_CRT0=$(filter-out crt0.o,$(OBJ)) |
24 | OBJ_EXCEPT_CRT0_3700=$(filter-out crt0.3700.o,$(OBJ_3700)) | ||
25 | DEPS=$(OBJ:.o=.d) | 21 | DEPS=$(OBJ:.o=.d) |
26 | EXEC_ELF=hwemul.elf | 22 | EXEC_ELF=hwstub.elf |
27 | EXEC_SB=hwemul.sb | ||
28 | EXEC_ELF_3700=hwemul3700.elf | ||
29 | EXEC_SB_3700=hwemul3700.sb | ||
30 | 23 | ||
24 | # | ||
25 | # image production | ||
26 | # | ||
27 | TOOLS=../../../tools | ||
28 | SBTOOLS=../../imxtools/sbtools | ||
29 | |||
30 | # sb (stmp37xx) | ||
31 | EXEC_SB=hwstub.sb | ||
31 | ELF2SB=$(SBTOOLS)/elftosb -d | 32 | ELF2SB=$(SBTOOLS)/elftosb -d |
32 | ELF2SB_CMD=-c hwemul.db | 33 | ELF2SB_CMD=-c hwstub.db |
33 | ELF2SB_KEY=-z | 34 | ELF2SB_KEY?=-z |
34 | SBLOADER=$(SBTOOLS)/sbloader | ||
35 | SBLOADER_CMD=0 $(EXEC_SB) | ||
36 | SBLOADER_CMD_3700=0 $(EXEC_SB_3700) | ||
37 | 35 | ||
38 | TOOLS=../../../../tools/ | 36 | # sb1 (stmp36xx) |
39 | SCRAMBLE=$(TOOLS)/scramble | 37 | EXEC_SB1=hwstub.sb1 |
38 | ELF2SB1_CMD=-loadjump $(EXEC_ELF) | ||
39 | ELF2SB1_KEY?= | ||
40 | ELF2SB1=$(SBTOOLS)/elftosb1 -d | ||
40 | 41 | ||
41 | EXEC=$(EXEC_SB) $(EXEC_SB_3700) $(EXEC_ELF) $(EXEC_ELF_3700) | 42 | EXEC=$(EXEC_ELF) $(EXEC_SB) $(EXEC_SB1) |
42 | 43 | ||
43 | all: $(EXEC) | 44 | all: $(EXEC) |
44 | 45 | ||
45 | # pull in dependency info for *existing* .o files | 46 | # pull in dependency info for *existing* .o files |
46 | -include $(DEPS) | 47 | -include $(DEPS) |
47 | 48 | ||
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 | 49 | %.o: %.c |
57 | $(CC) $(CFLAGS) -c -o $@ $< | 50 | $(CC) $(CFLAGS) -c -o $@ $< |
58 | $(CC) -MM $(CFLAGS) $*.c > $*.d | 51 | $(CC) -MM $(CFLAGS) $*.c > $*.d |
@@ -61,32 +54,20 @@ all: $(EXEC) | |||
61 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d | 54 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d |
62 | @rm -f $*.d.tmp | 55 | @rm -f $*.d.tmp |
63 | 56 | ||
64 | %.3700.o: %.S | ||
65 | $(AS) $(ASFLAGS_3700) -c -o $@ $< | ||
66 | |||
67 | %.o: %.S | 57 | %.o: %.S |
68 | $(AS) $(ASFLAGS) -c -o $@ $< | 58 | $(AS) $(ASFLAGS) -c -o $@ $< |
69 | 59 | ||
70 | link.lds: $(LINKER_FILE) | 60 | $(TMP_LDS): $(LINKER_FILE) |
71 | $(CC) -E -x c - < $< | sed '/#/d' > $@ | 61 | $(CC) -E -x c - < $< | sed '/#/d' > $@ |
72 | 62 | ||
73 | $(EXEC_ELF): $(OBJ) link.lds | 63 | $(EXEC_ELF): $(OBJ) $(TMP_LDS) |
74 | $(LD) $(LDFLAGS) -o $@ $(OBJ_EXCEPT_CRT0) | 64 | $(LD) $(LDFLAGS) -o $@ $(OBJ_EXCEPT_CRT0) |
75 | 65 | ||
76 | $(EXEC_SB): $(EXEC_ELF) | 66 | $(EXEC_SB): $(EXEC_ELF) |
77 | $(ELF2SB) $(ELF2SB_CMD) $(ELF2SB_KEY) -o $@ | 67 | $(ELF2SB) $(ELF2SB_CMD) $(ELF2SB_KEY) -o $@ |
78 | 68 | ||
79 | $(EXEC_ELF_3700): $(OBJ_3700) link.lds | 69 | $(EXEC_SB1): $(EXEC_ELF) |
80 | $(LD) $(LDFLAGS_3700) -o $@ $(OBJ_EXCEPT_CRT0_3700) | 70 | $(ELF2SB1) $(ELF2SB1_CMD) $(ELF2SB1_KEY) -o $@ |
81 | |||
82 | $(EXEC_SB_3700): $(EXEC_ELF_3700) | ||
83 | $(ELF2SB) $(ELF2SB_CMD) $(ELF2SB_KEY) -o $@ | ||
84 | |||
85 | sbload: $(EXEC_SB) | ||
86 | $(SBLOADER) $(SBLOADER_CMD) | ||
87 | |||
88 | sbload3700: $(EXEC_SB_3700) | ||
89 | $(SBLOADER) $(SBLOADER_CMD_3700) | ||
90 | 71 | ||
91 | clean: | 72 | clean: |
92 | rm -rf $(OBJ) $(OBJ_3700) $(DEPS) $(EXEC) *.map | 73 | rm -rf $(OBJ) $(DEPS) $(EXEC) $(TMP_LDS) $(TMP_MAP) \ No newline at end of file |