source: git/m4/ntl-check.m4 @ 54561a

spielwiese
Last change on this file since 54561a was 54561a, checked in by Hans Schoenemann <hannes@…>, 2 years ago
NTL_CPPFLGAS -> NTL_CXXFLAGS (-stdc0..), NTL_CPPFLAGS (-I..)
  • Property mode set to 100644
File size: 4.2 KB
Line 
1# Check for NTL
2# Bradford Hovinen, 2001-06-13
3# Modified by Pascal Giorgi, 2003-12-03
4# Inspired by gnome-bonobo-check.m4 by Miguel de Icaza, 99-04-12
5# Stolen from Chris Lahey       99-2-5
6# stolen from Manish Singh again
7# stolen back from Frank Belew
8# stolen from Manish Singh
9# Shamelessly stolen from Owen Taylor
10
11dnl LB_CHECK_NTL ([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
12dnl
13dnl Test for Victor Shoup's NTL (Number Theory Library) and define
14dnl NTL_CPPFLAGS and NTL_LIBS
15
16AC_DEFUN([LB_CHECK_NTL],
17[
18AC_REQUIRE([SING_DEFAULT_CHECKING_PATH])
19
20AC_ARG_WITH(ntl,
21[  --with-ntl=<path>|yes|no  Use NTL library. If argument is no, you do not have
22                            the library installed on your machine (set as
23                            default). If argument is yes or <empty> that means
24                            the library is reachable with the standard search
25                            path (/usr or /usr/local). Otherwise you give the
26                            <path> to the directory which contain the library.
27             ],
28             [if test "$withval" = yes ; then
29                        NTL_HOME_PATH="DEFAULTS ${DEFAULT_CHECKING_PATH}"
30              elif test "$withval" != no ; then
31                        NTL_HOME_PATH="$withval"
32                        NTL_SHOULD_BE_PRESENT="yes"
33             fi],
34             [NTL_HOME_PATH="DEFAULTS ${DEFAULT_CHECKING_PATH}"])
35
36min_ntl_version=ifelse([$1], ,1.0,$1)
37
38
39dnl Check for existence
40BACKUP_CXXFLAGS=${CXXFLAGS}
41BACKUP_CFLAGS=${CFLAGS}
42BACKUP_LIBS=${LIBS}
43
44AC_LANG_PUSH(C++)
45
46if test -n "$NTL_HOME_PATH"; then
47AC_MSG_CHECKING(for NTL >= $min_ntl_version)
48fi
49
50for NTL_HOME in ${NTL_HOME_PATH}
51 do
52        if test "$NTL_HOME" != "DEFAULTS"; then
53                NTL_CPPFLAGS="-I${NTL_HOME}/include"
54                NTL_CXXFLAGS=""
55                NTL_LIBS="-L${NTL_HOME}/lib -lntl"
56        else
57                NTL_CPPFLAGS=""
58                NTL_CXXFLAGS=""
59                NTL_LIBS="-lntl"
60        fi
61        CXXFLAGS="${NTL_CPPFLAGS} ${GMP_CPPFLAGS} ${BACKUP_CXXFLAGS}"
62        LIBS="${NTL_LIBS} ${GMP_LIBS} ${BACKUP_LIBS}"
63
64        AC_TRY_LINK(
65        [#include <NTL/ZZ.h>],
66        [NTL::ZZ a;],
67        [
68        AC_TRY_RUN(
69        [#include <NTL/version.h>
70        #include <NTL/config.h>
71        #ifndef NTL_GMP_LIP
72        int main() {return -1;}
73        #else
74        int main () { if (NTL_MAJOR_VERSION < 5) return -1; else return 0;}
75        #endif
76        ],[
77        ntl_found="yes"
78        break
79        ],[
80        ntl_problem="$problem $NTL_HOME"
81        unset NTL_CPPFLAGS
82        unset NTL_LIBS
83        ],[
84        ntl_found="yes"
85        ntl_cross="yes"
86        break
87        ])
88        ],
89        [
90        ntl_found="no"
91        unset NTL_CPPFLAGS
92        unset NTL_LIBS
93        ])
94dnl try again with -std=c++11 (for NTL >=10 with threads)
95        if test "$NTL_HOME" != "DEFAULTS"; then
96                NTL_CPPFLAGS="-I${NTL_HOME}/include"
97                NTL_CXXFLAGS="-std=c++11"
98                NTL_LIBS="-L${NTL_HOME}/lib -lntl"
99        else
100                NTL_CPPFLAGS=""
101                NTL_CXXFLAGS="-std=c++11"
102                NTL_LIBS="-lntl"
103        fi
104        CXXFLAGS="${NTL_CXXFLAGS} ${NTL_CPPFLAGS} ${BACKUP_CXXFLAGS} ${GMP_CPPFLAGS}"
105        LIBS="${NTL_LIBS} ${GMP_LIBS} ${BACKUP_LIBS}"
106
107        AC_TRY_LINK(
108        [#include <NTL/ZZ.h>],
109        [NTL::ZZ a;],
110        [
111        AC_TRY_RUN(
112        [#include <NTL/version.h>
113        #include <NTL/config.h>
114        #ifndef NTL_GMP_LIP
115        int main() {return -1;}
116        #else
117        int main () { if (NTL_MAJOR_VERSION < 5) return -1; else return 0;}
118        #endif
119        ],[
120        ntl_found="yes"
121        break
122        ],[
123        ntl_problem="$problem $NTL_HOME"
124        unset NTL_CPPFLAGS
125        unset NTL_LIBS
126        ],[
127        ntl_found="yes"
128        ntl_cross="yes"
129        break
130        ])
131        ],
132        [
133        ntl_found="no"
134        unset NTL_CPPFLAGS
135        unset NTL_LIBS
136        ])
137done
138
139if test "x$ntl_found" = "xyes" ; then
140        AC_SUBST(NTL_CPPFLAGS)
141        AC_SUBST(NTL_LIBS)
142        AC_DEFINE(HAVE_NTL,1,[Define if NTL is installed])
143        HAVE_NTL=yes
144        if test "x$ntl_cross" != "xyes"; then
145                AC_MSG_RESULT(found)
146        else
147                AC_MSG_RESULT(unknown)
148                AC_MSG_WARN("WARNING: You appear to be cross compiling, so there is no way to determine")
149                AC_MSG_WARN("whether your NTL version is new enough. I am assuming it is.")
150        fi
151        ifelse([$2], , :, [$2])
152elif test -n "$ntl_problem"; then
153        AC_MSG_RESULT(problem)
154        echo "Sorry, your NTL version is too old or not configured with NTL_GMP_LIP=on. Disabling."
155        ifelse([$3], , :, [$3])
156elif test   "x$ntl_found" = "xno";  then
157        if test "x$NTL_SHOULD_BE_PRESENT" = "xyes"; then
158                AC_MSG_ERROR([NTL support was requested but NTL could not be detected])
159        fi
160        AC_MSG_RESULT(not found)
161        ifelse([$3], , :, [$3])
162fi
163
164AC_LANG_POP
165
166AM_CONDITIONAL(SING_HAVE_NTL, test "x$HAVE_NTL" = "xyes")
167
168# TODO: The following seems to set CXXFLAGS even if it was not defined previously!!!!
169CXXFLAGS=${BACKUP_CXXFLAGS}
170LIBS=${BACKUP_LIBS}
171#unset LD_LIBRARY_PATH
172
173])
174
Note: See TracBrowser for help on using the repository browser.