source: trunk/configure.ac @ 561

Last change on this file since 561 was 561, checked in by Peter Johansson, 14 years ago

lifting out parsing of version to a separate function. Also adding a test that there is no 'pre' in official release version. refs #315

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