#
# 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
#

ccflags-y	:= -fpic -fno-builtin
asflags-y	:= -Wa,-march=all

OBJS		:= misc.o

# font.c and font.o
CFLAGS_font.o	:= -Dstatic=
$(obj)/font.c: $(srctree)/lib/fonts/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)" < $< > $@

