source: trunk/configure.ac @ 955

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

Addresses #118. Removing CFLAGS variable since we are not using C directly.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.5 KB
Line 
1## Process this file with autoconf to produce a configure script.
2##
3## $Id: configure.ac 955 2007-10-09 04:57:24Z jari $
4
5# Copyright (C) 2003 Daniel Dalevi, Jari Häkkinen
6# Copyright (C) 2004 Jari Häkkinen
7# Copyright (C) 2005, 2006, 2007 Jari Häkkinen, Peter Johansson
8#
9# This file is part of the yat library, http://trac.thep.lu.se/trac/yat
10#
11# The yat library is free software; you can redistribute it
12# and/or modify it under the terms of the GNU General Public License as
13# published by the Free Software Foundation; either version 2 of the
14# License, or (at your option) any later version.
15#
16# The yat library is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19# General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with this program; if not, write to the Free Software
23# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
24# 02111-1307, USA.
25#
26# If you grabbed the source from the subversion repository you should,
27# at top-level, execute:
28#     ./bootstrap
29# To push subsequent changes of this file into the build scripts you
30# must issue:
31#     autoreconf
32
33AC_PREREQ(2.57)
34AC_INIT([yat],[0.4pre],[jari@thep.lu.se])
35AC_CONFIG_SRCDIR([yat/utility/matrix.h])
36AC_CONFIG_AUX_DIR([autotools])
37AC_PREFIX_DEFAULT([/usr/local])
38
39AM_CONFIG_HEADER([config.h])
40AM_INIT_AUTOMAKE()
41
42# Set default programming language
43AC_LANG(C++)
44
45# Checks for programs.
46AC_PROG_CXX
47AC_PROG_INSTALL
48AC_CHECK_PROG([DOXYGEN], [doxygen], [yes], [no])
49AC_CHECK_PROG([DVIPDFM], [dvipdfm], [yes], [no])
50AC_CHECK_PROG([LATEX], [latex], [yes], [no])
51AC_CHECK_PROG([LATEX2HTML], [latex2html], [yes], [no])
52
53# Checks for libraries.
54AC_CHECK_LIB(m,main)
55AC_SEARCH_LIBS(ATL_ctrsv,atlas,,
56  AC_SEARCH_LIBS(cblas_sdsdot,gslcblas))
57AC_CHECK_LIB(gsl,main)
58
59# GNU Scientific Library, GSL http://www.gnu.org/software/gsl/, checks
60# Including AM_PATH_GSL macro from gsl.m4 distributed by GSL
61sinclude(./build_support/gsl.m4)
62AM_PATH_GSL(1.6,,[AC_MSG_ERROR(could not find required version of GSL)])
63
64# Checks for header files.
65AC_CHECK_HEADERS([unistd.h])
66
67# Checks for typedefs, structures, and compiler characteristics.
68AC_HEADER_STDBOOL
69AC_C_CONST
70AC_C_INLINE
71AC_TYPE_SIZE_T
72
73# Checks for library functions.
74AC_PROG_LIBTOOL
75AC_FUNC_ERROR_AT_LINE
76AC_HEADER_STDC
77AC_CHECK_FUNCS([pow sqrt])
78
79CXXFLAGS="-Wall -pedantic"
80CPPFLAGS="-DHAVE_INLINE=1"
81AC_ARG_ENABLE(debug,
82  [AS_HELP_STRING([--enable-debug],[turn on debug options and code])])
83if test "${enable_debug}" = "yes" ; then
84  CXXFLAGS="$CXXFLAGS -g -O"
85  CPPFLAGS="$CPPFLAGS -DYAT_DEBUG=1"
86else
87  CXXFLAGS="$CXXFLAGS -O3"
88  CPPFLAGS="$CPPFLAGS -DNDEBUG -DGSL_RANGE_CHECK_OFF"
89fi
90
91# check for quiet_NaN support in OS
92# At compile time, but this may not work if quiet_NaN exists and returns
93# an incorrect value
94AC_MSG_CHECKING([for std::numeric_limits<>::quiet_NaN()])
95AC_COMPILE_IFELSE(
96  [AC_LANG_PROGRAM(
97    [#include <limits>
98     extern void f(double);],
99    [f(std::numeric_limits<double>::quiet_NaN())])],
100  [quiet_nan=yes],
101  [quiet_nan=no])
102AC_MSG_RESULT($quiet_nan)
103if test "${quiet_nan}" = "no" ; then
104  AC_MSG_FAILURE([
105    Support for quiet NAN required.
106    Yat will not work on this system!])
107fi
108# At run-time, but this has the disadvantage that yat cannot be built 
109# for cross-compilation
110AC_MSG_CHECKING([if std::numeric_limits<>::has_quiet_NaN is true])
111AC_RUN_IFELSE(
112  [AC_LANG_PROGRAM(
113    [#include <limits>],
114    [return !std::numeric_limits<double>::has_quiet_NaN])],
115  [quiet_nan=yes],
116  [quiet_nan=no])
117AC_MSG_RESULT($quiet_nan)
118if test "${quiet_nan}" = "no" ; then
119  AC_MSG_FAILURE([
120    Support for quiet NAN required.
121    Yat will not work on this system!])
122fi
123
124# yat specific settings
125YAT_LIB="libyat.la"
126YAT_LIB_LOCATION="yat"
127AC_SUBST(YAT_LIB)
128AC_SUBST(YAT_LIB_LOCATION)
129
130AC_CONFIG_FILES([Makefile
131     doc/Makefile
132     test/Makefile
133     test/data/Makefile
134     yat/Makefile
135     yat/classifier/Makefile
136     yat/random/Makefile
137     yat/regression/Makefile
138     yat/statistics/Makefile
139     yat/utility/Makefile])
140
141AC_OUTPUT
142
143# Only warning about missing programs (needed for docs generation)
144# when in debug mode
145if (test "$enable_debug" == "yes"); then
146   if (test "$DOXYGEN" != "yes") ; then
147      AC_MSG_WARN([Doxygen was not found. Yat will compile and work
148  without doxygen.  However, in order to enable
149  generation of documentation, please install doxygen
150  available at http://www.doxygen.org/])
151   fi       
152   if (test "$LATEX" != "yes") ; then
153      AC_MSG_WARN([latex was not found. Yat will compile and work
154  without latex. However, supporting documentation on
155  statistics used in yat cannot be generated without
156  latex.])
157   fi       
158   if (test "$DVIPDFM" != "yes") ; then
159      AC_MSG_WARN([dvipdfm was not found. Yat will compile and work
160  without dvipdfm. However, pdf document on statistics
161  used in yat cannot be generated without dvipdfm.])
162   fi       
163   if (test "$LATEX2HTML" != "yes") ; then
164      AC_MSG_WARN([latex2html was not found. Yat will compile and work
165  without Latex. However, html document on statistics
166  used in yat cannot be generated without latex.])
167   fi       
168fi
169
170# Some more messages.
171AC_MSG_NOTICE([])
172AC_MSG_NOTICE([ Ready to compile the yat library])
173AC_MSG_NOTICE([ The following flags and libraries will be used:])
174AC_MSG_NOTICE([ +++++++++++++++++++++++++++++++++++++++++++++++])
175AC_MSG_NOTICE([  CPPFLAGS=\"$CPPFLAGS\"])
176AC_MSG_NOTICE([  CXXFLAGS=\"$CXXFLAGS\"])
177AC_MSG_NOTICE([  LIBS=\"$LIBS\"])
178AC_MSG_NOTICE([ +++++++++++++++++++++++++++++++++++++++++++++++])
179AC_MSG_NOTICE([])
180AC_MSG_NOTICE([ Now type 'make ; make check'.])
Note: See TracBrowser for help on using the repository browser.