From 769756525d44c41e84fd3eca1d77b217fdd39fa4 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Fri, 30 Jul 2004 04:14:47 +0000 Subject: [PATCH] Conditionalize the bzip2/gzip compression/decompression code on the existence of the relevant libraries (actually, the existence of the include files). This will allow the library to be easily ported to systems that don't have these libraries. (Of course, it also means that clients using the library on such systems will not be able to take advantage of the automatic compression format detection.) --- lib/libarchive/archive_read_support_compression_all.c | 5 +++++ lib/libarchive/archive_read_support_compression_bzip2.c | 6 ++++++ lib/libarchive/archive_read_support_compression_gzip.c | 6 ++++++ lib/libarchive/archive_write_set_compression_bzip2.c | 6 ++++++ lib/libarchive/archive_write_set_compression_gzip.c | 6 ++++++ 5 files changed, 29 insertions(+) diff --git a/lib/libarchive/archive_read_support_compression_all.c b/lib/libarchive/archive_read_support_compression_all.c index 9df6c4ac3f73..bd3a9b9f37af 100644 --- a/lib/libarchive/archive_read_support_compression_all.c +++ b/lib/libarchive/archive_read_support_compression_all.c @@ -32,8 +32,13 @@ __FBSDID("$FreeBSD$"); int archive_read_support_compression_all(struct archive *a) { +#if HAVE_BZLIB_H archive_read_support_compression_bzip2(a); +#endif + /* The decompress code doesn't use an outside library. */ archive_read_support_compression_compress(a); +#if HAVE_ZLIB_H archive_read_support_compression_gzip(a); +#endif return (ARCHIVE_OK); } diff --git a/lib/libarchive/archive_read_support_compression_bzip2.c b/lib/libarchive/archive_read_support_compression_bzip2.c index 99acc62bc1a1..e65d0acf99ba 100644 --- a/lib/libarchive/archive_read_support_compression_bzip2.c +++ b/lib/libarchive/archive_read_support_compression_bzip2.c @@ -25,6 +25,10 @@ */ #include "archive_platform.h" + +/* Don't compile this if we don't have bzlib. */ +#if HAVE_BZLIB_H + __FBSDID("$FreeBSD$"); #include @@ -361,3 +365,5 @@ fatal: a->compression_name); return (ARCHIVE_FATAL); } + +#endif /* HAVE_BZLIB_H */ diff --git a/lib/libarchive/archive_read_support_compression_gzip.c b/lib/libarchive/archive_read_support_compression_gzip.c index c7622a3082e1..260e1d4b3a25 100644 --- a/lib/libarchive/archive_read_support_compression_gzip.c +++ b/lib/libarchive/archive_read_support_compression_gzip.c @@ -25,6 +25,10 @@ */ #include "archive_platform.h" + +/* Don't compile this if we don't have zlib. */ +#if HAVE_ZLIB_H + __FBSDID("$FreeBSD$"); #include @@ -496,3 +500,5 @@ fatal: a->compression_name); return (ARCHIVE_FATAL); } + +#endif /* HAVE_ZLIB_H */ diff --git a/lib/libarchive/archive_write_set_compression_bzip2.c b/lib/libarchive/archive_write_set_compression_bzip2.c index f044a0cd6bfb..c7cee5e6d580 100644 --- a/lib/libarchive/archive_write_set_compression_bzip2.c +++ b/lib/libarchive/archive_write_set_compression_bzip2.c @@ -25,6 +25,10 @@ */ #include "archive_platform.h" + +/* Don't compile this if we don't have bzlib. */ +#if HAVE_BZLIB_H + __FBSDID("$FreeBSD$"); #include @@ -326,3 +330,5 @@ drive_compressor(struct archive *a, struct private_data *state, int finishing) } } } + +#endif /* HAVE_BZLIB_H */ diff --git a/lib/libarchive/archive_write_set_compression_gzip.c b/lib/libarchive/archive_write_set_compression_gzip.c index 7b037ef949a1..ca55410d25be 100644 --- a/lib/libarchive/archive_write_set_compression_gzip.c +++ b/lib/libarchive/archive_write_set_compression_gzip.c @@ -25,6 +25,10 @@ */ #include "archive_platform.h" + +/* Don't compile this if we don't have zlib. */ +#if HAVE_ZLIB_H + __FBSDID("$FreeBSD$"); #include @@ -381,3 +385,5 @@ drive_compressor(struct archive *a, struct private_data *state, int finishing) } } } + +#endif /* HAVE_ZLIB_H */