root/juggler/trunk/macros/jccl.m4

Revision 20974, 7.6 kB (checked in by patrick, 8 months ago)

Copyright update.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 dnl ************* <auto-copyright.pl BEGIN do not edit this line> *************
2 dnl
3 dnl VR Juggler is (C) Copyright 1998-2008 by Iowa State University
4 dnl
5 dnl Original Authors:
6 dnl   Allen Bierbaum, Christopher Just,
7 dnl   Patrick Hartling, Kevin Meinert,
8 dnl   Carolina Cruz-Neira, Albert Baker
9 dnl
10 dnl This library is free software; you can redistribute it and/or
11 dnl modify it under the terms of the GNU Library General Public
12 dnl License as published by the Free Software Foundation; either
13 dnl version 2 of the License, or (at your option) any later version.
14 dnl
15 dnl This library is distributed in the hope that it will be useful,
16 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
17 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 dnl Library General Public License for more details.
19 dnl
20 dnl You should have received a copy of the GNU Library General Public
21 dnl License along with this library; if not, write to the
22 dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 dnl Boston, MA 02111-1307, USA.
24 dnl
25 dnl ************** <auto-copyright.pl END do not edit this line> **************
26
27 dnl ---------------------------------------------------------------------------
28 dnl NOTE: This should not be called by external code.
29 dnl ---------------------------------------------------------------------------
30 AC_DEFUN([_JCCL_PATH_SETUP],
31 [
32     dnl Get the cflags and libraries from the flagpoll script
33     AC_ARG_WITH(jccl-meta-file,
34                 [  --with-jccl-meta-file=<PATH>
35                           Flagpoll metadata file for JCCL
36                           (optional)                      [No default]],
37                 [jccl_meta_file="$withval"], [jccl_meta_file=""])
38
39     dnl See if the user specified where to find the JCCL meta file. If not,
40     dnl take a guess.
41     if test "x$jccl_meta_file" != "x" ; then
42         jccl_meta_dir=`dirname $jccl_meta_file`
43         jccl_flagpoll_args="--extra-paths=$jccl_meta_dir jccl --from-file=$jccl_meta_file"
44     elif test -f "$instlinks/share/flagpoll/jccl.fpc" ; then
45         jccl_meta_dir="$instlinks/share/flagpoll"
46         jccl_flagpoll_args="--extra-paths=$jccl_meta_dir jccl --from-file=$jccl_meta_dir/jccl.fpc"
47     else
48         jccl_flagpoll_args="jccl"
49     fi
50
51     AM_PATH_FLAGPOLL([0.9.1], ,
52                      [AC_MSG_ERROR(*** Flagpoll required for JCCL flags ***)])
53
54     dnl Do a sanity check to ensure that $FLAGPOLL actually works.
55     if ! (eval $FLAGPOLL --help >/dev/null 2>&1) 2>&1 ; then
56         FLAGPOLL='no'
57         echo "*** Flagpoll is required to build JCCL."
58         echo "*** Please check that the PATH variable is set to "
59         echo "*** include the proper path to flagpoll."
60     fi
61 ])
62
63 dnl ---------------------------------------------------------------------------
64 dnl _JCCL_VERSION_CHECK(minimum-version, [action-if-found [, action-if-not-found]])
65 dnl NOTE: This should not be called by external code.
66 dnl ---------------------------------------------------------------------------
67 AC_DEFUN([_JCCL_VERSION_CHECK],
68 [
69    DPP_PREREQ([2.0.1])
70
71    AC_REQUIRE([_JCCL_PATH_SETUP])
72
73    if test "x$FLAGPOLL" = "xno" ; then
74       ifelse([$3], , :, [$3])
75    else
76       if ! (eval $FLAGPOLL $jccl_flagpoll_args --modversion >/dev/null 2>&1)
77       then
78          AC_MSG_ERROR([*** Flagpoll has no valid JCCL configuration ***])
79          ifelse([$3], , :, [$3])
80       else
81          JCCL_VERSION=`$FLAGPOLL $jccl_flagpoll_args --modversion`
82
83          min_jccl_version=ifelse([$1], ,0.0.1,[$1])
84          DPP_VERSION_CHECK_MSG_NO_CACHE([JCCL], [$JCCL_VERSION],
85                                         [$min_jccl_version], [$2], [$3])
86       fi
87    fi
88
89    AC_SUBST(JCCL_VERSION)
90 ])
91
92 dnl ---------------------------------------------------------------------------
93 dnl JCCL_PATH_CXX([minimum-version, [action-if-found [, action-if-not-found]]])
94 dnl
95 dnl Tests for JCCL C++ API and then defines the following variables:
96 dnl     JCCL_CXXFLAGS
97 dnl     JCCL_LIBS
98 dnl     JCCL_LIBS_STATIC
99 dnl     JCCL_PROF_LIBS
100 dnl     JCCL_PROF_LIBS_STATIC
101 dnl ---------------------------------------------------------------------------
102 AC_DEFUN([JCCL_PATH_CXX],
103 [
104    AC_REQUIRE([_JCCL_PATH_SETUP])
105
106    JCCL_CXXFLAGS=""
107    JCCL_LIBS=""
108    JCCL_LIBS_STATIC=""
109    JCCL_PROF_LIBS=""
110    JCCL_PROF_LIBS_STATIC=""
111
112    if test "x$FLAGPOLL" = "xno" ; then
113       ifelse([$3], , :, [$3])
114    else
115       AC_MSG_CHECKING([whether JCCL C++ API is available])
116       has_cxx=`$FLAGPOLL $jccl_flagpoll_args --get-cxx-api-available`
117
118       if test "x$has_cxx" = "xY" ; then
119          AC_MSG_RESULT([yes])
120          if test "x$JCCL_VERSION" = "x" ; then
121             _JCCL_VERSION_CHECK($1, [jccl_version_okay='yes'],
122                                  [jccl_version_okay='no'
123                                   $3])
124          fi
125
126          if test "x$jccl_version_okay" = "xyes" ; then
127             JCCL_CXXFLAGS=`$FLAGPOLL $jccl_flagpoll_args --cflags `
128             JCCL_LIBS=`$FLAGPOLL $jccl_flagpoll_args --libs`
129             JCCL_EXTRA_LIBS=`$FLAGPOLL $jccl_flagpoll_args --get-extra-libs`
130             JCCL_PROF_LIBS=`$FLAGPOLL $jccl_flagpoll_args --get-profiled-libs`
131             JCCL_LIBS_STATIC=`$FLAGPOLL $jccl_flagpoll_args --get-static-libs`
132             JCCL_PROF_LIBS_STATIC=`$FLAGPOLL $jccl_flagpoll_args --get-profiled-static-libs`
133             JCCL_DATA_SUBDIR=`$FLAGPOLL $jccl_flagpoll_args --get-jccl-data-subdir`
134             JCCL_PLUGIN_SUBDIR=`$FLAGPOLL $jccl_flagpoll_args --get-jccl-plugin-subdir`
135
136             ifelse([$2], , :, [$2])
137          fi
138       else
139          AC_MSG_RESULT([no])
140          ifelse([$3], , :, [$3])
141       fi
142    fi
143
144    AC_SUBST([JCCL_CXXFLAGS])
145    AC_SUBST([JCCL_LIBS])
146    AC_SUBST([JCCL_PROF_LIBS])
147    AC_SUBST([JCCL_LIBS_STATIC])
148    AC_SUBST([JCCL_PROF_LIBS_STATIC])
149    AC_SUBST([JCCL_EXTRA_LIBS])
150    AC_SUBST([JCCL_DATA_SUBDIR])
151    AC_SUBST([JCCL_PLUGIN_SUBDIR])
152 ])
153
154 dnl ---------------------------------------------------------------------------
155 dnl JCCL_PATH_JAVA([minimum-version, [action-if-found [, action-if-not-found]]])
156 dnl
157 dnl Tests for JCCL Java API and then defines the following variables:
158 dnl     JCCL_JARS
159 dnl ---------------------------------------------------------------------------
160 AC_DEFUN([JCCL_PATH_JAVA],
161 [
162    AC_REQUIRE([_JCCL_PATH_SETUP])
163
164    JCCL_JARS=''
165
166    if test "x$FLAGPOLL" = "xno" ; then
167       ifelse([$3], , :, [$3])
168    else
169       AC_MSG_CHECKING([whether JCCL Java API is available])
170       has_java=`$FLAGPOLL $jccl_flagpoll_args --get-java-api-available`
171
172       if test "x$has_java" = "xY" ; then
173          AC_MSG_RESULT([yes])
174          if test "x$JCCL_VERSION" = "x" ; then
175             _JCCL_VERSION_CHECK($1, [jccl_version_okay='yes'],
176                                  [jccl_version_okay='no'
177                                   $3])
178          fi
179
180          if test "x$jccl_version_okay" = "xyes" ; then
181             JCCL_JARS=`$FLAGPOLL $jccl_flagpoll_args --get-jars`
182             JCCL_DATA_SUBDIR=`$FLAGPOLL $jccl_flagpoll_args --get-jccl-data-subdir`
183
184             ifelse([$2], , :, [$2])
185          fi
186       else
187          AC_MSG_RESULT([no])
188          ifelse([$3], , :, [$3])
189       fi
190    fi
191
192    AC_SUBST([JCCL_JARS])
193    AC_SUBST([JCCL_DATA_SUBDIR])
194 ])
195
196 dnl ---------------------------------------------------------------------------
197 dnl JCCL_PATH([minimum-version, [action-if-found [, action-if-not-found]]])
198 dnl
199 dnl Tests for JCCL C++ and Java APIs and then defines the following
200 dnl variables:
201 dnl     JCCL_CXXFLAGS
202 dnl     JCCL_LIBS
203 dnl     JCCL_LIBS_STATIC
204 dnl     JCCL_PROF_LIBS
205 dnl     JCCL_PROF_LIBS_STATIC
206 dnl     JCCL_JARS
207 dnl ---------------------------------------------------------------------------
208 AC_DEFUN([JCCL_PATH],
209 [
210    JCCL_PATH_CXX($1, [jccl_have_cxx='yes'], $3)
211
212    if test "x$jccl_have_cxx" = "xyes" ; then
213       JCCL_PATH_JAVA($1, $2, $3)
214    fi
215 ])
Note: See TracBrowser for help on using the browser.