Makefile 3.0 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 43 44 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
#
# 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)

76
prepare: 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 110 111 112

define archhelp
	@echo '  zImage 	           - Compressed kernel image (arch/sh64/boot/zImage)'
endef