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 postMessage {
40 # --------------------------------------------------------------------
47 # --------------------------------------------------------------------
48 # Makes sure the install directories exist and are writable
49 # --------------------------------------------------------------------
50 function mkInstallDirs {
55 if [ "$?" != "0" ]; then
56 fail "Error creating $PREFIX";
59 if [ ! -w "$PREFIX" ]; then
60 fail "We don't have write access to $PREFIX";
68 if [ "$?" != "0" ]; then
69 fail "Error creating $TMP";
72 if [ ! -w "$TMP" ]; then
73 fail "We don't have write access to $TMP";
82 if [ -z "$INSTALLING" ]; then return 1; fi;
87 if [ -z "$BUILDING" ]; then return 1; fi;
93 # --------------------------------------------------------------------
94 # Loads the config file. If it can't fine CONFIG_FILE, it attempts to
95 # use DEFAULT_CONFIG_FILE. If it can't find that, it fails.
96 # --------------------------------------------------------------------
98 if [ ! -f "$CONFIG_FILE" ]; then
99 if [ -f "$DEFAULT_CONFIG_FILE" ]; then
100 echo "+ + + Copying $DEFAULT_CONFIG_FILE to $CONFIG_FILE and using its settings...";
101 cp "$DEFAULT_CONFIG_FILE" "$CONFIG_FILE";
103 fail "config file \"$CONFIG_FILE\" cannot be found";
106 source "$CONFIG_FILE";
114 # opensrf_jserver - custom 'single-domain' jabber server which may be used in place of jabberd2
115 # opensrf_router - jabber router.
116 # opensrf_gateway - mod_ils_gateway, Apache module for proxying API calls
117 # opensrf_srfsh - diagnostic shell interface to OpenSRF
118 # opensrf_perl - install the OpenSRF perl modules
119 # opensrf_all - builds all OpenSRF compenents
120 # openils_marcdumper - utility code for converting MARC to MARCXML
121 # openils_perl - install the Open-ILS perl modules
122 # openils_all - builds all OpenILS compenents
123 # openils_web - copies over the javascript and html templates to the web root directory
124 # evergreen_xul_client - client XUL application
125 # evergreen_all - builds all Evergreen components
126 function runInstall {
130 # pass the collected variables to make
131 for target in ${TARGETS[@]:0}; do
135 --------------------------------------------------------------------
137 --------------------------------------------------------------------
141 MAKE="make APXS2=$APXS2 PREFIX=$PREFIX TMP=$TMP \
142 APACHE2_HEADERS=$APACHE2_HEADERS LIBXML2_HEADERS=$LIBXML2_HEADERS \
143 BINDIR=$BINDIR LIBDIR=$LIBDIR PERLDIR=$PERLDIR INCLUDEDIR=$INCLUDEDIR";
150 if building; then $MAKE -C "$OPENSRF_DIR" all; fi;
151 if installing; then $MAKE -C "$OPENSRF_DIR" install; fi;
155 if building; then $MAKE -C "$OPENSRF_DIR" "jserver"; fi;
156 if installing; then $MAKE -C "$OPENSRF_DIR" "jserver-install"; fi;
160 if building; then $MAKE -C "$OPENSRF_DIR" "router"; fi;
161 if installing; then $MAKE -C "$OPENSRF_DIR" "router-install"; fi;
165 if building; then $MAKE -C "$OPENSRF_DIR" "gateway"; fi;
166 if installing; then $MAKE -C "$OPENSRF_DIR" "gateway-install"; fi;
170 if building; then $MAKE -C "$OPENSRF_DIR" "srfsh"; fi;
171 if installing; then $MAKE -C "$OPENSRF_DIR" "srfsh-install"; fi;
175 if installing; then $MAKE -C "$OPENSRF_DIR" "perl-install"; fi;
182 if building; then $MAKE -C "$OPENILS_DIR" all; fi;
183 if installing; then $MAKE -C "$OPENILS_DIR" install; fi;
187 if installing; then $MAKE -C "$OPENILS_DIR" "perl-install"; fi;
193 "evergreen_xul_client")
194 if building; then $MAKE -C "$EVERGREEN_DIR" xul; fi;
198 *) fail "Unknown target: $target";;
206 # --------------------------------------------------------------------
207 # Checks command line parameters for special behavior
208 # Supported params are:
209 # clean - cleans all build files
210 # build - builds the specified sources
211 # install - installs the specified sources
212 # --------------------------------------------------------------------
213 function checkParams {
215 if [ -z "$1" ]; then return; fi;
232 *) fail "Unknown command line argument: $arg";;
236 if [ "$lastArg" = "clean" ]; then exit 0; fi;
242 make -C "$OPENSRF_DIR" clean;
243 make -C "$OPENILS_DIR" clean;
244 make -C "$EVERGREEN_DIR" clean;
250 if building; then echo "Building..."; fi;
251 if installing; then echo "Installing..."; fi;
254 # --------------------------------------------------------------------
256 # --------------------------------------------------------------------