Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d088f323 authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: Consolidate sh/sh64 Makefiles.



Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent c2f1755b
Loading
Loading
Loading
Loading
+44 −6
Original line number Diff line number Diff line
@@ -139,6 +139,12 @@ core-y += $(addprefix arch/sh/boards/, \
	     $(filter-out ., $(patsubst %,%/,$(machdir-y))))
endif

# SH-5 mach types
# XXX.. to be reconciled with machdir-y later.
core-$(CONFIG_SH_SIMULATOR)	+= arch/sh/mach-sim/
core-$(CONFIG_SH_CAYMAN)	+= arch/sh/mach-cayman/
core-$(CONFIG_SH_HARP)		+= arch/sh/mach-harp/

# Companion chips
core-$(CONFIG_HD6446X_SERIES)	+= arch/sh/cchips/hd6446x/
core-$(CONFIG_MFD_SM501)	+= arch/sh/cchips/voyagergx/
@@ -203,9 +209,8 @@ include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \
	done
	@touch $@

archprepare: include/asm-sh/.cpu include/asm-sh/.mach maketools

PHONY += maketools FORCE

maketools:  include/linux/version.h FORCE
	$(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h

@@ -216,16 +221,49 @@ zImage uImage uImage.srec vmlinux.srec: vmlinux

compressed: zImage

archprepare: include/asm-sh/.cpu include/asm-sh/.mach maketools \
	     arch/sh/lib64/syscalltab.h

archclean:
	$(Q)$(MAKE) $(clean)=$(boot)

CLEAN_FILES += include/asm-sh/machtypes.h \
	       include/asm-sh/cpu include/asm-sh/.cpu \
	       include/asm-sh/mach include/asm-sh/.mach

define archhelp
	@echo '* zImage 	           - Compressed kernel image'
	@echo '  vmlinux.srec	           - Create an ELF S-record'
	@echo '  uImage  	           - Create a bootable image for U-Boot'
	@echo '  uImage.srec  	           - Create an S-record for U-Boot'
endef

define filechk_gen-syscalltab
       (set -e; \
	echo "/*"; \
	echo " * DO NOT MODIFY."; \
	echo " *"; \
	echo " * This file was generated by arch/sh/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/sh/lib64/syscalltab.h: arch/sh/kernel/syscalls_64.S
	$(call filechk,gen-syscalltab)

CLEAN_FILES += arch/sh/lib64/syscalltab.h \
	       include/asm-sh/machtypes.h \
	       include/asm-sh/cpu include/asm-sh/.cpu \
	       include/asm-sh/mach include/asm-sh/.mach

arch/sh64/Makefile

deleted100644 → 0
+0 −111
Original line number Diff line number Diff line
#
# 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
KBUILD_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

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

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) $(KBUILD_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)

archprepare: arch/$(ARCH)/lib/syscalltab.h

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 += arch/$(ARCH)/lib/syscalltab.h

define archhelp
	@echo '* zImage 	           - Compressed kernel image'
endef