# To show build commands: make V=1 ifneq ($(V),1) Q := @ endif #use RASPPI = 1BRev1 for Raspberry Pi 1B Rev 1 (26 IOports) (GPIO0/1/21) #use RASPPI = 1BRev2 for Raspberry Pi 1B Rev 2 (26 IOports) (GPIO2/3/27) #use RASPPI = 1BPlus for Raspberry Pi 1B+ (40 I/OPorts) RASPPI ?= 1BPlus PREFIX ?= arm-none-eabi- CC = $(PREFIX)gcc CPP = $(PREFIX)g++ AS = $(CC) LD = $(PREFIX)ld AR = $(PREFIX)ar ifeq ($(strip $(RASPPI)),0) ARCH ?= -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -DRPIZERO=1 -DEXPERIMENTALZERO=1 CFLAGS += -DRPIZERO=1 -DRASPPI=1 else ifeq ($(strip $(RASPPI)),1BRev1) ARCH ?= -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -DRPI1BREV1=1 -DEXPERIMENTALZERO=1 CFLAGS += -DRPI1BREV1=1 -DRASPPI=1 else ifeq ($(strip $(RASPPI)),1BRev2) ARCH ?= -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -DRPI1BREV2=1 -DEXPERIMENTALZERO=1 CFLAGS += -DRPI1BREV2=1 -DRASPPI=1 else ifeq ($(strip $(RASPPI)),1BPlus) ARCH ?= -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -DRPI1BPLUS=1 -DEXPERIMENTALZERO=1 CFLAGS += -DRPI1BPLUS=1 -DRASPPI=1 else ifeq ($(strip $(RASPPI)),2) ARCH ?= -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -marm -DRPI2=1 -DEXPERIMENTALZERO=1 CFLAGS += -DRPI2=1 else ifeq ($(strip $(RASPPI)),3) ARCH ?= -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard -marm -DRPI3=1 CFLAGS += -DRPI3=1 else $(error RASPPI must be one of: 0, 1BRev1, 1BRev2, 1BPlus, 2, 3) endif AFLAGS += $(ARCH) CFLAGS += $(ARCH) -Wall -Wno-unused-variable -Wno-unused-but-set-variable -Wno-psabi -fsigned-char -fno-builtin -Ofast -DNDEBUG CPPFLAGS := $(CFLAGS) $(CPPFLAGS) -fno-exceptions -fno-rtti -std=c++0x -Wno-write-strings CFLAGS += -fno-delete-null-pointer-checks -fdata-sections -ffunction-sections -u _printf_float -std=gnu99 .PHONY: clean %.o: %.S @echo " AS $@" $(Q)$(AS) $(AFLAGS) $(INCLUDE) -c -o $@ $< %.o: %.c @echo " CC $@" $(Q)$(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $< %.o: %.cpp @echo " CPP $@" $(Q)$(CPP) $(CPPFLAGS) $(INCLUDE) -c -o $@ $<