gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Simple interactive bootstrap script
0 0 1
default
1 file changed with 116 insertions and 0 deletions:
↑ Collapse diff ↑
Show white space 12 line context
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

	
18
if [ ! -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
#
24
EOF
25
fi
26

	
27
source ~/.lemon-bootstrap
28
if [ -f ../../../.lemon-bootstrap ]; then source ../../../.lemon-bootstrap; fi
29
if [ -f ../../.lemon-bootstrap ]; then source ../../.lemon-bootstrap; fi
30
if [ -f ../.lemon-bootstrap ]; then source ../.lemon-bootstrap; fi
31
if [ -f ./.lemon-bootstrap ]; then source ./.lemon-bootstrap; fi
32

	
33

	
34
function 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

	
44
augment_config LEMON_INSTALL_PREFIX /usr/local \
45
    "# LEMON installation prefix"
46

	
47
augment_config COIN_OR_PREFIX /usr/local/coin-or \
48
    "# COIN-OR installation root prefix (used for CLP/CBC)"
49

	
50

	
51
function ask() {
52
echo -n "$1 [$2]? "
53
read _an
54
if [ "x$_an" == "x" ]; then
55
    ret="$2"
56
else
57
    ret=$_an
58
fi
59
}
60

	
61
function 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

	
73
if yesorno "External build" "n"
74
then
75
    CONFIGURE_PATH=".."
76
else
77
    CONFIGURE_PATH="."
78
    if yesorno "Autoreconf" "y"
79
    then
80
        AUTORE=yes
81
    else
82
        AUTORE=no
83
    fi
84
fi
85

	
86
if yesorno "Optimize" "n" 
87
then
88
    opt_flags=' -O2'
89
else
90
    opt_flags=''
91
fi
92

	
93
if yesorno "Stop on warning" "y" 
94
then
95
    werror_flags=' -Werror'
96
else
97
    werror_flags=''
98
fi
99

	
100
cxx_flags="CXXFLAGS=-ggdb$opt_flags$werror_flags"
101

	
102
if yesorno "Use COIN" "n"
103
then
104
    coin_flag="--with-coin=$COIN_OR_PREFIX"
105
else
106
    coin_flag=""
107
fi
108

	
109

	
110
if [ "x$AUTORE" == "xyes" ]; then
111
    autoreconf -vif;
112
fi
113
${CONFIGURE_PATH}/configure --prefix=$LEMON_INSTALL_PREFIX \
114
"$cxx_flags" \
115
$coin_flag \
116
$*
0 comments (0 inline)