diff --git a/tools/Makefile b/tools/Makefile index ebcbad4e78..1727072802 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -17,6 +17,7 @@ tools-y += firmware-utils patch-cmdline quilt yaffs2 tools-$(CONFIG_CCACHE) += ccache tools-$(CONFIG_powerpc) += dtc +tools-dep += lzma # builddir dependencies $(curdir)/squashfs/compile := $(curdir)/lzma-old/install diff --git a/tools/lzma/Makefile b/tools/lzma/Makefile new file mode 100644 index 0000000000..18fe030886 --- /dev/null +++ b/tools/lzma/Makefile @@ -0,0 +1,35 @@ +# +# Copyright (C) 2006 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_NAME:=lzma +PKG_VERSION:=4.65 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/ +PKG_MD5SUM:=434e51a018b4c8ef377bf81520a53af0 + +HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/host-build.mk + +UTIL_DIR=$(HOST_BUILD_DIR)/C/LzmaUtil + +define Host/Compile + $(MAKE) -C $(UTIL_DIR) -f makefile.gcc +endef + +define Host/Install + $(INSTALL_DIR) $(STAGING_DIR_HOST)/lib $(STAGING_DIR_HOST)/include + $(CP) $(HOST_BUILD_DIR)/C/*.h $(STAGING_DIR_HOST)/include/ + $(CP) $(UTIL_DIR)/liblzma.a $(STAGING_DIR_HOST)/lib/ +endef + +define Host/Clean +endef + +$(eval $(call HostBuild)) diff --git a/tools/lzma/patches/100-static_library.patch b/tools/lzma/patches/100-static_library.patch new file mode 100644 index 0000000000..15ab4e0552 --- /dev/null +++ b/tools/lzma/patches/100-static_library.patch @@ -0,0 +1,70 @@ +--- a/C/LzmaUtil/makefile.gcc ++++ b/C/LzmaUtil/makefile.gcc +@@ -1,44 +1,53 @@ + PROG = lzma +-CXX = g++ +-LIB = ++CC = gcc ++LIB = liblzma.a + RM = rm -f + CFLAGS = -c -O2 -Wall ++AR = ar ++RANLIB = ranlib + + OBJS = \ +- LzmaUtil.o \ + Alloc.o \ + LzFind.o \ + LzmaDec.o \ + LzmaEnc.o \ ++ LzmaLib.o \ + 7zFile.o \ + 7zStream.o \ + +- + all: $(PROG) + +-$(PROG): $(OBJS) +- $(CXX) -o $(PROG) $(LDFLAGS) $(OBJS) $(LIB) $(LIB2) ++$(PROG): LzmaUtil.o $(LIB) ++ $(CC) -o $(PROG) $(LDFLAGS) $< $(LIB) + + LzmaUtil.o: LzmaUtil.c +- $(CXX) $(CFLAGS) LzmaUtil.c ++ $(CC) $(CFLAGS) LzmaUtil.c ++ ++$(LIB): $(OBJS) ++ rm -f $@ ++ $(AR) rcu $@ $(OBJS) ++ $(RANLIB) $@ + + Alloc.o: ../Alloc.c +- $(CXX) $(CFLAGS) ../Alloc.c ++ $(CC) $(CFLAGS) ../Alloc.c + + LzFind.o: ../LzFind.c +- $(CXX) $(CFLAGS) ../LzFind.c ++ $(CC) $(CFLAGS) ../LzFind.c + + LzmaDec.o: ../LzmaDec.c +- $(CXX) $(CFLAGS) ../LzmaDec.c ++ $(CC) $(CFLAGS) ../LzmaDec.c + + LzmaEnc.o: ../LzmaEnc.c +- $(CXX) $(CFLAGS) ../LzmaEnc.c ++ $(CC) $(CFLAGS) ../LzmaEnc.c ++ ++LzmaLib.o: ../LzmaLib.c ++ $(CC) $(CFLAGS) ../LzmaLib.c + + 7zFile.o: ../7zFile.c +- $(CXX) $(CFLAGS) ../7zFile.c ++ $(CC) $(CFLAGS) ../7zFile.c + + 7zStream.o: ../7zStream.c +- $(CXX) $(CFLAGS) ../7zStream.c ++ $(CC) $(CFLAGS) ../7zStream.c + + clean: +- -$(RM) $(PROG) $(OBJS) ++ -$(RM) $(PROG) *.o *.a