coreboot/util/lar/Makefile
Stefan Reinauer fe524d4646 This patch enables build of both compressors (instead of the
current stubs), both as utilities and object files to link with
lar (once lar is capable of that).

There are some details that could be discussed (eg. I could avoid the
duplication of LZMA_OBJ, but that would mean using ::-rules in
util/lzma/Makefile with whatever side effects those bring, or
by splitting them into a separate file), but I tried it here, and it works.

Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@355 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-06-16 14:34:17 +00:00

75 lines
2.6 KiB
Makefile

##
## lar - LinuxBIOS archiver
##
## Copyright (C) 2006 coresystems GmbH
## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; version 2 of the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
##
LZMA_OBJ := $(obj)/util/lzma/LZMAEncoder.o $(obj)/util/lzma/LZInWindow.o
LZMA_OBJ += $(obj)/util/lzma/RangeCoderBit.o $(obj)/util/lzma/StreamUtils.o
LZMA_OBJ += $(obj)/util/lzma/OutBuffer.o $(obj)/util/lzma/Alloc.o
LZMA_OBJ += $(obj)/util/lzma/CRC.o
SOURCE := lar.c create.c extract.c list.c lib.c bootblock.c
ifeq ($(CONFIG_COMPRESSION_LZMA),y)
COMPRESSOR := $(LZMA_OBJ) $(obj)/util/lzma/lzma-compress.o
endif
ifeq ($(CONFIG_COMPRESSION_NRV2B),y)
COMPRESSOR += $(obj)/util/nrv2b/nrv2b-compress.o
endif
$(obj)/util/lar/lar: $(patsubst %,$(src)/util/lar/%,$(SOURCE)) $(COMPRESSOR)
$(Q)mkdir -p $(obj)/util/lar
$(Q)printf " HOSTCXX $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCXX) $(HOSTCXXFLAGS) -o $@ $^
# -----------------------------------------------------------------------------
# Stuff below this line is for debugging purposes only.
ifdef DEBUG_LAR
example: example.c
$(Q)$(CC) $(CFLAGS) -o $@ $^
clean:
$(Q)rm -rf lar tree.lar tree tree2 example
tree:
$(Q)printf "Creating sample tree... "
$(Q)rm -rf tree
$(Q)mkdir tree
$(Q)mkdir -p tree/compression
$(Q)mkdir -p tree/normal
$(Q)mkdir -p tree/fallback
$(Q)dd if=/dev/urandom of=tree/compression/lzma bs=1k count=8 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/normal/linuxbios.elf.lzma bs=1k count=32 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/normal/initmem bs=1k count=16 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/fallback/linuxbios.elf.lzma bs=1k count=32 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/fallback/initmem bs=1k count=16 &>/dev/null
$(Q)printf "done.\n"
tree.lar: lar tree
$(Q)cd tree; ../lar c ../tree.lar `find . -type f | cut -c3-`
test: lar example tree.lar
$(Q)mkdir tree2; cd tree2; ../lar x ../tree.lar
$(Q)printf "Comparing tree:\n"
$(Q)diff -urN tree tree2
$(Q)rm -rf tree tree2
$(Q)./example tree.lar
endif