linux/arch/cris/Makefile
<<
>>
Prefs
   1# $Id: Makefile,v 1.28 2005/03/17 10:44:37 larsv Exp $
   2# cris/Makefile
   3#
   4# This file is included by the global makefile so that you can add your own
   5# architecture-specific flags and dependencies. Remember to do have actions
   6# for "archclean" and "archdep" for cleaning up and making dependencies for
   7# this architecture
   8#
   9# This file is subject to the terms and conditions of the GNU General Public
  10# License.  See the file "COPYING" in the main directory of this archive
  11# for more details.
  12
  13# A bug in ld prevents us from having a (constant-value) symbol in a
  14# "ORIGIN =" or "LENGTH =" expression.
  15
  16arch-y := v10
  17arch-$(CONFIG_ETRAX_ARCH_V10) := v10
  18arch-$(CONFIG_ETRAX_ARCH_V32) := v32
  19
  20# No config avaiable for make clean etc
  21ifneq ($(arch-y),)
  22SARCH := arch-$(arch-y)
  23else
  24SARCH :=
  25endif
  26
  27LD = $(CROSS_COMPILE)ld -mcrislinux
  28
  29OBJCOPYFLAGS := -O binary -R .note -R .comment -S
  30
  31CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
  32KBUILD_AFLAGS += -mlinux
  33
  34KBUILD_CFLAGS += -mlinux -march=$(arch-y) -pipe
  35
  36ifdef CONFIG_FRAME_POINTER
  37KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
  38KBUILD_CFLAGS += -fno-omit-frame-pointer
  39endif
  40
  41head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o
  42
  43LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
  44
  45core-y          += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
  46core-y          += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
  47drivers-y       += arch/$(ARCH)/$(SARCH)/drivers/
  48libs-y          += arch/$(ARCH)/$(SARCH)/lib/ $(LIBGCC)
  49
  50# cris source path
  51SRC_ARCH              = $(srctree)/arch/$(ARCH)
  52# cris object files path
  53OBJ_ARCH              = $(objtree)/arch/$(ARCH)
  54
  55target_boot_arch_dir  = $(OBJ_ARCH)/$(SARCH)/boot
  56target_boot_dir       = $(OBJ_ARCH)/boot
  57src_boot_dir          = $(SRC_ARCH)/boot
  58target_compressed_dir = $(OBJ_ARCH)/boot/compressed
  59src_compressed_dir    = $(SRC_ARCH)/boot/compressed
  60target_rescue_dir     = $(OBJ_ARCH)/boot/rescue
  61src_rescue_dir        = $(SRC_ARCH)/boot/rescue
  62
  63export target_boot_arch_dir target_boot_dir src_boot_dir target_compressed_dir src_compressed_dir target_rescue_dir src_rescue_dir
  64
  65vmlinux.bin: vmlinux
  66        $(OBJCOPY) $(OBJCOPYFLAGS) vmlinux vmlinux.bin
  67
  68timage: vmlinux.bin
  69        cat vmlinux.bin cramfs.img >timage
  70
  71simimage: timage
  72        cp vmlinux.bin simvmlinux.bin
  73
  74# the following will remake timage without compiling the kernel
  75# it does of course require that all object files exist...
  76
  77cramfs:
  78## cramfs      - Creates a cramfs image
  79        mkcramfs -b 8192 -m romfs_meta.txt root cramfs.img
  80        cat vmlinux.bin cramfs.img >timage
  81
  82clinux: vmlinux.bin decompress.bin rescue.bin
  83
  84decompress.bin: $(target_boot_dir)
  85        @$(MAKE) -f $(src_compressed_dir)/Makefile $(target_compressed_dir)/decompress.bin
  86
  87$(target_rescue_dir)/rescue.bin: $(target_boot_dir)
  88        @$(MAKE) -f $(src_rescue_dir)/Makefile $(target_rescue_dir)/rescue.bin
  89
  90zImage: $(target_boot_dir) vmlinux.bin $(target_rescue_dir)/rescue.bin
  91## zImage     - Compressed kernel (gzip)
  92        @$(MAKE) -f $(src_boot_dir)/Makefile zImage
  93
  94$(target_boot_dir): $(target_boot_arch_dir)
  95        ln -sfn $< $@
  96
  97$(target_boot_arch_dir):
  98        mkdir -p $@
  99
 100compressed: zImage
 101
 102archmrproper:
 103archclean:
 104        @if [ -d arch/$(ARCH)/boot ]; then \
 105                $(MAKE) $(clean)=arch/$(ARCH)/boot ; \
 106        fi
 107        rm -f timage vmlinux.bin decompress.bin rescue.bin cramfs.img
 108        rm -rf $(LD_SCRIPT).tmp
 109
 110archprepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch
 111
 112# Create some links to make all tools happy
 113$(SRC_ARCH)/.links:
 114        @rm -rf $(SRC_ARCH)/drivers
 115        @ln -sfn $(SRC_ARCH)/$(SARCH)/drivers $(SRC_ARCH)/drivers
 116        @rm -rf $(SRC_ARCH)/boot
 117        @ln -sfn $(SRC_ARCH)/$(SARCH)/boot $(SRC_ARCH)/boot
 118        @rm -rf $(SRC_ARCH)/lib
 119        @ln -sfn $(SRC_ARCH)/$(SARCH)/lib $(SRC_ARCH)/lib
 120        @ln -sfn $(SRC_ARCH)/$(SARCH) $(SRC_ARCH)/arch
 121        @ln -sfn $(SRC_ARCH)/$(SARCH)/vmlinux.lds.S $(SRC_ARCH)/kernel/vmlinux.lds.S
 122        @ln -sfn $(SRC_ARCH)/$(SARCH)/kernel/asm-offsets.c $(SRC_ARCH)/kernel/asm-offsets.c
 123        @touch $@
 124
 125# Create link to sub arch includes
 126$(srctree)/include/asm-$(ARCH)/.arch: $(wildcard include/config/arch/*.h)
 127        @echo '  Making $(srctree)/include/asm-$(ARCH)/arch -> $(srctree)/include/asm-$(ARCH)/$(SARCH) symlink'
 128        @rm -f include/asm-$(ARCH)/arch
 129        @ln -sf $(srctree)/include/asm-$(ARCH)/$(SARCH) $(srctree)/include/asm-$(ARCH)/arch
 130        @touch $@
 131