linux-imx/arch/xtensa/Makefile
Sam Ravnborg 5bb7826900 kbuild: rename prepare to archprepare to fix dependency chain
When introducing the generic asm-offsets.h support the dependency
chain for the prepare targets was changed. All build scripts expecting
include/asm/asm-offsets.h to be made when using the prepare target would broke.
With the limited number of prepare targets left in arch Makefiles
the trivial solution was to introduce a new arch specific target: archprepare

The dependency chain looks like this now:

prepare
  |
  +--> prepare0
         |
         +--> archprepare
                |
		+--> scripts_basic
                +--> prepare1
                       |
                       +---> prepare2
                               |
                               +--> prepare3

So prepare 3 is processed before prepare2 etc.
This guaantees that the asm symlink, version.h, scripts_basic
are all updated before archprepare is processed.

prepare0 which build the asm-offsets.h file will need the
actions performed by archprepare.

The head target is now named prepare, because users scripts will most
likely use that target, but prepare-all has been kept for compatibility.
Updated Documentation/kbuild/makefiles.txt.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-11 22:30:22 +02:00

2.6 KiB

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) 2001 - 2005 Tensilica Inc.

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

Core configuration.

(Use CPU=<xtensa_config> to use another default compiler.)

cpu-$(CONFIG_XTENSA_CPU_LINUX_BE) := linux_be cpu-$(CONFIG_XTENSA_CPU_LINUX_CUSTOM) := linux_custom

CPU = $(cpu-y) export CPU

Platform configuration

platform-$(CONFIG_XTENSA_PLATFORM_XT2000) := xt2000 platform-$(CONFIG_XTENSA_PLATFORM_ISS) := iss

PLATFORM = $(platform-y) export PLATFORM

CPPFLAGS += $(if $(KBUILD_SRC),-I$(srctree)/include/asm-xtensa/) CPPFLAGS += -Iinclude/asm CFLAGS += -pipe -mlongcalls

KBUILD_DEFCONFIG := iss_defconfig

ramdisk/initrd support

You need a compressed ramdisk image, named ramdisk.gz in

arch/xtensa/boot/ramdisk

core-$(CONFIG_EMBEDDED_RAMDISK) += arch/xtensa/boot/ramdisk/

Test for cross compiling

ifneq ($(CPU),) COMPILE_ARCH = $(shell uname -m)

ifneq ($(COMPILE_ARCH), xtensa) ifndef CROSS_COMPILE CROSS_COMPILE = xtensa_$(CPU)- endif endif endif

LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)

head-y := arch/xtensa/kernel/head.o core-y += arch/xtensa/kernel/ arch/xtensa/mm/ ifneq ($(PLATFORM),) core-y += arch/xtensa/platform-$(PLATFORM)/ endif libs-y += arch/xtensa/lib/ $(LIBGCC)

boot := arch/xtensa/boot

archinc := include/asm-xtensa

archprepare: $(archinc)/.platform

Update machine cpu and platform symlinks if something which affects

them changed.

$(archinc)/.platform: $(wildcard include/config/arch/*.h) include/config/MARKER @echo ' SYMLINK $(archinc)/xtensa/config -> $(archinc)/xtensa/config-$(CPU)' $(Q)mkdir -p $(archinc) $(Q)mkdir -p $(archinc)/xtensa $(Q)ln -fsn $(srctree)/$(archinc)/xtensa/config-$(CPU) $(archinc)/xtensa/config @echo ' SYMLINK $(archinc)/platform -> $(archinc)/platform-$(PLATFORM)' $(Q)ln -fsn $(srctree)/$(archinc)/platform-$(PLATFORM) $(archinc)/platform @touch $@

all: zImage

bzImage : zImage

zImage zImage.initrd: vmlinux $(Q)$(MAKE) $(build)=$(boot) $@

CLEAN_FILES += arch/xtensa/vmlinux.lds
$(archinc)/platform $(archinc)/xtensa/config
$(archinc)/.platform

define archhelp @echo '* zImage - Compressed kernel image (arch/xtensa/boot/images/zImage.*)' endef