| #!/bin/bash |
| # |
| # Copyright 2012 Google Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # Author: jefftk@google.com (Jeff Kaufman) |
| # |
| # Usage: |
| # scripts/prepare_psol.sh /path/to/mod_pagespeed/src |
| # |
| # Creates a directory psol/ and copies headers and a few source files from a |
| # depot_tools (glient) checkout into psol/include. Along with creating |
| # binaries, this is a step in preparing psol.tar.gz for distribution. |
| # |
| |
| set -u # check for undefined variables |
| set -e # exit on failed commands |
| |
| if [ "$(basename "$PWD")" != "ngx_pagespeed" ] ; then |
| echo "$(basename $0) must be invoked from the ngx_pagespeed directory" |
| exit 1 |
| fi |
| |
| if [ $# -ne 1 ] ; then |
| echo "Usage: $(basename $0) /path/to/mod_pagespeed/src" |
| exit 1 |
| fi |
| |
| MOD_PAGESPEED_SRC="$1" |
| |
| if [ "$(basename "$(dirname "$MOD_PAGESPEED_SRC")")/$( \ |
| basename "$MOD_PAGESPEED_SRC")" != "mod_pagespeed/src" ] ; then |
| echo "Usage: $(basename $0) /path/to/mod_pagespeed/src" |
| exit 1 |
| fi |
| |
| if [ -e psol ] ; then |
| echo "A psol/ directory already exists. Move it somewhere else and rerun." |
| exit 1 |
| fi |
| mkdir psol/ |
| # Copy over the .h files, plus a few selected .cc and .c files. |
| rsync -arvz "$MOD_PAGESPEED_SRC/" "psol/include/" --prune-empty-dirs \ |
| --exclude=".svn" \ |
| --exclude=".git" \ |
| --include='*.h' \ |
| --include='*/' \ |
| --include="apr_thread_compatible_pool.cc" \ |
| --include="serf_url_async_fetcher.cc" \ |
| --include="apr_mem_cache.cc" \ |
| --include="key_value_codec.cc" \ |
| --include="apr_memcache2.c" \ |
| --include="loopback_route_fetcher.cc" \ |
| --include="add_headers_fetcher.cc" \ |
| --include="console_css_out.cc" \ |
| --include="console_out.cc" \ |
| --include="dense_hash_map" \ |
| --include="dense_hash_set" \ |
| --include="sparse_hash_map" \ |
| --include="sparse_hash_set" \ |
| --include="sparsetable" \ |
| --include="mod_pagespeed_console_out.cc" \ |
| --include="mod_pagespeed_console_css_out.cc" \ |
| --include="mod_pagespeed_console_html_out.cc" \ |
| --exclude='*' |
| mkdir -p psol/lib/Debug/linux/ia32 |
| mkdir -p psol/lib/Debug/linux/x64 |
| mkdir -p psol/lib/Release/linux/ia32 |
| mkdir -p psol/lib/Release/linux/x64 |
| |
| # Log that we did this. |
| SVN_REVISION="$(svn info $MOD_PAGESPEED_SRC | grep Revision | awk '{print $2}')" |
| SVN_TAG="$(svn info $MOD_PAGESPEED_SRC | grep URL | awk -F/ '{print $(NF-1)}')" |
| |
| DATE="$(date +%F)" |
| echo "${DATE}: Copied from mod_pagespeed ${SVN_TAG}@r${SVN_REVISION} ($USER)" \ |
| >> psol/include_history.txt |
| |
| echo |
| echo "Output is in psol/include. Now put binaries in psol/lib following" |
| echo "https://github.com/pagespeed/ngx_pagespeed/wiki/Building-Release-Binaries" |
| echo "and then you can distribute PSOL." |
| |