source: configure.ac@ fbf005

Action_Thermostats Add_AtomRandomPerturbation Add_RotateAroundBondAction Add_SelectAtomByNameAction Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_ChronosMutex Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion GeometryObjects Gui_displays_atomic_force_velocity IndependentFragmentGrids_IntegrationTest JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix PartialCharges_OrthogonalSummation PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks RotateToPrincipalAxisSystem_UndoRedo StoppableMakroAction TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps Ubuntu_1604_changes stable
Last change on this file since fbf005 was fbf005, checked in by Frederik Heber <heber@…>, 8 years ago

HUGE: Extracted libmolecuilder_mpqc that is now linked to poolworker.

  • This stops the problems with MemDebug and mpqc when linking against libLinearAlgebra in debug mode: static global variables in libLinAlg are allocated using MemDebug (prefixed with a checksum) but are deallocated using normal libc's free() on exit. This causes an invalid free() as the ptr given to free points inside the block and not at its start. The problem comes from mpqc's use of own new and delete implementation. I'm guessing its reference counting is the culprit. Hence, we need to separate these two compilations from another in different units/libraries. Therefore, we have split off libmolecuilder_mpqc, .._mpqc_extract and additionally place the MPQCJob::Work() implementation inside libMolecuilderJobs_Work.
  • libmolecuilder_mpqc contains all MPQC's code in mpqc.cc (and linked libraries) that is not the main() function.
  • libmolecuilder_mpqc_extract contains functions that extract results such as energies, forces, charge grids from the obtained mpqc solution. These were added by myself to the mpqc code before.
  • molecuilder_mpqc is then linked against a NoOp .._extract library version. Thereby, it does not use any of the Molecuilder or related libraries and does not come in contact with MemDebug.
  • molecuilder_poolworker however is linked with the full .._extract library and hence performs these extractions.
  • poolworker now executes MPQCJob, MPQCCommandJob, and VMGJob and therefore needs to enforce binding to all of them.
  • TESTS: renamed molecuilder_mpqc.in to molecuilder_poolworker.in.
  • Property mode set to 100644
