3 # 10.2 Catalogue of Built-In Rules
4 # ================================
7 # 'N.o' is made automatically from 'N.c' with a recipe of the form
8 # '$(CC) $(CPPFLAGS) $(CFLAGS) -c'.
10 # Assembling and preprocessing assembler programs
11 # 'N.o' is made automatically from 'N.s' by running the assembler,
12 # 'as'. The precise recipe is '$(AS) $(ASFLAGS)'.
14 # 'N.s' is made automatically from 'N.S' by running the C
15 # preprocessor, 'cpp'. The precise recipe is '$(CPP) $(CPPFLAGS)'.
17 CPP := arm-none-eabi-cpp
18 CPPFLAGS := -I sys/include
20 AS := arm-none-eabi-as
23 CC := arm-none-eabi-gcc
24 CFLAGS := -march=armv7e-m+fp \
30 -fsingle-precision-constant \
35 -Wmissing-prototypes \
41 LD := arm-none-eabi-ld
45 OC := arm-none-eabi-objcopy
46 OCFLAGS := --output-target=binary
48 # --------------------------------------------------------------------------- #
50 objs := $(patsubst %.c, %.o, $(wildcard sys/*/*.c))
57 # --------------------------------------------------------------------------- #
62 rm -f $(bin) $(elf) $(objs)
67 $(OC) $(OCFLAGS) $< $@
69 $(elf) : $(objs) $(lds)
70 $(LD) $(filter %.o,$^) $(LDFLAGS) $(LDLIBS) -o $@