| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  | 
 | 17 | cflags-y				:= -mb | 
 | 18 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN)	:= -ml | 
 | 19 |  | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 20 | isa-y					:= any | 
| Paul Mundt | e5723e0 | 2006-09-27 17:38:11 +0900 | [diff] [blame^] | 21 | isa-$(CONFIG_SH_DSP)			:= sh | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 22 | isa-$(CONFIG_CPU_SH2)			:= sh2 | 
| Paul Mundt | e5723e0 | 2006-09-27 17:38:11 +0900 | [diff] [blame^] | 23 | isa-$(CONFIG_CPU_SH2A)			:= sh2a | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 24 | isa-$(CONFIG_CPU_SH3)			:= sh3 | 
 | 25 | isa-$(CONFIG_CPU_SH4)			:= sh4 | 
 | 26 | isa-$(CONFIG_CPU_SH4A)			:= sh4a | 
| Paul Mundt | e5723e0 | 2006-09-27 17:38:11 +0900 | [diff] [blame^] | 27 | isa-$(CONFIG_CPU_SH4AL_DSP)		:= sh4al | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 28 |  | 
 | 29 | isa-$(CONFIG_SH_DSP)			:= $(isa-y)-dsp | 
 | 30 |  | 
 | 31 | ifndef CONFIG_MMU | 
 | 32 | isa-y			:= $(isa-y)-nommu | 
 | 33 | endif | 
 | 34 |  | 
| Paul Mundt | e5723e0 | 2006-09-27 17:38:11 +0900 | [diff] [blame^] | 35 | ifndef CONFIG_SH_DSP | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 36 | ifndef CONFIG_SH_FPU | 
 | 37 | isa-y			:= $(isa-y)-nofpu | 
 | 38 | endif | 
| Paul Mundt | e5723e0 | 2006-09-27 17:38:11 +0900 | [diff] [blame^] | 39 | endif | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 40 |  | 
 | 41 | cflags-y	+= $(call as-option,-Wa$(comma)-isa=$(isa-y),) | 
 | 42 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 43 | cflags-$(CONFIG_CPU_SH2)		+= -m2 | 
 | 44 | cflags-$(CONFIG_CPU_SH3)		+= -m3 | 
 | 45 | cflags-$(CONFIG_CPU_SH4)		+= -m4 \ | 
 | 46 | 	$(call cc-option,-mno-implicit-fp,-m4-nofpu) | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 47 | cflags-$(CONFIG_CPU_SH4A)		+= $(call cc-option,-m4a-nofpu,) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 48 |  | 
 | 49 | cflags-$(CONFIG_SH_DSP)			+= -Wa,-dsp | 
 | 50 | cflags-$(CONFIG_SH_KGDB)		+= -g | 
 | 51 |  | 
 | 52 | cflags-$(CONFIG_MORE_COMPILE_OPTIONS)	+= \ | 
 | 53 | 	$(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g') | 
 | 54 |  | 
 | 55 | OBJCOPYFLAGS	:= -O binary -R .note -R .comment -R .stab -R .stabstr -S | 
 | 56 |  | 
 | 57 | # | 
 | 58 | # arch/sh/defconfig doesn't reflect any real hardware, and as such should | 
 | 59 | # never be used by anyone. Use a board-specific defconfig that has a | 
 | 60 | # reasonable chance of being current instead. | 
 | 61 | # | 
 | 62 | KBUILD_DEFCONFIG := rts7751r2d_defconfig | 
 | 63 |  | 
 | 64 | # | 
 | 65 | # Choosing incompatible machines durings configuration will result in | 
 | 66 | # error messages during linking. | 
 | 67 | # | 
 | 68 | LDFLAGS_vmlinux     += -e _stext | 
 | 69 |  | 
 | 70 | ifdef CONFIG_CPU_LITTLE_ENDIAN | 
 | 71 | LDFLAGS_vmlinux		+= --defsym 'jiffies=jiffies_64' | 
 | 72 | LDFLAGS			+= -EL | 
 | 73 | else | 
 | 74 | LDFLAGS_vmlinux		+= --defsym 'jiffies=jiffies_64+4' | 
 | 75 | LDFLAGS			+= -EB | 
 | 76 | endif | 
 | 77 |  | 
 | 78 | CFLAGS		+= -pipe $(cflags-y) | 
 | 79 | AFLAGS		+= $(cflags-y) | 
 | 80 |  | 
 | 81 | head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.o | 
 | 82 |  | 
 | 83 | LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) | 
 | 84 |  | 
 | 85 | core-y				+= arch/sh/kernel/ arch/sh/mm/ | 
