1# $Id: Makefile,v 1.35 2004/04/15 03:39:20 sugioka Exp $ 2# 3# This file is subject to the terms and conditions of the GNU General Public 4# License. See the file "COPYING" in the main directory of this archive 5# for more details. 6# 7# Copyright (C) 1999 Kaz Kojima 8# Copyright (C) 2002, 2003, 2004 Paul Mundt 9# Copyright (C) 2002 M. R. Brown 10# 11# This file is included by the global makefile so that you can add your own 12# architecture-specific flags and dependencies. Remember to do have actions 13# for "archclean" and "archdep" for cleaning up and making dependencies for 14# this architecture 15# 16 17cflags-y := -mb 18cflags-$(CONFIG_CPU_LITTLE_ENDIAN) := -ml 19 20cflags-$(CONFIG_CPU_SH2) += -m2 21cflags-$(CONFIG_CPU_SH3) += -m3 22cflags-$(CONFIG_CPU_SH4) += -m4 \ 23 $(call cc-option,-mno-implicit-fp,-m4-nofpu) 24 25cflags-$(CONFIG_SH_DSP) += -Wa,-dsp 26cflags-$(CONFIG_SH_KGDB) += -g 27 28cflags-$(CONFIG_MORE_COMPILE_OPTIONS) += \ 29 $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g') 30 31OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S 32 33# 34# arch/sh/defconfig doesn't reflect any real hardware, and as such should 35# never be used by anyone. Use a board-specific defconfig that has a 36# reasonable chance of being current instead. 37# 38KBUILD_DEFCONFIG := rts7751r2d_defconfig 39 40# 41# Choosing incompatible machines durings configuration will result in 42# error messages during linking. 43# 44LDFLAGS_vmlinux += -e _stext 45 46ifdef CONFIG_CPU_LITTLE_ENDIAN 47LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64' 48LDFLAGS += -EL 49else 50LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4' 51LDFLAGS += -EB 52endif 53 54CFLAGS += -pipe $(cflags-y) 55AFLAGS += $(cflags-y) 56 57head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.o 58 59LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) 60 61core-y += arch/sh/kernel/ arch/sh/mm/ 62 63# 64# ramdisk/initrd support 65# You need a compressed ramdisk image, named 66# CONFIG_EMBEDDED_RAMDISK_IMAGE. Relative pathnames 67# are relative to arch/sh/ramdisk/. 68# 69core-$(CONFIG_EMBEDDED_RAMDISK) += arch/sh/ramdisk/ 70 71# Boards 72machdir-$(CONFIG_SH_SOLUTION_ENGINE) := se/770x 73machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se/7751 74machdir-$(CONFIG_SH_7300_SOLUTION_ENGINE) := se/7300 75machdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se/73180 76machdir-$(CONFIG_SH_STB1_HARP) := harp 77machdir-$(CONFIG_SH_STB1_OVERDRIVE) := overdrive 78machdir-$(CONFIG_SH_HP620) := hp6xx/hp620 79machdir-$(CONFIG_SH_HP680) := hp6xx/hp680 80machdir-$(CONFIG_SH_HP690) := hp6xx/hp690 81machdir-$(CONFIG_SH_CQREEK) := cqreek 82machdir-$(CONFIG_SH_DMIDA) := dmida 83machdir-$(CONFIG_SH_EC3104) := ec3104 84machdir-$(CONFIG_SH_SATURN) := saturn 85machdir-$(CONFIG_SH_DREAMCAST) := dreamcast 86machdir-$(CONFIG_SH_CAT68701) := cat68701 87machdir-$(CONFIG_SH_BIGSUR) := bigsur 88machdir-$(CONFIG_SH_SH2000) := sh2000 89machdir-$(CONFIG_SH_ADX) := adx 90machdir-$(CONFIG_SH_MPC1211) := mpc1211 91machdir-$(CONFIG_SH_SH03) := sh03 92machdir-$(CONFIG_SH_SECUREEDGE5410) := snapgear 93machdir-$(CONFIG_SH_HS7751RVOIP) := renesas/hs7751rvoip 94machdir-$(CONFIG_SH_RTS7751R2D) := renesas/rts7751r2d 95machdir-$(CONFIG_SH_7751_SYSTEMH) := renesas/systemh 96machdir-$(CONFIG_SH_EDOSK7705) := renesas/edosk7705 97machdir-$(CONFIG_SH_SH4202_MICRODEV) := superh/microdev 98machdir-$(CONFIG_SH_UNKNOWN) := unknown 99 100incdir-y := $(notdir $(machdir-y)) 101 102incdir-$(CONFIG_SH_SOLUTION_ENGINE) := se 103incdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se7751 104incdir-$(CONFIG_SH_7300_SOLUTION_ENGINE) := se7300 105incdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se73180 106incdir-$(CONFIG_SH_HP600) := hp6xx 107 108ifneq ($(machdir-y),) 109core-y += arch/sh/boards/$(machdir-y)/ 110endif 111 112# Companion chips 113core-$(CONFIG_HD64461) += arch/sh/cchips/hd6446x/hd64461/ 114core-$(CONFIG_HD64465) += arch/sh/cchips/hd6446x/hd64465/ 115core-$(CONFIG_VOYAGERGX) += arch/sh/cchips/voyagergx/ 116 117cpuincdir-$(CONFIG_CPU_SH2) := cpu-sh2 118cpuincdir-$(CONFIG_CPU_SH3) := cpu-sh3 119cpuincdir-$(CONFIG_CPU_SH4) := cpu-sh4 120 121libs-y := arch/sh/lib/ $(libs-y) $(LIBGCC) 122 123drivers-y += arch/sh/drivers/ 124drivers-$(CONFIG_OPROFILE) += arch/sh/oprofile/ 125 126boot := arch/sh/boot 127 128CPPFLAGS_vmlinux.lds := -traditional 129 130# Update machine arch and proc symlinks if something which affects 131# them changed. We use .arch and .mach to indicate when they were 132# updated last, otherwise make uses the target directory mtime. 133 134include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) include/config/MARKER 135 @echo ' SYMLINK include/asm-sh/cpu -> include/asm-sh/$(cpuincdir-y)' 136ifneq ($(KBUILD_SRC),) 137 $(Q)mkdir -p include/asm-sh 138 $(Q)ln -fsn $(srctree)/include/asm-sh/$(cpuincdir-y) include/asm-sh/cpu 139else 140 $(Q)ln -fsn $(cpuincdir-y) include/asm-sh/cpu 141endif 142 @touch $@ 143 144include/asm-sh/.mach: $(wildcard include/config/sh/*.h) include/config/MARKER 145 @echo ' SYMLINK include/asm-sh/mach -> include/asm-sh/$(incdir-y)' 146ifneq ($(KBUILD_SRC),) 147 $(Q)mkdir -p include/asm-sh 148 $(Q)ln -fsn $(srctree)/include/asm-sh/$(incdir-y) include/asm-sh/mach 149else 150 $(Q)ln -fsn $(incdir-y) include/asm-sh/mach 151endif 152 @touch $@ 153 154 155prepare: maketools include/asm-sh/.cpu include/asm-sh/.mach 156 157.PHONY: maketools FORCE 158maketools: include/linux/version.h FORCE 159 $(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h 160 161all: zImage 162 163zImage: vmlinux 164 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 165 166compressed: zImage 167 168archclean: 169 $(Q)$(MAKE) $(clean)=$(boot) 170 171CLEAN_FILES += include/asm-sh/machtypes.h 172 173define archhelp 174 @echo ' zImage - Compressed kernel image (arch/sh/boot/zImage)' 175endef 176 177