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";
23 verbose="-s" #clear this to get full build output
26 # --------------------------------------------------------------------
27 # Loads all of the path information from the user setting
28 # install variables as it goes
29 # --------------------------------------------------------------------
33 echo "A build error occured: $MSG";
38 #function postMessage {
41 # --------------------------------------------------------------------
48 # --------------------------------------------------------------------
49 # Makes sure the install directories exist and are writable
50 # --------------------------------------------------------------------
51 function mkInstallDirs {
56 if [ "$?" != "0" ]; then
57 fail "Error creating $PREFIX";
60 if [ ! -w "$PREFIX" ]; then
61 fail "We don't have write access to $PREFIX";
69 if [ "$?" != "0" ]; then
70 fail "Error creating $TMP";
73 if [ ! -w "$TMP" ]; then
74 fail "We don't have write access to $TMP";
80 if [ "$?" != "0" ]; then
81 fail "Error creating $SOCK";
84 if [ ! -w "$SOCK" ]; then
85 fail "We don't have write access to $SOCK";
91 if [ "$?" != "0" ]; then
92 fail "Error creating $PID";
94 if [ ! -w "$PID" ]; then
95 fail "We don't have write access to $PID";
101 # add the opensrf user and group
102 if [ ! $(grep "^opensrf:" /etc/group) ]; then groupadd opensrf; fi
103 if [ ! $(grep "^opensrf:" /etc/passwd) ]; then useradd opensrf; fi
105 # add opensrf to the opensrf group
106 gpasswd -a opensrf opensrf
110 function installing {
111 if [ -z "$INSTALLING" ]; then return 1; fi;
116 if [ -z "$BUILDING" ]; then return 1; fi;
122 # --------------------------------------------------------------------
123 # Loads the config file. If it can't fine CONFIG_FILE, it attempts to
124 # use DEFAULT_CONFIG_FILE. If it can't find that, it fails.
125 # --------------------------------------------------------------------
126 function loadConfig {
127 if [ ! -f "$CONFIG_FILE" ]; then
128 if [ -f "$DEFAULT_CONFIG_FILE" ]; then
129 echo "+ + + Copying $DEFAULT_CONFIG_FILE to $CONFIG_FILE and using its settings...";
130 cp "$DEFAULT_CONFIG_FILE" "$CONFIG_FILE";
132 fail "config file \"$CONFIG_FILE\" cannot be found";
135 source "$CONFIG_FILE";
141 function runInstall {
145 # pass the collected variables to make
146 for target in ${TARGETS[@]:0}; do
149 echo "-------------- [ $target ] -------------------------------------------";
152 MAKE="make $verbose APXS2=$APXS2 PREFIX=$PREFIX TMP=$TMP \
153 APACHE2_HEADERS=$APACHE2_HEADERS LIBXML2_HEADERS=$LIBXML2_HEADERS \
154 BINDIR=$BINDIR LIBDIR=$LIBDIR PERLDIR=$PERLDIR INCLUDEDIR=$INCLUDEDIR \
155 WEBDIR=$WEBDIR TEMPLATEDIR=$TEMPLATEDIR ETCDIR=$ETCDIR \
156 OPENSRFDIR=$OPENSRFDIR OPENILSDIR=$OPENILSDIR EVERGREENDIR=$EVERGREENDIR \
157 CIRCRULESDIR=$CIRCRULESDIR CGIDIR=$CGIDIR DBDRVR=$DBDRVR DBHOST=$DBHOST \
158 DBNAME=$DBNAME DBUSER=$DBUSER DBPW=$DBPW XSLDIR=$XSLDIR NEW_OPAC_URL=$NEW_OPAC_URL \
159 NEW_XUL_PACKAGE_NAME=$NEW_XUL_PACKAGE_NAME NEW_XUL_PACKAGE_LABEL=$NEW_XUL_PACKAGE_LABEL";
167 if building; then $MAKE -C "$OPENSRFDIR" all; fi;
168 if installing; then $MAKE -C "$OPENSRFDIR" install; fi;
172 if building; then $MAKE -C "$OPENSRFDIR" "jserver"; fi;
173 if installing; then $MAKE -C "$OPENSRFDIR" "jserver-install"; fi;
177 if building; then $MAKE -C "$OPENSRFDIR" "router"; fi;
178 if installing; then $MAKE -C "$OPENSRFDIR" "router-install"; fi;
182 if building; then $MAKE -C "$OPENSRFDIR" "gateway"; fi;
183 if installing; then $MAKE -C "$OPENSRFDIR" "gateway-install"; fi;
187 if building; then $MAKE -C "$OPENSRFDIR" "srfsh"; fi;
188 if installing; then $MAKE -C "$OPENSRFDIR" "srfsh-install"; fi;
192 if installing; then $MAKE -C "$OPENSRFDIR" "perl-install"; fi;
199 if building; then $MAKE -C "$OPENILSDIR" all; fi;
200 if installing; then $MAKE -C "$OPENILSDIR" install; fi;
204 if building; then $MAKE -C "$OPENILSDIR" "c_apps"; fi;
206 $MAKE -C "$OPENILSDIR" "perl-install";
207 $MAKE -C "$OPENILSDIR" "string-templates-install";
208 $MAKE -C "$OPENILSDIR" "xsl-install";
209 $MAKE -C "$OPENILSDIR" "c_apps-install";
214 if building; then $MAKE -C "$OPENILSDIR" "mod_xmltools"; fi;
215 if building; then $MAKE -C "$OPENILSDIR" "mod_ils_rest_gateway"; fi;
216 if installing; then $MAKE -C "$OPENILSDIR" "web-install"; fi;
217 if installing; then $MAKE -C "$OPENILSDIR" "cgi-bootstrap"; fi;
220 "openils_marcdumper" )
221 if building; then $MAKE -C "$OPENILSDIR" "marcdumper"; fi;
222 if installing; then $MAKE -C "$OPENILSDIR" "marcdumper-install"; fi;
227 $MAKE -C "$OPENILSDIR" "storage-bootstrap";
235 if installing; then $MAKE -C "$EVERGREENDIR" "circ-install"; fi;
238 "evergreen_xul_client" )
239 if building; then $MAKE -C "$EVERGREENDIR" xul; fi;
243 *) fail "Unknown target: $target";;
250 echo -e "\nNow run: chown -R opensrf:opensrf $PREFIX"
255 # --------------------------------------------------------------------
256 # Checks command line parameters for special behavior
257 # Supported params are:
258 # clean - cleans all build files
259 # build - builds the specified sources
260 # install - installs the specified sources
261 # --------------------------------------------------------------------
262 function checkParams {
264 if [ -z "$1" ]; then usage; fi;
284 *) fail "Unknown option => $arg";
288 if [ "$lastArg" = "clean" ]; then exit 0; fi;
294 make "TMP=$TMP" -s -C "$OPENSRFDIR" clean;
295 make "TMP=$TMP" -s -C "$OPENILSDIR" clean;
296 make "TMP=$TMP" -s -C "$EVERGREENDIR" clean;
300 echo "usage: $0 [ build | install | clean ]";
306 if building; then echo "Building..."; fi;
307 if installing; then echo "Installing..."; fi;
310 # --------------------------------------------------------------------
312 # --------------------------------------------------------------------