| Takashi YOSHII | 4b56568 | 2006-09-27 17:15:32 +0900 | [diff] [blame] | 86 | core-$(CONFIG_SH_FPU_EMU)	+= arch/sh/math-emu/ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 87 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 88 | # Boards | 
 | 89 | machdir-$(CONFIG_SH_SOLUTION_ENGINE)		:= se/770x | 
 | 90 | machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE)	:= se/7751 | 
 | 91 | machdir-$(CONFIG_SH_7300_SOLUTION_ENGINE)	:= se/7300 | 
 | 92 | machdir-$(CONFIG_SH_73180_SOLUTION_ENGINE)	:= se/73180 | 
 | 93 | machdir-$(CONFIG_SH_STB1_HARP)			:= harp | 
 | 94 | machdir-$(CONFIG_SH_STB1_OVERDRIVE)		:= overdrive | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 95 | machdir-$(CONFIG_SH_HP6XX)			:= hp6xx | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 96 | machdir-$(CONFIG_SH_CQREEK)			:= cqreek | 
 | 97 | machdir-$(CONFIG_SH_DMIDA)			:= dmida | 
 | 98 | machdir-$(CONFIG_SH_EC3104)			:= ec3104 | 
 | 99 | machdir-$(CONFIG_SH_SATURN)			:= saturn | 
 | 100 | machdir-$(CONFIG_SH_DREAMCAST)			:= dreamcast | 
 | 101 | machdir-$(CONFIG_SH_CAT68701)			:= cat68701 | 
 | 102 | machdir-$(CONFIG_SH_BIGSUR)			:= bigsur | 
 | 103 | machdir-$(CONFIG_SH_SH2000)			:= sh2000 | 
 | 104 | machdir-$(CONFIG_SH_ADX)			:= adx | 
 | 105 | machdir-$(CONFIG_SH_MPC1211)			:= mpc1211 | 
 | 106 | machdir-$(CONFIG_SH_SH03)			:= sh03 | 
 | 107 | machdir-$(CONFIG_SH_SECUREEDGE5410)		:= snapgear | 
 | 108 | machdir-$(CONFIG_SH_HS7751RVOIP)		:= renesas/hs7751rvoip | 
 | 109 | machdir-$(CONFIG_SH_RTS7751R2D)			:= renesas/rts7751r2d | 
 | 110 | machdir-$(CONFIG_SH_7751_SYSTEMH)		:= renesas/systemh | 
 | 111 | machdir-$(CONFIG_SH_EDOSK7705)			:= renesas/edosk7705 | 
| Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 112 | machdir-$(CONFIG_SH_R7780RP)			:= renesas/r7780rp | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 113 | machdir-$(CONFIG_SH_SH4202_MICRODEV)		:= superh/microdev | 
| kogiidena | 94c0fa5 | 2006-09-27 14:53:35 +0900 | [diff] [blame] | 114 | machdir-$(CONFIG_SH_LANDISK)			:= landisk | 
| Jamie Lenehan | a09749d | 2006-09-27 15:05:39 +0900 | [diff] [blame] | 115 | machdir-$(CONFIG_SH_TITAN)			:= titan | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 116 | machdir-$(CONFIG_SH_UNKNOWN)			:= unknown | 
 | 117 |  | 
 | 118 | incdir-y			:= $(notdir $(machdir-y)) | 
