blob: e6bf00c262e06fa5f1ec94d2420c38df8a76d7d6 [file] [log] [blame]
Mikael Starvik3e41d652005-07-27 11:44:30 -07001# $Id: Makefile,v 1.28 2005/03/17 10:44:37 larsv Exp $
Linus Torvalds1da177e2005-04-16 15:20:36 -07002# 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
Mikael Starvik3e41d652005-07-27 11:44:30 -070018arch-$(CONFIG_ETRAX_ARCH_V32) := v32
Linus Torvalds1da177e2005-04-16 15:20:36 -070019
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)
Sam Ravnborg222d3942007-10-15 21:59:31 +020032KBUILD_AFLAGS += -mlinux
Linus Torvalds1da177e2005-04-16 15:20:36 -070033
Sam Ravnborga0f97e02007-10-14 22:21:35 +020034KBUILD_CFLAGS += -mlinux -march=$(arch-y) -pipe
Linus Torvalds1da177e2005-04-16 15:20:36 -070035
36ifdef CONFIG_FRAME_POINTER
Sam Ravnborga0f97e02007-10-14 22:21:35 +020037KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
38KBUILD_CFLAGS += -fno-omit-frame-pointer
Linus Torvalds1da177e2005-04-16 15:20:36 -070039endif
40
41head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o
42
Sam Ravnborga0f97e02007-10-14 22:21:35 +020043LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
Linus Torvalds1da177e2005-04-16 15:20:36 -070044
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
Mikael Starvik3e41d652005-07-27 11:44:30 -070050# 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
Linus Torvalds1da177e2005-04-16 15:20:36 -070065vmlinux.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
Mikael Starvik3e41d652005-07-27 11:44:30 -070084decompress.bin: $(target_boot_dir)
85 @$(MAKE) -f $(src_compressed_dir)/Makefile $(target_compressed_dir)/decompress.bin
Linus Torvalds1da177e2005-04-16 15:20:36 -070086
Mikael Starvik3e41d652005-07-27 11:44:30 -070087$(target_rescue_dir)/rescue.bin: $(target_boot_dir)
88 @$(MAKE) -f $(src_rescue_dir)/Makefile $(target_rescue_dir)/rescue.bin
Linus Torvalds1da177e2005-04-16 15:20:36 -070089
Mikael Starvik3e41d652005-07-27 11:44:30 -070090zImage: $(target_boot_dir) vmlinux.bin $(target_rescue_dir)/rescue.bin
Linus Torvalds1da177e2005-04-16 15:20:36 -070091## zImage - Compressed kernel (gzip)
Mikael Starvik3e41d652005-07-27 11:44:30 -070092 @$(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 $@
Linus Torvalds1da177e2005-04-16 15:20:36 -070099
100compressed: zImage
101
102archmrproper:
103archclean:
Mikael Starvik3e41d652005-07-27 11:44:30 -0700104 @if [ -d arch/$(ARCH)/boot ]; then \
105 $(MAKE) $(clean)=arch/$(ARCH)/boot ; \
106 fi
Linus Torvalds1da177e2005-04-16 15:20:36 -0700107 rm -f timage vmlinux.bin decompress.bin rescue.bin cramfs.img
108 rm -rf $(LD_SCRIPT).tmp
109
Sam Ravnborg5bb78262005-09-11 22:30:22 +0200110archprepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch
Linus Torvalds1da177e2005-04-16 15:20:36 -0700111
112# Create some links to make all tools happy
Mikael Starvik3e41d652005-07-27 11:44:30 -0700113$(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
Al Viroaa6ba2f2006-01-19 19:03:15 +0000122 @ln -sfn $(SRC_ARCH)/$(SARCH)/kernel/asm-offsets.c $(SRC_ARCH)/kernel/asm-offsets.c
Linus Torvalds1da177e2005-04-16 15:20:36 -0700123 @touch $@
124
125# Create link to sub arch includes
Mikael Starvik3e41d652005-07-27 11:44:30 -0700126$(srctree)/include/asm-$(ARCH)/.arch: $(wildcard include/config/arch/*.h)
127 @echo ' Making $(srctree)/include/asm-$(ARCH)/arch -> $(srctree)/include/asm-$(ARCH)/$(SARCH) symlink'
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128 @rm -f include/asm-$(ARCH)/arch
Mikael Starvik3e41d652005-07-27 11:44:30 -0700129 @ln -sf $(srctree)/include/asm-$(ARCH)/$(SARCH) $(srctree)/include/asm-$(ARCH)/arch
Linus Torvalds1da177e2005-04-16 15:20:36 -0700130 @touch $@