1include cfg.mk 2 3export CROSS_COMPILE := $(shell pwd)/../../../../../../../prebuilts/gcc-arm-none-eabi-7-2017-q4-major/bin/arm-none-eabi- 4 5export CC := $(CROSS_COMPILE)gcc 6export AR := $(CROSS_COMPILE)ar 7export RANLIB := $(CROSS_COMPILE)ranlib 8export LD := $(CROSS_COMPILE)ld 9export OBJCOPY := $(CROSS_COMPILE)objcopy 10export OBJDUMP := $(CROSS_COMPILE)objdump 11 12CSRC = $(wildcard *.c) 13SSRC = $(wildcard *.S) 14 15OBJS := $(patsubst %.c,%.o,$(CSRC) ) 16OBJS += $(patsubst %.S,%.o,$(SSRC) ) 17 18export CFLAGS := -fno-builtin -fno-common 19CFLAGS += -Wall -D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) 20CFLAGS += -I$(PWD)/include/ 21 22CFLAGS += -march=armv7-a 23CFLAGS += -mno-unaligned-access 24 25CFLAGS += -c 26 27CFLAGS += -O2 28 29TARGET = ddr_init 30 31LDSCRIPT := linker.lds 32LDFLAGS := -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) 33LDFLAGS += drv/libdrv.a 34 35.SILENT: 36 37default: 38 make -C drv/ 39 make -C boot/ 40 sed -e 's/RAM_BASE/$(RAM_BASE)/' \ 41 $(LDSCRIPT).mk > $(LDSCRIPT) 42 43 echo " LD $(OBJS) -Map $(TARGET).map -o $(TARGET)" 44 $(LD) $(OBJS) $(LDFLAGS) -Map $(TARGET).map -o $(TARGET) 45 $(OBJCOPY) -O binary $(TARGET) $(TARGET).bin 46 47 mkdir -p ./out 48 $(OBJDUMP) -D $(TARGET) > deasm.s 49 cp $(TARGET).map ./out 50 mv deasm.s ./out 51 52clean: 53 echo " rm boot/*.o" 54 make -C boot/ clean 55 echo " rm drv/*.o libdrv.a" 56 make -C drv/ clean 57 echo " rm $(TARGET) $(TARGET).bin* ./out" 58 rm -rf $(TARGET) $(TARGET).map $(TARGET).bin* ./out 59 60