summaryrefslogtreecommitdiffstats
path: root/programs
diff options
context:
space:
mode:
authorYann Collet <Cyan4973@users.noreply.github.com>2017-08-16 07:43:32 (GMT)
committerGitHub <noreply@github.com>2017-08-16 07:43:32 (GMT)
commit1e92bb0af020095e6f33bdb72e418e5e76cdc082 (patch)
tree8ff86b046544b887ef6b189089b2c3225427ac2b /programs
parentaf9d72b7f6809ec972787c446d464a8f9be443ba (diff)
parentedb434365942404ec0f86db152ae268d3ce32dd1 (diff)
downloadlz4-1e92bb0af020095e6f33bdb72e418e5e76cdc082.zip
lz4-1e92bb0af020095e6f33bdb72e418e5e76cdc082.tar.gz
lz4-1e92bb0af020095e6f33bdb72e418e5e76cdc082.tar.bz2
Merge pull request #382 from lz4/installVars
better respect GNU standard Makefile conventions
Diffstat (limited to 'programs')
-rw-r--r--programs/Makefile47
-rw-r--r--programs/lz4cli.c66
2 files changed, 59 insertions, 54 deletions
diff --git a/programs/Makefile b/programs/Makefile
index c484731..c7ef6d1 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -30,7 +30,8 @@
# ##########################################################################
# Version numbers
-LIBVER_SRC := ../lib/lz4.h
+LZ4DIR := ../lib
+LIBVER_SRC := $(LZ4DIR)/lz4.h
LIBVER_MAJOR_SCRIPT:=`sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
LIBVER_MINOR_SCRIPT:=`sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
LIBVER_PATCH_SCRIPT:=`sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
@@ -38,32 +39,31 @@ LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCR
LIBVER_MAJOR := $(shell echo $(LIBVER_MAJOR_SCRIPT))
LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT))
LIBVER_PATCH := $(shell echo $(LIBVER_PATCH_SCRIPT))
-LIBVER := $(shell echo $(LIBVER_SCRIPT))
-
-LZ4DIR := ../lib
+LIBVER := $(shell echo $(LIBVER_SCRIPT))
SRCFILES := $(wildcard $(LZ4DIR)/*.c) $(wildcard *.c)
OBJFILES := $(patsubst %.c,%.o,$(SRCFILES))
-VOID := /dev/null
-CPPFLAGS+= -I$(LZ4DIR) -DXXH_NAMESPACE=LZ4_
-CFLAGS ?= -O3
+CPPFLAGS += -I$(LZ4DIR) -DXXH_NAMESPACE=LZ4_
+CFLAGS ?= -O3
DEBUGFLAGS:=-Wall -Wextra -Wundef -Wcast-qual -Wcast-align -Wshadow \
-Wswitch-enum -Wdeclaration-after-statement -Wstrict-prototypes \
-Wpointer-arith -Wstrict-aliasing=1
-CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
-FLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
+CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
+FLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LZ4_VERSION=$(LIBVER)
-MD2ROFF =ronn
-MD2ROFF_FLAGS = --roff --warnings --manual="User Commands" --organization="lz4 $(LZ4_VERSION)"
+MD2ROFF = ronn
+MD2ROFF_FLAGS = --roff --warnings --manual="User Commands" --organization="lz4 $(LZ4_VERSION)"
# Define *.exe as extension for Windows systems
ifneq (,$(filter Windows%,$(OS)))
EXT :=.exe
+VOID := nul
else
EXT :=
+VOID := /dev/null
endif
@@ -82,10 +82,12 @@ lz4-release: DEBUGFLAGS=
lz4-release: lz4
lz4c32: CFLAGS += -m32
-lz4c: CPPFLAGS += -DENABLE_LZ4C_LEGACY_OPTIONS
-lz4c lz4c32 : $(SRCFILES)
+lz4c32 : $(SRCFILES)
$(CC) $(FLAGS) $^ -o $@$(EXT)
+lz4c: lz4
+ ln -s lz4 lz4c
+
lz4.1: lz4.1.md
cat $^ | $(MD2ROFF) $(MD2ROFF_FLAGS) | sed -n '/^\.\\\".*/!p' > $@
@@ -121,18 +123,25 @@ else
INSTALL ?= install
endif
-PREFIX ?= /usr/local
-DESTDIR ?=
-BINDIR ?= $(PREFIX)/bin
+DESTDIR ?=
+# directory variables : GNU convention prefers lowercase
+# support both lower and uppercase (BSD), use uppercase in script
+prefix ?= /usr/local
+PREFIX ?= $(prefix)
+exec_prefix ?= $(PREFIX)
+bindir ?= $(exec_prefix)/bin
+BINDIR ?= $(bindir)
+datarootdir ?= $(PREFIX)/share
+mandir ?= $(datarootdir)/man
ifneq (,$(filter $(shell uname),OpenBSD FreeBSD NetBSD DragonFly SunOS))
MANDIR ?= $(PREFIX)/man/man1
else
-MANDIR ?= $(PREFIX)/share/man/man1
+MANDIR ?= $(mandir)
endif
INSTALL_PROGRAM ?= $(INSTALL) -m 755
-INSTALL_MAN ?= $(INSTALL) -m 644
+INSTALL_DATA ?= $(INSTALL) -m 644
install: lz4$(EXT) lz4c$(EXT)
@@ -143,7 +152,7 @@ install: lz4$(EXT) lz4c$(EXT)
@ln -sf lz4 $(DESTDIR)$(BINDIR)/unlz4
@$(INSTALL_PROGRAM) lz4c$(EXT) $(DESTDIR)$(BINDIR)/lz4c
@echo Installing man pages
- @$(INSTALL_MAN) lz4.1 $(DESTDIR)$(MANDIR)/lz4.1
+ @$(INSTALL_DATA) lz4.1 $(DESTDIR)$(MANDIR)/lz4.1
@ln -sf lz4.1 $(DESTDIR)$(MANDIR)/lz4c.1
@ln -sf lz4.1 $(DESTDIR)$(MANDIR)/lz4cat.1
@ln -sf lz4.1 $(DESTDIR)$(MANDIR)/unlz4.1
diff --git a/programs/lz4cli.c b/programs/lz4cli.c
index dede834..b4a3c14 100644
--- a/programs/lz4cli.c
+++ b/programs/lz4cli.c
@@ -30,14 +30,6 @@
The license of this compression CLI program is GPLv2.
*/
-/**************************************
-* Tuning parameters
-***************************************/
-/* ENABLE_LZ4C_LEGACY_OPTIONS :
- Control the availability of -c0, -c1 and -hc legacy arguments
- Default : Legacy options are disabled */
-/* #define ENABLE_LZ4C_LEGACY_OPTIONS */
-
/****************************
* Includes
@@ -62,6 +54,8 @@
#define LZ4_EXTENSION ".lz4"
#define LZ4CAT "lz4cat"
#define UNLZ4 "unlz4"
+#define LZ4_LEGACY "lz4c"
+static int g_lz4c_legacy_commands = 0;
#define KB *(1U<<10)
#define MB *(1U<<20)
@@ -154,13 +148,13 @@ static int usage_advanced(const char* exeName)
DISPLAY( " -i# : minimum evaluation time in seconds (default : 3s) \n");
DISPLAY( " -B# : cut file into independent blocks of size # bytes [32+] \n");
DISPLAY( " or predefined block size [4-7] (default: 7) \n");
-#if defined(ENABLE_LZ4C_LEGACY_OPTIONS)
- DISPLAY( "Legacy arguments : \n");
- DISPLAY( " -c0 : fast compression \n");
- DISPLAY( " -c1 : high compression \n");
- DISPLAY( " -hc : high compression \n");
- DISPLAY( " -y : overwrite output without prompting \n");
-#endif /* ENABLE_LZ4C_LEGACY_OPTIONS */
+ if (g_lz4c_legacy_commands) {
+ DISPLAY( "Legacy arguments : \n");
+ DISPLAY( " -c0 : fast compression \n");
+ DISPLAY( " -c1 : high compression \n");
+ DISPLAY( " -hc : high compression \n");
+ DISPLAY( " -y : overwrite output without prompting \n");
+ }
EXTENDED_HELP;
return 0;
}
@@ -212,17 +206,17 @@ static int usage_longhelp(const char* exeName)
DISPLAY( "-------------------------------------\n");
DISPLAY( "3 : compress data stream from 'generator', send result to 'consumer'\n");
DISPLAY( " generator | %s | consumer \n", exeName);
-#if defined(ENABLE_LZ4C_LEGACY_OPTIONS)
- DISPLAY( "\n");
- DISPLAY( "***** Warning *****\n");
- DISPLAY( "Legacy arguments take precedence. Therefore : \n");
- DISPLAY( "---------------------------------\n");
- DISPLAY( " %s -hc filename\n", exeName);
- DISPLAY( "means 'compress filename in high compression mode'\n");
- DISPLAY( "It is not equivalent to :\n");
- DISPLAY( " %s -h -c filename\n", exeName);
- DISPLAY( "which would display help text and exit\n");
-#endif /* ENABLE_LZ4C_LEGACY_OPTIONS */
+ if (g_lz4c_legacy_commands) {
+ DISPLAY( "\n");
+ DISPLAY( "***** Warning *****\n");
+ DISPLAY( "Legacy arguments take precedence. Therefore : \n");
+ DISPLAY( "---------------------------------\n");
+ DISPLAY( " %s -hc filename\n", exeName);
+ DISPLAY( "means 'compress filename in high compression mode'\n");
+ DISPLAY( "It is not equivalent to :\n");
+ DISPLAY( " %s -h -c filename\n", exeName);
+ DISPLAY( "which would display help text and exit\n");
+ }
return 0;
}
@@ -314,7 +308,7 @@ int main(int argc, const char** argv)
inFileNames[0] = stdinmark;
LZ4IO_setOverwrite(0);
- /* lz4cat predefined behavior */
+ /* predefined behaviors, based on binary/link name */
if (exeNameMatch(exeName, LZ4CAT)) {
mode = om_decompress;
LZ4IO_setOverwrite(1);
@@ -325,6 +319,7 @@ int main(int argc, const char** argv)
multiple_inputs=1;
}
if (exeNameMatch(exeName, UNLZ4)) { mode = om_decompress; }
+ if (exeNameMatch(exeName, LZ4_LEGACY)) { g_lz4c_legacy_commands=1; }
/* command switches */
for(i=1; i<argc; i++) {
@@ -370,13 +365,13 @@ int main(int argc, const char** argv)
while (argument[1]!=0) {
argument ++;
-#if defined(ENABLE_LZ4C_LEGACY_OPTIONS)
- /* Legacy arguments (-c0, -c1, -hc, -y, -s) */
- if ((argument[0]=='c') && (argument[1]=='0')) { cLevel=0; argument++; continue; } /* -c0 (fast compression) */
- if ((argument[0]=='c') && (argument[1]=='1')) { cLevel=9; argument++; continue; } /* -c1 (high compression) */
- if ((argument[0]=='h') && (argument[1]=='c')) { cLevel=9; argument++; continue; } /* -hc (high compression) */
- if (*argument=='y') { LZ4IO_setOverwrite(1); continue; } /* -y (answer 'yes' to overwrite permission) */
-#endif /* ENABLE_LZ4C_LEGACY_OPTIONS */
+ if (g_lz4c_legacy_commands) {
+ /* Legacy commands (-c0, -c1, -hc, -y) */
+ if ((argument[0]=='c') && (argument[1]=='0')) { cLevel=0; argument++; continue; } /* -c0 (fast compression) */
+ if ((argument[0]=='c') && (argument[1]=='1')) { cLevel=9; argument++; continue; } /* -c1 (high compression) */
+ if ((argument[0]=='h') && (argument[1]=='c')) { cLevel=9; argument++; continue; } /* -hc (high compression) */
+ if (argument[0]=='y') { LZ4IO_setOverwrite(1); continue; } /* -y (answer 'yes' to overwrite permission) */
+ }
if ((*argument>='0') && (*argument<='9')) {
cLevel = readU32FromChar(&argument);
@@ -530,7 +525,8 @@ int main(int argc, const char** argv)
#ifdef _FILE_OFFSET_BITS
DISPLAYLEVEL(4, "_FILE_OFFSET_BITS defined: %ldL\n", (long) _FILE_OFFSET_BITS);
#endif
- if ((mode == om_compress) || (mode == om_bench)) DISPLAYLEVEL(4, "Blocks size : %u KB\n", (U32)(blockSize>>10));
+ if ((mode == om_compress) || (mode == om_bench))
+ DISPLAYLEVEL(4, "Blocks size : %u KB\n", (U32)(blockSize>>10));
if (multiple_inputs) {
input_filename = inFileNames[0];