]> git.evergreen-ils.org Git - working/Evergreen.git/blob - configure.ac
LP#1362210: Install PostgreSQL packages where we can
[working/Evergreen.git] / configure.ac
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>
5 #
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.
10 #
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
16
17 #---------------------------
18 # Init
19 #---------------------------
20
21 export PATH=${PATH}:/usr/sbin
22 AC_PREREQ(2.61)
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_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])
28 AC_SUBST(prefix)
29 AC_SUBST([abs_top_builddir])
30 #-----------------------------------
31 # Checks for programs.
32 #-----------------------------------
33
34
35 AC_PROG_LIBTOOL
36 AC_PROG_CC
37 AC_PROG_INSTALL
38 AC_PROG_LN_S
39 AC_PROG_MAKE_SET
40 AC_PROG_MKDIR_P
41 AM_PROG_CC_C_O
42
43 #-----------------------------------
44 # Install options 
45 #-----------------------------------
46
47 # install openils-all?
48 #AC_ARG_ENABLE([openils-all],
49 #[  --enable-openils-all    enables the installation of the default openils system (base system,web,staffclient) ],
50 #[case "${enableval}" in
51 #    yes) openils_all=true;
52 #     openils_core=true;
53 #     openils_web=true;
54 #     openils_updates=true;
55 #     openils_reporter=true;
56 #     openils_client_xul=true;
57 #     openils_server_xul=true ;;
58 #    no)  openils_all=false ;;
59 #  *) AC_MSG_ERROR([please choose another value for --enable-openils-all (supported values are yes or no])
60 #esac],
61 #[openils_all=false])
62
63 # install evergreen-core?
64 AC_ARG_ENABLE([core],
65 [  --disable-core    disables installation of the Evergreen core components ],
66 [case "${enableval}" in
67     yes) openils_core=true ;;
68     no)  openils_core=false ;;
69   *) AC_MSG_ERROR([please choose another value for --disable-core (supported values are yes or no])
70 esac],
71 [openils_core=true])
72
73 AM_CONDITIONAL([BUILDILSCORE], [test x$openils_core = xtrue])
74
75 # install evergreen-web?
76
77 AC_ARG_ENABLE([web],
78 [  --disable-web    disables installation of the Evergreen web modules ],
79 [case "${enableval}" in
80     yes) openils_web=true ;;
81     no)  openils_web=false ;;
82   *) AC_MSG_ERROR([please choose another value for --disable-web (supported values are yes or no])
83 esac],
84 [openils_web=true])
85
86 AM_CONDITIONAL([BUILDILSWEB], [test x$openils_web = xtrue])
87
88 # install evergreen-updates?
89
90 AC_ARG_ENABLE([updates],
91 [  --disable-updates    disables installation of the Evergreen updates folder ],
92 [case "${enableval}" in
93     yes) openils_updates=true ;;
94     no)  openils_updates=false ;;
95   *) AC_MSG_ERROR([please choose another value for --disable-updates (supported values are yes or no])
96 esac],
97 [openils_updates=true])
98
99 AM_CONDITIONAL([BUILDILSUPDATES], [test x$openils_updates = xtrue])
100
101 # Default updates host?
102 AC_ARG_WITH([updateshost],
103 [  --with-updateshost=hostname    default hostname for automatic updates (default is blank)],
104 [AUTOUPDATE_HOST=${withval}],
105 [AUTOUPDATE_HOST=])
106 AC_SUBST([AUTOUPDATE_HOST])
107
108 # Default updates host?
109 AC_ARG_WITH([initialhost],
110 [  --with-initialhost=hostname    default hostname for staff client (default is blank)],
111 [INITIAL_HOST=${withval}],
112 [INITIAL_HOST=])
113 AC_SUBST([INITIAL_HOST])
114
115
116 # install Evergreen Apache modules?
117 AC_ARG_ENABLE([apache-modules],
118 [  --disable-apache-modules    disables installation of the Evergreen Apache modules ],
119 [case "${enableval}" in
120     yes) build_apachemods=true ;;
121     no)  build_apachemods=false ;;
122   *) AC_MSG_ERROR([please choose another value for --disable-apache-modules (supported values are yes or no])
123 esac],
124 [build_apachemods=true])
125
126 AM_CONDITIONAL([BUILDAPACHEMODS], [test x$build_apachemods = xtrue])
127
128 # build evergreen-reporter ?
129
130 AC_ARG_ENABLE([reporter],
131 [  --disable-reporter    disables installation of the Evergreen reporter module ],
132 [case "${enableval}" in
133     yes) openils_reporter=true ;;
134     no)  openils_reporter=false ;;
135   *) AC_MSG_ERROR([please choose another value for --disable-reporter (supported values are yes or no])
136 esac],
137 [openils_reporter=true])
138
139 AM_CONDITIONAL([BUILDILSREPORTER], [test x$openils_reporter = xtrue])
140
141 # build evergreen-client ?
142
143 AC_ARG_ENABLE([client],
144 [  --disable-client    disables installation of the Evergreen staff client ],
145 [case "${enableval}" in
146     yes) openils_client=true ;;
147     no)  openils_client=false ;;
148   *) AC_MSG_ERROR([please choose another value for --disable-client (supported values are yes or no])
149 esac],
150 [openils_client=true])
151
152 AM_CONDITIONAL([BUILDILSCLIENT], [test x$openils_client = xtrue])
153
154
155 # build evergreen java ?
156
157 AC_ARG_ENABLE([java],
158 [  --enable-java    enables installation of the Evergreen Java components ],
159 [case "${enableval}" in
160     yes) evergreen_java=true ;;
161     no)  evergreen_java=false ;;
162   *) AC_MSG_ERROR([please choose another value for --enable-java (supported values are yes or no])
163 esac],
164 [evergreen_java=false])
165
166 AM_CONDITIONAL([BUILDEGJAVA], [test x$evergreen_java = xtrue])
167
168
169 # build the evergreen python modules?
170
171 AC_ARG_ENABLE([python],
172 [  --enable-python    enables installation of the Evergreen Python modules ],
173 [case "${enableval}" in
174     yes) EG_PYTHON_INSTALL=true ;;
175     no)  EG_PYTHON_INSTALL=false ;;
176   *) AC_MSG_ERROR([please choose another value for --enable-python (supported values are yes or no)])
177 esac],
178 [EG_PYTHON_INSTALL=false])
179
180 AM_CONDITIONAL([BUILDEGPYTHON], [test x$EG_PYTHON_INSTALL = xtrue])
181
182 #-----------------------------------
183 # Check for dependencies 
184 #-----------------------------------
185 AC_ARG_WITH([tmp],
186 [  --with-tmp=path             location of the Evergreen temporary directory (default is /tmp) ],
187 [TMP=${withval}],
188 [TMP=/tmp])
189 AC_SUBST([TMP])
190
191 AC_ARG_WITH([apxs],
192 [  --with-apxs=path            location of the apxs Apache configuration tool (default is /usr/bin/apxs2)],
193 [APXS2=${withval}],
194 [APXS2=/usr/bin/apxs2])
195
196 # If the passed in value doesn't work, try some reasonable defaults
197 # Fedora puts the file in /usr/sbin/apxs, for example
198 if ! test -x "$APXS2"; then
199     for i in /usr/bin /usr/sbin /usr/local/apache/bin /usr/local/apache2/bin ; do
200         for j in apxs apxs2 ; do
201             if test -x "$i/$j"; then
202                 APXS2="$i/$j"
203                 break
204             fi
205         done
206     done
207 fi
208 AC_SUBST([APXS2])
209
210 AC_ARG_WITH([libxml2],
211 [  --with-libxml2=path         location of the libxml2 headers (default is /usr/include/libxml2)],
212 [LIBXML2_HEADERS=${withval}],
213 [LIBXML2_HEADERS=/usr/include/libxml2/])
214 AC_SUBST([LIBXML2_HEADERS])
215
216 AC_ARG_WITH([dbi],
217 [  --with-dbi=path             location of the libdbi driver libraries (default is /usr/lib/x86_64-linux-gnu/dbd/)],
218 [DBI_LIBS=${withval}],
219 [DBI_LIBS=/usr/lib/x86_64-linux-gnu/dbd/])
220
221 # If the passed in value doesn't work, fall back to reasonable defaults
222 # Distributions are starting to package a good version of libdbi / libdbd
223 if ! test -d "$DBI_LIBS"; then
224     for i in /usr/lib/dbd/ /usr/lib64/dbd /usr/local/lib/dbd/ ; do
225         if test -d "$i"; then
226             DBI_LIBS="$i"
227             break
228         fi
229     done
230 fi
231 AC_SUBST([DBI_LIBS])
232
233 if test "x$openils_core" = "xtrue"; then
234
235     AC_PATH_PROG([OSRF_CONFIG], [osrf_config])
236     if test "x$OSRF_CONFIG" == "x"; then
237         AC_MSG_ERROR([Could not find osrf_config.
238         Ensure OpenSRF is installed and that the PATH environment variable includes
239         the OpenSRF executables. For example: PATH=\$PATH:/openils/bin ./configure])
240     fi
241
242     AC_ARG_WITH([opensrf-headers],
243     [  --with-opensrf-headers=path location of the OpenSRF header files],
244     [OPENSRF_HEADERS=${withval}],
245     [OPENSRF_HEADERS=`$OSRF_CONFIG --includedir`])
246     AC_SUBST([OPENSRF_HEADERS])
247
248     # We need this for JavaScript
249     AC_ARG_WITH([opensrf-libs],
250     [  --with-opensrf-libs=path    location of the OpenSRF libraries],
251     [OPENSRF_LIBS=${withval}],
252     [OPENSRF_LIBS=`$OSRF_CONFIG --libdir`])
253     AC_SUBST([OPENSRF_LIBS])
254
255     AC_CHECK_PROG([MEMCACHED],memcached,yes,no)
256     if test $MEMCACHED = "no"; then
257         AC_MSG_ERROR([*** memcached not found, aborting])
258     fi
259
260     AC_CHECK_PROG([ASPELL],aspell,yes,no)
261     if test $ASPELL = "no"; then
262         AC_MSG_ERROR([*** aspell not found, aborting])
263     fi
264
265     AC_CHECK_PROG([CPAN],cpan,yes,no)
266     if test $CPAN = "no"; then
267         AC_MSG_ERROR([*** cpan not found, aborting])
268     fi
269
270     AC_CHECK_PROG([YAZ],yaz-config,yes,no)
271     if test $YAZ = "no"; then
272         AC_MSG_ERROR([*** yaz not found, aborting])
273     fi
274
275     AC_CHECK_PROG([PERL],perl,yes,no)
276     if test $PERL = "no"; then 
277         AC_MSG_ERROR([*** perl not found, aborting])
278     fi
279
280     #------------------------------------
281     # Checks for libraries. 
282     #------------------------------------
283
284     # Check for the rest of the libraries
285
286     #check for dynamic linking functions
287     AC_CHECK_LIB(dl,dlopen)
288
289     #check for the libdbi library
290     AC_CHECK_LIB(dbi,dbi_initialize)
291
292     #to check for the availability and function of a particular
293     #driver we need a runtime check (since the driver is loaded
294     #dynamically). This example checks for the mysql driver
295     AC_MSG_CHECKING([for libdbi pgsql driver (dynamic load)])
296     AC_RUN_IFELSE(
297       [AC_LANG_PROGRAM(,
298         [[dbi_initialize(0); return(dbi_conn_new("pgsql") ? 0 : 1);]])],
299       [AC_MSG_RESULT("yes")],
300       [AC_MSG_FAILURE("pgsql driver not installed?")])
301
302     AC_CHECK_LIB([expat], [main], [], AC_MSG_ERROR(*** OpenILS requires libexpat))
303     AC_CHECK_LIB([ncurses], [main], [], AC_MSG_ERROR(*** OpenILS requires libncurses))
304
305     # IF the OpenSRF libs are installed in a non-standard location, such as
306     # /openils/lib, the compilation test will fail. Support that case.
307     LDFLAGS="-L$OPENSRF_LIBS"
308
309     AC_CHECK_LIB([opensrf], [osrfMessageFree], [], AC_MSG_ERROR(*** OpenILS requires libopensrf))
310     AC_CHECK_LIB([readline], [main], [], AC_MSG_ERROR(*** OpenILS requires libreadline))
311     AC_CHECK_LIB([xml2], [main], [], AC_MSG_ERROR(*** OpenILS requires libxml2))
312     AC_CHECK_LIB([xslt], [main], [], AC_MSG_ERROR(*** OpenILS requires libxslt))
313     AC_CHECK_LIB([pq], [main], [], AC_MSG_ERROR(*** OpenILS requires libpq))
314
315     #------------------------------------
316     # Checks for header files.
317     #------------------------------------
318
319     AC_HEADER_STDC
320     AC_CHECK_HEADERS([fcntl.h langinfo.h locale.h stdlib.h string.h unistd.h])
321
322     #-------------------------------------------------------------------
323     # Checks for typedefs, structures, and compiler characteristics.
324     #-------------------------------------------------------------------
325
326     AC_C_CONST
327     AC_TYPE_SIZE_T
328     AC_STRUCT_TM
329     AC_HEADER_STDBOOL
330
331     #-------------------------------------------------------------------
332     # Checks for library functions.
333     #-------------------------------------------------------------------
334
335     AC_FUNC_STRFTIME
336     AC_FUNC_STRTOD
337     AC_CHECK_FUNCS([localtime_r memset nl_langinfo setlocale strcasecmp strchr strdup strerror strncasecmp])
338
339     #----------------------------
340     # Create Makefiles/Output
341     #----------------------------
342
343     AC_CONFIG_FILES([Open-ILS/examples/Makefile
344              Open-ILS/src/c-apps/Makefile
345              Open-ILS/src/c-apps/tests/Makefile
346              Open-ILS/src/extras/Makefile
347              Open-ILS/src/java/Makefile
348              Open-ILS/src/python/Makefile])
349 fi
350
351 if test "x$build_apachemods" = "xtrue"; then
352
353     #-----------------------------------
354     # Set install path variables 
355     #-----------------------------------
356
357     #APACHE PREFORK DEV TEST
358     AC_MSG_CHECKING([APXS2])
359     if test -x "${APXS2}"; then
360     AC_MSG_RESULT([yes])
361     else
362     AC_MSG_ERROR([*** apxs not found in ${APXS2}, aborting])
363     fi  
364
365     AC_CONFIG_FILES([Open-ILS/src/apachemods/Makefile])
366 fi
367
368 AC_CONFIG_FILES([Makefile
369          Open-ILS/src/Makefile
370          Open-ILS/src/perlmods/Makefile
371          Open-ILS/web/Makefile
372          Open-ILS/updates/Makefile
373          Open-ILS/xul/staff_client/Makefile
374          Open-ILS/src/extras/eg_config
375          ],
376         [
377             if test -e "./Open-ILS/src/extras/eg_config"; then chmod 755 Open-ILS/src/extras/eg_config; fi;
378         ])
379 AC_OUTPUT
380
381 #-------------------------------------------------
382 # OUTPUT STUFF 
383 #-------------------------------------------------
384
385 AC_MSG_RESULT([])
386 AC_MSG_RESULT([--------------------- Configuration options:  -----------------------])
387
388 AC_MSG_RESULT([])
389 AC_MSG_RESULT([-------- Installation Options: --------])
390 if test "$openils_core" = "true" ; then
391     AC_MSG_RESULT([Evergreen Core:          yes])
392 else
393     AC_MSG_RESULT([Evergreen Core:          no])
394 fi
395 if test "$build_apachemods" = "true" ; then
396 AC_MSG_RESULT([Evergreen Apache module:     yes])
397     else
398 AC_MSG_RESULT([Evergreen Apache module:     no])
399     fi
400     if test "$openils_web" = "true" ; then
401 AC_MSG_RESULT([Evergreen Web:               yes])
402     else
403 AC_MSG_RESULT([Evergreen Web:               no])
404     fi
405     if test "$openils_updates" = "true" ; then
406 AC_MSG_RESULT([Evergreen Updates:           yes])
407     else
408 AC_MSG_RESULT([Evergreen Updates:           no])
409     fi
410     if test "$openils_reporter" = "true" ; then
411 AC_MSG_RESULT([Evergreen Reporter:          yes])
412     else
413 AC_MSG_RESULT([Evergreen Reporter:          no])
414     fi
415     if test "$openils_client" = "true" ; then
416 AC_MSG_RESULT([Evergreen Staff Client:      yes])
417     else
418 AC_MSG_RESULT([Evergreen Staff Client:      no])
419     fi
420     if test "$EG_PYTHON_INSTALL" = "true" ; then
421 AC_MSG_RESULT([Evergreen Python Components: yes])
422     else
423 AC_MSG_RESULT([Evergreen Python Components: no])
424     fi
425     if test "$evergreen_java" = "true" ; then
426 AC_MSG_RESULT([Evergreen Java Components:   yes])
427     else
428 AC_MSG_RESULT([Evergreen Java Components:   no])
429 fi
430 AC_MSG_RESULT([]) 
431 AC_MSG_RESULT([-------- Installation Directories --------])
432 AC_MSG_RESULT(Installation directory prefix:            ${prefix})
433 AC_MSG_RESULT(Temporary directory:                      ${TMP})
434 AC_MSG_RESULT(APXS2 location:                           ${APXS2})
435 AC_MSG_RESULT(libxml2 headers location:                 ${LIBXML2_HEADERS})
436 AC_MSG_RESULT(libdbi location:                          ${DBI_LIBS})
437 AC_MSG_RESULT(OpenSRF headers location:                 ${OPENSRF_HEADERS})
438 AC_MSG_RESULT(OpenSRF libraries location:               ${OPENSRF_LIBS})
439
440 AC_MSG_RESULT([----------------------------------------------------------------------])
441
442 # vim:et:ts=4:sw=4: