113 lines
3.2 KiB
Makefile
113 lines
3.2 KiB
Makefile
#
|
|
# 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
|
|
#
|
|
# Note that top level Makefile automagically builds dependencies for SUBDIRS
|
|
# but does not automagically clean SUBDIRS. Therefore "archclean" should clean
|
|
# up all, "archdep" does nothing on added SUBDIRS.
|
|
#
|
|
ifndef include_config
|
|
-include .config
|
|
endif
|
|
|
|
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) \
|
|
-e phys_stext
|
|
|
|
OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S
|
|
|
|
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 += $(addprefix arch/$(ARCH)/, kernel/ mm/ mach-$(machine-y)/)
|
|
|
|
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//\t{ "/;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
|
|
|