source: trunk/configure.ac @ 858

Last change on this file since 858 was 858, checked in by Jari Häkkinen, 12 years ago

Addresses #97. Merging non-gnuplot plot generation code. Gnuplot traces left and lot of work before publication quality plots are generated.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 11.2 KB
Line 
1## Process this file with autoconf to produce a configure script.
2##
3## $Id: configure.ac 858 2009-11-19 19:45:31Z jari $
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, 2009 Jari Häkkinen, Peter Johansson
15#
16# This file is part of svndigest, http://dev.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 3 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 svndigest. If not, see <http://www.gnu.org/licenses/>.
30
31AC_PREREQ(2.61)
32
33m4_include([m4/version.m4])
34AC_INIT([svndigest],[SVNDIGEST_VERSION],[jari@thep.lu.se],,
35        [http://dev.thep.lu.se/svndigest])
36AC_CONFIG_SRCDIR([lib/File.h])
37AC_CONFIG_AUX_DIR([autotools])
38dnl arg below should be the same as in Makefile.am
39AC_CONFIG_MACRO_DIR([m4])
40AC_PREFIX_DEFAULT([/usr/local])
41
42AC_SUBST([SVNDIGEST_MAJOR_VERSION], [MAJOR_VERSION])
43AC_SUBST([SVNDIGEST_MINOR_VERSION], [MINOR_VERSION])
44AC_SUBST([SVNDIGEST_PATCH_VERSION], [PATCH_VERSION])
45
46AC_DEFINE([DEV_BUILD],[SVNDIGEST_DEV_BUILD],
47          [true if dev build (version ends with pre)])
48AC_DEFINE([SVNDIGEST_MAJOR_VERSION], [MAJOR_VERSION],
49                    [Define to the svndigest major version])
50AC_DEFINE([SVNDIGEST_MINOR_VERSION], [MINOR_VERSION],
51                    [Define to the svndigest minor version])
52AC_DEFINE([SVNDIGEST_PATCH_VERSION], [PATCH_VERSION],
53                    [Define to the svndigest patch version])
54
55AC_CONFIG_HEADER([config.h])
56AM_INIT_AUTOMAKE([1.10 std-options check-news])
57
58# Set default programming language
59AC_LANG(C++)
60
61# propagate selected configure variables to DISTCHECK_CONFIGURE_FLAGS
62for var in CPPFLAGS CXX CXXFLAGS CXXCPP LDFLAGS LIBS; do
63  eval isset=\${$var+set}
64  if test "$isset" = 'set' ; then
65    eval val=$`echo $var`
66    DISTCHECK_CONFIGURE_FLAGS="${DISTCHECK_CONFIGURE_FLAGS}'${var}=${val}' "
67  fi
68done
69AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
70
71# Let user overide default CXXFLAGS
72if test "${CXXFLAGS+set}" != set; then
73  CXXFLAGS=""  # Setting CXXFLAGS here to prevent expansion in AC_PROG_CXX
74fi
75
76# Checks for programs.
77AC_PROG_CXXCPP
78AC_PROG_CXX
79AC_PROG_INSTALL
80AC_PROG_RANLIB
81AC_PROG_SED
82AC_PATH_PROG([HELP2MAN], [help2man], [no])
83AM_CONDITIONAL([HAVE_HELP2MAN], [test x$HELP2MAN != xno])
84PKG_PROG_PKG_CONFIG([0.23]) # look for pkg-config
85
86# Save FLAGS
87SAVE_CPPFLAGS="$CPPFLAGS"
88SAVE_CXXFLAGS="$CXXFLAGS"
89SAVE_LDFLAGS="$LDFLAGS"
90SAVE_LIBS="$LIBS"
91
92# -Wno-long-long is needed to suppress compiler diagnostics regarding
93# using extension beyond the C++ standard (usage of non C++ standard
94# 'long long' types).
95YAT_CXX_ADD_FLAG([SD_CXXFLAGS],[-pedantic -Wno-long-long])
96AC_TYPE_LONG_LONG_INT
97AS_IF([test x$ac_cv_type_long_long_int = xno],
98      [AC_MSG_ERROR([compiler does not support long long int])]
99     )
100
101AC_ARG_ENABLE([debug],
102  [AS_HELP_STRING([--enable-debug],[turn on debug options and code])])
103
104AS_IF([test x$enable_debug = xyes],
105  [YAT_CXX_ADD_FLAG([SD_CXXFLAGS],[-g -O])],
106  [YAT_CPP_ADD_FLAG([SD_CPPFLAGS],[-DNDEBUG])
107   YAT_CXX_ADD_FLAG([SD_CXXFLAGS],[-O3])])
108
109# enable svn-support
110AC_ARG_ENABLE([svn-support],
111              [AS_HELP_STRING([--enable-svn-support],
112                              [enable svn support - used by maintainer])])
113
114AS_IF([test "x$enable_svn_support" = xyes],
115      [AS_IF([test -d $srcdir/.svn], [],
116             [AC_MSG_ERROR([svn support cannot be enabled: `$srcdir' is not an svn wc.])])])
117AM_CONDITIONAL([ENABLE_SVN_SUPPORT], [test "x$enable_svn_support" = "xyes"])
118
119# Apache Portable Runtime (APR) API checks
120APR_FIND_APR(,,1,[1 0])
121AS_IF([test "${with_apr+set}" = set],
122    [DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-apr=$with_apr"]
123)
124if test "$apr_found" = "yes" ; then
125    SD_LIBS="`$apr_config --libs` $SD_LIBS"
126    apr_link_ld=`$apr_config --link-ld`
127    for i in $apr_link_ld; do
128      AS_IF([test ${i:0:2} = "-l"],[SD_LIBS="$i $SD_LIBS"],
129            [YAT_LD_ADD_FLAG([SD_LDFLAGS], [$i])])
130    done
131    YAT_CPP_ADD_FLAG([SD_CPPFLAGS],[`$apr_config --includes --cppflags`])
132fi
133
134# Subversion API checks
135svn_found="yes"
136AC_ARG_WITH(svn,
137  [AS_HELP_STRING([--with-svn=DIR],[prefix for svn developer files [[PREFIX]]])],
138  [ DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-svn=$withval"
139    YAT_LD_ADD_FLAG([SD_LDFLAGS], [-L$withval/lib])
140    YAT_CPP_ADD_FLAG([SD_CPPFLAGS], [-I$withval/include])
141  ])
142
143
144
145# Use SD_*FLAGS in tests
146CPPFLAGS="$SD_CPPFLAGS $CPPFLAGS"
147CXXFLAGS="$SD_CXXFLAGS $CXXFLAGS"
148LDFLAGS="$SD_LDFLAGS $LDFLAGS"
149LIBS="$SD_LIBS $LIBS"
150
151AC_CHECK_HEADER([apr_allocator.h],,apr_found="no")
152AC_CHECK_HEADER([subversion-1/svn_types.h],,svn_found="no")
153AC_SEARCH_LIBS([svn_cmdline_setup_auth_baton],[svn_subr-1],
154               [SD_LIBS="-lsvn_subr-1 $SD_LIBS"],svn_found="no")
155AC_SEARCH_LIBS([svn_ra_initialize],[svn_ra-1],
156               [SD_LIBS="-lsvn_ra-1 $SD_LIBS"],svn_found="no")
157AC_SEARCH_LIBS([svn_wc_adm_open3],[svn_wc-1],
158               [SD_LIBS="-lsvn_wc-1 $SD_LIBS"],svn_found="no")
159AC_SEARCH_LIBS([svn_diff_file_options_create],[svn_diff-1],
160               [SD_LIBS="-lsvn_diff-1 $SD_LIBS"],svn_found="no")
161AC_SEARCH_LIBS([svn_client_log3],[svn_client-1],
162               [SD_LIBS="-lsvn_client-1 $SD_LIBS"],svn_found="no")
163
164# Export flags
165AC_SUBST([SVNDIGEST_CPPFLAGS], $SD_CPPFLAGS)
166AC_SUBST([SVNDIGEST_CXXFLAGS], $SD_CXXFLAGS)
167AC_SUBST([SVNDIGEST_LDFLAGS], $SD_LDFLAGS)
168AC_SUBST([SVNDIGEST_LIBS], $SD_LIBS)
169
170# Reset FLAGS
171CPPFLAGS="$SAVE_CPPFLAGS"
172CXXFLAGS="$SAVE_CXXFLAGS"
173LDFLAGS="$SAVE_LDFLAGS"
174LIBS="$SAVE_LIBS"
175
176# check if svnversion is installed
177AC_PATH_PROG([SVNVERSION], [svnversion], [no])
178
179# PLplot API checks
180plplot_found="yes"
181plplot_version=5.9
182AC_CHECK_HEADER([plplot/plstream.h],
183                [if $PKG_CONFIG --atleast-version=$plplot_version plplotd-c++; then
184                  PLPLOT_LDFLAGS=`$PKG_CONFIG --libs plplotd-c++`
185                  AC_SUBST([PLPLOT_LDFLAGS])
186                else
187                  plplot_found="nolib"
188                fi],
189                plplot_found="noheader")
190
191# checking if we build in a subversion WC
192AS_IF([test -d $srcdir/.svn], [wc_found="yes"], [wc_found="no"])
193AM_CONDITIONAL([HAVE_SVN_WC], [test "$wc_found" = "yes"])
194AC_SUBST([wc_found])
195
196# checking if we have test repo
197test_repo_filename=$srcdir/test/repo;
198AS_IF([test -r $test_repo_filename],
199              [AC_DEFINE([HAVE_TEST_REPO],[1],[define if test repo is available])
200               test_repo_found="yes"],
201              [test_repo_found="no"])
202AC_SUBST([test_repo_found])
203AS_IF([test "x$test_repo_found" = xyes],
204      [abs_test_repo=`cd $test_repo_filename && pwd`;
205       AC_SUBST(abs_test_repo)]
206     )
207AC_CONFIG_FILES([test/test_repo.sh], [chmod +x test/test_repo.sh])
208AC_CONFIG_FILES([test/svn_update.sh], [chmod +x test/svn_update.sh])
209AC_CONFIG_FILES([test/check_repo_status.sh],
210                [chmod +x test/check_repo_status.sh])   
211
212
213AC_CONFIG_FILES([Makefile
214                bin/Makefile
215                lib/Makefile
216                lib/yat/Makefile
217                man/Makefile
218                test/environment.h
219                test/Makefile])
220
221AC_CONFIG_HEADER([lib/yat/config_public.h])
222
223# Print failure status information about selected items, and exit if
224# fatal errors were encountered. No output will be created if
225# configure is halted prematurely.
226
227# used to trigger exit before creation of output
228all_reqs_ok="true"
229
230if (test "$wc_found" = "yes"); then
231   if test x$HELP2MAN = xno; then
232     AC_MSG_WARN(m4_text_wrap(m4_normalize([
233       `help2man' is missing on your system.  You will not be
234       able to create the man page. A sound man page should be
235       included in a distribution, and since you will not able
236       to create a complete distribution `make dist' will fail.
237       ]),[                   ],
238          [                             ], 79))
239   fi
240   # svnversion is required when building from svn wc
241   if (test "$svnversion" = "no"); then
242      all_reqs_ok="false";
243      AC_MSG_WARN([dnl
244Cannot find svnversion, which is required when building from a
245subversion working copy. Please install svnversion and make sure it is
246in your search path.]);
247   fi
248   if (test "$test_repo_found" = "no"); then
249      all_reqs_ok="false";
250      AC_MSG_WARN([dnl
251Cannot find test repository (test_repo_filename), which should be
252available when building from a subversion working copy. Try svn
253update in top directory.]);
254   fi
255fi
256
257# Non-existing APR is fatal -- sub-sequent compilation will fail.
258if (test "$apr_found" = "no") ; then
259  AC_MSG_WARN([APR not found. The Apache Portable Runtime
260  (APR) library cannot be found. Please make sure APR is installed
261  and supply the appropriate --with-apr option to 'configure'.])
262  all_reqs_ok="false"
263fi
264
265# Non-existing subversion API is fatal -- sub-sequent compilation will fail.
266if (test "$svn_found" = "no") ; then
267  svn_msg="Subversion API not found. Subversion API libraries cannot
268  be found. Make sure the APIs are installed and supply the
269  appropriate --with-svn option to 'configure'."
270  if (test "$apr_found" = "no") ; then
271    svn_msg="$svn_msg
272    Note, APR was not found. Failure to locate APR affects the search
273    of the subversion API. Please fix the APR problem before trying
274    to resolve the subversion related issues."
275  fi
276  AC_MSG_WARN([$svn_msg])
277  all_reqs_ok="false"
278fi
279
280# Non-existing PLplot API is fatal -- sub-sequent compilation will fail.
281if (test "$plplot_found" = "noheader") ; then
282  AC_MSG_WARN([PLplot developer files cannot be found. Make sure PLplot
283  is installed.])
284  all_reqs_ok="false"
285elif (test "$plplot_found" = "nolib") ; then
286  AC_MSG_WARN([PLplot developer files found but not required API version.
287  Version at least $plplot_version is required. Please upgrade PLplot.])
288  all_reqs_ok="false"
289fi
290
291if test $ac_cv_type_long_long_int != yes ; then
292  AC_MSG_WARN([Compiler $CXX does not support `long long'.
293  svndigest must be compiled with a compiler that supports `long long'.])
294  all_reqs_ok="false"
295fi
296
297if (test "$all_reqs_ok" = "false") ; then
298  AC_MSG_ERROR([Some pre-requisites were not fulfilled, aborting
299  configure. Please consult the 'README' file for more information
300  about what is needed to compile svndigest and refer to above
301  warning messages. Needed files were NOT created.])
302fi
303
304# Create output.
305AC_OUTPUT
306
307# Some more messages.
308AC_MSG_NOTICE([])
309AC_MSG_NOTICE([   Ready to compile the executables of svndigest $VERSION])
310AC_MSG_NOTICE([   The following flags and libs will be used:])
311AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
312AC_MSG_NOTICE([    Compiler:           $CXX])
313AC_MSG_NOTICE([    Preprocessor flags: $SD_CPPFLAGS $CPPFLAGS])
314AC_MSG_NOTICE([    C++ flags:          $SD_CXXFLAGS $CXXFLAGS])
315AC_MSG_NOTICE([    Linker flags:       $SD_LDFLAGS $LDFLAGS])
316AC_MSG_NOTICE([    LIBS:               $SD_LIBS $LIBS])
317AC_MSG_NOTICE([    PLPLOT_LDFLAGS:     $PLPLOT_LDFLAGS])
318AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
319AC_MSG_NOTICE([])
320
321AC_MSG_NOTICE([Now type 'make && make check'.])
Note: See TracBrowser for help on using the repository browser.