diff options
author | yann.collet.73@gmail.com <yann.collet.73@gmail.com@650e7d94-2a16-8b24-b05c-7c0b3f6821cd> | 2014-01-07 18:47:50 (GMT) |
---|---|---|
committer | yann.collet.73@gmail.com <yann.collet.73@gmail.com@650e7d94-2a16-8b24-b05c-7c0b3f6821cd> | 2014-01-07 18:47:50 (GMT) |
commit | 648678788c751c0d89737dbb8b3144fa9d2c1592 (patch) | |
tree | e0e85353deca4f11bab61c46d94783a81c9e2ec5 /Makefile | |
parent | fb38ddaacb150e05b9d73c2a08d052ce746e37ba (diff) | |
download | lz4-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-- | Makefile | 144 |
1 files changed, 72 insertions, 72 deletions
@@ -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; \ |