Merge head 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
[linux-2.6] / arch / cris / Makefile
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
16 arch-y := v10
17 arch-$(CONFIG_ETRAX_ARCH_V10) := v10
18 arch-$(CONFIG_ETRAX_ARCH_V32) := v32
19
20 # No config avaiable for make clean etc
21 ifneq ($(arch-y),)
22 SARCH := arch-$(arch-y)
23 else
24 SARCH :=
25 endif
26
27 LD = $(CROSS_COMPILE)ld -mcrislinux
28
29 OBJCOPYFLAGS := -O binary -R .note -R .comment -S
30
31 CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
32 AFLAGS += -mlinux
33
34 CFLAGS := $(CFLAGS) -mlinux -march=$(arch-y) -pipe
35
36 ifdef CONFIG_FRAME_POINTER
37 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) -g
38 CFLAGS += -fno-omit-frame-pointer
39 endif
40
41 head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o
42
43 LIBGCC = $(shell $(CC) $(CFLAGS) -print-file-name=libgcc.a)
44
45 core-y          += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
46 core-y          += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
47 drivers-y       += arch/$(ARCH)/$(SARCH)/drivers/
48 libs-y          += arch/$(ARCH)/$(SARCH)/lib/ $(LIBGCC)
49
50 # cris source path
51 SRC_ARCH              = $(srctree)/arch/$(ARCH)
52 # cris object files path
53 OBJ_ARCH              = $(objtree)/arch/$(ARCH)
54
55 target_boot_arch_dir  = $(OBJ_ARCH)/$(SARCH)/boot
56 target_boot_dir       = $(OBJ_ARCH)/boot
57 src_boot_dir          = $(SRC_ARCH)/boot
58 target_compressed_dir = $(OBJ_ARCH)/boot/compressed
59 src_compressed_dir    = $(SRC_ARCH)/boot/compressed
60 target_rescue_dir     = $(OBJ_ARCH)/boot/rescue
61 src_rescue_dir        = $(SRC_ARCH)/boot/rescue
62
63 export target_boot_arch_dir target_boot_dir src_boot_dir target_compressed_dir src_compressed_dir target_rescue_dir src_rescue_dir
64
65 vmlinux.bin: vmlinux
66         $(OBJCOPY) $(OBJCOPYFLAGS) vmlinux vmlinux.bin
67
68 timage: vmlinux.bin
69         cat vmlinux.bin cramfs.img >timage
70
71 simimage: 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
77 cramfs:
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
82 clinux: vmlinux.bin decompress.bin rescue.bin
83
84 decompress.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
90 zImage: $(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
100 compressed: zImage
101
102 archmrproper:
103 archclean:
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
110 prepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch \
111          include/asm-$(ARCH)/$(SARCH)/offset.h
112
113 # Create some links to make all tools happy
114 $(SRC_ARCH)/.links:
115         @rm -rf $(SRC_ARCH)/drivers
116         @ln -sfn $(SRC_ARCH)/$(SARCH)/drivers $(SRC_ARCH)/drivers
117         @rm -rf $(SRC_ARCH)/boot
118         @ln -sfn $(SRC_ARCH)/$(SARCH)/boot $(SRC_ARCH)/boot
119         @rm -rf $(SRC_ARCH)/lib
120         @ln -sfn $(SRC_ARCH)/$(SARCH)/lib $(SRC_ARCH)/lib
121         @ln -sfn $(SRC_ARCH)/$(SARCH) $(SRC_ARCH)/arch
122         @ln -sfn $(SRC_ARCH)/$(SARCH)/vmlinux.lds.S $(SRC_ARCH)/kernel/vmlinux.lds.S
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
132 arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
133                                         include/config/MARKER
134
135 include/asm-$(ARCH)/$(SARCH)/offset.h: arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.s
136         $(call filechk,gen-asm-offsets)