summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authoryann.collet.73@gmail.com <yann.collet.73@gmail.com@650e7d94-2a16-8b24-b05c-7c0b3f6821cd>2014-01-07 18:47:50 (GMT)
committeryann.collet.73@gmail.com <yann.collet.73@gmail.com@650e7d94-2a16-8b24-b05c-7c0b3f6821cd>2014-01-07 18:47:50 (GMT)
commit648678788c751c0d89737dbb8b3144fa9d2c1592 (patch)
treee0e85353deca4f11bab61c46d94783a81c9e2ec5 /Makefile
parentfb38ddaacb150e05b9d73c2a08d052ce746e37ba (diff)
downloadlz4-648678788c751c0d89737dbb8b3144fa9d2c1592.zip
lz4-648678788c751c0d89737dbb8b3144fa9d2c1592.tar.gz
lz4-648678788c751c0d89737dbb8b3144fa9d2c1592.tar.bz2
Makefile : added capability to install libraries
Modified Directory tree, to better separate libraries from programs. git-svn-id: https://lz4.googlecode.com/svn/trunk@111 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile144
1 files changed, 72 insertions, 72 deletions
diff --git a/Makefile b/Makefile
index 7625941..fd2b9be 100644
--- a/Makefile
+++ b/Makefile
@@ -1,110 +1,110 @@
# ################################################################
-# LZ4 Makefile
-# Copyright (C) Yann Collet 2011-2013
-# GPL v2 License
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
+# LZ4 library - Makefile
+# Copyright (C) Yann Collet 2011-2014
+# All rights reserved.
+#
+# BSD license
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright notice, this
+# list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
# You can contact the author at :
# - LZ4 source repository : http://code.google.com/p/lz4/
# - LZ4 forum froup : https://groups.google.com/forum/#!forum/lz4c
# ################################################################
-# lz4 : Command Line Utility, supporting gzip-like arguments
-# lz4c : CLU, supporting also legacy lz4demo arguments
-# lz4c32: Same as lz4c, but forced to compile in 32-bits mode
-# fuzzer : Test tool, to check lz4 integrity on target platform
-# fuzzer32: Same as fuzzer, but forced to compile in 32-bits mode
-# fullbench : Precisely measure speed for each LZ4 function variant
-# fullbench32: Same as fullbench, but forced to compile in 32-bits mode
-# ################################################################
-RELEASE=r110
+RELEASE=r111
DESTDIR=
-PREFIX=${DESTDIR}/usr
-BINDIR=$(PREFIX)/bin
-MANDIR=$(PREFIX)/share/man/man1
-DISTRIBNAME=lz4-$(RELEASE).tar.gz
+PREFIX=/usr
CC=gcc
-CFLAGS=-I. -std=c99 -Wall -W -Wundef -DLZ4_VERSION=\"$(RELEASE)\"
+CFLAGS+= -I. -std=c99 -Wall -W -Wundef -DLZ4_VERSION=\"$(RELEASE)\"
+
+LIBDIR=$(PREFIX)/lib
+INCLUDEDIR=$(PREFIX)/include
+PRGDIR=programs
+DISTRIBNAME=lz4-$(RELEASE).tar.gz
+
# Define *.exe as extension for Windows systems
-# ifeq ($(OS),Windows_NT)
ifneq (,$(filter Windows%,$(OS)))
EXT =.exe
else
EXT =
endif
-TEXT = bench.c bench.h fullbench.c fuzzer.c lz4.1 lz4.c lz4cli.c \
- lz4_format_description.txt lz4.h lz4hc.c lz4hc.h \
- Makefile xxhash.c xxhash.h \
- NEWS COPYING \
- cmake/CMakeLists.txt cmake/pack/release_COPYING.txt \
- cmake/pack/CMakeLists.txt
+TEXT = lz4.c lz4.h lz4hc.c lz4hc.h \
+ lz4_format_description.txt Makefile NEWS LICENSE \
+ cmake_unofficial/CMakeLists.txt \
+ $(PRGDIR)/fullbench.c $(PRGDIR)/fuzzer.c $(PRGDIR)/lz4cli.c \
+ $(PRGDIR)/bench.c $(PRGDIR)/bench.h \
+ $(PRGDIR)/xxhash.c $(PRGDIR)/xxhash.h \
+ $(PRGDIR)/lz4.1 $(PRGDIR)/Makefile $(PRGDIR)/COPYING
NONTEXT = LZ4_Streaming_Format.odt
SOURCES = $(TEXT) $(NONTEXT)
-default: lz4 lz4c
-
-all: lz4 lz4c lz4c32 fuzzer fuzzer32 fullbench fullbench32
-
-lz4: lz4.c lz4hc.c bench.c xxhash.c lz4cli.c
- $(CC) -O3 $(CFLAGS) -DDISABLE_LZ4C_LEGACY_OPTIONS $^ -o $@$(EXT)
-
-lz4c : lz4.c lz4hc.c bench.c xxhash.c lz4cli.c
- $(CC) -O3 $(CFLAGS) $^ -o $@$(EXT)
+default: liblz4
-lz4c32: lz4.c lz4hc.c bench.c xxhash.c lz4cli.c
- $(CC) -m32 -O3 $(CFLAGS) $^ -o $@$(EXT)
+all: liblz4 lz4programs
-fuzzer : lz4.c lz4hc.c fuzzer.c
- @echo fuzzer is a test tool to check lz4 integrity on target platform
- $(CC) -O3 $(CFLAGS) $^ -o $@$(EXT)
+liblz4: liblz4.a liblz4.so
-fuzzer32: lz4.c lz4hc.c fuzzer.c
- $(CC) -m32 -O3 $(CFLAGS) $^ -o $@$(EXT)
+lz4programs: lz4.c lz4hc.c
+ @cd $(PRGDIR); make all
-fullbench : lz4.c lz4hc.c xxhash.c fullbench.c
- $(CC) -O3 $(CFLAGS) $^ -o $@$(EXT)
+liblz4.a: lz4.c lz4hc.c
+ $(CC) -O3 -c $(CFLAGS) $^
+ ar rcs liblz4.a lz4.o lz4hc.o
-fullbench32: lz4.c lz4hc.c xxhash.c fullbench.c
- $(CC) -m32 -O3 $(CFLAGS) $^ -o $@$(EXT)
+liblz4.so: lz4.c lz4hc.c lz4.h
+ $(CC) -shared -fPIC -Wl,--soname=liblz4.so.1 $(CFLAGS) -o $@
clean:
- @rm -f core *.o lz4$(EXT) lz4c$(EXT) lz4c32$(EXT) \
- fuzzer$(EXT) fuzzer32$(EXT) fullbench$(EXT) fullbench32$(EXT) \
- $(DISTRIBNAME)
+ @rm -f core *.o *.a *.so $(DISTRIBNAME)
+ @cd $(PRGDIR); make clean
@echo Cleaning completed
-ifeq ($(shell uname),Linux)
+#ifeq ($(shell uname),Linux)
+ifneq (,$(filter $(shell uname),Linux Darwin))
-install: lz4 lz4c
- @install -d -m 755 $(BINDIR)/ $(MANDIR)/
- @install -m 755 lz4 $(BINDIR)/lz4
- @install -m 755 lz4c $(BINDIR)/lz4c
- @install -m 644 lz4.1 $(MANDIR)/lz4.1
+install: liblz4
+ @install -d -m 755 $(DESTDIR)$(LIBDIR)/ $(DESTDIR)$(INCLUDEDIR)/
+ @install -m 755 liblz4.a $(DESTDIR)$(LIBDIR)/liblz4.a
+ @install -m 755 liblz4.so $(DESTDIR)$(LIBDIR)/liblz4.so
+ @install -m 755 lz4.h $(DESTDIR)$(INCLUDEDIR)/lz4.h
+ @install -m 755 lz4hc.h $(DESTDIR)$(INCLUDEDIR)/lz4hc.h
+ @echo lz4 static and shared library installed
+ @cd $(PRGDIR); make install
uninstall:
- [ -x $(BINDIR)/lz4 ] && rm -f $(BINDIR)/lz4
- [ -x $(BINDIR)/lz4c ] && rm -f $(BINDIR)/lz4c
- [ -f $(MANDIR)/lz4.1 ] && rm -f $(MANDIR)/lz4.1
+ [ -x $(DESTDIR)$(LIBDIR)/liblz4.a ] && rm -f $(DESTDIR)$(LIBDIR)/liblz4.a
+ [ -x $(DESTDIR)$(LIBDIR)/liblz4.so ] && rm -f $(DESTDIR)$(LIBDIR)/liblz4.so
+ [ -f $(DESTDIR)$(INCLUDEDIR)/lz4.h ] && rm -f lz4.h $(DESTDIR)$(INCLUDEDIR)/lz4.h
+ [ -f $(DESTDIR)$(INCLUDEDIR)/lz4hc.h ] && rm -f lz4.h $(DESTDIR)$(INCLUDEDIR)/lz4hc.h
+ @echo lz4 libraries successfully uninstalled
+ @cd $(PRGDIR); make uninstall
dist: clean
- @install -dD -m 700 lz4-$(RELEASE)/cmake/pack/
+ @install -dD -m 700 lz4-$(RELEASE)/programs/
+ @install -dD -m 700 lz4-$(RELEASE)/cmake_unofficial/
@for f in $(TEXT); do \
tr -d '\r' < $$f > .tmp; \
install -m 600 .tmp lz4-$(RELEASE)/$$f; \