source: trunk/configure.ac @ 173

Last change on this file since 173 was 172, checked in by Jari Häkkinen, 17 years ago

Polished configure.ac

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.3 KB
Line 
1## Process this file with autoconf to produce a configure script.
2##
3## $Id: configure.ac 172 2006-08-26 22:15:31Z jari $
4##
5## If you grabbed the source from subversion you should, at top-level,
6## execute:
7##          ./bootstrap
8
9# Copyright (C) 2005, 2006 Jari Häkkinen, Peter Johansson
10#
11# This file is part of svndigest, http://lev.thep.lu.se/trac/svndigest
12#
13# svndigest is free software; you can redistribute it and/or modify it
14# under the terms of the GNU General Public License as published by
15# the Free Software Foundation; either version 2 of the License, or
16# (at your option) any later version.
17#
18# svndigest is distributed in the hope that it will be useful, but
19# WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21# General Public License for more details.
22#
23# You should have received a copy of the GNU General Public License
24# along with this program; if not, write to the Free Software
25# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
26# 02111-1307, USA.
27
28AC_PREREQ(2.57)
29AC_INIT([[svndigest]],[pre0.5],[jari@thep.lu.se])
30AC_CONFIG_SRCDIR([lib/File.h])
31AC_CONFIG_AUX_DIR([autotools])
32AC_PREFIX_DEFAULT([/usr/local])
33test $prefix = NONE && prefix=/usr/local
34
35AM_CONFIG_HEADER([config.h])
36AM_INIT_AUTOMAKE($PACKAGE_NAME,$PACKAGE_VERSION,$PACKAGE_BUGREPORT)
37
38# Checks for programs.
39AC_PROG_CPP
40AC_PROG_CXX
41AC_PROG_INSTALL
42AC_PROG_LIBTOOL
43AC_PROG_RANLIB
44AC_CHECK_PROG([GNUPLOT],[gnuplot],[ok])
45
46# -Wno-long-long is needed to suppress compiler diagnostics regarding
47# using extension beyond the C++ standard (usage of non C++ standard
48# 'long long' types).
49CXXFLAGS="-Wall -pedantic -Wno-long-long"
50
51AC_ARG_ENABLE(debug,
52  [AS_HELP_STRING([--enable-debug],[turn on debug options and code])])
53if test "${enable_debug}" = "yes" ; then
54    CXXFLAGS="$CXXFLAGS -g -O"
55else
56    CPPFLAGS="$CPPFLAGS -DNDEBUG"
57    CXXFLAGS="$CXXFLAGS -O3"
58fi
59
60# optionally prepare for building static libraries.
61AC_ARG_ENABLE(staticbin,
62  [AS_HELP_STRING([--enable-staticbin], [create a static binary,
63  at least as static as the available underlying libraries
64  allows])])
65if test "$enable_staticbin" = "yes"; then
66  case $host in
67  *-apple-darwin*)
68    # At the time of creating this libsvn_subr uses
69    # Keychain on Mac OSX. In consequence the below
70    # frameworks are needed for succesful static builds.
71    LIBS="$LIBS -framework Security"
72    LIBS="$LIBS -framework CoreFoundation"
73    LIBS="$LIBS -framework CoreServices"
74    ;;
75  esac
76  STATICFLAG=-static
77  AC_SUBST(STATICFLAG)
78fi
79
80# Apache Portable Runtime (APR) API checks
81# The next three lines are not needed as long as APR_FIND_APR is used.
82# AC_ARG_WITH(apr,
83#  [  --with-apr=DIR          prefix for installed APR or path to APR build
84#                          tree [[PREFIX]]])
85# Include APR_FIND_APR macro distributed within the APR project. If
86# the usage of the APR macro is to be omitted then the construct for
87# setting the CXXFLAGS (header file location) and LDFLAGS (linking
88# informaion) for APR must be changed. The latter can be achieved with
89# AC_SEARCH_LIBS([apr_allocator_create],[apr-0],,apr_found="no") but
90# apr-0 must be prior knowledge.
91sinclude(./build_support/find_apr.m4)
92APR_FIND_APR(,,1)
93if test "$apr_found" = "yes" ; then
94    LDFLAGS="$LDFLAGS `$apr_config --link-ld`"
95    CPPFLAGS="$CPPFLAGS `$apr_config --includes`"
96    AC_CHECK_HEADER([apr_allocator.h],,apr_found="no")
97fi
98
99# Subversion API checks
100svn_found="yes"
101AC_ARG_WITH(svn,
102  [AS_HELP_STRING([--with-svn=DIR],[prefix for svn developer files [[PREFIX]]])],
103  [ LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include"])
104AC_CHECK_HEADER([subversion-1/svn_types.h],,svn_found="no")
105# The library checks below may match shared libs even when
106# --enable-staticbin is given to configure. This should probably not
107# pose any problems since in a properly installed system the shared
108# and static libraries should be the same.
109AC_SEARCH_LIBS([svn_cmdline_setup_auth_baton],[svn_subr-1],,svn_found="no")
110AC_SEARCH_LIBS([svn_ra_initialize],[svn_ra-1],,svn_found="no")
111AC_SEARCH_LIBS([svn_wc_adm_open3],[svn_wc-1],,svn_found="no")
112AC_SEARCH_LIBS([svn_diff_file_options_create],[svn_diff-1],,svn_found="no")
113AC_SEARCH_LIBS([svn_client_log3],[svn_client-1],,svn_found="no")
114
115AC_CONFIG_FILES([Makefile
116                bin/Makefile
117                lib/Makefile
118                test/Makefile])
119
120# Print failure status information about selected items, and exit if
121# fatal errors were encountered. No output will be created if
122# configure is halted prematurely.
123
124# used to trigger exit before creation of output
125all_reqs_ok="true"
126
127# Non-existing APR is fatal -- sub-sequent compilation will fail.
128if (test "$apr_found" = "no") ; then
129    AC_MSG_WARN([APR not found. The Apache Portable Runtime
130    (APR) library cannot be found. Please make sure APR is installed
131    and supply the appropriate --with-apr option to 'configure'.])
132    all_reqs_ok="false"
133fi
134
135# Non-existing subversion API is fatal -- sub-sequent compilation will fail.
136if (test "$svn_found" = "no") ; then
137    AC_MSG_WARN([Subversion API not found. Subversion API libraries
138    cannot be found. Make sure the APIs are installed and supply the
139    appropriate --with-svn option to 'configure'.])
140    all_reqs_ok="false"
141fi
142
143if (test "$all_reqs_ok" = "false") ; then
144    AC_MSG_ERROR([Some pre-requisites were not fulfilled, aborting
145    configure. Please consult the 'README' file for more information
146    about what is needed to compile svndigest and refer to above
147    warning messages. Needed output files were NOT created.])
148fi
149
150# Create output.
151AC_OUTPUT
152
153# Some more messages.
154AC_MSG_NOTICE([])
155AC_MSG_NOTICE([   Ready to compile the executables of svndiget])
156AC_MSG_NOTICE([   The following compilers and flags will be used:])
157AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
158AC_MSG_NOTICE([    Preprocessor flags: CPPFLAGS=\"$CPPFLAGS\"])
159AC_MSG_NOTICE([    C++ flags:          CXXFLAGS=\"$CXXFLAGS\"])
160AC_MSG_NOTICE([    Linker flags:       LDFLAGS=\"$LDFLAGS\"])
161AC_MSG_NOTICE([    LIBS:               LIBS=\"$LIBS\"])
162AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
163AC_MSG_NOTICE([])
164
165# Failure to locate gnuplot is not considered fatal
166if (test "$GNUPLOT" != "ok") ; then
167    AC_MSG_WARN([Gnuplot was not found. svndigest will compile
168    without gnuplot but will throw an exception at runtime. Please
169    install gnuplot (available for a wide range of operating systems
170    at http://www.gnuplot.info).])
171    AC_MSG_NOTICE([])
172fi
173
174AC_MSG_NOTICE([Now type 'make ; make check'.])
Note: See TracBrowser for help on using the repository browser.