aboutsummaryrefslogtreecommitdiffstats
path: root/arch/unicore32/boot/compressed/Makefile
blob: b0954a2d23cfaf5b4db0bbe1b6e95493d75ebc03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#
# linux/arch/unicore32/boot/compressed/Makefile
#
# create a compressed vmlinuz image from the original vmlinux
#
# 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~2010 GUAN Xue-tao
#

EXTRA_CFLAGS	:= -fpic -fno-builtin
EXTRA_AFLAGS	:= -Wa,-march=all

OBJS		:= misc.o

# font.c and font.o
CFLAGS_font.o	:= -Dstatic=
$(obj)/font.c: $(srctree)/drivers/video/console/font_8x8.c
	$(call cmd,shipped)

# piggy.S and piggy.o
suffix_$(CONFIG_KERNEL_GZIP)	:= gzip
suffix_$(CONFIG_KERNEL_BZIP2)	:= bz2
suffix_$(CONFIG_KERNEL_LZO)	:= lzo
suffix_$(CONFIG_KERNEL_LZMA)	:= lzma

$(obj)/piggy.$(suffix_y): $(obj)/../Image FORCE
	$(call if_changed,$(suffix_y))

SEDFLAGS_piggy	= s/DECOMP_SUFFIX/$(suffix_y)/
$(obj)/piggy.S: $(obj)/piggy.S.in
	@sed "$(SEDFLAGS_piggy)" < $< > $@

$(obj)/piggy.o:  $(obj)/piggy.$(suffix_y) $(obj)/piggy.S FORCE

targets		:= vmlinux vmlinux.lds font.o font.c head.o misc.o \
			piggy.$(suffix_y) piggy.o piggy.S \

# Make sure files are removed during clean
extra-y		+= piggy.gzip piggy.bz2 piggy.lzo piggy.lzma

# ?
LDFLAGS_vmlinux += -p
# Report unresolved symbol references
LDFLAGS_vmlinux += --no-undefined
# Delete all temporary local symbols
LDFLAGS_vmlinux += -X
# Next argument is a linker script
LDFLAGS_vmlinux += -T

# For uidivmod
$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/head.o $(obj)/piggy.o \
		$(obj)/misc.o FORCE
	$(call if_changed,ld)
	@:

# We now have a PIC decompressor implementation.  Decompressors running
# from RAM should not define ZTEXTADDR.  Decompressors running directly
# from ROM or Flash must define ZTEXTADDR (preferably via the config)
ZTEXTADDR	:= 0x03000000
ZBSSADDR	:= ALIGN(4)

SEDFLAGS_lds	= s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/
$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/unicore32/boot/Makefile $(KCONFIG_CONFIG)
	@sed "$(SEDFLAGS_lds)" < $< > $@