1. 程式人生 > >UBOOT的編譯過程三

UBOOT的編譯過程三

繼續上程式碼

OBJS  = $(CPUDIR)/start.o
ifeq ($(CPU),i386)
OBJS += $(CPUDIR)/start16.o
OBJS += $(CPUDIR)/resetvec.o
endif
ifeq ($(CPU),ppc4xx)
OBJS += $(CPUDIR)/resetvec.o
endif
ifeq ($(CPU),mpc85xx)
OBJS += $(CPUDIR)/resetvec.o
endif

OBJS := $(addprefix $(obj),$(OBJS))

LIBS  = lib/libgeneric.o
LIBS += lib/lzma/liblzma.o
LIBS += lib/lzo/liblzo.o
。
。
。

主要是定義一些目標檔案和庫檔案。

接著又遇到了一個all:目標,這樣它會替換前面這個all 繼續執行。

all:		$(ALL)

$(obj)u-boot.hex:	$(obj)u-boot
		$(OBJCOPY) ${OBJCFLAGS} -O ihex $< [email protected]

$(obj)u-boot.srec:	$(obj)u-boot
		$(OBJCOPY) -O srec $< [email protected]

$(obj)u-boot.bin:	$(obj)u-boot
		$(OBJCOPY) ${OBJCFLAGS} -O binary $< 
[email protected]
$(BOARD_SIZE_CHECK) $(obj)u-boot.ldr: $(obj)u-boot $(CREATE_LDR_ENV) $(LDR) -T $(CONFIG_BFIN_CPU) -c [email protected] $< $(LDR_FLAGS) $(BOARD_SIZE_CHECK)

ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND)

自然它會要根據makefile規則來進行處理各個檔案併產生u-boot.bin.

但對於還有疑問為什麼有兩個all:目標,可以訪問: