]> begriffs open source - cmsis-driver-bare/blob - Makefile
Initial makefile based structure
[cmsis-driver-bare] / Makefile
1 .POSIX:
2
3 TARGET  = arm-none-eabi
4 CC      = $(TARGET)-gcc      # compiler
5 AR      = $(TARGET)-ar       # for building static libs
6 OBJCOPY = $(TARGET)-objcopy  # to strip debug symbols
7
8 CFLAGS_MCU = -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16
9
10 .SUFFIXES : .c .o .dbg .bin
11
12 .dbg.bin :
13         $(OBJCOPY) -O binary $< $@
14
15 CFLAGS_CMSIS = -I. \
16                            -Icmsis/CMSIS/Core/Include \
17                -Icmsis/CMSIS/Driver/Include \
18                            -Icmsis/CMSIS/RTOS2/Include \
19                            -Icmsis-driver-validation/Include
20
21 CFLAGS_CMSIS_DFP = -DCMSIS_device_header='"stm32f4xx.h"' \
22                    -DSTM32F411xE \
23                    -Icmsis-dfp-stm32f4/Include
24
25 CFLAGS = -std=c99 -pedantic -Wall -Wextra -g3 -gdwarf-3 -ggdb -O0 \
26                  --specs=picolibc.specs $(CFLAGS_MCU) \
27                  $(CFLAGS_CMSIS) $(CFLAGS_CMSIS_DFP)
28
29 LDFLAGS = -L. \
30                   -Tgcc_arm.ld \
31                   --oslib=semihost \
32                   -Wl,--print-memory-usage
33
34 LDLIBS = -lcmsis-driver-validate -lcmsis-driver
35
36 all : demo_gpio.bin cmsis-validate.bin
37
38 demo_gpio.dbg : demo_gpio.c libcmsis-driver.a gcc_arm.ld
39         $(CC) $(CFLAGS) demo_gpio.c $(LDFLAGS) -o $@ $(LDLIBS)
40
41 libcmsis-driver.a : gpio.o sram_vtor.o debounce.o system_stm32f4xx.o
42         $(AR) r $@ $?
43
44 ## Tests ###################################################
45
46 CFLAGS += -DRTE_CMSIS_DV_GPIO -DRTE_CMSIS_DV_PACK_VER='"3.1.0"' -DRTE_CMSIS_RTOS2
47
48 VALIDATION_OBJS = DV_Framework.o DV_Report.o DV_GPIO.o cmsis_dv.o
49
50 $(VALIDATION_OBJS) : DV_GPIO_Config.h Makefile
51
52 libcmsis-driver-validate.a : $(VALIDATION_OBJS)
53         $(AR) r $@ $?
54
55 cmsis-validate.dbg : cmsis-validate.c libcmsis-driver.a libcmsis-driver-validate.a gcc_arm.ld
56         $(CC) $(CFLAGS) cmsis-validate.c $(LDFLAGS) -o $@ $(LDLIBS)
57
58 # our debug binary, which depends on three things
59
60 VPATH = cmsis-dfp-stm32f4/Source/Templates:cmsis-driver-validation/Source:freertos:freertos/portable/GCC/ARM_CM4F
61
62
63 ## utilities ###############################################
64
65 .PHONY:
66 clean :
67         rm -f *.[ao] *.dbg *.bin