From 2296778f3c9a1e3a8699973b09dd3610b8baa402 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Tue, 3 Nov 2015 20:29:33 +0200 Subject: xz: Make xz buildable even when encoders or decoders are disabled. The patch is quite long but it's mostly about adding new #ifdefs to omit code when encoders or decoders have been disabled. This adds two new #defines to config.h: HAVE_ENCODERS and HAVE_DECODERS. --- src/xz/args.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/xz/args.c') diff --git a/src/xz/args.c b/src/xz/args.c index 041c8007..341f29e1 100644 --- a/src/xz/args.c +++ b/src/xz/args.c @@ -635,6 +635,22 @@ args_parse(args_info *args, int argc, char **argv) // Then from the command line parse_real(args, argc, argv); + // If encoder or decoder support was omitted at build time, + // show an error now so that the rest of the code can rely on + // that whatever is in opt_mode is also supported. +#ifndef HAVE_ENCODERS + if (opt_mode == MODE_COMPRESS) + message_fatal(_("Compression support was disabled " + "at build time")); +#endif +#ifndef HAVE_DECODERS + // Even MODE_LIST cannot work without decoder support so MODE_COMPRESS + // is the only valid choice. + if (opt_mode != MODE_COMPRESS) + message_fatal(_("Decompression support was disabled " + "at build time")); +#endif + // Never remove the source file when the destination is not on disk. // In test mode the data is written nowhere, but setting opt_stdout // will make the rest of the code behave well. -- cgit v1.2.3