1*27162e4eSAndroid Build Coastguard Worker# ################################################################ 2*27162e4eSAndroid Build Coastguard Worker# Copyright (C) Przemyslaw Skibinski 2016-present 3*27162e4eSAndroid Build Coastguard Worker# All rights reserved. 4*27162e4eSAndroid Build Coastguard Worker# 5*27162e4eSAndroid Build Coastguard Worker# BSD license 6*27162e4eSAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without modification, 7*27162e4eSAndroid Build Coastguard Worker# are permitted provided that the following conditions are met: 8*27162e4eSAndroid Build Coastguard Worker# 9*27162e4eSAndroid Build Coastguard Worker# * Redistributions of source code must retain the above copyright notice, this 10*27162e4eSAndroid Build Coastguard Worker# list of conditions and the following disclaimer. 11*27162e4eSAndroid Build Coastguard Worker# 12*27162e4eSAndroid Build Coastguard Worker# * Redistributions in binary form must reproduce the above copyright notice, this 13*27162e4eSAndroid Build Coastguard Worker# list of conditions and the following disclaimer in the documentation and/or 14*27162e4eSAndroid Build Coastguard Worker# other materials provided with the distribution. 15*27162e4eSAndroid Build Coastguard Worker# 16*27162e4eSAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17*27162e4eSAndroid Build Coastguard Worker# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18*27162e4eSAndroid Build Coastguard Worker# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19*27162e4eSAndroid Build Coastguard Worker# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 20*27162e4eSAndroid Build Coastguard Worker# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21*27162e4eSAndroid Build Coastguard Worker# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22*27162e4eSAndroid Build Coastguard Worker# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 23*27162e4eSAndroid Build Coastguard Worker# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24*27162e4eSAndroid Build Coastguard Worker# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25*27162e4eSAndroid Build Coastguard Worker# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26*27162e4eSAndroid Build Coastguard Worker# 27*27162e4eSAndroid Build Coastguard Worker# You can contact the author at : 28*27162e4eSAndroid Build Coastguard Worker# - LZ4 source repository : https://github.com/Cyan4973/lz4 29*27162e4eSAndroid Build Coastguard Worker# - LZ4 forum froup : https://groups.google.com/forum/#!forum/lz4c 30*27162e4eSAndroid Build Coastguard Worker# ################################################################ 31*27162e4eSAndroid Build Coastguard Worker 32*27162e4eSAndroid Build Coastguard Worker 33*27162e4eSAndroid Build Coastguard WorkerCXXFLAGS ?= -O2 34*27162e4eSAndroid Build Coastguard WorkerCXXFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wno-comment 35*27162e4eSAndroid Build Coastguard WorkerCPPFLAGS += $(MOREFLAGS) 36*27162e4eSAndroid Build Coastguard WorkerFLAGS = $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) 37*27162e4eSAndroid Build Coastguard Worker 38*27162e4eSAndroid Build Coastguard WorkerLZ4API = ../../lib/lz4.h 39*27162e4eSAndroid Build Coastguard WorkerLZ4MANUAL = ../../doc/lz4_manual.html 40*27162e4eSAndroid Build Coastguard WorkerLZ4FAPI = ../../lib/lz4frame.h 41*27162e4eSAndroid Build Coastguard WorkerLZ4FMANUAL = ../../doc/lz4frame_manual.html 42*27162e4eSAndroid Build Coastguard WorkerLIBVER_MAJOR_SCRIPT:=`sed -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LZ4API)` 43*27162e4eSAndroid Build Coastguard WorkerLIBVER_MINOR_SCRIPT:=`sed -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LZ4API)` 44*27162e4eSAndroid Build Coastguard WorkerLIBVER_PATCH_SCRIPT:=`sed -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LZ4API)` 45*27162e4eSAndroid Build Coastguard WorkerLIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT) 46*27162e4eSAndroid Build Coastguard WorkerLZ4VER := $(shell echo $(LIBVER_SCRIPT)) 47*27162e4eSAndroid Build Coastguard Worker 48*27162e4eSAndroid Build Coastguard Worker# Define *.exe as extension for Windows systems 49*27162e4eSAndroid Build Coastguard Workerifneq (,$(filter Windows%,$(OS))) 50*27162e4eSAndroid Build Coastguard WorkerEXT =.exe 51*27162e4eSAndroid Build Coastguard Workerelse 52*27162e4eSAndroid Build Coastguard WorkerEXT = 53*27162e4eSAndroid Build Coastguard Workerendif 54*27162e4eSAndroid Build Coastguard Worker 55*27162e4eSAndroid Build Coastguard Worker 56*27162e4eSAndroid Build Coastguard Worker.PHONY: default 57*27162e4eSAndroid Build Coastguard Workerdefault: gen_manual 58*27162e4eSAndroid Build Coastguard Worker 59*27162e4eSAndroid Build Coastguard Workergen_manual: gen_manual.cpp 60*27162e4eSAndroid Build Coastguard Worker $(CXX) $(FLAGS) $^ -o $@$(EXT) 61*27162e4eSAndroid Build Coastguard Worker 62*27162e4eSAndroid Build Coastguard Worker$(LZ4MANUAL) : gen_manual $(LZ4API) 63*27162e4eSAndroid Build Coastguard Worker echo "Update lz4 manual in /doc" 64*27162e4eSAndroid Build Coastguard Worker ./gen_manual $(LZ4VER) $(LZ4API) $@ 65*27162e4eSAndroid Build Coastguard Worker 66*27162e4eSAndroid Build Coastguard Worker$(LZ4FMANUAL) : gen_manual $(LZ4FAPI) 67*27162e4eSAndroid Build Coastguard Worker echo "Update lz4frame manual in /doc" 68*27162e4eSAndroid Build Coastguard Worker ./gen_manual $(LZ4VER) $(LZ4FAPI) $@ 69*27162e4eSAndroid Build Coastguard Worker 70*27162e4eSAndroid Build Coastguard Worker.PHONY: manuals 71*27162e4eSAndroid Build Coastguard Workermanuals: $(LZ4MANUAL) $(LZ4FMANUAL) 72*27162e4eSAndroid Build Coastguard Worker 73*27162e4eSAndroid Build Coastguard Worker.PHONY: clean 74*27162e4eSAndroid Build Coastguard Workerclean: 75*27162e4eSAndroid Build Coastguard Worker @$(RM) gen_manual$(EXT) 76*27162e4eSAndroid Build Coastguard Worker @echo Cleaning completed 77