linux/arch/xtensa/Makefile
<<
>>
Prefs
   1#
   2# This file is subject to the terms and conditions of the GNU General Public
   3# License.  See the file "COPYING" in the main directory of this archive
   4# for more details.
   5#
   6# Copyright (C) 2001 - 2005  Tensilica Inc.
   7# Copyright (C) 2014 Cadence Design Systems Inc.
   8#
   9# This file is included by the global makefile so that you can add your own
  10# architecture-specific flags and dependencies. Remember to do have actions
  11# for "archclean" and "archdep" for cleaning up and making dependencies for
  12# this architecture
  13
  14# Core configuration.
  15# (Use VAR=<xtensa_config> to use another default compiler.)
  16
  17variant-y := $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME))
  18
  19VARIANT = $(variant-y)
  20export VARIANT
  21
  22ifneq ($(VARIANT),)
  23  ifdef cross_compiling
  24    ifndef CROSS_COMPILE
  25      CROSS_COMPILE = xtensa_$(VARIANT)-
  26    endif
  27  endif
  28endif
  29
  30# Platform configuration
  31
  32platform-$(CONFIG_XTENSA_PLATFORM_XT2000)       := xt2000
  33platform-$(CONFIG_XTENSA_PLATFORM_ISS)          := iss
  34platform-$(CONFIG_XTENSA_PLATFORM_XTFPGA)       := xtfpga
  35
  36PLATFORM = $(platform-y)
  37export PLATFORM
  38
  39# temporarily until string.h is fixed
  40KBUILD_CFLAGS += -ffreestanding -D__linux__
  41KBUILD_CFLAGS += -pipe -mlongcalls -mtext-section-literals
  42KBUILD_CFLAGS += $(call cc-option,-mforce-no-pic,)
  43KBUILD_CFLAGS += $(call cc-option,-mno-serialize-volatile,)
  44
  45KBUILD_AFLAGS += -mlongcalls -mtext-section-literals
  46
  47ifneq ($(CONFIG_LD_NO_RELAX),)
  48KBUILD_LDFLAGS := --no-relax
  49endif
  50
  51CHECKFLAGS += -D$(if $(CONFIG_CPU_BIG_ENDIAN),__XTENSA_EB__,__XTENSA_EL__)
  52
  53vardirs := $(patsubst %,arch/xtensa/variants/%/,$(variant-y))
  54plfdirs := $(patsubst %,arch/xtensa/platforms/%/,$(platform-y))
  55
  56KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(vardirs) $(plfdirs))
  57
  58KBUILD_DEFCONFIG := iss_defconfig
  59
  60# Only build variant and/or platform if it includes a Makefile
  61
  62buildvar := $(shell test -e $(srctree)/arch/xtensa/variants/$(VARIANT)/Makefile && echo arch/xtensa/variants/$(VARIANT)/)
  63buildplf := $(shell test -e $(srctree)/arch/xtensa/platforms/$(PLATFORM)/Makefile && echo arch/xtensa/platforms/$(PLATFORM)/)
  64
  65# Find libgcc.a
  66
  67LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
  68
  69head-y          := arch/xtensa/kernel/head.o
  70core-y          += arch/xtensa/kernel/ arch/xtensa/mm/
  71core-y          += $(buildvar) $(buildplf)
  72core-y          += arch/xtensa/boot/dts/
  73
  74libs-y          += arch/xtensa/lib/ $(LIBGCC)
  75
  76boot            := arch/xtensa/boot
  77
  78all Image zImage uImage xipImage: vmlinux
  79        $(Q)$(MAKE) $(build)=$(boot) $@
  80
  81archheaders:
  82        $(Q)$(MAKE) $(build)=arch/xtensa/kernel/syscalls all
  83
  84define archhelp
  85  @echo '* Image       - Kernel ELF image with reset vector'
  86  @echo '* zImage      - Compressed kernel image (arch/xtensa/boot/images/zImage.*)'
  87  @echo '* uImage      - U-Boot wrapped image'
  88  @echo '  xipImage    - XIP image'
  89endef
  90