source: trunk/configure.ac @ 940

Last change on this file since 940 was 940, checked in by Peter, 16 years ago

fixing problem to find gsl in configure. I suspect the problem was that we used c++ compiler to compile gsl. I have now moved the detection to occur before setting language to c++.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.2 KB
Line 
1## Process this file with autoconf to produce a configure script.
2##
3## $Id: configure.ac 940 2007-10-07 18:27:34Z peter $
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
30AC_PREREQ(2.57)
31AC_INIT([[yat]],[0.4pre],[jari@thep.lu.se])
32AC_CONFIG_SRCDIR([yat/utility/matrix.h])
33AC_CONFIG_AUX_DIR([autotools])
34AC_PREFIX_DEFAULT([/usr/local])
35
36AM_CONFIG_HEADER([config.h])
37AM_INIT_AUTOMAKE($PACKAGE_NAME,$PACKAGE_VERSION,$PACKAGE_BUGREPORT)
38
39# Checks for programs.
40AC_PROG_CXX
41AC_PROG_INSTALL
42
43# Checks for libraries.
44AC_CHECK_LIB(m,main,[MATH_LIB="-lm" LIBS="-lm $LIBS"])
45AC_CHECK_LIB(atlas,ATL_ctrsv,
46  [CBLAS_LIB="-lcblas -latlas"],
47  AC_CHECK_LIB(gslcblas,cblas_sdsdot, \
48    [CBLAS_LIB="-lgslcblas" LIBS="-lgslcblas $LIBS"]))
49AC_CHECK_LIB(gsl,main,[GSL_LIB="-lgsl"])
50AC_SUBST(GSL_LIB)
51AC_SUBST(CBLAS_LIB)
52AC_SUBST(MATH_LIB)
53
54# Set default programming language
55AC_LANG(C++)
56
57# Checks for header files.
58AC_CHECK_HEADERS([unistd.h])
59
60# Checks for typedefs, structures, and compiler characteristics.
61AC_HEADER_STDBOOL
62AC_C_CONST
63AC_C_INLINE
64AC_TYPE_SIZE_T
65
66# Checks for library functions.
67AC_PROG_LIBTOOL
68AC_FUNC_ERROR_AT_LINE
69AC_HEADER_STDC
70AC_CHECK_FUNCS([pow sqrt])
71
72CXXFLAGS="-Wall -pedantic"
73CPPFLAGS="-DHAVE_INLINE=1"
74AC_ARG_ENABLE(debug,
75  [AS_HELP_STRING([--enable-debug],[turn on debug options and code])])
76if test "${enable_debug}" = "yes" ; then
77  CXXFLAGS="$CXXFLAGS -g -O"
78  CPPFLAGS="$CPPFLAGS -DYAT_DEBUG=1"
79else
80  CXXFLAGS="$CXXFLAGS -O3"
81  CPPFLAGS="$CPPFLAGS -DNDEBUG -DGSL_RANGE_CHECK_OFF"
82fi
83
84# check for quiet_NaN support in OS
85# At compile time, but this may not work if quiet_NaN exists and returns
86# an incorrect value
87AC_MSG_CHECKING([for std::numeric_limits<>::quiet_NaN()])
88AC_COMPILE_IFELSE(
89  [AC_LANG_PROGRAM(
90    [#include <limits>
91     extern void f(double);],
92    [f(std::numeric_limits<double>::quiet_NaN())])],
93  [quiet_nan=yes],
94  [quiet_nan=no])
95AC_MSG_RESULT($quiet_nan)
96if test "${quiet_nan}" = "no" ; then
97  AC_MSG_FAILURE([
98    Support for quiet NAN required.
99    Yat will not work on this system!])
100fi
101# At run-time, but this has the disadvantage that yat cannot be built 
102# for cross-compilation
103AC_MSG_CHECKING([if std::numeric_limits<>::has_quiet_NaN is true])
104AC_RUN_IFELSE(
105  [AC_LANG_PROGRAM(
106    [#include <limits>],
107    [return !std::numeric_limits<double>::has_quiet_NaN])],
108  [quiet_nan=yes],
109  [quiet_nan=no])
110AC_MSG_RESULT($quiet_nan)
111if test "${quiet_nan}" = "no" ; then
112  AC_MSG_FAILURE([
113    Support for quiet NAN required.
114    Yat will not work on this system!])
115fi
116
117# yat specific settings
118YAT_LIB="libyat.la"
119YAT_LIB_LOCATION="yat"
120AC_SUBST(YAT_LIB)
121AC_SUBST(YAT_LIB_LOCATION)
122
123AC_CONFIG_FILES([Makefile
124     doc/Makefile
125     test/Makefile
126     test/data/Makefile
127     yat/Makefile
128     yat/classifier/Makefile
129     yat/random/Makefile
130     yat/regression/Makefile
131     yat/statistics/Makefile
132     yat/utility/Makefile])
133
134AC_OUTPUT
135
136# Some more messages.
137AC_MSG_NOTICE([])
138AC_MSG_NOTICE([ Ready to compile the yat library])
139AC_MSG_NOTICE([ The following compilers and flags will be used:])
140AC_MSG_NOTICE([ +++++++++++++++++++++++++++++++++++++++++++++++])
141AC_MSG_NOTICE([  CPPFLAGS=\"$CPPFLAGS\"])
142AC_MSG_NOTICE([  CXXFLAGS=\"$CXXFLAGS\"])
143AC_MSG_NOTICE([  LIBS=\"$LIBS\"])
144AC_MSG_NOTICE([ +++++++++++++++++++++++++++++++++++++++++++++++])
145AC_MSG_NOTICE([])
146AC_MSG_NOTICE([ Now type 'make ; make check'.])
Note: See TracBrowser for help on using the repository browser.