blob: b4fd8e13fea99541a31b53456c0fe93bd78c1395 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# This file is subject to the terms and conditions of the GNU General Public
3# License. See the file "COPYING" in the main directory of this archive
4# for more details.
5#
6# Copyright (C) 2000, 2001 Paolo Alberelli
7# Copyright (C) 2003, 2004 Paul Mundt
8#
9# This file is included by the global makefile so that you can add your own
10# architecture-specific flags and dependencies. Remember to do have actions
11# for "archclean" and "archdep" for cleaning up and making dependencies for
12# this architecture
13#
14
15cpu-y := -mb
16cpu-$(CONFIG_LITTLE_ENDIAN) := -ml
17
18cpu-$(CONFIG_CPU_SH5) += -m5-32media-nofpu
19
20ifdef CONFIG_LITTLE_ENDIAN
21LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64'
22LDFLAGS += -EL -mshlelf32_linux
23else
24LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4'
25LDFLAGS += -EB -mshelf32_linux
26endif
27
28# No requirements for endianess support from AFLAGS, 'as' always run through gcc
29AFLAGS += -m5 -isa=sh64 -traditional
30CFLAGS += $(cpu-y)
31
32LDFLAGS_vmlinux += --defsym phys_stext=_stext-$(CONFIG_CACHED_MEMORY_OFFSET) \
33 --defsym phys_stext_shmedia=phys_stext+1 \
34 -e phys_stext_shmedia
35
36OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S
37
38#
39# arch/sh64/defconfig never had any hope of being
40# frequently updated, so use one that does
41#
42KBUILD_DEFCONFIG := cayman_defconfig
43
44ifdef LOADADDR
45LINKFLAGS += -Ttext $(word 1,$(LOADADDR))
46endif
47
48machine-$(CONFIG_SH_CAYMAN) := cayman
49machine-$(CONFIG_SH_SIMULATOR) := sim
50machine-$(CONFIG_SH_HARP) := harp
51machine-$(CONFIG_SH_ROMRAM) := romram
52
53head-y := arch/$(ARCH)/kernel/head.o arch/$(ARCH)/kernel/init_task.o
54
55core-y += arch/sh64/kernel/ arch/sh64/mm/
56
57ifneq ($(machine-y),)
58core-y += arch/sh64/mach-$(machine-y)/
59endif
60
61LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
62libs-y += arch/$(ARCH)/lib/ $(LIBGCC)
63
64drivers-$(CONFIG_OPROFILE) += arch/sh64/oprofile/
65
66boot := arch/$(ARCH)/boot
67
68zImage: vmlinux
69 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
70
71compressed: zImage
72
73archclean:
74 $(Q)$(MAKE) $(clean)=$(boot)
75
76prepare: include/asm-$(ARCH)/asm-offsets.h arch/$(ARCH)/lib/syscalltab.h
77
78include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \
79 include/asm include/linux/version.h
80 $(call filechk,gen-asm-offsets)
81
82define filechk_gen-syscalltab
83 (set -e; \
84 echo "/*"; \
85 echo " * DO NOT MODIFY."; \
86 echo " *"; \
87 echo " * This file was generated by arch/$(ARCH)/Makefile"; \
88 echo " * Any changes will be reverted at build time."; \
89 echo " */"; \
90 echo ""; \
91 echo "#ifndef __SYSCALLTAB_H"; \
92 echo "#define __SYSCALLTAB_H"; \
93 echo ""; \
94 echo "#include <linux/kernel.h>"; \
95 echo ""; \
96 echo "struct syscall_info {"; \
97 echo " const char *name;"; \
98 echo "} syscall_info_table[] = {"; \
99 sed -e '/^.*\.long /!d;s// { "/;s/\(\([^/]*\)\/\)\{1\}.*/\2/; \
100 s/[ \t]*$$//g;s/$$/" },/;s/\("\)sys_/\1/g'; \
101 echo "};"; \
102 echo ""; \
103 echo "#define NUM_SYSCALL_INFO_ENTRIES ARRAY_SIZE(syscall_info_table)"; \
104 echo ""; \
105 echo "#endif /* __SYSCALLTAB_H */" )
106endef
107
108arch/$(ARCH)/lib/syscalltab.h: arch/sh64/kernel/syscalls.S
109 $(call filechk,gen-syscalltab)
110
111CLEAN_FILES += include/asm-$(ARCH)/asm-offsets.h arch/$(ARCH)/lib/syscalltab.h
112
113define archhelp
114 @echo ' zImage - Compressed kernel image (arch/sh64/boot/zImage)'
115endef
116