1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll#!/bin/bash 22:�'æ��?҃{# 3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Ceres Solver - A fast non-linear least squares minimizer 4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Copyright 2012 Google Inc. All rights reserved. 5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# http://code.google.com/p/ceres-solver/ 6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# 7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Redistribution and use in source and binary forms, with or without 8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# modification, are permitted provided that the following conditions are met: 9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# 10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# * Redistributions of source code must retain the above copyright notice, 11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# this list of conditions and the following disclaimer. 12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# * Redistributions in binary form must reproduce the above copyright notice, 13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# this list of conditions and the following disclaimer in the documentation 14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# and/or other materials provided with the distribution. 15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# * Neither the name of Google Inc. nor the names of its contributors may be 16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# used to endorse or promote products derived from this software without 17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# specific prior written permission. 18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# 19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24Np��lGk/�x�Z@$z�# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25a��="iXP��%��gՂ��yO�[-���QE���xx�X(�,# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26j�r)�s�$I\I���O���ƕ;s����GV_����������<�P��# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29bN����# POSSIBILITY OF SUCH DAMAGE. 30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# 31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Author: mierle@gmail.com (Keir Mierle) 32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# 33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Note: You will need Sphinx and Pygments installed for this to work. 34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [ -z $1 ] ; then 36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo 'usage: scripts/make_release <version>' 37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo ' must be run from toplevel Ceres source directory' 38x�f]�f��������?��ho�F�%� exit 1 39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 41Ev1�#u��IUTMP="/tmp/ceres-solver-$1" 426_�֚N���RjDOCS_TMP="/tmp/ceres-solver-docs-$1" 43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollVERSION=$(grep 'SET(CERES_VERSION_' CMakeLists.txt | \ 44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll sed -e 's/\(.*\) \(.*\))/\2/' | \ 45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll tr '\n' '.' | sed -e 's/.$//') 46eG;>���ns<]�Z�xRjABI_VERSION=$(grep 'SET(CERES_ABI_VERSION' CMakeLists.txt | \ 47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll sed -e 's/SET(CERES_ABI_VERSION //' | \ 48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll sed -e 's/)//') 49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollVERSION_IN_HEADER=$(grep '#define CERES_VERSION' include/ceres/ceres.h | \ 50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll sed -e 's/#define CERES_VERSION //') 51vgMp�J^Ș�aBN�+�O'��#�#+�>꽼ABI_VERSION_IN_HEADER=$(grep '#define CERES_ABI_VERSION' \ 52v����p include/ceres/ceres.h | \ 53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll sed -e 's/#define CERES_ABI_VERSION //') 54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollVERSION_IN_SPEC=$(grep '^Version:' scripts/ceres-solver.spec | \ 55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll sed -e 's/Version: *//') 566uz�a�;�g^�e�GIT_COMMIT=$(git log -1 HEAD |grep commit) 57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [[ $1 != $VERSION ]] ; then 59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo "ERROR: Version from the command line $1 does not match CERES_VERSION" 60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " in CMakeLists.txt, which is $VERSION. You may not be in the " 61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " toplevel source dir." 62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll exit 1 63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif [[ $VERSION_IN_HEADER != $VERSION ]] ; then 66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo "ERROR: CERES_VERSION version from include/ceres/ceres.h, which is" 67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " $VERSION_IN_HEADER, does not match the ABI version" 682� �>q echo " from the toplevel CMakeLists.txt, which is $ABI_VERSION." 69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " You may not be in the toplevel source directory, or the" 70YG�𢮶��ET;r�( echo " versions are out of sync." 71Ts�#�f exit 1 72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 73J*�B��@��+�K�=v����yE�vǷ��X��vc�*dQ�ĩ|!�Hd�?/�� 74RD;~p�<���sif [[ $ABI_VERSION_IN_HEADER != $ABI_VERSION ]] ; then 75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo "ERROR: CERES_ABI_VERSION from include/ceres/ceres.h, which is" 76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " $ABI_VERSION_IN_HEADER, does not match the ABI version" 77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " from the toplevel CMakeLists.txt, which is $ABI_VERSION." 78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " You may not be in the toplevel source directory, or the" 79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " versions are out of sync." 80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll exit 1 81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 83s4dmqLQ칙��!V>Cif [[ $VERSION_IN_SPEC != $VERSION ]] ; then 84R��F� echo "ERROR: Version string from scripts/ceres-solver.spec, which is" 85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " $VERSION_IN_SPEC, does not match the version" 86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " from the toplevel CMakeLists.txt, which is $ABI_VERSION." 87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " You may not be in the toplevel source directory, or the" 88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll echo " versions are out of sync." 89I}��[�<>!ճ��t���o�D��'���˧a_��w�r�`������Q�� exit 1 90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollfi 91c�j�L�z��]��p(�>s�v؝.���t�X����J���|� 92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Export repository. 93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollgit checkout-index -f -a --prefix=$TMP/ 948l�XGv���ц!Fc�Ğ����kD�� 95402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Build the VERSION file. 96402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollVERSIONFILE=$TMP/VERSION 97402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollecho "version $VERSION" >> $VERSIONFILE 98402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollecho "abi_version $VERSION" >> $VERSIONFILE 99402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollecho "$GIT_COMMIT" >> $VERSIONFILE 100402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 101402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Build the documentation. 102tt�<o��^j��^Z�ޭ�>+��*|�������{�ŗ%�/���python $TMP/scripts/make_docs.py $TMP $DOCS_TMP 103402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcp -pr $DOCS_TMP/html $TMP/docs 1049}Z�^ 105402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Build the tarball. 106402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcd /tmp 107402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molltar -cvzf "ceres-solver-$1.tar.gz" "ceres-solver-$1" 108402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 109402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Don't leave a mess behind. 110402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollrm -rf $TMP 111F�x<&"�b��_rm -rf $DOCS_TMP 1127xbݞG�� �� 113402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll# Reminder to upload. 114F*J�{�͢��y�Hocat <<EOF 115402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 116402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollTODO: 117402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll - Upload /tmp/ceres-solver-$1.tar.gz 118402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 1196m��� ����E? - Update the release string in scripts/ceres-solver.spec if this is a RC 120402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll release or the first release after a RC release. 121402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 122402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll - Build and upload RPM package. 123402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll 124402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollEOF 125402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll