Makefile 2.9 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
#
# 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
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

43 44
KBUILD_IMAGE		:= arch/$(ARCH)/boot/zImage

L
Linus Torvalds 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
ifdef LOADADDR
LINKFLAGS     += -Ttext $(word 1,$(LOADADDR))
endif

machine-$(CONFIG_SH_CAYMAN)	:= cayman
machine-$(CONFIG_SH_SIMULATOR)	:= sim
machine-$(CONFIG_SH_HARP)	:= harp

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)

76
archprepare: arch/$(ARCH)/lib/syscalltab.h
L
Linus Torvalds 已提交
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

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)

107
CLEAN_FILES += arch/$(ARCH)/lib/syscalltab.h
L
Linus Torvalds 已提交
108 109

define archhelp
110
	@echo '* zImage 	           - Compressed kernel image'
L
Linus Torvalds 已提交
111
endef