source: branches/replacing_gnuplot/configure.ac @ 866

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

Merged trunk changes -r782:844 to replacing_gnuplot branch.

  • 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 845 2009-11-16 22:27:19Z 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# Use SD_*FLAGS in tests
144CPPFLAGS="$SD_CPPFLAGS $CPPFLAGS"
145CXXFLAGS="$SD_CXXFLAGS $CXXFLAGS"
146LDFLAGS="$SD_LDFLAGS $LDFLAGS"
147LIBS="$SD_LIBS $LIBS"
148
149AC_CHECK_HEADER([apr_allocator.h],,apr_found="no")
150AC_CHECK_HEADER([subversion-1/svn_types.h],,svn_found="no")
151AC_SEARCH_LIBS([svn_cmdline_setup_auth_baton],[svn_subr-1],
152               [SD_LIBS="-lsvn_subr-1 $SD_LIBS"],svn_found="no")
153AC_SEARCH_LIBS([svn_ra_initialize],[svn_ra-1],
154               [SD_LIBS="-lsvn_ra-1 $SD_LIBS"],svn_found="no")
155AC_SEARCH_LIBS([svn_wc_adm_open3],[svn_wc-1],
156               [SD_LIBS="-lsvn_wc-1 $SD_LIBS"],svn_found="no")
157AC_SEARCH_LIBS([svn_diff_file_options_create],[svn_diff-1],
158               [SD_LIBS="-lsvn_diff-1 $SD_LIBS"],svn_found="no")
159AC_SEARCH_LIBS([svn_client_log3],[svn_client-1],
160               [SD_LIBS="-lsvn_client-1 $SD_LIBS"],svn_found="no")
161
162# Export flags
163AC_SUBST([SVNDIGEST_CPPFLAGS], $SD_CPPFLAGS)
164AC_SUBST([SVNDIGEST_CXXFLAGS], $SD_CXXFLAGS)
165AC_SUBST([SVNDIGEST_LDFLAGS], $SD_LDFLAGS)
166AC_SUBST([SVNDIGEST_LIBS], $SD_LIBS)
167
168# Reset FLAGS
169CPPFLAGS="$SAVE_CPPFLAGS"
170CXXFLAGS="$SAVE_CXXFLAGS"
171LDFLAGS="$SAVE_LDFLAGS"
172LIBS="$SAVE_LIBS"
173
174# check if svnversion is installed
175AC_PATH_PROG([SVNVERSION], [svnversion], [no])
176
177# PLplot API checks
178plplot_found="yes"
179plplot_version=5.9
180AC_CHECK_HEADER([plplot/plstream.h],
181                [if $PKG_CONFIG --atleast-version=$plplot_version plplotd-c++; then
182                  PLPLOT_LDFLAGS=`$PKG_CONFIG --libs plplotd-c++`
183                  AC_SUBST([PLPLOT_LDFLAGS])
184                else
185                  plplot_found="nolib"
186                fi],
187                plplot_found="noheader")
188
189# checking if we build in a subversion WC
190AS_IF([test -d $srcdir/.svn], [wc_found="yes"], [wc_found="no"])
191AM_CONDITIONAL([HAVE_SVN_WC], [test "$wc_found" = "yes"])
192AC_SUBST([wc_found])
193
194# checking if we have test repo
195test_repo_filename=$srcdir/test/repo;
196AS_IF([test -r $test_repo_filename],
197              [AC_DEFINE([HAVE_TEST_REPO],[1],[define if test repo is available])
198               test_repo_found="yes"],
199              [test_repo_found="no"])
200AC_SUBST([test_repo_found])
201AS_IF([test "x$test_repo_found" = xyes],
202      [abs_test_repo=`cd $test_repo_filename && pwd`;
203       AC_SUBST(abs_test_repo)]
204     )
205AC_CONFIG_FILES([test/test_repo.sh], [chmod +x test/test_repo.sh])
206AC_CONFIG_FILES([test/svn_update.sh], [chmod +x test/svn_update.sh])
207AC_CONFIG_FILES([test/check_repo_status.sh],
208                [chmod +x test/check_repo_status.sh])   
209
210
211AC_CONFIG_FILES([Makefile
212                bin/Makefile
213                lib/Makefile
214                lib/yat/Makefile
215                man/Makefile
216                test/environment.h
217                test/Makefile])
218
219AC_CONFIG_HEADER([lib/yat/config_public.h])
220
221# Print failure status information about selected items, and exit if
222# fatal errors were encountered. No output will be created if
223# configure is halted prematurely.
224
225# used to trigger exit before creation of output
226all_reqs_ok="true"
227
228if (test "$wc_found" = "yes"); then
229   if test x$HELP2MAN = xno; then
230     AC_MSG_WARN(m4_text_wrap(m4_normalize([
231       `help2man' is missing on your system.  You will not be
232       able to create the man page. A sound man page should be
233       included in a distribution, and since you will not able
234       to create a complete distribution `make dist' will fail.
235       ]),[                   ],
236          [                             ], 79))
237   fi
238   # svnversion is required when building from svn wc
239   if (test "$svnversion" = "no"); then
240      all_reqs_ok="false";
241      AC_MSG_WARN([dnl
242Cannot find svnversion, which is required when building from a
243subversion working copy. Please install svnversion and make sure it is
244in your search path.]);
245   fi
246   if (test "$test_repo_found" = "no"); then
247      all_reqs_ok="false";
248      AC_MSG_WARN([dnl
249Cannot find test repository (test_repo_filename), which should be
250available when building from a subversion working copy. Try svn
251update in top directory.]);
252   fi
253fi
254
255# Non-existing APR is fatal -- sub-sequent compilation will fail.
256if (test "$apr_found" = "no") ; then
257  AC_MSG_WARN([APR not found. The Apache Portable Runtime
258  (APR) library cannot be found. Please make sure APR is installed
259  and supply the appropriate --with-apr option to 'configure'.])
260  all_reqs_ok="false"
261fi
262
263# Non-existing subversion API is fatal -- sub-sequent compilation will fail.
264if (test "$svn_found" = "no") ; then
265  svn_msg="Subversion API not found. Subversion API libraries cannot
266  be found. Make sure the APIs are installed and supply the
267  appropriate --with-svn option to 'configure'."
268  if (test "$apr_found" = "no") ; then
269    svn_msg="$svn_msg
270    Note, APR was not found. Failure to locate APR affects the search
271    of the subversion API. Please fix the APR problem before trying
272    to resolve the subversion related issues."
273  fi
274  AC_MSG_WARN([$svn_msg])
275  all_reqs_ok="false"
276fi
277
278# Non-existing PLplot API is fatal -- sub-sequent compilation will fail.
279if (test "$plplot_found" = "noheader") ; then
280  AC_MSG_WARN([PLplot developer files cannot be found. Make sure PLplot
281  is installed.])
282  all_reqs_ok="false"
283elif (test "$plplot_found" = "nolib") ; then
284  AC_MSG_WARN([PLplot developer files found but not required API version.
285  Version at least $plplot_version is required. Please upgrade PLplot.])
286  all_reqs_ok="false"
287fi
288
289if test $ac_cv_type_long_long_int != yes ; then
290  AC_MSG_WARN([Compiler $CXX does not support `long long'.
291  svndigest must be compiled with a compiler that supports `long long'.])
292  all_reqs_ok="false"
293fi
294
295if (test "$all_reqs_ok" = "false") ; then
296  AC_MSG_ERROR([Some pre-requisites were not fulfilled, aborting
297  configure. Please consult the 'README' file for more information
298  about what is needed to compile svndigest and refer to above
299  warning messages. Needed files were NOT created.])
300fi
301
302# Create output.
303AC_OUTPUT
304
305# Some more messages.
306AC_MSG_NOTICE([])
307AC_MSG_NOTICE([   Ready to compile the executables of svndigest $VERSION])
308AC_MSG_NOTICE([   The following flags and libs will be used:])
309AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
310AC_MSG_NOTICE([    Compiler:           $CXX])
311AC_MSG_NOTICE([    Preprocessor flags: $SD_CPPFLAGS $CPPFLAGS])
312AC_MSG_NOTICE([    C++ flags:          $SD_CXXFLAGS $CXXFLAGS])
313AC_MSG_NOTICE([    Linker flags:       $SD_LDFLAGS $LDFLAGS])
314AC_MSG_NOTICE([    LIBS:               $SD_LIBS $LIBS])
315AC_MSG_NOTICE([    PLPLOT_LDFLAGS:     $PLPLOT_LDFLAGS])
316AC_MSG_NOTICE([   +++++++++++++++++++++++++++++++++++++++++++++++])
317AC_MSG_NOTICE([])
318
319AC_MSG_NOTICE([Now type 'make && make check'.])
Note: See TracBrowser for help on using the repository browser.