| # Copyright (C) 2015-2016 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 |
| |
| if [ -z "$ngx_module_link" ]; then |
| cat << END |
| |
| $0: error: Brotli module requires recent version of NGINX (1.9.11+). |
| |
| END |
| exit 1 |
| fi |
| |
| # |
| # HTTP static module |
| # |
| |
| ngx_module_type=HTTP |
| ngx_module_name=ngx_http_brotli_static_module |
| ngx_module_incs= |
| ngx_module_deps= |
| ngx_module_srcs="$ngx_addon_dir/src/ngx_http_brotli_static_module.c" |
| ngx_module_libs= |
| ngx_module_order= |
| |
| . auto/module |
| |
| have=NGX_HTTP_GZIP . auto/have |
| have=NGX_HTTP_BROTLI_STATIC . auto/have |
| |
| # |
| # HTTP filter module with Brotli library |
| # |
| |
| brotli="$ngx_addon_dir/deps/brotli" |
| |
| if [ ! -f "$brotli/include/brotli/encode.h" ]; then |
| cat << END |
| |
| $0: error: \ |
| Brotli library is missing from the $brotli directory. |
| |
| Please make sure that the git submodule has been checked out: |
| |
| cd $ngx_addon_dir && git submodule update --init && cd $PWD |
| |
| END |
| exit 1 |
| fi |
| |
| ngx_module_type=HTTP_FILTER |
| ngx_module_name=ngx_http_brotli_filter_module |
| ngx_module_incs="$brotli/include" |
| ngx_module_deps="$brotli/common/constants.h \ |
| $brotli/common/dictionary.h \ |
| $brotli/common/version.h \ |
| $brotli/enc/backward_references.h \ |
| $brotli/enc/backward_references_inc.h \ |
| $brotli/enc/bit_cost.h \ |
| $brotli/enc/bit_cost_inc.h \ |
| $brotli/enc/block_encoder_inc.h \ |
| $brotli/enc/block_splitter.h \ |
| $brotli/enc/block_splitter_inc.h \ |
| $brotli/enc/brotli_bit_stream.h \ |
| $brotli/enc/cluster.h \ |
| $brotli/enc/cluster_inc.h \ |
| $brotli/enc/command.h \ |
| $brotli/enc/compress_fragment.h \ |
| $brotli/enc/compress_fragment_two_pass.h \ |
| $brotli/enc/context.h \ |
| $brotli/enc/dictionary_hash.h \ |
| $brotli/enc/entropy_encode.h \ |
| $brotli/enc/entropy_encode_static.h \ |
| $brotli/enc/fast_log.h \ |
| $brotli/enc/find_match_length.h \ |
| $brotli/enc/hash_forgetful_chain_inc.h \ |
| $brotli/enc/hash.h \ |
| $brotli/enc/hash_longest_match_inc.h \ |
| $brotli/enc/hash_longest_match_quickly_inc.h \ |
| $brotli/enc/histogram.h \ |
| $brotli/enc/histogram_inc.h \ |
| $brotli/enc/literal_cost.h \ |
| $brotli/enc/memory.h \ |
| $brotli/enc/metablock.h \ |
| $brotli/enc/metablock_inc.h \ |
| $brotli/enc/port.h \ |
| $brotli/enc/prefix.h \ |
| $brotli/enc/quality.h \ |
| $brotli/enc/ringbuffer.h \ |
| $brotli/enc/static_dict.h \ |
| $brotli/enc/static_dict_lut.h \ |
| $brotli/enc/utf8_util.h \ |
| $brotli/enc/write_bits.h" |
| ngx_module_srcs="$brotli/common/dictionary.c \ |
| $brotli/enc/backward_references.c \ |
| $brotli/enc/bit_cost.c \ |
| $brotli/enc/block_splitter.c \ |
| $brotli/enc/brotli_bit_stream.c \ |
| $brotli/enc/cluster.c \ |
| $brotli/enc/compress_fragment.c \ |
| $brotli/enc/compress_fragment_two_pass.c \ |
| $brotli/enc/encode.c \ |
| $brotli/enc/entropy_encode.c \ |
| $brotli/enc/histogram.c \ |
| $brotli/enc/literal_cost.c \ |
| $brotli/enc/memory.c \ |
| $brotli/enc/metablock.c \ |
| $brotli/enc/static_dict.c \ |
| $brotli/enc/utf8_util.c \ |
| $ngx_addon_dir/src/ngx_http_brotli_filter_module.c" |
| ngx_module_libs="-lm" |
| ngx_module_order="$ngx_module_name \ |
| ngx_pagespeed \ |
| ngx_http_postpone_filter_module \ |
| ngx_http_ssi_filter_module \ |
| ngx_http_charset_filter_module \ |
| ngx_http_xslt_filter_module \ |
| ngx_http_image_filter_module \ |
| ngx_http_sub_filter_module \ |
| ngx_http_addition_filter_module \ |
| ngx_http_gunzip_filter_module \ |
| ngx_http_userid_filter_module \ |
| ngx_http_headers_filter_module \ |
| ngx_http_copy_filter_module \ |
| ngx_http_range_body_filter_module \ |
| ngx_http_not_modified_filter_module \ |
| ngx_http_slice_filter_module" |
| |
| . auto/module |
| |
| if [ "$ngx_module_link" != DYNAMIC ]; then |
| # ngx_module_order doesn't work with static modules, |
| # so we must re-order filters here. |
| |
| if [ "$HTTP_GZIP" = YES ]; then |
| next=ngx_http_gzip_filter_module |
| elif echo $HTTP_FILTER_MODULES | grep pagespeed_etag_filter >/dev/null; then |
| next=ngx_pagespeed_etag_filter |
| else |
| next=ngx_http_range_header_filter_module |
| fi |
| |
| HTTP_FILTER_MODULES=`echo $HTTP_FILTER_MODULES \ |
| | sed "s/$ngx_module_name//" \ |
| | sed "s/$next/$next $ngx_module_name/"` |
| fi |
| |
| CFLAGS="$CFLAGS -Wno-deprecated-declarations" |
| |
| have=NGX_HTTP_BROTLI_FILTER . auto/have |