blob: b72dc17dcddd22d432dc67281abd5b71ed6cd3ad [file] [log] [blame]
# Copyright (C) 2015 Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. 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 AUTHOR 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 AUTHOR 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.
ngx_addon_name=ngx_brotli
#
# static module (no dependencies)
#
HTTP_MODULES="$HTTP_MODULES \
ngx_http_brotli_static_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS \
$ngx_addon_dir/src/ngx_http_brotli_static_module.c"
have=NGX_HTTP_GZIP . auto/have
have=NGX_HTTP_BROTLI_STATIC_MODULE . auto/have
if [ -n "$NGX_BROTLI_STATIC_MODULE_ONLY" ]; then
return
fi
#
# filter module (depends on Brotli library)
#
ngx_feature_run=no
ngx_feature_cpp=yes
ngx_feature_incs="#include <brotli/enc/encode.h>"
ngx_feature_test="brotli::BrotliParams params;
params.quality = 11"
# auto-discovery
ngx_feature="Brotli library"
ngx_feature_cpp=yes
ngx_feature_path=
ngx_feature_libs="-lbrotlienc -lstdc++"
. $ngx_addon_dir/auto/feature
if [ $ngx_found = no ]; then
# FreeBSD, OpenBSD
ngx_feature="Brotli library in /usr/local/"
ngx_feature_cpp=yes
ngx_feature_path="/usr/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lbrotlienc -lstdc++"
else
ngx_feature_libs="-L/usr/local/lib -lbrotlienc -lstdc++"
fi
. $ngx_addon_dir/auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD
ngx_feature="Brotli library in /usr/pkg/"
ngx_feature_cpp=yes
ngx_feature_path="/usr/pkg/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lbrotlienc -lstdc++"
else
ngx_feature_libs="-L/usr/pkg/lib -lbrotlienc -lstdc++"
fi
. $ngx_addon_dir/auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="Brotli library in /opt/local/"
ngx_feature_cpp=yes
ngx_feature_path="/opt/local/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lbrotlienc -lstdc++"
else
ngx_feature_libs="-L/opt/local/lib -lbrotlienc -lstdc++"
fi
. $ngx_addon_dir/auto/feature
fi
if [ $ngx_found = no ]; then
echo "$0: error: ngx_brotli filter module requires Brotli library."
exit 1
fi
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
if [ $HTTP_GZIP = YES ]; then
module=$HTTP_GZIP_FILTER_MODULE
elif echo $HTTP_FILTER_MODULES | grep ngx_pagespeed_etag_filter >/dev/null; then
module=ngx_pagespeed_etag_filter
else
module=$HTTP_RANGE_HEADER_FILTER_MODULE
fi
HTTP_FILTER_MODULES=`echo $HTTP_FILTER_MODULES \
| sed "s/$module/$module ngx_http_brotli_filter_module/"`
NGX_ADDON_SRCS="$NGX_ADDON_SRCS \
$ngx_addon_dir/src/ngx_http_brotli_filter_module.cc"
have=NGX_HTTP_BROTLI_FILTER_MODULE . auto/have