Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 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 | # This file is included by the global makefile so that you can add your own |
| 7 | # architecture-specific flags and dependencies. Remember to do have actions |
| 8 | # for "archclean" and "archdep" for cleaning up and making dependencies for |
| 9 | # this architecture |
| 10 | |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 11 | # If building with TILERA_ROOT set (i.e. using the Tilera Multicore |
| 12 | # Development Environment) we can set CROSS_COMPILE based on that. |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 13 | # If we're not cross-compiling, make sure we're on the right architecture. |
Chris Metcalf | a5854dd | 2010-08-15 15:01:45 -0400 | [diff] [blame] | 14 | # Only bother to test for a few common targets, to avoid useless errors. |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 15 | ifeq ($(CROSS_COMPILE),) |
Chris Metcalf | a5854dd | 2010-08-15 15:01:45 -0400 | [diff] [blame] | 16 | ifdef TILERA_ROOT |
| 17 | CROSS_COMPILE := $(TILERA_ROOT)/bin/tile- |
| 18 | else |
| 19 | goals := $(if $(MAKECMDGOALS), $(MAKECMDGOALS), all) |
| 20 | ifneq ($(strip $(filter vmlinux modules all,$(goals))),) |
| 21 | HOST_ARCH := $(shell uname -m) |
| 22 | ifneq ($(HOST_ARCH),$(ARCH)) |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 23 | $(error Set TILERA_ROOT or CROSS_COMPILE when building $(ARCH) on $(HOST_ARCH)) |
Chris Metcalf | a5854dd | 2010-08-15 15:01:45 -0400 | [diff] [blame] | 24 | endif |
| 25 | endif |
| 26 | endif |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 27 | endif |
| 28 | |
Chris Metcalf | 45123f7 | 2010-10-14 15:16:59 -0400 | [diff] [blame] | 29 | ifneq ($(CONFIG_DEBUG_EXTRA_FLAGS),"") |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 30 | KBUILD_CFLAGS += $(CONFIG_DEBUG_EXTRA_FLAGS) |
Chris Metcalf | 45123f7 | 2010-10-14 15:16:59 -0400 | [diff] [blame] | 31 | endif |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 32 | |
| 33 | LIBGCC_PATH := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) |
| 34 | |
| 35 | # Provide the path to use for "make defconfig". |
| 36 | KBUILD_DEFCONFIG := $(ARCH)_defconfig |
| 37 | |
| 38 | # Used as a file extension when useful, e.g. head_$(BITS).o |
| 39 | # Not needed for (e.g.) "$(CC) -m32" since the compiler automatically |
| 40 | # uses the right default anyway. |
| 41 | export BITS |
| 42 | ifeq ($(CONFIG_TILEGX),y) |
| 43 | BITS := 64 |
| 44 | else |
| 45 | BITS := 32 |
| 46 | endif |
| 47 | |
| 48 | head-y := arch/tile/kernel/head_$(BITS).o |
| 49 | |
| 50 | libs-y += arch/tile/lib/ |
| 51 | libs-y += $(LIBGCC_PATH) |
| 52 | |
Chris Metcalf | 867e359 | 2010-05-28 23:09:12 -0400 | [diff] [blame] | 53 | # See arch/tile/Kbuild for content of core part of the kernel |
| 54 | core-y += arch/tile/ |
Chris Metcalf | 45123f7 | 2010-10-14 15:16:59 -0400 | [diff] [blame] | 55 | |
Chris Metcalf | a78c942 | 2010-10-14 16:23:03 -0400 | [diff] [blame^] | 56 | core-$(CONFIG_KVM) += arch/tile/kvm/ |
| 57 | |
Chris Metcalf | 45123f7 | 2010-10-14 15:16:59 -0400 | [diff] [blame] | 58 | ifdef TILERA_ROOT |
| 59 | INSTALL_PATH ?= $(TILERA_ROOT)/tile/boot |
| 60 | endif |
| 61 | |
| 62 | install: |
| 63 | install -D -m 755 vmlinux $(INSTALL_PATH)/vmlinux-$(KERNELRELEASE) |
| 64 | install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE) |
| 65 | install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE) |
| 66 | |
| 67 | define archhelp |
| 68 | echo ' install - install kernel into $(INSTALL_PATH)' |
| 69 | endef |