2 # --------------------------------------------------------------------
3 # Copyright (C) 2005 Georgia Public Library Service
4 # Bill Erickson <highfalutin@gmail.com>
6 # This program is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU General Public License
8 # as published by the Free Software Foundation; either version 2
9 # of the License, or (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
15 # --------------------------------------------------------------------
18 # --------------------------------------------------------------------
20 # --------------------------------------------------------------------
21 CONFIG_FILE="install.conf";
22 DEFAULT_CONFIG_FILE="install.conf.default";
25 # --------------------------------------------------------------------
26 # Loads all of the path information from the user setting
27 # install variables as it goes
28 # --------------------------------------------------------------------
32 echo "A build error occured: $MSG";
37 function verifyInstallPaths {
41 -----------------------------------------------------------------------
42 Verify the following install directories are sane.
43 Note: * indicates that you must have write privelages for the location
44 -----------------------------------------------------------------------
46 -----------------------------------------------------------------------
47 Install prefix [$PREFIX]*
48 Temporary files directory [$TMP]*
49 Apache2 apxs binary [$APXS2]
50 Apache2 header directory [$APACHE2_HEADERS]
51 Libxml2 header directory [$LIBXML2_HEADERS]
52 Building targets [${TARGETS[@]:0}];
53 -----------------------------------------------------------------------
55 If these are not OK, use control-c to break out and fix the variables
56 in install.config. Otherwise, type enter.
58 To disable this message, run "./install.sh force".
64 #function postMessage {
67 # --------------------------------------------------------------------
72 # --------------------------------------------------------------------
73 # Makes sure the install directories exist and are writable
74 # --------------------------------------------------------------------
75 function mkInstallDirs {
80 if [ "$?" != "0" ]; then
81 fail "Error creating $PREFIX";
84 if [ ! -w "$PREFIX" ]; then
85 fail "We don't have write access to $PREFIX";
93 if [ "$?" != "0" ]; then
94 fail "Error creating $TMP";
97 if [ ! -w "$TMP" ]; then
98 fail "We don't have write access to $TMP";
106 function installing {
107 if [ -z "$INSTALLING" ]; then return 1; fi;
112 if [ -z "$BUILDING" ]; then return 1; fi;
118 # --------------------------------------------------------------------
119 # Loads the config file. If it can't fine CONFIG_FILE, it attempts to
120 # use DEFAULT_CONFIG_FILE. If it can't find that, it fails.
121 # --------------------------------------------------------------------
122 function loadConfig {
123 if [ ! -f "$CONFIG_FILE" ]; then
124 if [ -f "$DEFAULT_CONFIG_FILE" ]; then
125 echo "+ + + Copying $DEFAULT_CONFIG_FILE to $CONFIG_FILE and using its settings...";
126 cp "$DEFAULT_CONFIG_FILE" "$CONFIG_FILE";
128 fail "config file \"$CONFIG_FILE\" cannot be found";
131 source "$CONFIG_FILE";
135 function runInstall {
139 #[ -z "$FORCE" ] && verifyInstallPaths;
142 # pass the collected variables to make
143 for target in ${TARGETS[@]:0}; do
147 --------------------------------------------------------------------
149 --------------------------------------------------------------------
153 MAKE="make APXS2=$APXS2 PREFIX=$PREFIX TMP=$TMP \
154 APACHE2_HEADERS=$APACHE2_HEADERS LIBXML2_HEADERS=$LIBXML2_HEADERS \
155 BINDIR=$BINDIR LIBDIR=$LIBDIR PERLDIR=$PERLDIR INCLUDEDIR=$INCLUDEDIR";
157 echo "Passing to sub-makes: $MAKE"
161 "jserver" | "router" | "gateway" | "srfsh" )
162 if building; then $MAKE -C "$OPENSRF_DIR" "$target"; fi;
163 if installing; then $MAKE -C "$OPENSRF_DIR" "$target-install"; fi;
167 if installing; then $MAKE -C "$OPENSRF_DIR" "perl-install"; fi;
171 if installing; then $MAKE -C "$OPENILS_DIR" "perl-install"; fi;
174 *) fail "Unknown target: $target";;
182 # --------------------------------------------------------------------
183 # Checks command line parameters for special behavior
184 # Supported params are:
185 # clean - cleans all build files
186 # force - forces build without the initial message
187 # --------------------------------------------------------------------
188 function checkParams {
190 if [ -z "$1" ]; then return; fi;
210 *) fail "Unknown command line argument: $arg";;
214 if [ "$lastArg" = "clean" ]; then exit 0; fi;
220 make -C "$OPENSRF_DIR" clean;
221 make -C "$OPENILS_DIR" clean;
222 make -C "$EVERGREEN_DIR" clean;
227 if installing; then echo "Installing..."; fi;