1 | PROJ = main
|
2 | WEBDIR = sample
|
3 | WEBFILE= urom.c
|
4 | INCFIRST=-I./nutbld/include
|
5 | PLATFORM=AT91SAM7X_EK
|
6 | HWDEF+=-D$(PLATFORM)
|
7 | LDSCRIPT=./nut/arch/arm/ldscripts/at91sam7x256_rom.ld
|
8 | MCU=arm7tdmi
|
9 | CRUROM=crurom
|
10 | DEFS = $(HWDEF)
|
11 | INCDIR = ./nut/include
|
12 | TRGT = arm-elf-
|
13 | CC = $(TRGT)gcc
|
14 | CXX = $(TRGT)g++
|
15 | AR = $(TRGT)ar
|
16 | CP = cp
|
17 | AS = $(TRGT)gcc -x assembler-with-cpp
|
18 | RANLIN = $(TARG)ranlib
|
19 | MCFLAGS = -mcpu=$(MCU)
|
20 | CPFLAGS = $(MCFLAGS) -Os -mthumb-interwork -fomit-frame-pointer -Wall -Werror -Wstrict-prototypes -Wa,-ahlms=$(@:.o=.lst) $(DEFS) $(UCPFLAGS)
|
21 | CXXFLAGS = $(MCFLAGS) -Os -fno-delete-null-pointer-checks -fno-exceptions -fno-rtti -Wall -Wa,-ahlms=$(<F:.cc=.lst) $(DEFS) $(UCPFLAGS)
|
22 |
|
23 | LDFLAGS = $(MCFLAGS) -Wl,-T$(LDSCRIPT),-Map=$(PROJ).map,--relax,--sort-common,--strip-all,--cref -L./nutbld/lib
|
24 | ARFLAGS = rsv
|
25 | ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(@:.o=.lst) $(DEFS) $(UASFLAG)
|
26 | TARG = $(PROJ).hex
|
27 | ITARG = $(PROJ).bin
|
28 | DTARG = $(PROJ).elf
|
29 | BIN = $(TRGT)objcopy
|
30 | BINDIR = ./nut/bin/$(MCU)
|
31 |
|
32 | CPFLAGS = $(MCFLAGS) -Os -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=$(<:.c=.lst) $(DEFS)
|
33 |
|
34 | LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJ).map,--cref,--no-warn-mismatch -L./nutbld/lib
|
35 | ELFCOF = $(BIN) --debugging \
|
36 | --change-section-address .data-0x800000 \
|
37 | --change-section-address .bss-0x800000 \
|
38 | --change-section-address .noinit-0x800000 \
|
39 | --change-section-address .eeprom-0x810000
|
40 | BURN=jtagomat
|
41 | BURNMEMORY=FLASHNN
|
42 | BURNFLAGS=-DDEVICE=0x1F0F0F0F -DIMAGE=./$(ITARG) BATCH at91-upl.jom $(BURNMEMORY)
|
43 | SRCS = $(PROJ).c $(WEBFILE)
|
44 | OBJS = $(SRCS:.c=.o)
|
45 | LIBS = ./nutbld/lib/nutinit.o -lnutpro -lnutos -lnutarch -lnutdev -lnutarch -lnutnet -lnutfs -lnutcrt
|
46 | TARG = $(PROJ).hex
|
47 | ifneq (, $(findstring h8300, $(ARCH)))
|
48 | # Libraries specific for H8 port
|
49 | LIBS += -lnutentry -lc -lgcc
|
50 | endif
|
51 | all: $(OBJS) $(TARG) $(ITARG) $(DTARG)
|
52 | $(WEBFILE): $(WEBDIR)/enlogo.gif $(WEBDIR)/entail.gif $(WEBDIR)/index.html $(WEBDIR)/form.html \
|
53 | $(WEBDIR)/flash/egnite.swf $(WEBDIR)/flash/flash.html
|
54 | $(CRUROM) -r -o$(WEBFILE) $(WEBDIR)
|
55 | %o : %c
|
56 | $(CC) -c $(CPFLAGS) $(INCFIRST) -I$(INCDIR) $(INCLAST) $< -o $@
|
57 | %o : %cc
|
58 | $(CXX) -c $(CXXFLAGS) $(INCFIRST) -I$(INCDIR) $(INCLAST) $< -o $@
|
59 | %o : %S
|
60 | $(AS) -c $(ASFLAGS) $(INCFIRST) -I$(INCDIR) $(INCLAST) $< -o $@
|
61 | %s : %c
|
62 | $(CC) -c $(CPFLAGS) $(INCFIRST) -I$(INCDIR) $(INCLAST) $< -o $@
|
63 | %elf: $(OBJS)
|
64 | $(CC) $(OBJS) $(LIB) $(LDFLAGS) -o $@
|
65 | %obj: %elf
|
66 | $(BIN) -O avrobj $< $@
|
67 | %rom: %elf
|
68 | $(BIN) -O srec $< $@
|
69 | %eep: %elf
|
70 | $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" -O srec $< $@
|
71 | %a: $(OBJS)
|
72 | $(AR) $(ARFLAGS) $@ $?
|
73 | %elf: $(OBJS)
|
74 | $(CC) $(OBJS) $(LDFLAGS) -Wl,--start-group $(LIBS) $(ADDLIBS) -Wl,--end-group -o $@
|
75 | %cof: %elf
|
76 | $(ELFCOF) -O coff-ext-avr $< $@
|
77 | %hex: %elf
|
78 | $(BIN) -O ihex $< $@
|
79 | %rom: %elf
|
80 | $(BIN) -O srec $< $@
|
81 | %bin: %elf
|
82 | $(BIN) -O binary $< $@
|
83 | %eep: %elf
|
84 | $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex $< $@
|
85 | burn: $(TARG) $(ITARG)
|
86 | $(BURN) $(BURNFLAGS)
|
87 | install: $(TARG) $(ITARG)
|
88 | $(CP) $(TARG) $(BINDIR)/$(TARG)
|
89 | $(CP) $(ITARG) $(BINDIR)/$(ITARG)
|
90 | clean:
|
91 | -rm -f $(OBJS)
|
92 | -rm -f $(TARG) $(ITARG) $(DTARG)
|
93 | -rm -f $(PROJ).eep
|
94 | -rm -f $(PROJ).obj
|
95 | -rm -f $(PROJ).map
|
96 | -rm -f $(SRCS:.c=.lst)
|
97 | -rm -f $(SRCS:.c=.bak)
|
98 | -rm -f $(SRCS:.c=.i)
|
99 | -rm -f $(WEBFILE)
|