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

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

JAVACFLAGS was a classpath! Correcting and introduced a proper JAVACFLAGS, explicitly setting UTF8 encoding needed for öäå. The MANIFEST.MF for WeNN.jar was not properly generated, corrected.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 9.1 KB
Line 
1# Process this file with autoconf to produce a configure script.
2#
3# $Id: configure.ac 868 2008-12-03 21:43:47Z 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])
37AC_CONFIG_MACRO_DIR([m4])
38
39# Build configuration parameters, change only if you know what you do
40BASE2CoreURL="http://base2.thep.lu.se/base/jars/2.9.0"
41PLUGINutilitiesURL="http://baseplugins.thep.lu.se/attachment/wiki/net.sf.basedb.pluginutilties/PluginUtilities-0.1pre.tgz?format=raw"
42PLUGINutilities=PluginUtilities-0.1pre
43
44AM_CONFIG_HEADER([config.h])
45AM_INIT_AUTOMAKE
46
47# Set default programming language
48AC_LANG(C++)
49
50# Let user overide default CXXFLAGS
51if test "${CXXFLAGS+set}" != set; then
52  CXXFLAGS=""  # Setting CXXFLAGS here to prevent expansion in AC_PROG_CXX
53fi
54
55# Checks for programs.
56AC_PROG_CXXCPP
57AC_PROG_CXX
58AC_PROG_INSTALL
59AC_PROG_LIBTOOL
60AC_PROG_SED
61
62# existence of wget and tar should be checked
63
64AM_CXXFLAGS="-Wall -pedantic"
65AM_CPPFLAGS="-DHAVE_INLINE=1"
66AC_ARG_ENABLE(debug,
67              [AS_HELP_STRING([--enable-debug],
68                              [turn on debug options and code])],
69              [AM_CXXFLAGS="$AM_CXXFLAGS -g -O"],
70              [AM_CXXFLAGS="$AM_CXXFLAGS -O3"
71               AM_CPPFLAGS="$AM_CPPFLAGS -DNDEBUG -DGSL_RANGE_CHECK_OFF"])
72
73AC_ARG_ENABLE(state,
74              [AS_HELP_STRING([--enable-state],
75                              [stand-alone, base1, or base2 [default=base2]])],
76              [ if test "x$enableval" = "xstand-alone" ; then
77                    state="stand-alone"
78                elif test "x$enableval" = "xbase1" ; then
79                    state="base1"
80                elif test "x$enableval" = "xbase2" ; then
81                    state="base2"
82                else
83                    AC_MSG_ERROR([dnl
84Unknown value for `--enable-state'
85allowed values are: `base2', `base1', or `stand-alone'])
86                fi ],
87              [ state="base2" ])
88
89AC_DEFINE_UNQUOTED([WeNNI_STATE], ["$state"],
90                   [defined to configured state - base1, base2, or stand-alone])
91AM_CONDITIONAL([BASE1], [test x$state = xbase1])
92AM_CONDITIONAL([BASE2], [test x$state = xbase2])
93
94AC_ARG_ENABLE(downloadBASE2API,
95              [AS_HELP_STRING([--enable-downloadBASE2API=ARG],
96                              [enable download of required BASE2 API files])],
97              [DOWNLOADBASE2API=true],[DOWNLOADBASE2API=false])
98AC_ARG_WITH(basedir,[AS_HELP_STRING([--with-basedir=DIR],
99                                    [root directory for base installation])],
100            [BASEDIR=$withval DOWNLOADBASE2API=false],
101            [BASEDIR=/usr/local/base DOWNLOADBASE2API=true])
102AM_CONDITIONAL([DOWNLOADBASEAPI], [test $DOWNLOADBASE2API = true])
103
104AC_ARG_WITH(plugindir,[AS_HELP_STRING([--with-plugindir=DIR],
105                                      [the base plug-in install directory])],
106            [PLUGINDIR=$withval],
107            [PLUGINDIR=$bindir
108             if (test x$state = xbase1); then
109               PLUGINDIR="$BASEDIR/plugins/bin/wenni"
110             elif (test x$state = xbase2); then
111               PLUGINDIR="$BASEDIR/plugins/se/lu/thep/wenni"
112             fi])
113AC_SUBST(PLUGINDIR)
114
115if (test x$state = xbase1); then
116  # check for BASE1 API
117  save_CPPFLAGS=$CPPFLAGS;
118  save_LDFLAGS=$LDFLAGS;
119  LDFLAGS="$LDFLAGS -L$BASEDIR/lib"
120  AC_CHECK_LIB([base], [base_finite], [BASELDFLAGS="-L$BASEDIR/lib"],
121               [AC_MSG_FAILURE([cannot find base library])])
122  CPPFLAGS="-I$BASEDIR/include/cxx $CPPFLAGS"
123  AC_CHECK_HEADERS([basefile.h],[BASECPPFLAGS=-I$BASEDIR/include/cxx],
124               [AC_MSG_FAILURE([cannot find base header files])])
125  CPPFLAGS=$save_CPPFLAGS;
126  LDFLAGS=$save_LDFLAGS;
127  AC_SUBST(BASECPPFLAGS)
128  AC_SUBST(BASELDFLAGS)
129  # Set BASE1 plug-in name
130  BASEPLUGINEXECNAME=$PLUGINDIR/wenni.pl
131  AC_SUBST(BASEPLUGINEXECNAME)
132  AC_CONFIG_FILES([base/base1/base_plugin_script/plugin_WeNNI.base])
133elif (test x$state = xbase2); then
134  AC_PROG_JAVAC   
135  AC_PROG_JAR   
136  JAVACFLAGS="-encoding UTF8"
137  if (test $DOWNLOADBASE2API = false); then
138    AC_CHECK_FILE([$BASEDIR/www/WEB-INF/lib/BASE2Core.jar], [],
139                  [AC_MSG_FAILURE([cannot find BASE2Core.jar])])
140    JAVACCLASSPATH+=$BASEDIR/www/WEB-INF/lib/BASE2Core.jar
141    AC_CHECK_FILE([$BASEDIR/www/WEB-INF/lib/BASE2CorePlugins.jar], [],
142                  [AC_MSG_FAILURE([cannot find BASE2CorePlugins.jar])])
143    JAVACCLASSPATH="$BASEDIR/www/WEB-INF/lib/BASE2CorePlugins.jar:$JAVACCLASSPATH"
144  else
145    JAVACCLASSPATH="./BaseCoreAPI/BASE2CorePlugins.jar:BaseCoreAPI/BASE2Core.jar:$JAVACCLASSPATH"
146  fi
147  JAVACCLASSPATH="$JAVACCLASSPATH:./$PLUGINutilities/$PLUGINutilities.jar"
148  AC_SUBST(PLUGINutilities)
149  AC_SUBST(PLUGINutilitiesURL)
150  AC_SUBST(BASE2CoreURL)
151  AC_SUBST(JAVACFLAGS)
152  AC_SUBST(JAVACCLASSPATH)
153fi
154
155AC_SEARCH_LIBS([sqrt], [m],, AC_MSG_FAILURE([cannot find math library]))
156AC_SEARCH_LIBS([ATL_ctrsv], [atlas],,
157               AC_SEARCH_LIBS(cblas_sdsdot, gslcblas,,
158                        AC_MSG_FAILURE([cannot find cblas library])))
159
160save_LDFLAGS="$LDFLAGS"
161AC_ARG_WITH(gsl,[AS_HELP_STRING([--with-gsl=DIR], [prefix for gsl files])],
162            [GSL_CPPFLAGS="-I$withval/include"; GSL_LDFLAGS="-L$withval/lib"])
163LDFLAGS="$LDFLAGS $GSL_LDFLAGS"
164AC_SEARCH_LIBS([gsl_vector_alloc], [gsl],,
165               AC_MSG_FAILURE([cannot find library GSL]))
166LDFLAGS="$save_LDFLAGS"
167
168AC_SUBST(GSL_LDFLAGS)
169AM_CPPFLAGS="-I\$(top_srcdir)/lib $GSL_CPPFLAGS $AM_CPPFLAGS"
170AC_SUBST(AM_CPPFLAGS)
171AC_SUBST(AM_CXXFLAGS)
172
173CPP_TOOLS_LIBPATH="lib/c++_tools"
174AC_SUBST(CPP_TOOLS_LIBPATH)
175
176AC_CONFIG_FILES([Makefile
177                 base/Makefile
178                 base/base1/Makefile
179                 base/base1/base_plugin_script/Makefile
180                 base/base1/BaseFileConverter/Makefile
181                 base/base2/Makefile
182                 bin/Makefile
183                 bin/NNIFileConverter/Makefile
184                 bin/nni/Makefile
185                 data/Makefile
186                 lib/Makefile
187                 lib/c++_tools/Makefile
188                 lib/c++_tools/gslapi/Makefile
189                 lib/c++_tools/utility/Makefile
190                 test/Makefile])
191
192AC_OUTPUT
193
194
195# Some more messages.
196AC_MSG_NOTICE([])
197AC_MSG_NOTICE([Ready to build WeNNI package containing])
198AC_MSG_NOTICE([])
199if (test x$state = xbase1); then
200  AC_MSG_NOTICE([BASE1 plug-in files:])
201  AC_MSG_NOTICE([    NNIFileConverter])
202  AC_MSG_NOTICE([    nni])
203  AC_MSG_NOTICE([    BaseFileConverter])
204  AC_MSG_NOTICE([    wenni.pl])
205  AC_MSG_NOTICE([])
206  AC_MSG_NOTICE([WeNNI plug-in binaries will be installed in])
207  AC_MSG_NOTICE([    $PLUGINDIR ])
208elif (test x$state = xbase2); then
209  AC_MSG_NOTICE([BASE2 plug-in files:])
210  AC_MSG_NOTICE([    nni])
211  AC_MSG_NOTICE([    WeNNI.jar])
212  AC_MSG_NOTICE([    $PLUGINutilities.jar])
213  AC_MSG_NOTICE([])
214  AC_MSG_NOTICE([If not already done, downloading])
215  AC_MSG_NOTICE([    $PLUGINutilitiesURL])
216  if (test $DOWNLOADBASE2API = true ); then
217    AC_MSG_NOTICE([    BASE2 libraries from $BASE2CoreURL])
218  else
219    AC_MSG_NOTICE([])
220    AC_MSG_NOTICE([Using local BASE2 API in directory])
221    AC_MSG_NOTICE([    $BASEDIR])
222  fi
223  AC_MSG_NOTICE([])
224  AC_MSG_NOTICE([WeNNI plug-in binaries will be installed in])
225  AC_MSG_NOTICE([    $PLUGINDIR ])
226else
227  AC_MSG_NOTICE([stand-alone binaries:])
228  AC_MSG_NOTICE([    NNIFileConverter])
229  AC_MSG_NOTICE([    nni])
230  AC_MSG_NOTICE([])
231  AC_MSG_NOTICE([binaries will be installed in])
232  AC_MSG_NOTICE([    $bindir])
233fi
234AC_MSG_NOTICE([])
235AC_MSG_NOTICE([The following libs and flags will be used:])
236AC_MSG_NOTICE([+++++++++++++++++++++++++++++++++++++++++++++++])
237AC_MSG_NOTICE([  CPPFLAGS     = $CPPFLAGS $AM_CPPFLAGS])
238AC_MSG_NOTICE([  CXXFLAGS     = $CXXFLAGS $AM_CXXFLAGS])
239AC_MSG_NOTICE([  LDFLAGS      = $LDFLAGS])
240AC_MSG_NOTICE([  LIBS         = $LIBS])
241if (test x$state = xbase1); then
242  AC_MSG_NOTICE([  BASECPPFLAGS = $BASECPPFLAGS])
243  AC_MSG_NOTICE([  BASELDFLAGS  = $BASELDFLAGS])
244elif (test x$state = xbase2); then
245  AC_MSG_NOTICE([  JAVACFLAGS     = $JAVACFLAGS])
246  AC_MSG_NOTICE([  JAVACCLASSPATH = $JAVACCLASSPATH])
247fi
248AC_MSG_NOTICE([+++++++++++++++++++++++++++++++++++++++++++++++])
249AC_MSG_NOTICE([])
250if (test x$state = xbase1 || test x$state = xbase2); then
251  AC_MSG_NOTICE([ Now type 'make ; make check ; make install-plugin'.])
252else
253  AC_MSG_NOTICE([ Now type 'make ; make check ; make install'.])
254fi
Note: See TracBrowser for help on using the repository browser.