File size: 19.9 KB
Line 
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4AC_PREREQ(2.59)
5AC_INIT(MoleCuilder, 1.5.4, [foo@molecuilder.de], [molecuilder], [http://www.molecuilder.de/])
6AC_CONFIG_AUX_DIR([build-aux])
7AC_CONFIG_SRCDIR([src/builder.cpp])
8AC_CONFIG_HEADER([config.h libmolecuilder_config.h])
9AC_CONFIG_MACRO_DIR([m4])
10AC_CONFIG_SUBDIRS([ThirdParty/LinearAlgebra])
11AC_CONFIG_SUBDIRS([ThirdParty/mpqc_open])
12
13# parallel-tests: use parallel test druver
14# color-tests: us coloring to indicate success/failure when available
15# tar-pax: use newer tar implementation with longer filename (>99 chars)
16AM_INIT_AUTOMAKE([dist-bzip2 1.5 parallel-tests color-tests tar-pax subdir-objects])
17
18# Checks for programs.
19AC_PROG_CXX
20AC_PROG_INSTALL
21
22# check for cppunit (taken from svn.apache.org/../xmlbeanscxx)
23AM_PATH_CPPUNIT(1.9.6)
24AM_CONDITIONAL(CONDCPPUNIT, test "$CPPUNIT_LIBS")
25
26dnl Check if we have enable python
27# python module
28AC_MSG_CHECKING(whether to enable python module)
29AC_ARG_ENABLE(
30 [python],
31 AS_HELP_STRING([--enable-python],[turn on python module [default=yes]]),
32 enable_python=$enableval,
33 enable_python="yes")
34AC_MSG_RESULT($enable_python)
35AS_IF([test x"$enable_python" != x"no"],[
36 # Python (for boost::python)
37 AM_PATH_PYTHON([2.2])
38 AX_PYTHON
39 AC_DEFINE(HAVE_PYTHON,1, ["Build python module and scripts."])
40])
41AM_CONDITIONAL([CONDPYTHON], [test x"$enable_python" != x"no"])
42AC_SUBST(HAVE_PYTHON)
43
44dnl Check whether no extra thread for ActionQueue shall be used
45AC_MSG_CHECKING(whether to enable ActionQueue's run thread)
46AC_ARG_ENABLE(
47 [action_thread],
48 AS_HELP_STRING([--enable-action-thread],[turn on extra run thread for ActionQueue [default=yes]]),
49 enable_action_thread=$enableval,
50 enable_action_thread="no"
51)
52AC_MSG_RESULT($enable_action_thread)
53AS_IF([test x"$enable_action_thread" != x"no"],[
54 AC_DEFINE(HAVE_ACTION_THREAD,1, ["Have extra run thread for ActionQueue."])
55])
56AM_CONDITIONAL([CONDACTIONTHREAD], [test x"$enable_action_thread" != x"no"])
57AC_SUBST(HAVE_ACTION_THREAD)
58
59dnl Check if we have enable qtgui
60# Qt programs
61AC_MSG_CHECKING(whether to enable Qt-based GUI)
62AC_ARG_ENABLE(
63 [qtgui],
64 AS_HELP_STRING([--enable-qtgui],[turn on Qt GUI compilation [default=yes]]),
65 enable_qtgui=$enableval,
66 enable_qtgui="yes")
67AC_MSG_RESULT($enable_qtgui)
68AS_IF([test x"$enable_qtgui" != x"no"],[
69 AC_ARG_WITH(
70 [Qt-bin],
71 [AS_HELP_STRING([--with-Qt-bin], [give path to Qt binaries])],
72 [have_qtgui_path=$withval],
73 have_qtgui_path="")
74 AS_IF([test x"$have_qtgui_path" != x""],[
75 AC_PATH_PROGS([QT_MOC],
76 [moc-qt4 moc],
77 [AC_MSG_ERROR(["Qts moc not found, please use --with-Qt-bin."])],
78 [$have_qtgui_path]
79 )
80 AC_PATH_PROGS([QT_RCC],
81 [rcc-qt4 rcc],
82 [AC_MSG_ERROR(["Qts rcc not found, please use --with-Qt-bin."])],
83 [$have_qtgui_path]
84 )
85 AC_PATH_PROGS([QT_UIC],
86 [uic-qt4 uic],
87 [AC_MSG_ERROR(["Qts uic not found, please use --with-Qt-bin."])],
88 [$have_qtgui_path]
89 )
90 ],[
91 AC_PATH_PROGS([QT_MOC],
92 [moc-qt4 moc],
93 [AC_MSG_ERROR(["Qts moc not found, please use --with-Qt-bin."])]
94 )
95 AC_PATH_PROGS([QT_RCC],
96 [rcc-qt4 rcc],
97 [AC_MSG_ERROR(["Qts rcc not found, please use --with-Qt-bin."])]
98 )
99 AC_PATH_PROGS([QT_UIC],
100 [uic-qt4 uic],
101 [AC_MSG_ERROR(["Qts uic not found, please use --with-Qt-bin."])]
102 )
103 ])
104 PKG_CHECK_MODULES([QT], [QtCore QtGui Qt3D], [
105 ])
106 AC_SUBST([QT_CFLAGS])
107 AC_SUBST([QT_LIBS])
108 AC_DEFINE(HAVE_QTGUI,1, ["Build Qt-based GUI"])
109])
110AM_CONDITIONAL([CONDQTGUI], [test x"$enable_qtgui" != x"no"])
111AC_SUBST(HAVE_QTGUI)
112
113dnl Check whether qtgui captures log or not
114AC_MSG_CHECKING(whether to capture stdout in qtgui)
115AC_ARG_ENABLE(
116 [qtgui_capture_log],
117 AS_HELP_STRING([--enable-qtgui-capture-log],[turn on capturing of log inside qtgui [default=yes]]),
118 enable_qtgui_capture_log=$enableval,
119 enable_qtgui_capture_log="yes"
120)
121AC_MSG_RESULT($enable_qtgui_capture_log)
122AS_IF([test x"$enable_qtgui_capture_log" != x"no"],[
123 AC_DEFINE(QT_CAPTURES_LOG,1, ["Have QtGui capture the stdout."])
124])
125AC_SUBST(QT_CAPTURES_LOG)
126
127
128# check additionally for QWT to enable plotting of potentials
129AC_MSG_CHECKING(whether to enable Qwt-based plotting)
130#enable_qwt=yes
131AC_ARG_ENABLE(
132 [qwt],
133 AS_HELP_STRING([--enable-qwt],[turn on Qwt compilation [default=yes]]),
134 enable_qwt=$enableval,
135 enable_qwt="yes")
136AC_MSG_RESULT($enable_qwt)
137AS_IF([test x"$enable_qwt" != x"no"],[
138 MOL_AC_HAVE_QWT_IFELSE(
139 [
140 enable_qwt=yes
141 AC_DEFINE(HAVE_QWT,1, ["Build Qwt-based plotting"])
142 ],
143 [
144 enable_qwt=no
145 AC_MSG_WARN([Qwt not found, disabling plotting in QtUI.])
146 ]
147 )
148])
149AM_CONDITIONAL([CONDQWT], [test x"$enable_qwt" != x"no"])
150AC_SUBST(HAVE_QWT)
151
152# use doxygen
153DX_HTML_FEATURE(ON)
154DX_PS_FEATURE(OFF)
155DX_PDF_FEATURE(OFF)
156DX_INIT_DOXYGEN(MoleCuilder, Doxyfile, ${docdir})
157
158# use docbook
159AX_CHECK_DOCBOOK
160
161# use libtool
162LT_INIT([static])
163
164# Define these substitions here to keep all version information in one place.
165# For information on how to properly maintain the library version information,
166# refer to the libtool manual, section "Updating library version information":
167# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
168AC_SUBST([MOLECUILDER_SO_VERSION], [17:0:0])
169AC_SUBST([MOLECUILDER_API_VERSION], [1.5.4])
170
171dnl this macro is used to get the arguments supplied
172dnl to the configure script (./configure --enable-debug)
173dnl Check if we have enable debug support.
174AC_MSG_CHECKING(whether to enable debugging)
175have_debug="no"
176AC_ARG_ENABLE(
177 [debug],
178 AS_HELP_STRING([--enable-debug],[turn on debugging [default=no]]),
179 enable_debug=$enableval,
180 enable_debug="no")
181AC_MSG_RESULT($enable_debug)
182AS_IF([test x"$enable_debug" = x"yes"],[
183 AC_DEFINE(MEMDEBUG,1, ["Use memory debugger."])
184 AC_DEFINE(HAVE_DEBUG,1, ["Use debug setting to compile code."])
185 have_debug="yes"
186],[
187 AS_IF([test x"$enable_debug" = x"full"],[
188 AC_DEFINE(MEMDEBUG,1, ["Use memory debugger."])
189 AC_DEFINE(LOG_OBSERVER,1, ["Use observer log."])
190 AC_DEFINE(HAVE_DEBUG,2, ["Use debug setting to compile code."])
191 dnl AC_DEFINE(QT_DEBUG,, ["Enable Qt debug messages."])
192 have_debug="full"
193 ],[
194 AC_DEFINE(NDEBUG,1, ["Don't compile in debugging code."])
195 AC_DEFINE(HAVE_DEBUG,0, ["Use debug setting to compile code."])
196 AC_DEFINE(QT_NO_DEBUG_OUTPUT,, ["Disable Qt debug messages."])
197 have_debug="no"
198 ])
199])
200AC_SUBST(HAVE_DEBUG)
201
202dnl this macro is used to get the arguments supplied
203dnl to the configure script (./configure --enable-debug)
204dnl Check if we have enable debug support.
205AC_MSG_CHECKING(whether to enable internal caching/lazy evaluation)
206AC_ARG_ENABLE(
207 [cache],
208 AS_HELP_STRING([--enable-cache],[turn on internal lazy evaluation [default=yes]]),
209 enable_cache=$enableval,
210 enable_cache="yes")
211AC_MSG_RESULT($enable_cache)
212AS_IF([test x"$enable_cache" != x"no"],[
213 AC_DEFINE(HAVE_CACHE,1, ["cache variables to speed up the code."])
214],[
215 AC_DEFINE(NO_CACHING,1, ["Don't use caching code."])
216 AC_DEFINE(HAVE_CACHE,0, ["cache variables to speed up the code."])
217])
218AC_SUBST(HAVE_CACHE)
219
220# Checks for libraries.
221AC_CHECK_LIB(m, sqrt, , AC_MSG_ERROR([compatible libc math library not found]))
222
223# Pthreads
224ACX_PTHREAD()
225
226# Boost
227BOOST_REQUIRE([1.40])
228
229# Boost headers only
230BOOST_ANY
231BOOST_ARRAY
232BOOST_BIMAP
233BOOST_BIND
234BOOST_CAST
235BOOST_CONVERSION
236BOOST_EXCEPTION
237BOOST_FOREACH
238BOOST_FUNCTION
239BOOST_FUSION
240BOOST_GRAPH
241BOOST_ITERATOR
242BOOST_MULTIARRAY
243BOOST_MULTIINDEXCONTAINER
244BOOST_MPL
245BOOST_PREPROCESSOR
246BOOST_RANDOM
247BOOST_SMART_PTR
248BOOST_STRING_ALGO
249BOOST_TOKENIZER
250
251# Boost headers with libraries
252BOOST_FILESYSTEM
253BOOST_IOSTREAMS
254BOOST_PROGRAM_OPTIONS
255AS_IF([test x"$enable_python" != x"no"], [BOOST_PYTHON])
256BOOST_SERIALIZATION
257BOOST_THREADS
258
259
260# CodePatterns library (requiring UnobservedIterator)
261compile_codepatterns="no"
262AM_PATH_CODEPATTERNS([1.3.2], $have_debug,,[
263 # compile from ThirdParty
264 AC_CONFIG_SUBDIRS([ThirdParty/CodePatterns])
265 compile_codepatterns="yes"
266 [CodePatterns_LDFLAGS='-L$(top_builddir)/ThirdParty/CodePatterns/src']
267 [CodePatterns_CFLAGS='-I$(top_srcdir)/ThirdParty/CodePatterns/src']
268 AS_IF([test x"$enable_debug" != x"no"], [
269 [CodePatterns_LIBS='-lcodepatterns-debug']
270 ],[
271 [CodePatterns_LIBS='-lcodepatterns']
272 ])
273 AC_SUBST(CodePatterns_LDFLAGS)
274 AC_SUBST(CodePatterns_CFLAGS)
275 AC_SUBST(CodePatterns_LIBS)
276 #AC_MSG_ERROR([Missing CodePatterns library, please specify PKG_CONFIG_PATH or use --with-codepatterns...])
277])
278AC_MSG_CHECKING(whether to compile codepatterns)
279AC_MSG_RESULT($compile_codepatterns)
280AM_CONDITIONAL([COND_COMPILE_CODEPATTERNS], [test x"$compile_codepatterns" = x"yes"])
281
282# JobMarket library (needs boost/archive/iserializer.hpp before MemDebug.hpp)
283AC_MSG_CHECKING(whether to enable jobmarket)
284AC_ARG_ENABLE(
285 [jobmarket],
286 AS_HELP_STRING([--enable-jobmarket],[turn on JobMarket feature [default=yes]]),
287 enable_jobmarket=$enableval,
288 enable_jobmarket="yes")
289AC_MSG_RESULT($enable_jobmarket)
290compile_jobmarket="no"
291AC_MSG_CHECKING(whether to compile jobmarket)
292AS_IF([test x"$enable_jobmarket" != x"no"],[
293 # the following is only required if we use JobMarket
294 BOOST_ASIO
295 AC_DEFINE(HAVE_JOBMARKET,1, ["use JobMarket to calculate fragment jobs."])
296 # JobMarket library (needs SystemCommandJob with suffix)
297 AM_PATH_JOBMARKET([1.1.6], $have_debug,
298 ,[
299 AC_CONFIG_SUBDIRS([ThirdParty/JobMarket])
300 compile_jobmarket="yes"
301 [JobMarket_CFLAGS='-I$(top_srcdir)/ThirdParty/JobMarket/src']
302 [JobMarket_LDFLAGS='-L$(top_builddir)/ThirdParty/JobMarket/src/JobMarket']
303 [JobMarket_LIBS='-lJobMarket']
304 [JobMarket_Controller_LIBS='-lJobMarketController']
305 [JobMarket_Server_LIBS='-lJobMarketServer']
306 [JobMarket_PoolWorker_LIBS='-lJobMarketPoolWorker']
307 AC_SUBST(JobMarket_CFLAGS)
308 AC_SUBST(JobMarket_LDFLAGS)
309 AC_SUBST(JobMarket_LIBS)
310 AC_SUBST(JobMarket_Controller_LIBS)
311 AC_SUBST(JobMarket_Server_LIBS)
312 AC_SUBST(JobMarket_PoolWorker_LIBS)
313 ])
314]
315AC_MSG_RESULT($compile_jobmarket)
316AM_CONDITIONAL([COND_COMPILE_JOBMARKET], [test x"$compile_jobmarket" = x"yes"])
317#[
318# AC_DEFINE(HAVE_JOBMARKET,0, ["use JobMarket to calculate fragment jobs."])
319#]
320)
321AC_SUBST(HAVE_JOBMARKET)
322AM_CONDITIONAL([CONDJOBMARKET], [test x"$enable_jobmarket" = x"yes"])
323
324# VMG library
325AC_MSG_CHECKING(whether to compile in long-range support via vmg)
326AC_ARG_ENABLE(
327 [vmg],
328 [AS_HELP_STRING([--enable-vmg], [turn on long-range potential calculation via VMG [default=no]])],
329 [enable_vmg=$enableval],
330 enable_vmg="no")
331AC_MSG_RESULT($enable_vmg)
332compile_vmg="no"
333AC_MSG_CHECKING(whether to compile vmg library)
334AS_IF([test x"$enable_vmg" != x"no"],[
335 PKG_CHECK_MODULES(VMG, VMG >= 0.1, [enable_vmg="yes"], [enable_vmg="no"])
336 AS_IF([test x"$enable_vmg" = x"no"],[
337 AC_CONFIG_SUBDIRS([ThirdParty/vmg])
338 compile_vmg="yes"
339 enable_vmg="yes"
340 [VMG_CFLAGS='-I$(top_srcdir)/ThirdParty/vmg/src']
341 [VMG_LDFLAGS='-L$(top_builddir)/ThirdParty/vmg/src']
342 [VMG_LIBS='-lvmg']
343 ])
344 AC_SUBST(VMG_CFLAGS)
345 AC_SUBST(VMG_LDFLAGS)
346 AC_SUBST(VMG_LIBS)
347 AC_DEFINE(HAVE_VMG,1, ["use VMG to calculate long-range contributions."])
348
349 # check whether to use mpi
350 AC_ARG_WITH(
351 [vmg-mpi],
352 [AS_HELP_STRING([--with-vmg-mpi], [whether to use MPI for communication in VMGJobs])],
353 [with_vmg_mpi=yes],
354 [with_vmg_mpi=no])
355 AS_IF(
356 [test "x$with_vmg_mpi" != xno],
357 [
358 AC_LANG_SAVE
359 AC_LANG_CPLUSPLUS
360 LX_FIND_MPI
361 AC_LANG_RESTORE
362 AS_IF([test "x$have_CXX_mpi" = xyes],[
363 AC_DEFINE([MPICH_SKIP_MPICXX], [1], [Skip C++ bindings])
364 AC_DEFINE([OMPI_SKIP_MPICXX], [1], [Skip C++ bindings])
365 AC_DEFINE([MPI_NO_CPPBIND], [1], [Skip C++ bindings])
366 AC_DEFINE([_MPICC_H], [1], [Skip C++ bindings])
367 AC_DEFINE([MPIBULL_SKIP_MPICXX], [1], [Skip C++ bindings])
368 #ac_configure_args="$ac_configure_args --with-mpi-thread=single --with-default-parallel=mpi --with-include=\"$MPI_CXXFLAGS\" --with-libs=\"$MPI_CXXLDFLAGS\""
369 ac_configure_args="$ac_configure_args --with-default-parallel=none"
370 ])
371 ],
372 [])
373])
374AC_MSG_RESULT($compile_vmg)
375AM_CONDITIONAL([CONDVMG], [test x"$enable_vmg" = x"yes"])
376AM_CONDITIONAL([CONDVMGMPI], [test x"$have_CXX_mpi" = x"yes"])
377AM_CONDITIONAL([COND_COMPILE_VMG], [test x"$compile_vmg" = x"yes"])
378
379
380# Check for Levenberg-Marquardt implementation
381AC_MSG_CHECKING(whether to enable function fitting via levmar)
382AC_ARG_ENABLE(
383 [levmar],
384 AS_HELP_STRING([--enable-levmar],[turn on LevMar feature [default=no]]),
385 enable_levmar=$enableval,
386 enable_levmar="no")
387AC_MSG_RESULT($enable_levmar)
388# don't use AS_IF here as it expands (and tests) AC_F77_FUN even if levmar
389# is disabled.
390compile_levmar="no"
391AS_IF([test x"$enable_levmar" = xyes],[
392 AC_MSG_CHECKING(for levmar presence via given path )
393 AC_ARG_WITH(
394 [levmar],
395 [AS_HELP_STRING([--with-levmar], [give path to LevMar package])],
396 [have_levmar_path=$withval
397 enable_levmar=yes],
398 [
399 enable_levmar=no
400 ])
401 AC_MSG_RESULT($enable_levmar)
402 AS_IF([test -n "$have_levmar_path"],[
403 LEVMAR_CPPFLAGS="-I${have_levmar_path}/include"
404 LEVMAR_LDFLAGS="-L${have_levmar_path}/lib"
405 LEVMAR_LIBS="-llevmar"],
406 [PKG_CHECK_MODULES([LEVMAR],[levmar],[enable_levmar=yes],[enable_levmar=no])
407 ])
408 ],[enable_levmar=no]
409)
410if test x"$enable_levmar" = xyes; then
411 AX_LAPACK([enable_levmar=yes],
412 [enable_levmar=no
413 AC_MSG_WARN(["Missing LAPACK, disabling off levmar"])
414 ]
415 )
416else
417 AC_CONFIG_SUBDIRS([ThirdParty/levmar])
418 compile_levmar="yes"
419 enable_levmar="yes"
420 LEVMAR_CPPFLAGS='-I$(top_srcdir)/ThirdParty/levmar/src'
421 LEVMAR_LDFLAGS='-L$(top_builddir)/ThirdParty/levmar/src'
422 LEVMAR_LIBS='-llevmar'
423fi
424AC_MSG_CHECKING(for levmar usability)
425AS_IF([test x"$enable_levmar" = xyes],[
426 AC_SUBST(LEVMAR_CPPFLAGS)
427 AC_SUBST(LEVMAR_LDFLAGS)
428 AC_SUBST(LEVMAR_LIBS)
429 AC_DEFINE(HAVE_LEVMAR,1, ["use levmar for non-linear minimisation/potential fitting."])])
430AC_MSG_RESULT($enable_levmar)
431AM_CONDITIONAL([CONDLEVMAR], [test x"$enable_levmar" = x"yes"])
432AM_CONDITIONAL([COND_COMPILE_LEVMAR], [test x"$compile_levmar" = x"yes"])
433
434# Checks for header files.
435AC_HEADER_STDC
436AC_CHECK_HEADERS([sys/time.h])
437AC_HEADER_STDBOOL
438
439AC_FUNC_MALLOC
440AC_FUNC_REALLOC
441AC_CHECK_FUNCS([floor pow sqrt strchr])
442
443# Checks for typedefs, structures, and compiler characteristics.
444AC_C_CONST
445AC_C_INLINE
446AC_C_RESTRICT
447AC_TYPE_SIZE_T
448
449# Checks for library functions.
450# check for GNU Scientific Library
451AC_CHECK_HEADERS([gsl/gsl_blas.h])
452AC_SEARCH_LIBS(dnrm2, gslblas gslcblas goto blas cblas)
453AC_SEARCH_LIBS(cblas_dnrm2, gslblas gslcblas blas cblas)
454AC_SEARCH_LIBS(gsl_blas_dnrm2,, gsl)
455#AC_CHECK_LIB(gsl, gsl_blas_dnrm2, , [AC_MSG_ERROR(["No working BLAS found for GSL, stopping."])])
456AC_CHECK_LIB(gsl, main)
457
458# use CppUnit TestRunner or not
459AC_MSG_CHECKING(whether to enable ECut TestRunnerClient)
460AC_ARG_ENABLE(
461 [ecut],
462 AS_HELP_STRING([--enable-ecut],[Use ECut TestRunnerClient [default=no]]),
463 enable_ecut=$disableval,
464 enable_ecut="no")
465AC_MSG_RESULT($enable_ecut)
466AS_IF([test x"$enable_ecut" = x"yes"],[
467 AC_DEFINE(HAVE_ECUT,1, ["Use ECut TestRunnerClient instead of our own."])
468 AC_SUBST(HAVE_ECUT)
469])
470AM_CONDITIONAL([CONDECUT], [test x"$enable_ecut" = x"yes"])
471
472# with valgrinding testsuite or not
473AC_MSG_CHECKING(whether to enable valgrind memory checking in testsuite)
474AC_ARG_ENABLE(
475 [valgrind],
476 AS_HELP_STRING([--enable-valgrind],[Use Valgrind on the testsuite [default=no]]),
477 enable_valgrind=$enableval,
478 enable_valgrind="no")
479AC_MSG_RESULT($enable_valgrind)
480AS_IF([test x"$enable_valgrind" = x"yes"], [
481 AC_CHECK_HEADER([valgrind/valgrind.h],
482 [
483 # check header
484 AC_DEFINE(HAVE_VALGRIND_TESTSUITE,1, ["Use Valgrind to check the testsuite."])
485 # check path
486 AC_PATH_PROG(VALGRIND, [valgrind], [/bin/false])
487 # set variables
488 AC_SUBST(HAVE_VALGRIND_TESTSUITE)
489 AC_SUBST(VALGRIND)
490 ],
491 [
492 AC_MSG_ERROR(["Valgrind support requested but headers not available."])
493 ]
494 )
495])
496
497# Check for "extern inline", using a modified version
498# of the test for AC_C_INLINE from acspecific.mt
499AC_CACHE_CHECK([for extern inline], ac_cv_c_extern_inline,
500[ac_cv_c_extern_inline=no
501AC_TRY_COMPILE([extern $ac_cv_c_inline double foo(double x);
502extern $ac_cv_c_inline double foo(double x) { return x+1.0; };
503double foo (double x) { return x + 1.0; };],
504[ foo(1.0) ],
505[ac_cv_c_extern_inline="yes"])
506])
507
508if test "$ac_cv_c_inline" != no ; then
509 AC_DEFINE(HAVE_INLINE,1, ["May use inline routines"])
510 AC_SUBST(HAVE_INLINE)
511fi
512
513#AC_MSG_NOTICE(["CFLAGS: $CFLAGS, CXXFLAGS: $CXXFLAGS, LDFLAGS: $LDFLAGS, CC: $CC, CXX:, $CXX, MPICC: $MPICC, MPILIBS: $MPILIBS, LIBS: $LIBS"])
514
515# test suite
516
517AC_CONFIG_FILES([
518 tests/Makefile])
519
520AC_CONFIG_TESTDIR(tests/Calculations)
521AC_CONFIG_FILES([
522 tests/Calculations/atlocal
523 tests/Calculations/Makefile])
524AC_CONFIG_FILES([tests/Calculations/molecuilder], [chmod +x tests/Calculations/molecuilder])
525AC_CONFIG_FILES([tests/Calculations/molecuilder_poolworker], [chmod +x tests/Calculations/molecuilder_poolworker])
526
527AC_CONFIG_TESTDIR(tests/CodeChecks)
528AC_CONFIG_FILES([
529 tests/CodeChecks/atlocal
530 tests/CodeChecks/Makefile])
531
532AC_CONFIG_TESTDIR(tests/Fragmentations)
533AC_CONFIG_FILES([
534 tests/Fragmentations/atlocal
535 tests/Fragmentations/Makefile])
536AC_CONFIG_FILES([tests/Fragmentations/molecuilder], [chmod +x tests/Fragmentations/molecuilder])
537
538AC_CONFIG_TESTDIR(tests/GuiChecks)
539AC_CONFIG_FILES([
540 tests/GuiChecks/atlocal
541 tests/GuiChecks/Makefile])
542AC_CONFIG_FILES([tests/GuiChecks/molecuilder], [chmod +x tests/GuiChecks/molecuilder])
543AC_CONFIG_FILES([tests/GuiChecks/molecuilderguitest], [chmod +x tests/GuiChecks/molecuilderguitest])
544AC_CONFIG_FILES([tests/GuiChecks/adjacencymatcher], [chmod +x tests/GuiChecks/adjacencymatcher])
545AC_CONFIG_FILES([tests/GuiChecks/trianglematcher], [chmod +x tests/GuiChecks/trianglematcher])
546
547AC_CONFIG_TESTDIR(tests/JobMarket)
548AC_CONFIG_FILES([
549 tests/JobMarket/atlocal
550 tests/JobMarket/Makefile])
551AC_CONFIG_FILES([tests/JobMarket/molecuilder], [chmod +x tests/JobMarket/molecuilder])
552
553AC_CONFIG_TESTDIR(tests/integration)
554AC_CONFIG_FILES([
555 tests/integration/atlocal
556 tests/integration/Makefile])
557AC_CONFIG_FILES([tests/integration/molecuilder], [chmod +x tests/integration/molecuilder])
558AC_CONFIG_FILES([tests/integration/molecuilder_poolworker], [chmod +x tests/integration/molecuilder_poolworker])
559
560AC_CONFIG_TESTDIR(tests/regression)
561AC_CONFIG_FILES([
562 tests/regression/atlocal
563 tests/regression/Makefile])
564AC_CONFIG_FILES([tests/regression/molecuilder], [chmod +x tests/regression/molecuilder])
565AC_CONFIG_FILES([tests/regression/adjacencymatcher], [chmod +x tests/regression/adjacencymatcher])
566AC_CONFIG_FILES([tests/regression/trianglematcher], [chmod +x tests/regression/trianglematcher])
567AC_CONFIG_FILES([tests/regression/runpython], [chmod +x tests/regression/runpython])
568
569AC_CONFIG_TESTDIR(tests/Tesselations)
570AC_CONFIG_FILES([
571 tests/Tesselations/atlocal
572 tests/Tesselations/Makefile])
573AC_CONFIG_FILES([tests/Tesselations/molecuilder], [chmod +x tests/Tesselations/molecuilder])
574AC_CONFIG_FILES([tests/Tesselations/trianglematcher], [chmod +x tests/Tesselations/trianglematcher])
575
576AC_CONFIG_TESTDIR(tests/Examples)
577AC_CONFIG_FILES([
578 tests/Examples/atlocal
579 tests/Examples/Makefile])
580AC_CONFIG_FILES([tests/Examples/molecuilder], [chmod +x tests/Examples/molecuilder])
581AC_CONFIG_FILES([tests/Examples/molecuilder_poolworker], [chmod +x tests/Examples/molecuilder_poolworker])
582
583AC_CONFIG_FILES([
584 doc/molecuilder.xml])
585AC_CONFIG_FILES([
586 doc/userguide/catalog.xml:doc/userguide/catalog.xml.in])
587AC_CONFIG_FILES([
588 MoleCuilder.pc:MoleCuilder.pc.in])
589AC_CONFIG_FILES([
590 doc/Makefile
591 doc/userguide/Makefile
592])
593AC_CONFIG_FILES([
594 Makefile
595 src/Makefile
596 src/Bond/AdjacencyMatcher/Makefile
597 src/Tesselation/TriangleMatcher/Makefile
598 ThirdParty/Makefile
599 data/icons/Makefile
600 utils/Makefile
601])
602AC_CONFIG_FILES([
603 src/unittests/Makefile
604])
605
606# produce python scripts and tests only when python's present
607AC_CONFIG_TESTDIR([tests/Python])
608AC_CONFIG_FILES([tests/Python/atlocal])
609AM_COND_IF([CONDPYTHON],[
610 AC_CONFIG_FILES([utils/Python/boxmaker.py:utils/Python/boxmaker.py.in], [chmod +x utils/Python/boxmaker.py])
611 AC_CONFIG_FILES([utils/Python/python_wrapper:utils/Python/python_wrapper.in], [chmod +x utils/Python/python_wrapper])
612 AC_CONFIG_FILES([tests/Python/run], [chmod +x tests/Python/run])
613])
614AC_CONFIG_FILES([tests/Python/Makefile])
615
616AC_OUTPUT
Note: See TracBrowser for help on using the repository browser.