| Andriy Skulysh | 4bcac20 | 2006-09-27 13:07:38 +0900 | [diff] [blame] | 119 | incdir-$(CONFIG_SH_HP6XX)			:= hp6xx | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 120 |  | 
 | 121 | ifneq ($(machdir-y),) | 
 | 122 | core-y				+= arch/sh/boards/$(machdir-y)/ | 
 | 123 | endif | 
 | 124 |  | 
 | 125 | # Companion chips | 
 | 126 | core-$(CONFIG_HD64461)		+= arch/sh/cchips/hd6446x/hd64461/ | 
 | 127 | core-$(CONFIG_HD64465)		+= arch/sh/cchips/hd6446x/hd64465/ | 
 | 128 | core-$(CONFIG_VOYAGERGX)	+= arch/sh/cchips/voyagergx/ | 
 | 129 |  | 
 | 130 | cpuincdir-$(CONFIG_CPU_SH2)	:= cpu-sh2 | 
 | 131 | cpuincdir-$(CONFIG_CPU_SH3)	:= cpu-sh3 | 
 | 132 | cpuincdir-$(CONFIG_CPU_SH4)	:= cpu-sh4 | 
 | 133 |  | 
 | 134 | libs-y				:= arch/sh/lib/	$(libs-y) $(LIBGCC) | 
 | 135 |  | 
 | 136 | drivers-y			+= arch/sh/drivers/ | 
 | 137 | drivers-$(CONFIG_OPROFILE)	+= arch/sh/oprofile/ | 
 | 138 |  | 
 | 139 | boot := arch/sh/boot | 
 | 140 |  | 
 | 141 | CPPFLAGS_vmlinux.lds := -traditional | 
 | 142 |  | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 143 | incdir-prefix	:= $(srctree)/include/asm-sh/ | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 144 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 145 | #	Update machine arch and proc symlinks if something which affects | 
 | 146 | #	them changed.  We use .arch and .mach to indicate when they were | 
 | 147 | #	updated last, otherwise make uses the target directory mtime. | 
 | 148 |  | 
| Paul Mundt | ae31825 | 2006-09-27 16:08:24 +0900 | [diff] [blame] | 149 | include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) \ | 
 | 150 | 		     include/config/auto.conf FORCE | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 151 | 	@echo '  SYMLINK include/asm-sh/cpu -> include/asm-sh/$(cpuincdir-y)' | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 152 | 	$(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi | 
 | 153 | 	$(Q)ln -fsn $(incdir-prefix)$(cpuincdir-y) include/asm-sh/cpu | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 154 | 	@touch $@ | 
 | 155 |  | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 156 | #	Most boards have their own mach directories.  For the ones that | 
 | 157 | #	don't, just reference the parent directory so the semantics are | 
 | 158 | #	kept roughly the same. | 
 | 159 |  | 
| Paul Mundt | ae31825 | 2006-09-27 16:08:24 +0900 | [diff] [blame] | 160 | include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \ | 
 | 161 | 		      include/config/auto.conf FORCE | 
| Paul Mundt | cad8244 | 2006-01-16 22:14:19 -0800 | [diff] [blame] | 162 | 	@echo -n '  SYMLINK include/asm-sh/mach -> ' | 
 | 163 | 	$(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi | 
 | 164 | 	$(Q)if [ -d $(incdir-prefix)$(incdir-y) ]; then \ | 
 | 165 | 		echo -e 'include/asm-sh/$(incdir-y)'; \ | 
 | 166 | 		ln -fsn $(incdir-prefix)$(incdir-y) \ | 
 | 167 | 			include/asm-sh/mach; \ | 
 | 168 | 	else \ | 
 | 169 | 		echo -e 'include/asm-sh'; \ | 
 | 170 | 		ln -fsn $(incdir-prefix) include/asm-sh/mach; \ | 
 | 171 | 	fi | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 172 | 	@touch $@ | 
 | 173 |  | 
| Paul Mundt | ae31825 | 2006-09-27 16:08:24 +0900 | [diff] [blame] | 174 | archprepare: include/asm-sh/.cpu include/asm-sh/.mach maketools | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 175 |  | 
| Paul Smith | 4f19336 | 2006-03-05 17:14:10 -0500 | [diff] [blame] | 176 | PHONY += maketools FORCE | 
| Sam Ravnborg | cca6e6f | 2005-09-09 20:28:49 +0200 | [diff] [blame] | 177 | maketools:  include/linux/version.h FORCE | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 178 | 	$(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h | 
 | 179 |  | 
 | 180 | all: zImage | 
 | 181 |  | 
 | 182 | zImage: vmlinux | 
 | 183 | 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ | 
 | 184 |  | 
 | 185 | compressed: zImage | 
 | 186 |  | 
 | 187 | archclean: | 
 | 188 | 	$(Q)$(MAKE) $(clean)=$(boot) | 
 | 189 |  | 
| Sam Ravnborg | cca6e6f | 2005-09-09 20:28:49 +0200 | [diff] [blame] | 190 | CLEAN_FILES += include/asm-sh/machtypes.h | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 191 |  | 
 | 192 | define archhelp | 
 | 193 | 	@echo '  zImage 	           - Compressed kernel image (arch/sh/boot/zImage)' | 
 | 194 | endef |