1 # Structure of build system modelled on the GNU/Linux kernel build system
10 export srctree objtree
12 # Compiler, Preprocessor, Assembler, Linker, etc. options
14 CROSS_COMPILE = arm-none-linux-gnueabi-
15 INCLUDE_DIRS += -I$(CURDIR)/include
17 # Make variables (CC, etc...)
19 export AS = $(CROSS_COMPILE)as
20 export LD = $(CROSS_COMPILE)ld
21 export CC = $(CROSS_COMPILE)gcc
22 export CPP = $(CROSS_COMPILE)$(CC) -E
23 export AR = $(CROSS_COMPILE)ar
24 export NM = $(CROSS_COMPILE)nm
25 export STRIP = $(CROSS_COMPILE)strip
26 export OBJCOPY = $(CROSS_COMPILE)objcopy
27 export OBJDUMP = $(CROSS_COMPILE)objdump
29 export CFLAGS += -nodefaultlibs -nostdlib
30 export CPPFLAGS +=$(INCLUDE_DIRS)
31 export AFLAGS=-mpfu=neon
33 # include the config in all sub-makes
34 MAKEFILES := $(CURDIR)/.config
42 bootloader-ap: bootloader-ap.o
43 $(OBJCOPY) -S -O binary bootloader-ap.o $@
44 @echo "ROM Image is " $@
46 bootloader-ap.o: subdirs
47 $(LD) -N -o bootloader-ap.o arch/arch.o libc/libc.o
55 $(foreach d, $(SUBDIRS), $(MAKE) -C $d $@;)
57 -rm -f *.o bootloader-ap
59 .PHONY: subdirs $(SUBDIRS) all clean