3(3)、uboot根目录下的config.mk文件代码

来源:互联网 发布:python的应用范围 编辑:程序博客网 时间:2024/06/05 20:30
## (C) Copyright 2000-2006# Wolfgang Denk, DENX Software Engineering, wd@denx.de.## See file CREDITS for list of people who contributed to this# project.## This program is free software; you can redistribute it and/or# modify it under the terms of the GNU General Public License as# published by the Free Software Foundation; either version 2 of# the License, or (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston,# MA 02111-1307 USA##########################################################################ifneq ($(OBJTREE),$(SRCTREE))ifeq ($(CURDIR),$(SRCTREE))dir :=elsedir := $(subst $(SRCTREE)/,,$(CURDIR))endifobj := $(if $(dir),$(OBJTREE)/$(dir)/,$(OBJTREE)/)src := $(if $(dir),$(SRCTREE)/$(dir)/,$(SRCTREE)/)$(shell mkdir -p $(obj))elseobj :=src :=endif# clean the slate ...PLATFORM_RELFLAGS =PLATFORM_CPPFLAGS =PLATFORM_LDFLAGS =## When cross-compiling on NetBSD, we have to define __PPC__ or else we# will pick up a va_list declaration that is incompatible with the# actual argument lists emitted by the compiler.## [Tested on NetBSD/i386 1.5 + cross-powerpc-netbsd-1.3]ifeq ($(ARCH),ppc)ifeq ($(CROSS_COMPILE),powerpc-netbsd-)PLATFORM_CPPFLAGS+= -D__PPC__endififeq ($(CROSS_COMPILE),powerpc-openbsd-)PLATFORM_CPPFLAGS+= -D__PPC__endifendififeq ($(ARCH),arm)ifeq ($(CROSS_COMPILE),powerpc-netbsd-)PLATFORM_CPPFLAGS+= -D__ARM__endififeq ($(CROSS_COMPILE),powerpc-openbsd-)PLATFORM_CPPFLAGS+= -D__ARM__endifendif#########################################################################CONFIG_SHELL:= $(shell if [ -x "$$BASH" ]; then echo $$BASH; \    else if [ -x /bin/bash ]; then echo /bin/bash; \    else echo sh; fi ; fi)ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)HOSTCC= ccelseHOSTCC= gccendifHOSTCFLAGS= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointerHOSTSTRIP= strip########################################################################### Option checker (courtesy linux kernel) to ensure# only supported compiler options are used#cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \> /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)## Include the make variables (CC, etc...)#AS= $(CROSS_COMPILE)asLD= $(CROSS_COMPILE)ldCC= $(CROSS_COMPILE)gccCPP= $(CC) -EAR= $(CROSS_COMPILE)arNM= $(CROSS_COMPILE)nmLDR= $(CROSS_COMPILE)ldrSTRIP= $(CROSS_COMPILE)stripOBJCOPY = $(CROSS_COMPILE)objcopyOBJDUMP = $(CROSS_COMPILE)objdumpRANLIB= $(CROSS_COMPILE)RANLIB########################################################################## Load generated board configurationsinclude $(OBJTREE)/include/autoconf.mkifdefARCHsinclude $(TOPDIR)/$(ARCH)_config.mk# include architecture dependend rulesendififdefCPUsinclude $(TOPDIR)/cpu/$(CPU)/config.mk# include  CPUspecific rulesendififdefSOCsinclude $(TOPDIR)/cpu/$(CPU)/$(SOC)/config.mk# include  SoCspecific rulesendififdefVENDORBOARDDIR = $(VENDOR)/$(BOARD)elseBOARDDIR = $(BOARD)endififdefBOARDsinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk# include board specific rulesendif#########################################################################ifneq (,$(findstring s,$(MAKEFLAGS)))ARFLAGS = crelseARFLAGS = crvendifRELFLAGS= $(PLATFORM_RELFLAGS)DBGFLAGS= -g # -DDEBUGOPTFLAGS= -Os #-fomit-frame-pointerifndef LDSCRIPT#LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debugifeq ($(CONFIG_NAND_U_BOOT),y)LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.ldselseLDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.ldsendifendifOBJCFLAGS += --gap-fill=0xffgccincdir := $(shell $(CC) -print-file-name=include)CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS)\-D__KERNEL__ifneq ($(TEXT_BASE),)CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE)endififneq ($(OBJTREE),$(SRCTREE))CPPFLAGS += -I$(OBJTREE)/include2 -I$(OBJTREE)/includeendifCPPFLAGS += -I$(TOPDIR)/includeCPPFLAGS += -fno-builtin -ffreestanding -nostdinc\-isystem $(gccincdir) -pipe $(PLATFORM_CPPFLAGS)ifdef BUILD_TAGCFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes \-DBUILD_TAG='"$(BUILD_TAG)"'elseCFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypesendifCFLAGS += $(call cc-option,-fno-stack-protector)# avoid trigraph warnings while parsing pci.h (produced by NIOS gcc-2.9)# this option have to be placed behind -Wall -- that's why it is hereifeq ($(ARCH),nios)ifeq ($(findstring 2.9,$(shell $(CC) --version)),2.9)CFLAGS := $(CPPFLAGS) -Wall -Wno-trigraphsendifendif# $(CPPFLAGS) sets -g, which causes gcc to pass a suitable -g<format># option to the assembler.AFLAGS_DEBUG :=# turn jbsr into jsr for m68kifeq ($(ARCH),m68k)ifeq ($(findstring 3.4,$(shell $(CC) --version)),3.4)AFLAGS_DEBUG := -Wa,-gstabs,-SendifendifAFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)LDFLAGS += -Bstatic -T $(LDSCRIPT) $(PLATFORM_LDFLAGS)ifneq ($(TEXT_BASE),)LDFLAGS += -Ttext $(TEXT_BASE)endif# Location of a usable BFD library, where we define "usable" as# "built for ${HOST}, supports ${TARGET}".  Sensible values are# - When cross-compiling: the root of the cross-environment# - Linux/ppc (native): /usr# - NetBSD/ppc (native): you lose ... (must extract these from the#   binutils build directory, plus the native and U-Boot include#   files don't like each other)## So far, this is used only by tools/gdb/Makefile.ifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)BFD_ROOT_DIR =/usr/local/toolselseifeq ($(HOSTARCH),$(ARCH))# nativeBFD_ROOT_DIR =/usrelse#BFD_ROOT_DIR =/LinuxPPC/CDK# Linux/i386#BFD_ROOT_DIR =/usr/pkg/cross# NetBSD/i386BFD_ROOT_DIR =/opt/powerpcendifendififeq ($(PCI_CLOCK),PCI_66M)CFLAGS := $(CFLAGS) -DPCI_66Mendif#########################################################################exportCONFIG_SHELL HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE \AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP \MAKEexportTEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS#########################################################################ifndef REMOTE_BUILD%.s:%.S$(CPP) $(AFLAGS) -o $@ $<%.o:%.S$(CC) $(AFLAGS) -c -o $@ $<%.o:%.c$(CC) $(CFLAGS) -c -o $@ $<else$(obj)%.s:%.S$(CPP) $(AFLAGS) -o $@ $<$(obj)%.o:%.S$(CC) $(AFLAGS) -c -o $@ $<$(obj)%.o:%.c$(CC) $(CFLAGS) -c -o $@ $<endif#########################################################################