alpar@779: #!/bin/bash alpar@779: # alpar@779: # This file is a part of LEMON, a generic C++ optimization library. alpar@779: # alpar@779: # Copyright (C) 2003-2009 alpar@779: # Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport alpar@779: # (Egervary Research Group on Combinatorial Optimization, EGRES). alpar@779: # alpar@779: # Permission to use, modify and distribute this software is granted alpar@779: # provided that this copyright notice appears in all copies. For alpar@779: # precise terms see the accompanying LICENSE file. alpar@779: # alpar@779: # This software is provided "AS IS" with no warranty of any kind, alpar@779: # express or implied, and with no claim as to its suitability for any alpar@779: # purpose. alpar@779: alpar@779: alpar@779: if [ ! -f ~/.lemon-bootstrap ]; then alpar@779: echo 'Create ~/.lemon-bootstrap'. alpar@779: cat >~/.lemon-bootstrap <>~/.lemon-bootstrap alpar@779: echo $3 >>~/.lemon-bootstrap alpar@779: echo $1=$2 >>~/.lemon-bootstrap alpar@779: fi alpar@779: } alpar@779: alpar@779: augment_config LEMON_INSTALL_PREFIX /usr/local \ alpar@779: "# LEMON installation prefix" alpar@779: alpar@923: augment_config GLPK_PREFIX /usr/local/ \ alpar@923: "# GLPK installation root prefix" alpar@923: alpar@779: augment_config COIN_OR_PREFIX /usr/local/coin-or \ alpar@779: "# COIN-OR installation root prefix (used for CLP/CBC)" alpar@779: alpar@794: augment_config SOPLEX_PREFIX /usr/local/soplex \ alpar@794: "# Soplex build prefix" alpar@794: alpar@779: alpar@779: function ask() { alpar@779: echo -n "$1 [$2]? " alpar@779: read _an alpar@779: if [ "x$_an" == "x" ]; then alpar@779: ret="$2" alpar@779: else alpar@779: ret=$_an alpar@779: fi alpar@779: } alpar@779: alpar@779: function yesorno() { alpar@779: ret='rossz' alpar@779: while [ "$ret" != "y" -a "$ret" != "n" -a "$ret" != "yes" -a "$ret" != "no" ]; do alpar@779: ask "$1" "$2" alpar@779: done alpar@779: if [ "$ret" != "y" -a "$ret" != "yes" ]; then alpar@779: return 1 alpar@779: else alpar@779: return 0 alpar@779: fi alpar@779: } alpar@779: alpar@779: if yesorno "External build" "n" alpar@779: then alpar@779: CONFIGURE_PATH=".." alpar@779: else alpar@779: CONFIGURE_PATH="." alpar@779: if yesorno "Autoreconf" "y" alpar@779: then alpar@779: AUTORE=yes alpar@779: else alpar@779: AUTORE=no alpar@779: fi alpar@779: fi alpar@779: alpar@779: if yesorno "Optimize" "n" alpar@779: then alpar@779: opt_flags=' -O2' alpar@779: else alpar@779: opt_flags='' alpar@779: fi alpar@779: alpar@779: if yesorno "Stop on warning" "y" alpar@779: then alpar@779: werror_flags=' -Werror' alpar@779: else alpar@779: werror_flags='' alpar@779: fi alpar@779: alpar@779: cxx_flags="CXXFLAGS=-ggdb$opt_flags$werror_flags" alpar@779: alpar@841: if yesorno "Check with valgrind" "n" alpar@841: then alpar@841: valgrind_flags=' --enable-valgrind' alpar@841: else alpar@841: valgrind_flags='' alpar@841: fi alpar@841: alpar@923: if [ -f ${GLPK_PREFIX}/include/glpk.h ]; then alpar@923: if yesorno "Use GLPK" "y" alpar@923: then alpar@923: glpk_flag="--with-glpk=$GLPK_PREFIX" alpar@923: else alpar@923: glpk_flag="--without-glpk" alpar@923: fi alpar@923: else alpar@923: glpk_flag="--without-glpk" alpar@923: fi alpar@923: alpar@794: if [ -f ${COIN_OR_PREFIX}/include/coin/config_coinutils.h ]; then alpar@794: if yesorno "Use COIN-OR (CBC/CLP)" "n" alpar@794: then alpar@794: coin_flag="--with-coin=$COIN_OR_PREFIX" alpar@794: else alpar@923: coin_flag="--without-coin" alpar@794: fi alpar@779: else alpar@923: coin_flag="--without-coin" alpar@779: fi alpar@779: alpar@794: if [ -f ${SOPLEX_PREFIX}/src/soplex.h ]; then alpar@794: if yesorno "Use Soplex" "n" alpar@794: then alpar@794: soplex_flag="--with-soplex=$SOPLEX_PREFIX" alpar@794: else alpar@923: soplex_flag="--without-soplex" alpar@794: fi alpar@794: else alpar@923: soplex_flag="--without-soplex" alpar@794: fi alpar@779: alpar@779: if [ "x$AUTORE" == "xyes" ]; then alpar@779: autoreconf -vif; alpar@779: fi alpar@779: ${CONFIGURE_PATH}/configure --prefix=$LEMON_INSTALL_PREFIX \ alpar@841: $valgrind_flags \ alpar@779: "$cxx_flags" \ alpar@923: $glpk_flag \ alpar@779: $coin_flag \ alpar@794: $soplex_flag \ alpar@779: $*