📄 makefile
字号:
# $Id: Makefile,v 1.35 2004/04/15 03:39:20 sugioka Exp $## This file is subject to the terms and conditions of the GNU General Public# License. See the file "COPYING" in the main directory of this archive# for more details.## Copyright (C) 1999 Kaz Kojima# Copyright (C) 2002, 2003, 2004 Paul Mundt# Copyright (C) 2002 M. R. Brown## This file is included by the global makefile so that you can add your own# architecture-specific flags and dependencies. Remember to do have actions# for "archclean" and "archdep" for cleaning up and making dependencies for# this architecture#isa-y := anyisa-$(CONFIG_SH_DSP) := shisa-$(CONFIG_CPU_SH2) := sh2isa-$(CONFIG_CPU_SH2A) := sh2aisa-$(CONFIG_CPU_SH3) := sh3isa-$(CONFIG_CPU_SH4) := sh4isa-$(CONFIG_CPU_SH4A) := sh4aisa-$(CONFIG_CPU_SH4AL_DSP) := sh4alisa-$(CONFIG_SH_DSP) := $(isa-y)-dspifndef CONFIG_MMUisa-y := $(isa-y)-nommuendififndef CONFIG_SH_DSPifndef CONFIG_SH_FPUisa-y := $(isa-y)-nofpuendifendifisa-y := $(isa-y)-upcflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,)cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \ $(call cc-option,-m2a-nofpu,)cflags-$(CONFIG_CPU_SH3) := $(call cc-option,-m3,)cflags-$(CONFIG_CPU_SH4) := $(call cc-option,-m4,) \ $(call cc-option,-mno-implicit-fp,-m4-nofpu)cflags-$(CONFIG_CPU_SH4A) += $(call cc-option,-m4a,) \ $(call cc-option,-m4a-nofpu,)cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mbcflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml## -Wa,-isa= tuning implies -Wa,-dsp for the versions of binutils that# support it, while -Wa,-dsp by itself limits the range of usable opcodes# on certain CPU subtypes. Try the ISA variant first, and if that fails,# fall back on -Wa,-dsp for the old binutils versions. Even without DSP# opcodes, we always want the best ISA tuning the version of binutils# will provide.#isaflags-y := $(call as-option,-Wa$(comma)-isa=$(isa-y),)isaflags-$(CONFIG_SH_DSP) := \ $(call as-option,-Wa$(comma)-isa=$(isa-y),-Wa$(comma)-dsp)cflags-y += $(isaflags-y) -ffreestandingcflags-$(CONFIG_MORE_COMPILE_OPTIONS) += \ $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g')OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment -R .stab -R .stabstr -S## arch/sh/defconfig doesn't reflect any real hardware, and as such should# never be used by anyone. Use a board-specific defconfig that has a# reasonable chance of being current instead.#KBUILD_DEFCONFIG := r7780rp_defconfigKBUILD_IMAGE := arch/sh/boot/zImage## Choosing incompatible machines durings configuration will result in# error messages during linking.#LDFLAGS_vmlinux += -e _stextifdef CONFIG_CPU_LITTLE_ENDIANLDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64'LDFLAGS += -ELelseLDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4'LDFLAGS += -EBendifKBUILD_CFLAGS += -pipe $(cflags-y)KBUILD_AFLAGS += $(cflags-y)head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.oLIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)core-y += arch/sh/kernel/ arch/sh/mm/core-$(CONFIG_SH_FPU_EMU) += arch/sh/math-emu/# Boardsmachdir-$(CONFIG_SH_SOLUTION_ENGINE) += se/770xmachdir-$(CONFIG_SH_7722_SOLUTION_ENGINE) += se/7722machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) += se/7751machdir-$(CONFIG_SH_7780_SOLUTION_ENGINE) += se/7780machdir-$(CONFIG_SH_7343_SOLUTION_ENGINE) += se/7343machdir-$(CONFIG_SH_HP6XX) += hp6xxmachdir-$(CONFIG_SH_DREAMCAST) += dreamcastmachdir-$(CONFIG_SH_MPC1211) += mpc1211machdir-$(CONFIG_SH_SH03) += sh03machdir-$(CONFIG_SH_SECUREEDGE5410) += snapgearmachdir-$(CONFIG_SH_HS7751RVOIP) += renesas/hs7751rvoipmachdir-$(CONFIG_SH_RTS7751R2D) += renesas/rts7751r2dmachdir-$(CONFIG_SH_7751_SYSTEMH) += renesas/systemhmachdir-$(CONFIG_SH_EDOSK7705) += renesas/edosk7705machdir-$(CONFIG_SH_HIGHLANDER) += renesas/r7780rpmachdir-$(CONFIG_SH_7710VOIPGW) += renesas/sh7710voipgwmachdir-$(CONFIG_SH_X3PROTO) += renesas/x3protomachdir-$(CONFIG_SH_SH4202_MICRODEV) += superh/microdevmachdir-$(CONFIG_SH_LANDISK) += landiskmachdir-$(CONFIG_SH_TITAN) += titanmachdir-$(CONFIG_SH_SHMIN) += shminmachdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) += se/7206machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) += se/7619machdir-$(CONFIG_SH_LBOX_RE2) += lboxre2machdir-$(CONFIG_SH_MAGIC_PANEL_R2) += magicpanelr2incdir-y := $(notdir $(machdir-y))ifneq ($(machdir-y),)core-y += $(addprefix arch/sh/boards/, \ $(filter-out ., $(patsubst %,%/,$(machdir-y))))endif# Companion chipscore-$(CONFIG_HD6446X_SERIES) += arch/sh/cchips/hd6446x/core-$(CONFIG_MFD_SM501) += arch/sh/cchips/voyagergx/cpuincdir-$(CONFIG_CPU_SH2) := cpu-sh2cpuincdir-$(CONFIG_CPU_SH2A) := cpu-sh2acpuincdir-$(CONFIG_CPU_SH3) := cpu-sh3cpuincdir-$(CONFIG_CPU_SH4) := cpu-sh4libs-y := arch/sh/lib/ $(libs-y) $(LIBGCC)drivers-y += arch/sh/drivers/drivers-$(CONFIG_OPROFILE) += arch/sh/oprofile/boot := arch/sh/bootCPPFLAGS_vmlinux.lds := -traditionalincdir-prefix := $(srctree)/include/asm-sh/# Update machine arch and proc symlinks if something which affects# them changed. We use .arch and .mach to indicate when they were# updated last, otherwise make uses the target directory mtime.include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) \ include/config/auto.conf FORCE @echo ' SYMLINK include/asm-sh/cpu -> include/asm-sh/$(cpuincdir-y)' $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi $(Q)ln -fsn $(incdir-prefix)$(cpuincdir-y) include/asm-sh/cpu @touch $@# Most boards have their own mach directories. For the ones that# don't, just reference the parent directory so the semantics are# kept roughly the same.## When multiple boards are compiled in at the same time, preference# for the mach link is given to whichever has a directory for its# headers. However, this is only a workaround until platforms that# can live in the same kernel image back away from relying on the# mach link.include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \ include/config/auto.conf FORCE $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi $(Q)rm -f include/asm-sh/mach $(Q)for i in $(incdir-y); do \ if [ -d $(incdir-prefix)$$i ]; then \ echo -n ' SYMLINK include/asm-sh/mach -> '; \ echo -e "include/asm-sh/$$i"; \ ln -fsn $(incdir-prefix)$$i \ include/asm-sh/mach; \ else \ if [ ! -d include/asm-sh/mach ]; then \ echo -n ' SYMLINK include/asm-sh/mach -> '; \ echo -e 'include/asm-sh'; \ ln -fsn $(incdir-prefix) include/asm-sh/mach; \ fi; \ fi; \ done @touch $@archprepare: include/asm-sh/.cpu include/asm-sh/.mach maketoolsPHONY += maketools FORCEmaketools: include/linux/version.h FORCE $(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.hall: zImagezImage uImage uImage.srec vmlinux.srec: vmlinux $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@compressed: zImagearchclean: $(Q)$(MAKE) $(clean)=$(boot)CLEAN_FILES += include/asm-sh/machtypes.h \ include/asm-sh/cpu include/asm-sh/.cpu \ include/asm-sh/mach include/asm-sh/.machdefine archhelp @echo '* zImage - Compressed kernel image' @echo ' vmlinux.srec - Create an ELF S-record' @echo ' uImage - Create a bootable image for U-Boot' @echo ' uImage.srec - Create an S-record for U-Boot'endef
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -