mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	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>
		
	
			
		
			
				
	
	
		
			98 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
	
		
			2.6 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) 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
 | 
						|
 |