| # |
| # 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 |
| # |
| |
| 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) \ |
| --defsym phys_stext_shmedia=phys_stext+1 \ |
| -e phys_stext_shmedia |
| |
| OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S |
| |
| # |
| # arch/sh64/defconfig never had any hope of being |
| # frequently updated, so use one that does |
| # |
| KBUILD_DEFCONFIG := cayman_defconfig |
| |
| 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 += arch/sh64/kernel/ arch/sh64/mm/ |
| |
| ifneq ($(machine-y),) |
| core-y += arch/sh64/mach-$(machine-y)/ |
| endif |
| |
| 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// { "/;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 |
| |