xref: /openbmc/linux/arch/xtensa/Makefile (revision 8e1a6dd2)
18e1a6dd2SChris Zankel#
28e1a6dd2SChris Zankel# This file is subject to the terms and conditions of the GNU General Public
38e1a6dd2SChris Zankel# License.  See the file "COPYING" in the main directory of this archive
48e1a6dd2SChris Zankel# for more details.
58e1a6dd2SChris Zankel#
68e1a6dd2SChris Zankel# Copyright (C) 2001 - 2005  Tensilica Inc.
78e1a6dd2SChris Zankel#
88e1a6dd2SChris Zankel# This file is included by the global makefile so that you can add your own
98e1a6dd2SChris Zankel# architecture-specific flags and dependencies. Remember to do have actions
108e1a6dd2SChris Zankel# for "archclean" and "archdep" for cleaning up and making dependencies for
118e1a6dd2SChris Zankel# this architecture
128e1a6dd2SChris Zankel
138e1a6dd2SChris Zankel# Core configuration.
148e1a6dd2SChris Zankel# (Use CPU=<xtensa_config> to use another default compiler.)
158e1a6dd2SChris Zankel
168e1a6dd2SChris Zankelcpu-$(CONFIG_XTENSA_CPU_LINUX_BE)	:= linux_be
178e1a6dd2SChris Zankelcpu-$(CONFIG_XTENSA_CPU_LINUX_CUSTOM)	:= linux_custom
188e1a6dd2SChris Zankel
198e1a6dd2SChris ZankelCPU = $(cpu-y)
208e1a6dd2SChris Zankelexport CPU
218e1a6dd2SChris Zankel
228e1a6dd2SChris Zankel# Platform configuration
238e1a6dd2SChris Zankel
248e1a6dd2SChris Zankelplatform-y					:= common
258e1a6dd2SChris Zankelplatform-$(CONFIG_XTENSA_PLATFORM_XT2000)	:= xt2000
268e1a6dd2SChris Zankelplatform-$(CONFIG_XTENSA_PLATFORM_ISS)		:= iss
278e1a6dd2SChris Zankel
288e1a6dd2SChris ZankelPLATFORM = $(platform-y)
298e1a6dd2SChris Zankelexport PLATFORM
308e1a6dd2SChris Zankel
318e1a6dd2SChris Zankel#LDFLAGS_vmlinux		:= -T$(word 1,$(LINKSCRIPT))
328e1a6dd2SChris ZankelAFLAGS_vmlinux.lds.o	:= -Uxtensa
338e1a6dd2SChris ZankelCPPFLAGS		+= -Iarch/xtensa -Iinclude/asm  -mlongcalls  -g
348e1a6dd2SChris ZankelAFLAGS			+= -Iarch/xtensa -Iinclude/asm
358e1a6dd2SChris ZankelCPP			= $(CC) -E $(CFLAGS)
368e1a6dd2SChris Zankel
378e1a6dd2SChris Zankelcflags-y	+= -Iarch/xtensa -pipe -mlongcalls
388e1a6dd2SChris Zankel
398e1a6dd2SChris Zankel
408e1a6dd2SChris ZankelKBUILD_DEFCONFIG := common_defconfig
418e1a6dd2SChris Zankel
428e1a6dd2SChris Zankel# ramdisk/initrd support
438e1a6dd2SChris Zankel# You need a compressed ramdisk image, named ramdisk.gz in
448e1a6dd2SChris Zankel# arch/xtensa/boot/ramdisk
458e1a6dd2SChris Zankel
468e1a6dd2SChris Zankelcore-$(CONFIG_EMBEDDED_RAMDISK)	+= arch/xtensa/boot/ramdisk/
478e1a6dd2SChris Zankel
488e1a6dd2SChris Zankel# Test for cross compiling
498e1a6dd2SChris Zankel
508e1a6dd2SChris Zankelifneq ($(CPU),)
518e1a6dd2SChris Zankel  COMPILE_ARCH = $(shell uname -m)
528e1a6dd2SChris Zankel
538e1a6dd2SChris Zankel  ifneq ($(COMPILE_ARCH), xtensa)
548e1a6dd2SChris Zankel    ifndef CROSS_COMPILE
558e1a6dd2SChris Zankel      CROSS_COMPILE = xtensa_$(CPU)-
568e1a6dd2SChris Zankel    endif
578e1a6dd2SChris Zankel  endif
588e1a6dd2SChris Zankelendif
598e1a6dd2SChris Zankel
608e1a6dd2SChris Zankel#
618e1a6dd2SChris Zankel
628e1a6dd2SChris ZankelLIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
638e1a6dd2SChris Zankel
648e1a6dd2SChris Zankelhead-y		:= arch/xtensa/kernel/head.o
658e1a6dd2SChris Zankelcore-y		+= arch/xtensa/kernel/ \
668e1a6dd2SChris Zankel		   arch/xtensa/mm/ arch/xtensa/platform-$(PLATFORM)/
678e1a6dd2SChris Zankellibs-y		+= arch/xtensa/lib/ $(LIBGCC)
688e1a6dd2SChris Zankel
698e1a6dd2SChris Zankelboot	:= arch/xtensa/boot
708e1a6dd2SChris Zankel
718e1a6dd2SChris Zankelarch/xtensa/kernel/asm-offsets.s: \
728e1a6dd2SChris Zankel	arch/xtensa/kernel/asm-offsets.c \
738e1a6dd2SChris Zankel	include/asm-xtensa/.platform
748e1a6dd2SChris Zankel
758e1a6dd2SChris Zankelinclude/asm-xtensa/offsets.h: arch/xtensa/kernel/asm-offsets.s
768e1a6dd2SChris Zankel	$(call filechk,gen-asm-offsets)
778e1a6dd2SChris Zankel
788e1a6dd2SChris Zankelprepare: include/asm-xtensa/.platform include/asm-xtensa/offsets.h
798e1a6dd2SChris Zankel
808e1a6dd2SChris Zankel# Update machine cpu and platform symlinks if something which affects
818e1a6dd2SChris Zankel# them changed.
828e1a6dd2SChris Zankel
838e1a6dd2SChris Zankelinclude/asm-xtensa/.platform: $(wildcard include/config/arch/*.h)
848e1a6dd2SChris Zankel	@echo '  Setting up cpu ($(CPU)) and platform ($(PLATFORM)) symlinks'
858e1a6dd2SChris Zankel	$(Q)rm -f include/asm-xtensa/platform
868e1a6dd2SChris Zankel	$(Q)rm -f include/asm-xtensa/xtensa/config
878e1a6dd2SChris Zankel	$(Q)(cd include/asm-xtensa/; ln -sf platform-$(PLATFORM) platform)
888e1a6dd2SChris Zankel	$(Q)(cd include/asm-xtensa/xtensa; ln -sf config-$(CPU) config)
898e1a6dd2SChris Zankel
908e1a6dd2SChris Zankelall: zImage
918e1a6dd2SChris Zankel
928e1a6dd2SChris ZankelbzImage : zImage
938e1a6dd2SChris Zankel
948e1a6dd2SChris ZankelzImage zImage.initrd: vmlinux
958e1a6dd2SChris Zankel	$(Q)$(MAKE) $(build)=$(boot) $@
968e1a6dd2SChris Zankel
978e1a6dd2SChris ZankelCLEAN_FILES	+= arch/xtensa/vmlinux.lds include/asm-xtensa/offset.h
988e1a6dd2SChris Zankel
998e1a6dd2SChris Zankeldefine archhelp
1008e1a6dd2SChris Zankel  @echo '* zImage      - Compressed kernel image (arch/xtensa/boot/images/zImage.*)'
1018e1a6dd2SChris Zankelendef
1028e1a6dd2SChris Zankel
103