source: trunk/configure.ac @ 584

Last change on this file since 584 was 584, checked in by Peter Johansson, 13 years ago

Updating find_apr.m4 macro. New macro allow us to set which major versions of apr that are acceptable. Possibly we should change the macro call so we only accept apr-1 and accordingly modify requirements in INSTALL

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 9.5 KB
Line 
1## Process this file with autoconf to produce a configure script.
2##
3## $Id: configure.ac 584 2008-04-11 19:45:34Z peter $
4##
5## If you grabbed the source from subversion you should, at top-level,
6## execute:
7##          ./bootstrap
8## To push subsequent changes of this file into the build scripts you
9## must issue:
10##          autoreconf
11
12# Copyright (C) 2005 Jari Häkkinen, Peter Johansson
13# Copyright (C) 2006 Jari Häkkinen
14# Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
15# Copyright (C) 2008 Peter Johansson
16#
17# This file is part of svndigest, http://trac.thep.lu.se/svndigest
18#
19# svndigest is free software; you can redistribute it and/or modify it
20# under the terms of the GNU General Public License as published by
21# the Free Software Foundation; either version 2 of the License, or
22# (at your option) any later version.
23#
24# svndigest is distributed in the hope that it will be useful, but
25# WITHOUT ANY WARRANTY; without even the implied warranty of
26# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27# General Public License for more details.
28#
29# You should have received a copy of the GNU General Public License
30# along with this program; if not, write to the Free Software
31# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
32# 02111-1307, USA.
33
34AC_PREREQ(2.57)
35
36
37AC_INIT([svndigest],[pre0.7],[jari@thep.lu.se])
38AC_CONFIG_SRCDIR([lib/File.h])
39AC_CONFIG_AUX_DIR([autotools])
40AC_PREFIX_DEFAULT([/usr/local])
41test $prefix = NONE && prefix=/usr/local
42
43AC_CONFIG_HEADER([config.h])
44AM_INIT_AUTOMAKE([std-options check-news])
45
46sinclude(./build_support/svndigest.m4)
47SPLIT_VERSION([VERSION], [$VERSION])
48
49# seems like these variables are not set with older autoconf(?)
50AC_SUBST([abs_srcdir], ["`cd $srcdir && pwd`"])
51AC_SUBST([abs_builddir], ["`pwd`"])
52
53# Set default programming language
54AC_LANG(C++)
55
56# Let user overide default CXXFLAGS
57if test "${CXXFLAGS+set}" != set; then
58  CXXFLAGS=""  # Setting CXXFLAGS here to prevent expansion in AC_PROG_CXX
59fi
60# Checks for programs.
61AC_PROG_CXXCPP
62AC_PROG_CXX
63AC_PROG_INSTALL
64AC_PROG_LIBTOOL
65AC_PROG_RANLIB
66AC_CHECK_PROG([GNUPLOT],[gnuplot],[ok])
67
68# -Wno-long-long is needed to suppress compiler diagnostics regarding
69# using extension beyond the C++ standard (usage of non C++ standard
70# 'long long' types).
71CXXFLAGS="$CXXFLAGS -Wall -pedantic -Wno-long-long"
72AC_TYPE_LONG_LONG_INT()
73
74AC_ARG_ENABLE(debug,
75  [AS_HELP_STRING([--enable-debug],[turn on debug options and code])],
76  [CXXFLAGS="$CXXFLAGS -g -O"],
77  [CPPFLAGS="$CPPFLAGS -DNDEBUG" CXXFLAGS="$CXXFLAGS -O3"])
78
79# optionally prepare for building static libraries.
80AC_ARG_ENABLE(staticbin,
81  [AS_HELP_STRING([--enable-staticbin], [create a static binary,
82  at least as static as the available underlying libraries
83  allows])])
84if test "$enable_staticbin" = "yes"; then
85  case $host in
86  *-apple-darwin*)
87    # At the time of creating this libsvn_subr uses
88    # Keychain on Mac OSX. In consequence the below
89    # frameworks are needed for succesful static builds.
90    LIBS="$LIBS -framework Security"
91    LIBS="$LIBS -framework CoreFoundation"
92    LIBS="$LIBS -framework CoreServices"
93    ;;
94  esac
95  STATICFLAG=-static
96  AC_SUBST(STATICFLAG)
97fi
98
99# Apache Portable Runtime (APR) API checks
100# The next three lines are not needed as long as APR_FIND_APR is used.
101# AC_ARG_WITH(apr,
102#  [  --with-apr=DIR          prefix for installed APR or path to APR build
103#                          tree [[PREFIX]]])
104# Include APR_FIND_APR macro distributed within the APR project. If
105# the usage of the APR macro is to be omitted then the construct for
106# setting the CXXFLAGS (header file location) and LDFLAGS (linking
107# informaion) for APR must be changed. The latter can be achieved with
108# AC_SEARCH_LIBS([apr_allocator_create],[apr-0],,apr_found="no") but
109# apr-0 must be prior knowledge.
110sinclude(./build_support/find_apr.m4)
111APR_FIND_APR(,,1,[1 0])
112if test "$apr_found" = "yes" ; then
113    LDFLAGS="`$apr_config --link-ld` $LDFLAGS"
114    CPPFLAGS="`$apr_config --includes` $CPPFLAGS"
115    AC_CHECK_HEADER([apr_allocator.h],,apr_found="no")
116fi
117
118# Subversion API checks
119svn_found="yes"
120AC_ARG_WITH(svn,
121  [AS_HELP_STRING([--with-svn=DIR],[prefix for svn developer files [[PREFIX]]])],
122  [ LDFLAGS="-L$withval/lib $LDFLAGS" CPPFLAGS="-I$withval/include $CPPFLAGS"])
123AC_CHECK_HEADER([subversion-1/svn_types.h],,svn_found="no")
124# The library checks below may match shared libs even when
125# --enable-staticbin is given to configure. This should probably not
126# pose any problems since in a properly installed system the shared
127# and static libraries should be the same.
128AC_SEARCH_LIBS([svn_cmdline_setup_auth_baton],[svn_subr-1],,svn_found="no")
129AC_SEARCH_LIBS([svn_ra_initialize],[svn_ra-1],,svn_found="no")
130AC_SEARCH_LIBS([svn_wc_adm_open3],[svn_wc-1],,svn_found="no")
131AC_SEARCH_LIBS([svn_diff_file_options_create],[svn_diff-1],,svn_found="no")
132AC_SEARCH_LIBS([svn_client_log3],[svn_client-1],,svn_found="no")
133
134
135# check if svnversion is installed
136have_svnversion="yes"
137AC_PATH_PROG(SVNVERSION, svnversion, have_svnversion="no")
138
139wc_found="no";
140if (test $have_svnversion != "no" &&
141    test `$SVNVERSION -n $srcdir` != "exported");
142then
143   wc_found="yes";
144fi
145echo $wc_found
146AC_CHECK_FILE("$srcdir/lib/subversion_info.cc",info_found="yes",info_found="no")
147
148# Checking that a release (non-dev) has no pre in VERSION
149# Failure should be captured by distcheck
150if (test "$wc_found" = "no" && test "$DEV_BUILD" = "yes") ; then
151   AC_MSG_ERROR([Incorrect version number: $VERSION
152                 Version number of an official release should have format
153                 MAJOR.MINOR or MAJOR.MINOR.PATCH])
154fi
155
156# devel version should have svn WC and SVNVERSION installed
157AM_CONDITIONAL(HAVE_SVN_WC, test "$wc_found" = "yes" )
158
159
160AC_CONFIG_FILES([Makefile
161                bin/Makefile
162                lib/Makefile
163                test/Makefile])
164
165# Print failure status information about selected items, and exit if
166# fatal errors were encountered. No output will be created if
167# configure is halted prematurely.
168
169# used to trigger exit before creation of output
170all_reqs_ok="true"
171
172if (test "$wc_found" != "yes") ; then
173if (test "$info_found" = "no") ; then
174   AC_MSG_WARN([Cannot find sources (lib/subversion_info.cc).])
175   if (test "$svnversion" = "no") ; then
176     AC_MSG_WARN([If you grabbed the source from the subversion repository,
177     the file will be generated automatically. However, svnversion cannot
178     be found and therefore the file cannot be generated. Please install
179     svnversion and make sure it is in your search path.])
180   else
181     AC_MSG_WARN([If you grabbed the source from the subversion repository,
182     the file will be generated automatically. However, the output from
183     svnversion was incorrect. Either your installation of svnversion is
184     is not healthy or there is something wrong with the repository.])
185   fi
186   all_reqs_ok="false"
187else
188   dnl test repo is not distributed
189   AC_CONFIG_FILES([test/test_repo.sh
190                    test/check_repo_status.sh],
191                   [chmod +x test/test_repo.sh;
192                    chmod +x test/check_repo_status.sh])
193   
194fi
195fi
196
197# Non-existing APR is fatal -- sub-sequent compilation will fail.
198if (test "$apr_found" = "no") ; then
199    AC_MSG_WARN([APR not found. The Apache Portable Runtime
200    (APR) library cannot be found. Please make sure APR is installed
201    and supply the appropriate --with-apr option to 'configure'.])
202    all_reqs_ok="false"
203fi
204
205# Non-existing subversion API is fatal -- sub-sequent compilation will fail.
206if (test "$svn_found" = "no") ; then
207    svn_msg="Subversion API not found. Subversion API libraries cannot
208    be found. Make sure the APIs are installed and supply the
209    appropriate --with-svn option to 'configure'."
210if (test "$apr_found" = "no") ; then
211    svn_msg="$svn_msg
212    Note, APR was not found. Failure to locate APR affects the search
213    of the subversion API. Please fix the APR problem before trying
214    to resolve the subversion related issues."
215fi
216    AC_MSG_WARN([$svn_msg])
217    all_reqs_ok="false"
218fi
219
220if test $ac_cv_type_long_long_int != yes ; then
221   AC_MSG_WARN([Compiler $CXX does not support `long long'.
222          svndigest must be compiled with a compiler that supports `long long'.])
223   all_reqs_ok="false"
224fi
225
226if (test "$all_reqs_ok" = "false") ; then
227    AC_MSG_ERROR([Some pre-requisites were not fulfilled, aborting
228    configure. Please consult the 'INSTALL' file for more information
229    about what is needed to compile svndigest and refer to above
230    warning messages. Needed files were NOT created.])
231fi
232
233# Create output.
234AC_OUTPUT
235
236# Some more messages.
237AC_MSG_NOTICE([])
238AC_MSG_NOTICE([   Ready to compile the executables of svndigest $VERSION])
239AC_MSG_NOTICE([   The following flags and libs will be used:])
240AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
241AC_MSG_NOTICE([    Compiler:           CXX=\"$CXX\"])
242AC_MSG_NOTICE([    Preprocessor flags: CPPFLAGS=\"$CPPFLAGS\"])
243AC_MSG_NOTICE([    C++ flags:          CXXFLAGS=\"$CXXFLAGS\"])
244AC_MSG_NOTICE([    Linker flags:       LDFLAGS=\"$LDFLAGS\"])
245AC_MSG_NOTICE([    LIBS:               LIBS=\"$LIBS\"])
246AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
247AC_MSG_NOTICE([])
248
249# Failure to locate gnuplot is not considered fatal
250if (test "$GNUPLOT" != "ok") ; then
251    AC_MSG_WARN([Gnuplot was not found. svndigest will compile
252    without gnuplot but will throw an exception at run-time. Please
253    install gnuplot (available for a wide range of operating systems
254    at http://www.gnuplot.info).])
255    AC_MSG_NOTICE([])
256fi
257
258if test "$enable_staticbin" = "yes"; then
259    AC_MSG_NOTICE([A statically linked 'svndigest' binary will be created.])
260else
261    AC_MSG_NOTICE([A dynamically linked 'svndigest' binary will be created.])
262fi
263    AC_MSG_NOTICE([])
264
265AC_MSG_NOTICE([Now type 'make ; make check'.])
266
Note: See TracBrowser for help on using the repository browser.