diff options
Diffstat (limited to 'tar')
-rw-r--r-- | tar/Makemodule.am | 3 | ||||
-rw-r--r-- | tar/sqfs2tar.c | 15 | ||||
-rw-r--r-- | tar/tar2sqfs.c | 5 |
3 files changed, 21 insertions, 2 deletions
diff --git a/tar/Makemodule.am b/tar/Makemodule.am index ec65d3a..4d28bb7 100644 --- a/tar/Makemodule.am +++ b/tar/Makemodule.am @@ -1,8 +1,9 @@ sqfs2tar_SOURCES = tar/sqfs2tar.c sqfs2tar_LDADD = libcommon.a libsquashfs.la libtar.a libcompat.a libutil.la +sqfs2tar_LDADD += $(LZO_LIBS) tar2sqfs_SOURCES = tar/tar2sqfs.c tar2sqfs_LDADD = libcommon.a libsquashfs.la libtar.a -tar2sqfs_LDADD += libfstree.a libcompat.a libutil.la +tar2sqfs_LDADD += libfstree.a libcompat.a libutil.la $(LZO_LIBS) bin_PROGRAMS += sqfs2tar tar2sqfs diff --git a/tar/sqfs2tar.c b/tar/sqfs2tar.c index 77f4843..9a12a96 100644 --- a/tar/sqfs2tar.c +++ b/tar/sqfs2tar.c @@ -420,7 +420,14 @@ int main(int argc, char **argv) goto out_fd; } - if (!sqfs_compressor_exists(super.compression_id)) { + ret = sqfs_compressor_exists(super.compression_id); + +#ifdef WITH_LZO + if (super.compression_id == SQFS_COMP_LZO) + ret = true; +#endif + + if (!ret) { fprintf(stderr, "%s: unknown compressor used.\n", filename); goto out_fd; } @@ -430,6 +437,12 @@ int main(int argc, char **argv) SQFS_COMP_FLAG_UNCOMPRESS); cmp = sqfs_compressor_create(&cfg); + +#ifdef WITH_LZO + if (super.compression_id == SQFS_COMP_LZO && cmp == NULL) + cmp = lzo_compressor_create(&cfg); +#endif + if (cmp == NULL) { fputs("Error creating compressor.\n", stderr); goto out_fd; diff --git a/tar/tar2sqfs.c b/tar/tar2sqfs.c index 10bb091..08bb8b5 100644 --- a/tar/tar2sqfs.c +++ b/tar/tar2sqfs.c @@ -126,6 +126,11 @@ static void process_args(int argc, char **argv) if (!sqfs_compressor_exists(cfg.comp_id)) have_compressor = false; +#ifdef WITH_LZO + if (cfg.comp_id == SQFS_COMP_LZO) + have_compressor = true; +#endif + if (!have_compressor) { fprintf(stderr, "Unsupported compressor '%s'\n", optarg); |