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