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