1 # Copyright (C) 2008 Equinox Software, Inc.
2 # Kevin Beswick <kevinbeswick00@gmail.com>
3 # Copyright (C) 2010 Laurentian University
4 # Dan Scott <dscott@laurentian.ca>
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.
17 #---------------------------
19 #---------------------------
21 export PATH=${PATH}:/usr/sbin
23 AC_INIT(Open-ILS, trunk, open-ils-dev@list.georgialibraries.org)
24 AM_INIT_AUTOMAKE([OpenILS], [trunk])
25 AC_REVISION($Revision: 0.1 $)
26 AC_CONFIG_SRCDIR([configure.ac])
27 AC_PREFIX_DEFAULT([/openils/])
29 AC_SUBST([abs_top_builddir])
31 #-----------------------------------
32 # Checks for programs.
33 #-----------------------------------
44 #-----------------------------------
46 #-----------------------------------
48 # install openils-all?
49 #AC_ARG_ENABLE([openils-all],
50 #[ --enable-openils-all enables the installation of the default openils system (base system,web,staffclient) ],
51 #[case "${enableval}" in
52 # yes) openils_all=true;
55 # openils_updates=true;
56 # openils_reporter=true;
57 # openils_client_xul=true;
58 # openils_server_xul=true ;;
59 # no) openils_all=false ;;
60 # *) AC_MSG_ERROR([please choose another value for --enable-openils-all (supported values are yes or no])
64 # install evergreen-core?
66 [ --disable-core disables installation of the Evergreen core components ],
67 [case "${enableval}" in
68 yes) openils_core=true ;;
69 no) openils_core=false ;;
70 *) AC_MSG_ERROR([please choose another value for --disable-core (supported values are yes or no])
74 AM_CONDITIONAL([BUILDILSCORE], [test x$openils_core = xtrue])
76 # install evergreen-web?
79 [ --disable-web disables installation of the Evergreen web modules ],
80 [case "${enableval}" in
81 yes) openils_web=true ;;
82 no) openils_web=false ;;
83 *) AC_MSG_ERROR([please choose another value for --disable-web (supported values are yes or no])
87 AM_CONDITIONAL([BUILDILSWEB], [test x$openils_web = xtrue])
89 # install evergreen-updates?
91 AC_ARG_ENABLE([updates],
92 [ --disable-updates disables installation of the Evergreen updates folder ],
93 [case "${enableval}" in
94 yes) openils_updates=true ;;
95 no) openils_updates=false ;;
96 *) AC_MSG_ERROR([please choose another value for --disable-updates (supported values are yes or no])
98 [openils_updates=true])
100 AM_CONDITIONAL([BUILDILSUPDATES], [test x$openils_updates = xtrue])
102 # Default updates host?
103 AC_ARG_WITH([updateshost],
104 [ --with-updateshost=hostname default hostname for automatic updates (default is blank)],
105 [AUTOUPDATE_HOST=${withval}],
107 AC_SUBST([AUTOUPDATE_HOST])
109 # install Evergreen Apache modules?
110 AC_ARG_ENABLE([apache-modules],
111 [ --disable-apache-modules disables installation of the Evergreen Apache modules ],
112 [case "${enableval}" in
113 yes) build_apachemods=true ;;
114 no) build_apachemods=false ;;
115 *) AC_MSG_ERROR([please choose another value for --disable-apache-modules (supported values are yes or no])
117 [build_apachemods=true])
119 AM_CONDITIONAL([BUILDAPACHEMODS], [test x$build_apachemods = xtrue])
121 # build evergreen-reporter ?
123 AC_ARG_ENABLE([reporter],
124 [ --disable-reporter disables installation of the Evergreen reporter module ],
125 [case "${enableval}" in
126 yes) openils_reporter=true ;;
127 no) openils_reporter=false ;;
128 *) AC_MSG_ERROR([please choose another value for --disable-reporter (supported values are yes or no])
130 [openils_reporter=true])
132 AM_CONDITIONAL([BUILDILSREPORTER], [test x$openils_reporter = xtrue])
134 # build evergreen-client ?
136 AC_ARG_ENABLE([client],
137 [ --disable-client disables installation of the Evergreen staff client ],
138 [case "${enableval}" in
139 yes) openils_client=true ;;
140 no) openils_client=false ;;
141 *) AC_MSG_ERROR([please choose another value for --disable-client (supported values are yes or no])
143 [openils_client=true])
145 AM_CONDITIONAL([BUILDILSCLIENT], [test x$openils_client = xtrue])
148 # build evergreen java ?
150 AC_ARG_ENABLE([java],
151 [ --enable-java enables installation of the Evergreen Java components ],
152 [case "${enableval}" in
153 yes) evergreen_java=true ;;
154 no) evergreen_java=false ;;
155 *) AC_MSG_ERROR([please choose another value for --enable-java (supported values are yes or no])
157 [evergreen_java=false])
159 AM_CONDITIONAL([BUILDEGJAVA], [test x$evergreen_java = xtrue])
162 # build the evergreen python modules?
164 AC_ARG_ENABLE([python],
165 [ --enable-python enables installation of the Evergreen Python modules ],
166 [case "${enableval}" in
167 yes) EG_PYTHON_INSTALL=true ;;
168 no) EG_PYTHON_INSTALL=false ;;
169 *) AC_MSG_ERROR([please choose another value for --enable-python (supported values are yes or no)])
171 [EG_PYTHON_INSTALL=false])
173 AM_CONDITIONAL([BUILDEGPYTHON], [test x$EG_PYTHON_INSTALL = xtrue])
175 #-----------------------------------
176 # Check for dependencies
177 #-----------------------------------
179 AC_ARG_WITH([opensrf-headers],
180 [ --with-opensrf-headers=path location of the OpenSRF header files (default is /openils/include/)],
181 [OPENSRF_HEADERS=${withval}],
182 [OPENSRF_HEADERS=/openils/include/])
183 AC_SUBST([OPENSRF_HEADERS])
185 # We need this for JavaScript
186 AC_ARG_WITH([opensrf-libs],
187 [ --with-opensrf-libs=path location of the OpenSRF libraries (default is /openils/lib/)],
188 [OPENSRF_LIBS=${withval}],
189 [OPENSRF_LIBS=/openils/lib/])
190 AC_SUBST([OPENSRF_LIBS])
193 [ --with-tmp=path location of the Evergreen temporary directory (default is /tmp) ],
199 [ --with-apxs=path location of the apxs Apache configuration tool (default is /usr/bin/apxs2)],
201 [APXS2=/usr/bin/apxs2])
203 # If the passed in value doesn't work, try some reasonable defaults
204 # Fedora puts the file in /usr/sbin/apxs, for example
205 if ! test -x "$APXS2"; then
206 for i in /usr/bin /usr/sbin /usr/local/apache/bin /usr/local/apache2/bin ; do
207 for j in apxs apxs2 ; do
208 if test -x "$i/$j"; then
217 AC_ARG_WITH([apache],
218 [ --with-apache=path location of the Apache headers (default is /usr/include/apache2)],
219 [APACHE2_HEADERS=${withval}],
220 [APACHE2_HEADERS=/usr/include/apache2])
221 AC_SUBST([APACHE2_HEADERS])
224 [ --with-apr=path location of the Apache Portable Runtime (APR) headers (default is /usr/include/apr-1.0/)],
225 [APR_HEADERS=${withval}],
226 [APR_HEADERS=/usr/include/apr-1.0])
227 AC_SUBST([APR_HEADERS])
229 AC_ARG_WITH([libxml2],
230 [ --with-libxml2=path location of the libxml2 headers (default is /usr/include/libxml2)],
231 [LIBXML2_HEADERS=${withval}],
232 [LIBXML2_HEADERS=/usr/include/libxml2/])
233 AC_SUBST([LIBXML2_HEADERS])
236 [ --with-dbi=path location of the libdbi driver libraries (default is /usr/local/lib/dbd)],
237 [DBI_LIBS=${withval}],
238 [DBI_LIBS=/usr/local/lib/dbd/])
240 # If the passed in value doesn't work, fall back to reasonable defaults
241 # Distributions are starting to package a good version of libdbi / libdbd
242 if ! test -d "$DBI_LIBS"; then
243 for i in /usr/lib/dbd/ /usr/lib64/dbd /usr/local/lib/dbd/ ; do
244 if test -d "$i"; then
252 if test "x$openils_core" = "xtrue"; then
254 AC_CHECK_PROG([MEMCACHED],memcached,yes,no)
255 if test $MEMCACHED = "no"; then
256 AC_MSG_ERROR([*** memcached not found, aborting])
259 AC_CHECK_PROG([ASPELL],aspell,yes,no)
260 if test $ASPELL = "no"; then
261 AC_MSG_ERROR([*** aspell not found, aborting])
264 AC_CHECK_PROG([CPAN],cpan,yes,no)
265 if test $CPAN = "no"; then
266 AC_MSG_ERROR([*** cpan not found, aborting])
269 AC_CHECK_PROG([YAZ],yaz-config,yes,no)
270 if test $YAZ = "no"; then
271 AC_MSG_ERROR([*** yaz not found, aborting])
274 AC_CHECK_PROG([PERL],perl,yes,no)
275 if test $PERL = "no"; then
276 AC_MSG_ERROR([*** perl not found, aborting])
279 #------------------------------------
280 # Checks for libraries.
281 #------------------------------------
283 # Check for the existence of libraries in non-standard locations
285 AC_MSG_CHECKING(for -lopensrf)
286 if test -e ${OPENSRF_LIBS}/libopensrf.so; then
289 AC_MSG_ERROR([*** libopensrf not found (or not in location specified to configure), aborting])
292 # Check for the rest of the libraries
294 #check for dynamic linking functions
295 AC_CHECK_LIB(dl,dlopen)
297 #check for the libdbi library
298 AC_CHECK_LIB(dbi,dbi_initialize)
300 #to check for the availability and function of a particular
301 #driver we need a runtime check (since the driver is loaded
302 #dynamically). This example checks for the mysql driver
303 AC_MSG_CHECKING([for libdbi pgsql driver (dynamic load)])
306 [[dbi_initialize(0); return(dbi_conn_new("pgsql") ? 0 : 1);]])],
307 [AC_MSG_RESULT("yes")],
308 [AC_MSG_FAILURE("pgsql driver not installed?")])
310 AC_CHECK_LIB([expat], [main], [], AC_MSG_ERROR(*** OpenILS requires libexpat))
311 AC_CHECK_LIB([ncurses], [main], [], AC_MSG_ERROR(*** OpenILS requires libncurses))
312 AC_CHECK_LIB([readline], [main], [], AC_MSG_ERROR(*** OpenILS requires libreadline))
313 AC_CHECK_LIB([xml2], [main], [], AC_MSG_ERROR(*** OpenILS requires libxml2))
314 AC_CHECK_LIB([xslt], [main], [], AC_MSG_ERROR(*** OpenILS requires libxslt))
315 AC_CHECK_LIB([pq], [main], [], AC_MSG_ERROR(*** OpenILS requires libpq))
318 #------------------------------------
319 # Checks for header files.
320 #------------------------------------
323 AC_CHECK_HEADERS([fcntl.h langinfo.h locale.h stdlib.h string.h unistd.h])
325 #-------------------------------------------------------------------
326 # Checks for typedefs, structures, and compiler characteristics.
327 #-------------------------------------------------------------------
334 #-------------------------------------------------------------------
335 # Checks for library functions.
336 #-------------------------------------------------------------------
340 AC_CHECK_FUNCS([localtime_r memset nl_langinfo setlocale strcasecmp strchr strdup strerror strncasecmp])
342 #----------------------------
343 # Create Makefiles/Output
344 #----------------------------
346 AC_CONFIG_FILES([Open-ILS/examples/Makefile
347 Open-ILS/src/c-apps/Makefile
348 Open-ILS/src/extras/Makefile
349 Open-ILS/src/java/Makefile
350 Open-ILS/src/python/Makefile])
353 if test "x$build_apachemods" = "xtrue"; then
355 #-----------------------------------
356 # Set install path variables
357 #-----------------------------------
359 #APACHE PREFORK DEV TEST
360 AC_MSG_CHECKING([APXS2])
361 if test -x "${APXS2}"; then
364 AC_MSG_ERROR([*** apxs not found in ${APXS2}, aborting])
367 AC_CONFIG_FILES([Open-ILS/src/apachemods/Makefile])
370 AC_CONFIG_FILES([Makefile
371 Open-ILS/src/Makefile
372 Open-ILS/web/Makefile
373 Open-ILS/updates/Makefile
374 Open-ILS/xul/staff_client/Makefile
375 Open-ILS/src/extras/eg_config
376 Open-ILS/src/extras/fast-extract
377 Open-ILS/src/extras/import/marc2are.pl
378 Open-ILS/src/extras/import/marc2bre.pl
379 Open-ILS/src/extras/import/marc2sre.pl
380 Open-ILS/src/extras/import/parallel_pg_loader.pl
381 Open-ILS/src/support-scripts/marc_export
382 Open-ILS/src/perlmods/Makefile
383 Open-ILS/src/perlmods/lib/OpenILS/Utils/Cronscript.pm],
385 if test -e "./Open-ILS/src/extras/eg_config"; then chmod 755 Open-ILS/src/extras/eg_config; fi;
386 if test -e "./Open-ILS/src/extras/fast-extract"; then chmod 755 Open-ILS/src/extras/fast-extract; fi;
387 if test -e "./Open-ILS/src/extras/import/marc2are.pl"; then chmod 755 Open-ILS/src/extras/import/marc2are.pl; fi;
388 if test -e "./Open-ILS/src/extras/import/marc2bre.pl"; then chmod 755 Open-ILS/src/extras/import/marc2bre.pl; fi;
389 if test -e "./Open-ILS/src/extras/import/marc2sre.pl"; then chmod 755 Open-ILS/src/extras/import/marc2sre.pl; fi;
390 if test -e "./Open-ILS/src/extras/import/parallel_pg_loader.pl"; then chmod 755 Open-ILS/src/extras/import/parallel_pg_loader.pl; fi;
391 if test -e "./Open-ILS/src/support-scripts/marc_export"; then chmod 755 Open-ILS/src/support-scripts/marc_export; fi;
395 #-------------------------------------------------
397 #-------------------------------------------------
400 AC_MSG_RESULT([--------------------- Configuration options: -----------------------])
403 AC_MSG_RESULT([-------- Installation Options: --------])
404 if test "$openils_core" = "true" ; then
405 AC_MSG_RESULT([Evergreen Core: yes])
407 AC_MSG_RESULT([Evergreen Core: no])
409 if test "$build_apachemods" = "true" ; then
410 AC_MSG_RESULT([Evergreen Apache module: yes])
412 AC_MSG_RESULT([Evergreen Apache module: no])
414 if test "$openils_web" = "true" ; then
415 AC_MSG_RESULT([Evergreen Web: yes])
417 AC_MSG_RESULT([Evergreen Web: no])
419 if test "$openils_updates" = "true" ; then
420 AC_MSG_RESULT([Evergreen Updates: yes])
422 AC_MSG_RESULT([Evergreen Updates: no])
424 if test "$openils_reporter" = "true" ; then
425 AC_MSG_RESULT([Evergreen Reporter: yes])
427 AC_MSG_RESULT([Evergreen Reporter: no])
429 if test "$openils_client" = "true" ; then
430 AC_MSG_RESULT([Evergreen Staff Client: yes])
432 AC_MSG_RESULT([Evergreen Staff Client: no])
434 if test "$EG_PYTHON_INSTALL" = "true" ; then
435 AC_MSG_RESULT([Evergreen Python Components: yes])
437 AC_MSG_RESULT([Evergreen Python Components: no])
439 if test "$evergreen_java" = "true" ; then
440 AC_MSG_RESULT([Evergreen Java Components: yes])
442 AC_MSG_RESULT([Evergreen Java Components: no])
445 AC_MSG_RESULT([-------- Installation Directories --------])
446 AC_MSG_RESULT(Installation directory prefix: ${prefix})
447 AC_MSG_RESULT(Temporary directory: ${TMP})
448 AC_MSG_RESULT(APXS2 location: ${APXS2})
449 AC_MSG_RESULT(Apache headers location: ${APACHE2_HEADERS})
450 AC_MSG_RESULT(APR headers location: ${APR_HEADERS})
451 AC_MSG_RESULT(libxml2 headers location: ${LIBXML2_HEADERS})
452 AC_MSG_RESULT(libdbi location: ${DBI_LIBS})
453 AC_MSG_RESULT(OpenSRF headers location: ${OPENSRF_HEADERS})
454 AC_MSG_RESULT(OpenSRF libraries location: ${OPENSRF_LIBS})
456 AC_MSG_RESULT([----------------------------------------------------------------------])