COIN-OR::LEMON - Graph Library

source: lemon/scripts/bootstrap.sh @ 793:e4554cd6b2bf

Last change on this file since 793:e4554cd6b2bf was 779:1f8ad32f088b, checked in by Alpar Juttner <alpar@…>, 10 years ago

Simple interactive bootstrap script

  • Property exe set to *
File size: 2.5 KB
Line 
1#!/bin/bash
2#
3# This file is a part of LEMON, a generic C++ optimization library.
4#
5# Copyright (C) 2003-2009
6# Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7# (Egervary Research Group on Combinatorial Optimization, EGRES).
8#
9# Permission to use, modify and distribute this software is granted
10# provided that this copyright notice appears in all copies. For
11# precise terms see the accompanying LICENSE file.
12#
13# This software is provided "AS IS" with no warranty of any kind,
14# express or implied, and with no claim as to its suitability for any
15# purpose.
16
17
18if [ ! -f ~/.lemon-bootstrap ]; then
19    echo 'Create ~/.lemon-bootstrap'.
20    cat >~/.lemon-bootstrap <<EOF
21#
22# Default settings for bootstraping the LEMON source code repository
23#
24EOF
25fi
26
27source ~/.lemon-bootstrap
28if [ -f ../../../.lemon-bootstrap ]; then source ../../../.lemon-bootstrap; fi
29if [ -f ../../.lemon-bootstrap ]; then source ../../.lemon-bootstrap; fi
30if [ -f ../.lemon-bootstrap ]; then source ../.lemon-bootstrap; fi
31if [ -f ./.lemon-bootstrap ]; then source ./.lemon-bootstrap; fi
32
33
34function augment_config() {
35    if [ "x${!1}" == "x" ]; then
36        eval $1=$2
37        echo Add "'$1'" to '~/.lemon-bootstrap'.
38        echo >>~/.lemon-bootstrap
39        echo $3 >>~/.lemon-bootstrap
40        echo $1=$2 >>~/.lemon-bootstrap
41    fi
42}
43
44augment_config LEMON_INSTALL_PREFIX /usr/local \
45    "# LEMON installation prefix"
46
47augment_config COIN_OR_PREFIX /usr/local/coin-or \
48    "# COIN-OR installation root prefix (used for CLP/CBC)"
49
50
51function ask() {
52echo -n "$1 [$2]? "
53read _an
54if [ "x$_an" == "x" ]; then
55    ret="$2"
56else
57    ret=$_an
58fi
59}
60
61function yesorno() {
62    ret='rossz'
63    while [ "$ret" != "y" -a "$ret" != "n" -a "$ret" != "yes" -a "$ret" != "no" ]; do
64        ask "$1" "$2"
65    done
66    if [ "$ret" != "y" -a "$ret" != "yes" ]; then
67        return 1
68    else
69        return 0
70    fi
71}
72
73if yesorno "External build" "n"
74then
75    CONFIGURE_PATH=".."
76else
77    CONFIGURE_PATH="."
78    if yesorno "Autoreconf" "y"
79    then
80        AUTORE=yes
81    else
82        AUTORE=no
83    fi
84fi
85
86if yesorno "Optimize" "n"
87then
88    opt_flags=' -O2'
89else
90    opt_flags=''
91fi
92
93if yesorno "Stop on warning" "y"
94then
95    werror_flags=' -Werror'
96else
97    werror_flags=''
98fi
99
100cxx_flags="CXXFLAGS=-ggdb$opt_flags$werror_flags"
101
102if yesorno "Use COIN" "n"
103then
104    coin_flag="--with-coin=$COIN_OR_PREFIX"
105else
106    coin_flag=""
107fi
108
109
110if [ "x$AUTORE" == "xyes" ]; then
111    autoreconf -vif;
112fi
113${CONFIGURE_PATH}/configure --prefix=$LEMON_INSTALL_PREFIX \
114"$cxx_flags" \
115$coin_flag \
116$*
Note: See TracBrowser for help on using the repository browser.