Makefile 4.1 KB
Newer Older
1
# $Id: Makefile,v 1.28 2005/03/17 10:44:37 larsv Exp $
L
Linus Torvalds 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# cris/Makefile
#
# 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
#
# 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.

# A bug in ld prevents us from having a (constant-value) symbol in a
# "ORIGIN =" or "LENGTH =" expression.

arch-y := v10
arch-$(CONFIG_ETRAX_ARCH_V10) := v10
18
arch-$(CONFIG_ETRAX_ARCH_V32) := v32
L
Linus Torvalds 已提交
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

# No config avaiable for make clean etc
ifneq ($(arch-y),)
SARCH := arch-$(arch-y)
else
SARCH :=
endif

LD = $(CROSS_COMPILE)ld -mcrislinux

OBJCOPYFLAGS := -O binary -R .note -R .comment -S

CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
AFLAGS += -mlinux

CFLAGS := $(CFLAGS) -mlinux -march=$(arch-y) -pipe

ifdef CONFIG_FRAME_POINTER
CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) -g
CFLAGS += -fno-omit-frame-pointer
endif

head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o

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

core-y		+= arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
core-y		+= arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
drivers-y	+= arch/$(ARCH)/$(SARCH)/drivers/
libs-y		+= arch/$(ARCH)/$(SARCH)/lib/ $(LIBGCC)

50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
# cris source path
SRC_ARCH              = $(srctree)/arch/$(ARCH)
# cris object files path
OBJ_ARCH              = $(objtree)/arch/$(ARCH)

target_boot_arch_dir  = $(OBJ_ARCH)/$(SARCH)/boot
target_boot_dir       = $(OBJ_ARCH)/boot
src_boot_dir          = $(SRC_ARCH)/boot
target_compressed_dir = $(OBJ_ARCH)/boot/compressed
src_compressed_dir    = $(SRC_ARCH)/boot/compressed
target_rescue_dir     = $(OBJ_ARCH)/boot/rescue
src_rescue_dir        = $(SRC_ARCH)/boot/rescue

export target_boot_arch_dir target_boot_dir src_boot_dir target_compressed_dir src_compressed_dir target_rescue_dir src_rescue_dir

L
Linus Torvalds 已提交
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
vmlinux.bin: vmlinux
	$(OBJCOPY) $(OBJCOPYFLAGS) vmlinux vmlinux.bin

timage: vmlinux.bin
	cat vmlinux.bin cramfs.img >timage

simimage: timage
	cp vmlinux.bin simvmlinux.bin

# the following will remake timage without compiling the kernel
# it does of course require that all object files exist...

cramfs:
## cramfs      - Creates a cramfs image
	mkcramfs -b 8192 -m romfs_meta.txt root cramfs.img
	cat vmlinux.bin cramfs.img >timage

clinux: vmlinux.bin decompress.bin rescue.bin

84 85
decompress.bin: $(target_boot_dir)
	@$(MAKE) -f $(src_compressed_dir)/Makefile $(target_compressed_dir)/decompress.bin
L
Linus Torvalds 已提交
86

87 88
$(target_rescue_dir)/rescue.bin: $(target_boot_dir)
	@$(MAKE) -f $(src_rescue_dir)/Makefile $(target_rescue_dir)/rescue.bin
L
Linus Torvalds 已提交
89

90
zImage: $(target_boot_dir) vmlinux.bin $(target_rescue_dir)/rescue.bin
L
Linus Torvalds 已提交
91
## zImage     - Compressed kernel (gzip)
92 93 94 95 96 97 98
	@$(MAKE) -f $(src_boot_dir)/Makefile zImage

$(target_boot_dir): $(target_boot_arch_dir)
	ln -sfn $< $@

$(target_boot_arch_dir):
	mkdir -p $@
L
Linus Torvalds 已提交
99 100 101 102 103

compressed: zImage

archmrproper:
archclean:
104 105 106
	@if [ -d arch/$(ARCH)/boot ]; then \
		$(MAKE) $(clean)=arch/$(ARCH)/boot ; \
	fi
L
Linus Torvalds 已提交
107 108 109
	rm -f timage vmlinux.bin decompress.bin rescue.bin cramfs.img
	rm -rf $(LD_SCRIPT).tmp

110
archprepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch
L
Linus Torvalds 已提交
111 112

# Create some links to make all tools happy
113 114 115 116 117 118 119 120 121
$(SRC_ARCH)/.links:
	@rm -rf $(SRC_ARCH)/drivers
	@ln -sfn $(SRC_ARCH)/$(SARCH)/drivers $(SRC_ARCH)/drivers
	@rm -rf $(SRC_ARCH)/boot
	@ln -sfn $(SRC_ARCH)/$(SARCH)/boot $(SRC_ARCH)/boot
	@rm -rf $(SRC_ARCH)/lib
	@ln -sfn $(SRC_ARCH)/$(SARCH)/lib $(SRC_ARCH)/lib
	@ln -sfn $(SRC_ARCH)/$(SARCH) $(SRC_ARCH)/arch
	@ln -sfn $(SRC_ARCH)/$(SARCH)/vmlinux.lds.S $(SRC_ARCH)/kernel/vmlinux.lds.S
122
	@ln -sfn $(SRC_ARCH)/$(SARCH)/asm-offsets.c $(SRC_ARCH)/kernel/asm-offsets.c
L
Linus Torvalds 已提交
123 124 125
	@touch $@

# Create link to sub arch includes
126 127
$(srctree)/include/asm-$(ARCH)/.arch: $(wildcard include/config/arch/*.h)
	@echo '  Making $(srctree)/include/asm-$(ARCH)/arch -> $(srctree)/include/asm-$(ARCH)/$(SARCH) symlink'
L
Linus Torvalds 已提交
128
	@rm -f include/asm-$(ARCH)/arch
129
	@ln -sf $(srctree)/include/asm-$(ARCH)/$(SARCH) $(srctree)/include/asm-$(ARCH)/arch
L
Linus Torvalds 已提交
130
	@touch $@