# Structure of build system modelled on the GNU/Linux kernel build system obj-y := srctree := $(CURDIR) objtree := $(CURDIR) src := $(srctree) obj := $(objtree) export srctree objtree # Compiler, Preprocessor, Assembler, Linker, etc. options CROSS_COMPILE = arm-none-linux-gnueabi- INCLUDE_DIRS += -I$(CURDIR)/include # Make variables (CC, etc...) export AS = $(CROSS_COMPILE)as export LD = $(CROSS_COMPILE)ld export CC = $(CROSS_COMPILE)gcc export CPP = $(CROSS_COMPILE)$(CC) -E export AR = $(CROSS_COMPILE)ar export NM = $(CROSS_COMPILE)nm export STRIP = $(CROSS_COMPILE)strip export OBJCOPY = $(CROSS_COMPILE)objcopy export OBJDUMP = $(CROSS_COMPILE)objdump export CFLAGS += -nodefaultlibs -nostdlib export CPPFLAGS +=$(INCLUDE_DIRS) export AFLAGS=-mpfu=neon # include the config in all sub-makes MAKEFILES := $(CURDIR)/.config include $(MAKEFILES) SUBDIRS = arch libc all: bootloader-ap bootloader-ap: bootloader-ap.o $(OBJCOPY) -S -O binary bootloader-ap.o $@ @echo "ROM Image is " $@ bootloader-ap.o: subdirs $(LD) -N -o bootloader-ap.o arch/arch.o libc/libc.o subdirs: $(SUBDIRS) $(SUBDIRS): $(MAKE) -C $@ clean: $(foreach d, $(SUBDIRS), $(MAKE) -C $d $@;) -rm -f *.o bootloader-ap .PHONY: subdirs $(SUBDIRS) all clean