@ -1,25 +1,29 @@
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
--- a/jffsX-utils/Makemodule.am
+++ b/jffsX-utils/Makemodule.am
@@ -4,11 +4,19 @@ mkfs_jffs2_SOURCES = \
jffsX-utils/compr_zlib.c \
jffsX-utils/compr.h \
jffsX-utils/rbtree.c \
- jffsX-utils/compr_lzo.c \
+ jffsX-utils/compr_lzma.c \
+ jffsX-utils/lzma/LzFind.c \
+ jffsX-utils/lzma/LzmaEnc.c \
+ jffsX-utils/lzma/LzmaDec.c \
jffsX-utils/compr.c \
jffsX-utils/compr_rtime.c
+
+if !WITHOUT_LZO
+mkfs_jffs2_SOURCES += jffsX-utils/compr_lzo.c
+endif
+
mkfs_jffs2_LDADD = libmtd.a $(ZLIB_LIBS) $(LZO_LIBS)
-mkfs_jffs2_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS)
+mkfs_jffs2_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) -I./include/linux/lzma
VERSION = 1.5.2
-CPPFLAGS += -D_GNU_SOURCE -I./include -I$(BUILDDIR)/include -I./ubi-utils/include $(ZLIBCPPFLAGS) $(LZOCPPFLAGS) $(UUIDCPPFLAGS)
+CPPFLAGS += -D_GNU_SOURCE -I./include -I$(BUILDDIR)/include -I./ubi-utils/include $(ZLIBCPPFLAGS) $(LZOCPPFLAGS) $(UUIDCPPFLAGS) -I./include/linux/lzma
ifeq ($(WITHOUT_XATTR), 1)
CPPFLAGS += -DWITHOUT_XATTR
@@ -84,7 +84,7 @@ $(BUILDDIR)/include/version.h.tmp:
#
# Utils in top level
#
-obj-mkfs.jffs2 = compr_rtime.o compr_zlib.o compr_lzo.o compr.o rbtree.o
+obj-mkfs.jffs2 = compr_rtime.o compr_zlib.o $(if $(WITHOUT_LZO),,compr_lzo.o) compr_lzma.o lzma/LzFind.o lzma/LzmaEnc.o lzma/LzmaDec.o compr.o rbtree.o
LDFLAGS_mkfs.jffs2 = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS)
--- a/compr.c
+++ b/compr.c
jffs2reader_SOURCES = jffsX-utils/jffs2reader.c
jffs2reader_LDADD = libmtd.a $(ZLIB_LIBS) $(LZO_LIBS)
--- a/jffsX-utils/compr.c
+++ b/jffsX-utils/compr.c
@@ -520,6 +520,9 @@ int jffs2_compressors_init(void)
#ifdef CONFIG_JFFS2_LZO
jffs2_lzo_init();
@ -39,8 +43,8 @@
+#endif
return 0;
}
--- a/compr.h
+++ b/compr.h
--- a/jffsX-utils/ compr.h
+++ b/jffsX-utils/ compr.h
@@ -18,13 +18,14 @@
#define CONFIG_JFFS2_ZLIB
@ -71,7 +75,7 @@
#endif /* __JFFS2_COMPR_H__ */
--- /dev/null
+++ b/compr_lzma.c
+++ b/jffsX-utils/ compr_lzma.c
@@ -0,0 +1,128 @@
+/*
+ * JFFS2 -- Journalling Flash File System, Version 2.
@ -187,7 +191,7 @@
+
+ ret = lzma_alloc_workspace(&props);
+ if (ret < 0)
+ return ret;
+ return ret;
+
+ ret = jffs2_register_compressor(&jffs2_lzma_comp);
+ if (ret)
@ -899,7 +903,7 @@
+
+#endif
--- /dev/null
+++ b/lzma/LzFind.c
+++ b/jffsX-utils/ lzma/LzFind.c
@@ -0,0 +1,753 @@
+/* LzFind.c -- Match finder for LZ algorithms
+2008-04-04
@ -1655,7 +1659,7 @@
+ }
+}
--- /dev/null
+++ b/lzma/LzmaDec.c
+++ b/jffsX-utils/ lzma/LzmaDec.c
@@ -0,0 +1,1014 @@
+/* LzmaDec.c -- LZMA Decoder
+2008-04-29
@ -2672,7 +2676,7 @@
+ return res;
+}
--- /dev/null
+++ b/lzma/LzmaEnc.c
+++ b/jffsX-utils/ lzma/LzmaEnc.c
@@ -0,0 +1,2335 @@
+/* LzmaEnc.c -- LZMA Encoder
+2008-04-28
@ -5009,9 +5013,9 @@
+ LzmaEnc_Destroy(p, alloc, allocBig);
+ return res;
+}
--- a/mkfs.jffs2.c
+++ b/mkfs.jffs2.c
@@ -1659,11 +1659 ,11 @@ int main(int argc, char **argv)
--- a/jffsX-utils/ mkfs.jffs2.c
+++ b/jffsX-utils/ mkfs.jffs2.c
@@ -1666,11 +1666 ,11 @@ int main(int argc, char **argv)
}
erase_block_size *= units;