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