source: plugins/base1/se.lu.thep.wenni/trunk/configure.ac @ 844

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

Addresses #50, #53. Automatic download of required components. Using external abstract class, updatede INSTALL.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 8.3 KB
Line 
1# Process this file with autoconf to produce a configure script.
2#
3# $Id: configure.ac 844 2008-12-01 16:24:41Z jari $
4#
5# Copyright (C) 2005, 2006 Jari Häkkinen, Peter Johansson
6# Copyright (C) 2007 Peter Johansson
7# Copyright (C) 2008 Jari Häkkinen, Peter Johansson
8#
9# This file is part of WeNNI,
10# http://baseplugins.thep.lu.se/wiki/se.lu.thep.WeNNI
11#
12# WeNNI is free software; you can redistribute it and/or modify it
13# under the terms of the GNU General Public License as published by the
14# Free Software Foundation; either version 3 of the License, or (at
15# your option) any later version.
16#
17# WeNNI is distributed in the hope that it will be useful, but WITHOUT
18# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20# for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with WeNNI. If not, see <http://www.gnu.org/licenses/>.
24#
25# Author: Jari Hakkinen, jari@thep.lu.se
26#
27# If you grabbed the source from subversion you should, at top-level,
28# execute:
29#   ./bootstrap
30#
31
32AC_PREREQ(2.57)
33AC_INIT([wenni],[0.7pre],[jari@thep.lu.se])
34AC_CONFIG_SRCDIR([lib/weight.h])
35AC_CONFIG_AUX_DIR([autotools])
36AC_PREFIX_DEFAULT([/usr/local])
37
38AM_CONFIG_HEADER([config.h])
39AM_INIT_AUTOMAKE
40
41# Set default programming language
42AC_LANG(C++)
43
44# Let user overide default CXXFLAGS
45if test "${CXXFLAGS+set}" != set; then
46  CXXFLAGS=""  # Setting CXXFLAGS here to prevent expansion in AC_PROG_CXX
47fi
48
49# Checks for programs.
50AC_PROG_CXXCPP
51AC_PROG_CXX
52AC_PROG_INSTALL
53AC_PROG_LIBTOOL
54AC_PROG_RANLIB
55AC_PROG_SED
56
57# existence of wget and tar should be checked
58
59AM_CXXFLAGS="-Wall -pedantic"
60AM_CPPFLAGS="-DHAVE_INLINE=1"
61AC_ARG_ENABLE(debug,
62              [AS_HELP_STRING([--enable-debug],
63                              [turn on debug options and code])],
64              [AM_CXXFLAGS="$AM_CXXFLAGS -g -O"],
65              [AM_CXXFLAGS="$AM_CXXFLAGS -O3"
66               AM_CPPFLAGS="$AM_CPPFLAGS -DNDEBUG -DGSL_RANGE_CHECK_OFF"])
67
68AC_ARG_ENABLE(state,
69              [AS_HELP_STRING([--enable-state],
70                              [stand-alone, base1, or base2 [default=base2]])],
71              [ if test "x$enableval" = "xstand-alone" ; then
72                    state="stand-alone"
73                elif test "x$enableval" = "xbase1" ; then
74                    state="base1"
75                elif test "x$enableval" = "xbase2" ; then
76                    state="base2"
77                else
78                    AC_MSG_ERROR([dnl
79Unknown value for `--enable-state'
80allowed values are: `base2', `base1', or `stand-alone'])
81                fi ],
82              [ state="base2" ])
83
84AM_CONDITIONAL([BASE1], [test x$state = xbase1])
85AM_CONDITIONAL([BASE2], [test x$state = xbase2])
86
87AC_ARG_ENABLE(downloadBASE2API,
88              [AS_HELP_STRING([--enable-downloadBASE2API=ARG],
89                              [enable download of required BASE2 API files])],
90              [DOWNLOADBASE2API=true],[DOWNLOADBASE2API=false])
91
92AC_ARG_WITH(basedir,[AS_HELP_STRING([--with-basedir=DIR],
93                                    [root directory for base installation])],
94            [BASEDIR=$withval DOWNLOADBASE2API=false],[BASEDIR=/usr/local/base])
95
96AC_ARG_WITH(plugindir,[AS_HELP_STRING([--with-plugindir=DIR],
97                                      [the base plug-in install directory])],
98            [PLUGINDIR=$withval],
99            [if (test x$state = xbase1); then
100               PLUGINDIR="$BASEDIR/plugins/bin/wenni"
101             elif (test x$state = xbase2); then
102               PLUGINDIR="$BASEDIR/plugins/se/lu/thep/wenni"
103             fi])
104
105if (test x$state = xbase1); then
106  # check for BASE1 API
107  save_CPPFLAGS=$CPPFLAGS;
108  save_LDFLAGS=$LDFLAGS;
109  LDFLAGS="$LDFLAGS -L$BASEDIR/lib"
110  AC_CHECK_LIB([base], [base_finite], [BASELDFLAGS="-L$BASEDIR/lib"],
111               [AC_MSG_FAILURE([cannot find base library])])
112  CPPFLAGS="-I$BASEDIR/include/cxx $CPPFLAGS"
113  AC_CHECK_HEADERS([basefile.h],[BASECPPFLAGS=-I$BASEDIR/include/cxx],
114               [AC_MSG_FAILURE([cannot find base header files])])
115  CPPFLAGS=$save_CPPFLAGS;
116  LDFLAGS=$save_LDFLAGS;
117  AC_SUBST(BASECPPFLAGS)
118  AC_SUBST(BASELDFLAGS)
119  # Set BASE1 plug-in name
120  BASEPLUGINEXECNAME=$PLUGINDIR/wenni.pl
121  AC_SUBST(BASEPLUGINEXECNAME)
122  AC_CONFIG_FILES([base/base1/base_plugin_script/plugin_WeNNI.base])
123elif (test x$state = xbase2); then
124  if (test $DOWNLOADBASE2API = false); then
125    AC_CHECK_FILE([$BASEDIR/www/WEB-INF/lib/BASE2Core.jar], [],
126                  [AC_MSG_FAILURE([cannot find BASE2Core.jar])])
127    JAVACFLAGS+=$BASEDIR/www/WEB-INF/lib/BASE2Core.jar
128    AC_CHECK_FILE([$BASEDIR/www/WEB-INF/lib/BASE2CorePlugins.jar], [],
129                  [AC_MSG_FAILURE([cannot find BASE2CorePlugins.jar])])
130    JAVACFLAGS="$BASEDIR/www/WEB-INF/lib/BASE2CorePlugins.jar:$JAVACFLAGS"
131  fi
132  PLUGINutilitiesURLpart="http://www.thep.lu.se/~jari"
133  PLUGINutilities=AbstractRunBinaryPlugin-0.1pre
134  JAVACFLAGS="$JAVACFLAGS:./$PLUGINutilities/$PLUGINutilities.jar"
135  AC_SUBST(PLUGINutilities)
136  AC_SUBST(PLUGINutilitiesURLpart)
137  AC_SUBST(JAVACFLAGS)
138fi
139if (test x$state = xbase1 || test x$state = xbase2); then
140  # Change binary installation directory, is this kosher?
141  bindir=$PLUGINDIR
142fi
143
144AC_SEARCH_LIBS([sqrt], [m],, AC_MSG_FAILURE([cannot find math library]))
145AC_SEARCH_LIBS([ATL_ctrsv], [atlas],,
146               AC_SEARCH_LIBS(cblas_sdsdot, gslcblas,,
147                        AC_MSG_FAILURE([cannot find cblas library])))
148
149save_LDFLAGS="$LDFLAGS"
150AC_ARG_WITH(gsl,[AS_HELP_STRING([--with-gsl=DIR], [prefix for gsl files])],
151            [GSL_CPPFLAGS="-I$withval/include"; GSL_LDFLAGS="-L$withval/lib"])
152LDFLAGS="$LDFLAGS $GSL_LDFLAGS"
153AC_SEARCH_LIBS([gsl_vector_alloc], [gsl],,
154               AC_MSG_FAILURE([cannot find library GSL]))
155LDFLAGS="$save_LDFLAGS"
156
157AC_SUBST(GSL_LDFLAGS)
158AM_CPPFLAGS="-I\$(top_srcdir)/lib $GSL_CPPFLAGS $AM_CPPFLAGS"
159AC_SUBST(AM_CPPFLAGS)
160AC_SUBST(AM_CXXFLAGS)
161
162CPP_TOOLS_LIBPATH="lib/c++_tools"
163AC_SUBST(CPP_TOOLS_LIBPATH)
164
165AC_CONFIG_FILES([Makefile
166                 base/Makefile
167                 base/base1/Makefile
168                 base/base1/base_plugin_script/Makefile
169                 base/base1/BaseFileConverter/Makefile
170                 base/base2/Makefile
171                 bin/Makefile
172                 bin/NNIFileConverter/Makefile
173                 bin/nni/Makefile
174                 data/Makefile
175                 lib/Makefile
176                 lib/c++_tools/Makefile
177                 lib/c++_tools/gslapi/Makefile
178                 lib/c++_tools/utility/Makefile
179                 test/Makefile])
180
181AC_OUTPUT
182
183# Some more messages.
184AC_MSG_NOTICE([])
185AC_MSG_NOTICE([Ready to build WeNNI package containing])
186AC_MSG_NOTICE([])
187if (test x$state = xbase1); then
188  AC_MSG_NOTICE([BASE1 plug-in files:])
189  AC_MSG_NOTICE([    NNIFileConverter])
190  AC_MSG_NOTICE([    nni])
191  AC_MSG_NOTICE([    BaseFileConverter])
192  AC_MSG_NOTICE([    base_plugin_script])
193  AC_MSG_NOTICE([])
194  AC_MSG_NOTICE([WeNNI plug-in binaries will be installed in])
195  AC_MSG_NOTICE([    $PLUGINDIR ])
196elif (test x$state = xbase2); then
197  AC_MSG_NOTICE([BASE2 plug-in files:])
198  AC_MSG_NOTICE([    nni])
199  AC_MSG_NOTICE([    WeNNI.jar])
200  AC_MSG_NOTICE([    $PLUGINutilities.jar])
201  AC_MSG_NOTICE([])
202  AC_MSG_NOTICE([If not already there, downloading])
203  AC_MSG_NOTICE([    $PLUGINutilitiesURLpart/$PLUGINutilities])
204  AC_MSG_NOTICE([])
205  if (test $DOWNLOADBASE2API = true ); then
206    AC_MSG_NOTICE([Downloading required BASE2 API from ...])
207  else
208    AC_MSG_NOTICE([Using local BASE2 API in directory])
209    AC_MSG_NOTICE([    $BASEDIR])
210  fi
211  AC_MSG_NOTICE([])
212  AC_MSG_NOTICE([WeNNI plug-in binaries will be installed in])
213  AC_MSG_NOTICE([    $PLUGINDIR ])
214else
215  AC_MSG_NOTICE([stand-alone binaries:])
216  AC_MSG_NOTICE([    NNIFileConverter])
217  AC_MSG_NOTICE([    nni])
218fi
219AC_MSG_NOTICE([])
220AC_MSG_NOTICE([The following libs and flags will be used:])
221AC_MSG_NOTICE([+++++++++++++++++++++++++++++++++++++++++++++++])
222AC_MSG_NOTICE([  CPPFLAGS     = $CPPFLAGS $AM_CPPFLAGS])
223AC_MSG_NOTICE([  CXXFLAGS     = $CXXFLAGS $AM_CXXFLAGS])
224AC_MSG_NOTICE([  LDFLAGS      = $LDFLAGS])
225AC_MSG_NOTICE([  LIBS         = $LIBS])
226if (test x$state = xbase1); then
227  AC_MSG_NOTICE([  BASECPPFLAGS = $BASECPPFLAGS])
228  AC_MSG_NOTICE([  BASELDFLAGS  = $BASELDFLAGS])
229elif (test x$state = xbase2); then
230  AC_MSG_NOTICE([  JAVACFLAGS   = $JAVACFLAGS])
231fi
232AC_MSG_NOTICE([+++++++++++++++++++++++++++++++++++++++++++++++])
233AC_MSG_NOTICE([])
234AC_MSG_NOTICE([ Now type 'make ; make check ; make install'.])
Note: See TracBrowser for help on using the repository browser.