| # | |
| # 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) 2000, 2001 Paolo Alberelli | |
| # Copyright (C) 2003, 2004 Paul Mundt | |
| # | |
| # 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 | |
| # | |
| # Note that top level Makefile automagically builds dependencies for SUBDIRS | |
| # but does not automagically clean SUBDIRS. Therefore "archclean" should clean | |
| # up all, "archdep" does nothing on added SUBDIRS. | |
| # | |
| ifndef include_config | |
| -include .config | |
| endif | |
| cpu-y := -mb | |
| cpu-$(CONFIG_LITTLE_ENDIAN) := -ml | |
| cpu-$(CONFIG_CPU_SH5) += -m5-32media-nofpu | |
| ifdef CONFIG_LITTLE_ENDIAN | |
| LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64' | |
| LDFLAGS += -EL -mshlelf32_linux | |
| else | |
| LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4' | |
| LDFLAGS += -EB -mshelf32_linux | |
| endif | |
| # No requirements for endianess support from AFLAGS, 'as' always run through gcc | |
| AFLAGS += -m5 -isa=sh64 -traditional | |
| CFLAGS += $(cpu-y) | |
| LDFLAGS_vmlinux += --defsym phys_stext=_stext-$(CONFIG_CACHED_MEMORY_OFFSET) \ | |
| -e phys_stext | |
| OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S | |
| ifdef LOADADDR | |
| LINKFLAGS += -Ttext $(word 1,$(LOADADDR)) | |
| endif | |
| machine-$(CONFIG_SH_CAYMAN) := cayman | |
| machine-$(CONFIG_SH_SIMULATOR) := sim | |
| machine-$(CONFIG_SH_HARP) := harp | |
| machine-$(CONFIG_SH_ROMRAM) := romram | |
| head-y := arch/$(ARCH)/kernel/head.o arch/$(ARCH)/kernel/init_task.o | |
| core-y += $(addprefix arch/$(ARCH)/, kernel/ mm/ mach-$(machine-y)/) | |
| LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) | |
| libs-y += arch/$(ARCH)/lib/ $(LIBGCC) | |
| drivers-$(CONFIG_OPROFILE) += arch/sh64/oprofile/ | |
| boot := arch/$(ARCH)/boot | |
| zImage: vmlinux | |
| $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ | |
| compressed: zImage | |
| archclean: | |
| $(Q)$(MAKE) $(clean)=$(boot) | |
| prepare: include/asm-$(ARCH)/asm-offsets.h arch/$(ARCH)/lib/syscalltab.h | |
| include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \ | |
| include/asm include/linux/version.h | |
| $(call filechk,gen-asm-offsets) | |
| define filechk_gen-syscalltab | |
| (set -e; \ | |
| echo "/*"; \ | |
| echo " * DO NOT MODIFY."; \ | |
| echo " *"; \ | |
| echo " * This file was generated by arch/$(ARCH)/Makefile"; \ | |
| echo " * Any changes will be reverted at build time."; \ | |
| echo " */"; \ | |
| echo ""; \ | |
| echo "#ifndef __SYSCALLTAB_H"; \ | |
| echo "#define __SYSCALLTAB_H"; \ | |
| echo ""; \ | |
| echo "#include <linux/kernel.h>"; \ | |
| echo ""; \ | |
| echo "struct syscall_info {"; \ | |
| echo " const char *name;"; \ | |
| echo "} syscall_info_table[] = {"; \ | |
| sed -e '/^.*\.long /!d;s//\t{ "/;s/\(\([^/]*\)\/\)\{1\}.*/\2/; \ | |
| s/[ \t]*$$//g;s/$$/" },/;s/\("\)sys_/\1/g'; \ | |
| echo "};"; \ | |
| echo ""; \ | |
| echo "#define NUM_SYSCALL_INFO_ENTRIES ARRAY_SIZE(syscall_info_table)"; \ | |
| echo ""; \ | |
| echo "#endif /* __SYSCALLTAB_H */" ) | |
| endef | |
| arch/$(ARCH)/lib/syscalltab.h: arch/sh64/kernel/syscalls.S | |
| $(call filechk,gen-syscalltab) | |
| CLEAN_FILES += include/asm-$(ARCH)/asm-offsets.h arch/$(ARCH)/lib/syscalltab.h | |
| define archhelp | |
| @echo ' zImage - Compressed kernel image (arch/sh64/boot/zImage)' | |
| endef | |