608333140ae1bc8eb0b6d88869dd682f8c365e13
[fw/openocd] / contrib / loaders / flash / msp432 / Makefile
1 BIN2C = ../../../../src/helper/bin2char.sh
2
3 CROSS_COMPILE ?= arm-none-eabi-
4 GCC     = $(CROSS_COMPILE)gcc
5 OBJCOPY = $(CROSS_COMPILE)objcopy
6
7 FLAGS = -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb
8
9 CFLAGS  = -c -DNO_MSP_CLASSIC_DEFINES -Dgcc -Wall -ffunction-sections
10 CFLAGS += -fdata-sections -std=c99 -O4
11
12 LDFLAGS = -lc -lnosys -Wl,--gc-sections
13
14 MSP432E4X_OBJS := \
15 msp432e4x/driverlib.o \
16 msp432e4x/main_msp432e4x.o \
17 msp432e4x/startup_msp432e4.o
18
19 MSP432P401X_OBJS := \
20 msp432p401x/driverlib.o \
21 msp432p401x/main_msp432p401x.o \
22 msp432p401x/startup_msp432p4.o
23
24 MSP432P411X_OBJS := \
25 msp432p411x/driverlib.o \
26 msp432p411x/main_msp432p411x.o \
27 msp432p411x/startup_msp432p4.o
28
29 all: msp432e4x_algo.inc msp432p401x_algo.inc msp432p411x_algo.inc
30
31 msp432e4x/%.o: %.c
32         @echo 'Building file: $<'
33         @echo 'Invoking: GNU Compiler'
34         $(GCC) -D__MSP432E4X__ $(FLAGS) $(CFLAGS) -o"$@" "$(shell echo $<)"
35         @echo 'Finished building: $<'
36         @echo ' '
37
38 msp432p401x/%.o: %.c
39         @echo 'Building file: $<'
40         @echo 'Invoking: GNU Compiler'
41         $(GCC) -D__MSP432P401X__ $(FLAGS) $(CFLAGS) -o"$@" "$(shell echo $<)"
42         @echo 'Finished building: $<'
43         @echo ' '
44
45 msp432p411x/%.o: %.c
46         @echo 'Building file: $<'
47         @echo 'Invoking: GNU Compiler'
48         $(GCC) -D__MSP432P411X__ $(FLAGS) $(CFLAGS) -o"$@" "$(shell echo $<)"
49         @echo 'Finished building: $<'
50         @echo ' '
51
52 msp432e4x_algo.out: $(MSP432E4X_OBJS)
53         @echo 'Building target: $@'
54         @echo 'Invoking: GNU Linker'
55         $(GCC) $(FLAGS) $(LDFLAGS) -o$@ $(MSP432E4X_OBJS) -Tmsp432e4x/msp432e4x.lds
56         @echo 'Finished building target: $@'
57         @echo ' '
58
59 msp432p401x_algo.out: $(MSP432P401X_OBJS)
60         @echo 'Building target: $@'
61         @echo 'Invoking: GNU Linker'
62         $(GCC) $(FLAGS) $(LDFLAGS) -o$@ $(MSP432P401X_OBJS) -Tmsp432p401x/msp432p401x.lds
63         @echo 'Finished building target: $@'
64         @echo ' '
65
66 msp432p411x_algo.out: $(MSP432P411X_OBJS)
67         @echo 'Building target: $@'
68         @echo 'Invoking: GNU Linker'
69         $(GCC) $(FLAGS) $(LDFLAGS) -o$@ $(MSP432P411X_OBJS) -Tmsp432p411x/msp432p411x.lds
70         @echo 'Finished building target: $@'
71         @echo ' '
72
73 %.bin: %.out
74         @echo 'Building target: $@'
75         @echo 'Invoking: GNU Objcopy Utility'
76         $(OBJCOPY) -Obinary $< $@
77         @echo 'Finished building target: $@'
78         @echo ' '
79
80 %.inc: %.bin
81         @echo 'Building target: $@'
82         @echo 'Invoking Bin2Char Script'
83         $(BIN2C) < $< > $@
84         rm $< $*.out
85         @echo 'Finished building target: $@'
86         @echo ' '
87
88 clean:
89         @echo 'Cleaning Targets and Build Artifacts'
90         rm -rf *.inc *.bin *.out *.map
91         rm -rf msp432e4x/*.o msp432e4x/*.d
92         rm -rf msp432p401x/*.o msp432p401x/*.d
93         rm -rf msp432p411x/*.o msp432p411x/*.d
94         @echo 'Finished clean'
95         @echo ' '
96
97 .PRECIOUS: %.bin
98
99 .PHONY: all clean