Pavel Chromy's on chip flash loader
[fw/openocd] / src / flash / ocl / at91sam7x / makefile
1 ##############################################################################################\r
2 # Start of default section\r
3 #\r
4 \r
5 TRGT = arm-elf-\r
6 CC   = $(TRGT)gcc\r
7 CP   = $(TRGT)objcopy\r
8 AS   = $(TRGT)gcc -x assembler-with-cpp\r
9 HEX  = $(CP) -O ihex\r
10 BIN  = $(CP) -O binary\r
11 OBJDUMP = $(TRGT)objdump\r
12 \r
13 MCU  = arm7tdmi\r
14 \r
15 # List all default C defines here, like -D_DEBUG=1\r
16 DDEFS = \r
17 \r
18 # List all default ASM defines here, like -D_DEBUG=1\r
19 DADEFS = \r
20 \r
21 # List all default directories to look for include files here\r
22 DINCDIR = \r
23 \r
24 # List the default directory to look for the libraries here\r
25 DLIBDIR =\r
26 \r
27 # List all default libraries here\r
28 DLIBS = \r
29 \r
30 #\r
31 # End of default section\r
32 ##############################################################################################\r
33 \r
34 ##############################################################################################\r
35 # Start of user section\r
36 #\r
37 \r
38 # Define project name here\r
39 PROJECT = at91sam7x_ocl\r
40 \r
41 # Define linker script file here\r
42 LDSCRIPT= at91sam7x_ram.ld\r
43 \r
44 # List all user C define here, like -D_DEBUG=1\r
45 UDEFS = \r
46 \r
47 # Define ASM defines here\r
48 UADEFS = \r
49 \r
50 # List C source files here\r
51 SRC  = main.c dcc.c samflash.c\r
52 \r
53 # List ASM source files here\r
54 ASRC = crt.s\r
55 \r
56 # List all user directories here\r
57 UINCDIR =\r
58 \r
59 # List the user directory to look for the libraries here\r
60 ULIBDIR =\r
61 \r
62 # List all user libraries here\r
63 ULIBS = \r
64 \r
65 # Define optimisation level here\r
66 OPT = -O2\r
67 \r
68 #\r
69 # End of user defines\r
70 ##############################################################################################\r
71 \r
72 \r
73 INCDIR  = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR))\r
74 LIBDIR  = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))\r
75 DEFS    = $(DDEFS) $(UDEFS)\r
76 ADEFS   = $(DADEFS) $(UADEFS)\r
77 OBJS    = $(ASRC:.s=.o) $(SRC:.c=.o)\r
78 LIBS    = $(DLIBS) $(ULIBS)\r
79 MCFLAGS = -mcpu=$(MCU)\r
80 \r
81 ASFLAGS = $(MCFLAGS) -g -gdwarf-2 -Wa,-amhls=$(<:.s=.lst) $(ADEFS)\r
82 CPFLAGS = $(MCFLAGS) $(OPT) -gdwarf-2 -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=$(<:.c=.lst) $(DEFS)\r
83 LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)\r
84 \r
85 # Generate dependency information\r
86 #CPFLAGS += -MD -MP -MF .dep/$(@F).d\r
87 \r
88 #\r
89 # makefile rules\r
90 #\r
91 \r
92 all: $(OBJS) $(PROJECT).elf $(PROJECT).hex $(PROJECT).bin $(PROJECT).lst\r
93 \r
94 %o : %c\r
95         $(CC) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@\r
96 \r
97 %o : %s\r
98         $(AS) -c $(ASFLAGS) $< -o $@\r
99 \r
100 %elf: $(OBJS)\r
101         $(CC) $(OBJS) $(LDFLAGS) $(LIBS) -o $@\r
102 \r
103 %hex: %elf\r
104         $(HEX) $< $@\r
105 \r
106 %bin: %elf\r
107         $(BIN) $< $@\r
108 \r
109 %.lst: %.elf\r
110         $(OBJDUMP) -h -S $< > $@\r
111 \r
112 clean:\r
113         -rm -f $(OBJS)\r
114         -rm -f $(PROJECT).elf\r
115         -rm -f $(PROJECT).map\r
116         -rm -f $(PROJECT).hex\r
117         -rm -f $(PROJECT).bin\r
118         -rm -f $(PROJECT).lst\r
119         -rm -f $(SRC:.c=.c.bak)\r
120         -rm -f $(SRC:.c=.lst)\r
121         -rm -f $(ASRC:.s=.s.bak)\r
122         -rm -f $(ASRC:.s=.lst)\r
123         -rm -fR .dep\r
124 \r
125\r
126 # Include the dependency files, should be the last of the makefile\r
127 #\r
128 #-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)\r
129 \r
130 # *** EOF ***