1 |
dnl Process this file with autoconf to produce a configure script. |
dnl Process this file with autoconf to produce a configure script. |
2 |
dnl |
dnl |
3 |
dnl COPYRIGHT (c) 2012 The Diderot Project |
dnl This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu) |
4 |
|
dnl |
5 |
|
dnl COPYRIGHT (c) 2016 The University of Chicago |
6 |
dnl All rights reserved. |
dnl All rights reserved. |
7 |
dnl |
dnl |
8 |
|
|
9 |
AC_INIT(diderot,0.1,) |
AC_INIT(diderot,1.0,) |
10 |
|
|
11 |
AC_PREREQ(2.60) |
AC_PREREQ(2.60) |
12 |
AC_COPYRIGHT([[COPYRIGHT (c) 2012 The Diderot Project (http://diderot-language.cs.uchicago.edu)]]) |
AC_COPYRIGHT([[COPYRIGHT (c) 2016 The University of Chicago]]) |
13 |
AC_CONFIG_SRCDIR(src/dnorm/dnorm.c) |
AC_CONFIG_SRCDIR(src/compiler/options/ctl.sml) |
14 |
AC_CONFIG_AUX_DIR(config) |
AC_CONFIG_AUX_DIR(config) |
15 |
AC_CONFIG_MACRO_DIR(config) |
AC_CONFIG_MACRO_DIR(config) |
16 |
|
|
17 |
dnl |
dnl |
18 |
|
dnl set the following to the name of the branch |
19 |
|
dnl |
20 |
|
BRANCH="vis15" |
21 |
|
AC_SUBST(BRANCH) |
22 |
|
|
23 |
|
dnl |
24 |
dnl include additional macros |
dnl include additional macros |
25 |
dnl |
dnl |
26 |
sinclude(config/acx_pthread.m4) |
sinclude(config/acx_pthread.m4) |
27 |
sinclude(config/check_smlnj.m4) |
sinclude(config/check_smlnj.m4) |
28 |
sinclude(config/check_smlnj_heap_suffix.m4) |
sinclude(config/check_smlnj_heap_suffix.m4) |
29 |
sinclude(config/ax_check_framework.m4) |
sinclude(config/ax_check_framework.m4) |
30 |
|
sinclude(config/ax_cxx_compile_stdcxx.m4) |
31 |
|
|
32 |
dnl |
dnl |
33 |
dnl get host information |
dnl get host information |
34 |
dnl |
dnl |
35 |
AC_CANONICAL_HOST |
AC_CANONICAL_HOST |
36 |
|
|
37 |
|
#################### Paths configuration #################### |
38 |
|
|
39 |
|
DIDEROT_ROOT=`pwd` |
40 |
|
DIDEROT_DOCDIR=$DIDEROT_ROOT/doc |
41 |
|
DIDEROT_SRCDIR=$DIDEROT_ROOT/src |
42 |
|
DIDEROT_LIBDIR=$DIDEROT_ROOT/lib |
43 |
|
DIDEROT_BINDIR=$DIDEROT_ROOT/bin |
44 |
|
DIDEROT_MKDIR=$DIDEROT_ROOT/mk |
45 |
|
|
46 |
|
AC_SUBST(DIDEROT_ROOT) |
47 |
|
AC_SUBST(DIDEROT_DOCDIR) |
48 |
|
AC_SUBST(DIDEROT_SRCDIR) |
49 |
|
AC_SUBST(DIDEROT_LIBDIR) |
50 |
|
AC_SUBST(DIDEROT_BINDIR) |
51 |
|
AC_SUBST(DIDEROT_MKDIR) |
52 |
|
|
53 |
|
#################### end Paths configuration #################### |
54 |
|
|
55 |
dnl check for standard programs |
dnl check for standard programs |
56 |
dnl |
dnl |
|
AC_PROG_CC([clang gcc cc]) |
|
57 |
AC_PROG_CPP |
AC_PROG_CPP |
58 |
|
AC_PROG_CC([clang gcc cc]) |
59 |
|
AC_PROG_CXX([clang++ g++ c++]) |
60 |
|
AX_CXX_COMPILE_STDCXX(11,[],[mandatory]) |
61 |
AC_PROG_INSTALL |
AC_PROG_INSTALL |
62 |
AC_PROG_MAKE_SET |
AC_PROG_MAKE_SET |
63 |
|
|
69 |
fi |
fi |
70 |
AC_SUBST(LD) |
AC_SUBST(LD) |
71 |
|
|
72 |
dnl check for c99 support |
dnl extra compiler options |
73 |
dnl |
dnl |
74 |
AC_PROG_CC_C99 |
CXXFLAGS_BASE="-Wreturn-type -Wuninitialized" |
75 |
if test x"$ac_cv_prog_cc_c99" = xno ; then |
|
76 |
AC_MSG_ERROR([Diderot requires c99 support]) |
AC_ARG_ENABLE([32-bit], |
77 |
|
AC_HELP_STRING([--enable-32-bit], [configure Diderot to produce 32-bit executables]), |
78 |
|
[CXXFLAG_Mxx="-m32"], |
79 |
|
[CXXFLAG_Mxx="-m64"]) |
80 |
|
if test x"$CXX" != "xclang++" ; then |
81 |
|
CXXFLAGS_BASE="$CXXFLAGS_BASE -fno-implicit-templates" |
82 |
fi |
fi |
83 |
|
|
84 |
dnl extra C compiler options |
CXXFLAGS="$CXXFLAG_Mxx $CXXFLAGS_BASE" |
85 |
dnl |
AC_SUBST(CXXFLAG_Mxx) |
86 |
CFLAGS="" |
AC_SUBST(CXXFLAGS_BASE) |
|
CFLAG_M64="-m64" |
|
|
CFLAGS_BASE="-Wformat -Wreturn-type -Wuninitialized" |
|
|
AC_SUBST(CFLAG_M64) |
|
|
AC_SUBST(CFLAGS_BASE) |
|
87 |
|
|
88 |
dnl |
dnl |
89 |
dnl standard headers |
dnl run the compiler tests in 64-bit mode |
90 |
dnl |
dnl |
91 |
AC_HEADER_STDBOOL |
save_CFLAGS=$CFLAGS |
92 |
|
CFLAGS="$CFLAGS $CFLAG_MXX" |
93 |
|
|
94 |
dnl |
dnl |
95 |
dnl check for pthreads support |
dnl check for gcc builtin atomic operations |
96 |
dnl |
dnl |
97 |
ACX_PTHREAD |
AC_MSG_CHECKING([for builtin atomic operations]) |
98 |
|
AC_LINK_IFELSE( |
99 |
|
[AC_LANG_PROGRAM([], [int foo1; int foo2 = __sync_fetch_and_add(&foo1, 1);])], |
100 |
|
AC_MSG_RESULT(yes) |
101 |
|
AC_DEFINE( |
102 |
|
[HAVE_BUILTIN_ATOMIC_OPS], 1, |
103 |
|
[Define to 1 if gcc compiler provides atomic operations.]), |
104 |
|
AC_MSG_RESULT(no)) |
105 |
|
|
106 |
|
AC_C_BIGENDIAN |
107 |
|
|
108 |
|
# |
109 |
|
# determine the sizes of the standard C types |
110 |
|
AC_CHECK_SIZEOF([int]) |
111 |
|
SIZEOF_C_INT=$ac_cv_sizeof_int |
112 |
|
AC_CHECK_SIZEOF([long]) |
113 |
|
SIZEOF_C_LONG=$ac_cv_sizeof_long |
114 |
|
AC_CHECK_SIZEOF([float]) |
115 |
|
SIZEOF_C_FLOAT=$ac_cv_sizeof_float |
116 |
|
AC_CHECK_SIZEOF([double]) |
117 |
|
SIZEOF_C_DOUBLE=$ac_cv_sizeof_double |
118 |
|
|
119 |
|
AC_SUBST(SIZEOF_C_INT) |
120 |
|
AC_SUBST(SIZEOF_C_LONG) |
121 |
|
AC_SUBST(SIZEOF_C_FLOAT) |
122 |
|
AC_SUBST(SIZEOF_C_DOUBLE) |
123 |
|
|
|
dnl check for doxygen |
|
|
dnl |
|
|
AC_ARG_WITH([doxygen], |
|
|
[AS_HELP_STRING([--with-doxygen=PATH], [specify location of doxygen executable])], |
|
|
[DOXYGEN=$with_doxygen], |
|
|
[DOXYGEN=none]) |
|
|
if test x$DOXYGEN = xnone ; then |
|
|
# see if we can find doxygen in the user's path |
|
|
AC_PATH_PROG(DOXYGEN, [doxygen], [none]) |
|
|
fi |
|
|
if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then |
|
|
AC_MSG_ERROR([--with-doxygen option must specify directory argument]) |
|
|
elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then |
|
|
AC_MSG_ERROR([doxygen not found at $DOXYGEN]) |
|
|
elif test x$DOXYGEN != xnone ; then |
|
124 |
dnl |
dnl |
125 |
dnl verify that $DOXYGEN is an absolute path |
dnl restore CFLAGS |
126 |
dnl |
dnl |
127 |
case $DOXYGEN in |
CFLAGS=$save_CFLAGS |
|
/*) ;; |
|
|
*) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;; |
|
|
esac |
|
|
fi |
|
|
if test $DOXYGEN = xnone ; then |
|
|
DOXYGEN=: |
|
|
fi |
|
|
AC_SUBST(DOXYGEN) |
|
128 |
|
|
129 |
dnl |
dnl |
130 |
dnl Look for NVIDIA's nvcc compiler |
dnl check for <stdbool.h>, which we use in the C API |
131 |
dnl |
dnl |
132 |
AC_MSG_NOTICE([checking for CUDA and nvcc]) |
AC_HEADER_STDBOOL |
|
AC_PATH_PROG(NVCC, nvcc, no, $PATH) |
|
|
if test x"$NVCC" = xno ; then |
|
|
AC_MSG_WARN([nvcc not found]) |
|
|
CUDA_ENABLED=false |
|
|
NVCC=":" |
|
|
else |
|
|
AC_MSG_RESULT([$NVCC]) |
|
|
CUDA_ENABLED=true |
|
|
fi |
|
|
AC_SUBST(NVCC) |
|
|
AC_SUBST(CUDA_ENABLED) |
|
133 |
|
|
134 |
dnl |
dnl |
135 |
dnl check for OpenCL support |
dnl the C boolean type to use in generated library headers |
136 |
dnl |
dnl |
137 |
LIBS_CL="none" |
if test x"$ac_cv_header_stdbool_h" = xyes ; then |
138 |
case "$host_os" in |
BOOLTY="bool" |
139 |
darwin*) # On Mac OS X we check for installed frameworks |
elif test "x$ac_cv_type__Bool" = xyes; then |
140 |
AX_CHECK_FRAMEWORK([OpenCL], [LIBS_CL="-framework OpenCL"], []) |
BOOLTY="_Bool" |
|
;; |
|
|
*) |
|
|
AC_CHECK_LIB([OpenCL],[clGetPlatformIDs],[LIBS_CL="-lOpenCL"]) |
|
|
;; |
|
|
esac |
|
|
if test x"$LIBS_CL" = xnone ; then |
|
|
AC_MSG_WARN([no OpenCL library found]) |
|
|
CL_ENABLED=false |
|
|
CL_VERSION=0 |
|
141 |
else |
else |
142 |
CL_ENABLED=true |
BOOLTY="int" |
|
CPPFLAGS_CL="" |
|
|
AC_CHECK_HEADERS([CL/cl.h OpenCL/cl.h], [HAVE_CL_H="yes"; break], [HAVE_CL_H="no"]) |
|
|
if test x"$HAVE_CL_H" = xno ; then |
|
|
# check for AMD's SDK |
|
|
AC_MSG_CHECKING([for cl.h in AMD's SDK]) |
|
|
if test -d /opt/AMDAPP/include/CL ; then |
|
|
HAVE_CL_H="yes" |
|
|
AC_DEFINE([HAVE_CL_CL_H]) |
|
|
CPPFLAGS_CL="-I/opt/AMDAPP/include" |
|
143 |
fi |
fi |
144 |
AC_MSG_RESULT([$HAVE_CL_H]) |
AC_SUBST(BOOLTY) |
145 |
fi |
|
|
if test x"$HAVE_CL_H" = xno ; then |
|
|
AC_MSG_WARN([no cl.h found]) |
|
|
CL_ENABLED=false |
|
|
CL_VERSION=0 |
|
|
else |
|
|
# check the cl.h header for which version of OpenCL is supported |
|
|
AC_LANG([C]) |
|
|
save_CPPFLAGS=$CPPFLAGS |
|
|
CPPFLAGS="$CPPFLAGS_CL $CPPFLAGS" |
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
|
|
#include <stdio.h> |
|
|
# ifdef HAVE_CL_CL_H |
|
|
# include <CL/cl.h> |
|
|
# elif defined(HAVE_OPENCL_CL_H) |
|
|
# include <OpenCL/cl.h> |
|
|
# else |
|
|
# error no cl.h |
|
|
# endif]], |
|
|
[[#if defined(CL_VERSION_1_1) |
|
|
printf("11000\n"); |
|
|
#elif defined(CL_VERSION_1_0) |
|
|
printf("10000\n"); |
|
|
#else |
|
|
printf("0\n"); |
|
|
#endif |
|
|
]])], |
|
|
[CL_VERSION=`./conftest$EXEEXT`], [CL_VERSION=0]) |
|
|
dnl |
|
|
dnl check to see how we access the host-side vector types. For OpenCL 1.1, |
|
|
dnl the specification specifies the behavior, but it was unspecified in 1.0. |
|
|
dnl |
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
|
|
# ifdef HAVE_CL_CL_H |
|
|
# include <CL/cl.h> |
|
|
# elif defined(HAVE_OPENCL_CL_H) |
|
|
# include <OpenCL/cl.h> |
|
|
# else |
|
|
# error no cl.h |
|
|
# endif]], |
|
|
[[cl_float4 x; x[0] = 0.0;]])], |
|
|
[AC_DEFINE([CL_HOST_VECTORS_ARE_ARRAYS],[1],[host vector types are arrays])], |
|
146 |
dnl |
dnl |
147 |
dnl not arrays, so try the OpenCL 1.1 structure representation |
dnl check for pthreads support |
148 |
dnl |
dnl |
149 |
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
ACX_PTHREAD |
|
# ifdef HAVE_CL_CL_H |
|
|
# include <CL/cl.h> |
|
|
# elif defined(HAVE_OPENCL_CL_H) |
|
|
# include <OpenCL/cl.h> |
|
|
# else |
|
|
# error no cl.h |
|
|
# endif]], |
|
|
[[cl_float4 x; x.s[0] = 0.0;]])], |
|
|
[AC_DEFINE([CL_HOST_VECTORS_ARE_STRUCTS],[1],[host vector types are structs])], |
|
|
[AC_MSG_ERROR([unable to figure out host types for OpenCL vectors])])]) |
|
|
# restore saved CPPFLAGS |
|
|
CPPFLAGS=$save_CPPFLAGS |
|
|
# substitutions |
|
|
AC_SUBST(LIBS_CL) |
|
|
AC_SUBST(CPPFLAGS_CL) |
|
|
fi |
|
|
fi |
|
|
AC_SUBST(CL_ENABLED) |
|
|
AC_SUBST(CL_VERSION) |
|
150 |
|
|
151 |
dnl |
dnl |
152 |
dnl check for various library routines etc. |
dnl check for various library routines etc. |
255 |
AC_SUBST(LD_NEEDS_RPATH) |
AC_SUBST(LD_NEEDS_RPATH) |
256 |
AC_SUBST(LIBM) |
AC_SUBST(LIBM) |
257 |
|
|
258 |
|
#################### CUDA configuration #################### |
259 |
|
|
260 |
|
AC_ARG_ENABLE([cuda], |
261 |
|
AC_HELP_STRING([--enable-cuda], [include support for targeting CUDA])) |
262 |
|
|
263 |
|
if test "${enable_cuda+set}" = set ; then |
264 |
|
dnl |
265 |
|
dnl Look for NVIDIA's nvcc compiler |
266 |
|
dnl |
267 |
|
AC_MSG_NOTICE([checking for CUDA and nvcc]) |
268 |
|
AC_PATH_PROG(NVCC, nvcc, no, $PATH) |
269 |
|
if test x"$NVCC" = xno ; then |
270 |
|
AC_MSG_WARN([nvcc not found]) |
271 |
|
CUDA_ENABLED=false |
272 |
|
NVCC=":" |
273 |
|
else |
274 |
|
AC_MSG_RESULT([$NVCC]) |
275 |
|
CUDA_ENABLED=true |
276 |
|
fi |
277 |
|
else |
278 |
|
NVCC=":" |
279 |
|
CUDA_ENABLED=false |
280 |
|
fi |
281 |
|
AC_SUBST(NVCC) |
282 |
|
AC_SUBST(CUDA_ENABLED) |
283 |
|
|
284 |
|
#################### end CUDA configuration #################### |
285 |
|
|
286 |
|
#################### OpenCL configuration #################### |
287 |
|
|
288 |
|
AC_ARG_ENABLE([opencl], |
289 |
|
AC_HELP_STRING([--enable-opencl], [include support for targeting OpenCL])) |
290 |
|
|
291 |
|
if test "${enable_opencl+set}" = set ; then |
292 |
|
|
293 |
dnl |
dnl |
294 |
dnl get the path to the TEEM installation |
dnl check for OpenCL support |
295 |
|
dnl |
296 |
|
LIBS_CL="none" |
297 |
|
case "$host_os" in |
298 |
|
darwin*) # On Mac OS X we check for installed frameworks |
299 |
|
AX_CHECK_FRAMEWORK([OpenCL], [LIBS_CL="-framework OpenCL"], []) |
300 |
|
;; |
301 |
|
*) |
302 |
|
AC_CHECK_LIB([OpenCL],[clGetPlatformIDs],[LIBS_CL="-lOpenCL"]) |
303 |
|
;; |
304 |
|
esac |
305 |
|
if test x"$LIBS_CL" = xnone ; then |
306 |
|
AC_MSG_WARN([no OpenCL library found]) |
307 |
|
CL_ENABLED=false |
308 |
|
CL_VERSION=0 |
309 |
|
else |
310 |
|
CL_ENABLED=true |
311 |
|
CPPFLAGS_CL="" |
312 |
|
CL_HEADER="" |
313 |
|
AC_CHECK_HEADERS([CL/cl.h OpenCL/cl.h], [HAVE_CL_H="yes"; CL_HEADER="$ac_header"; break], [HAVE_CL_H="no"]) |
314 |
|
if test x"$HAVE_CL_H" = xno ; then |
315 |
|
# check for AMD's SDK |
316 |
|
AC_MSG_CHECKING([for cl.h in AMD's SDK]) |
317 |
|
if test -d /opt/AMDAPP/include/CL ; then |
318 |
|
HAVE_CL_H="yes" |
319 |
|
CL_HEADER="/opt/AMDAPP/include/CL/cl.h" |
320 |
|
AC_DEFINE([HAVE_CL_CL_H]) |
321 |
|
CPPFLAGS_CL="-I/opt/AMDAPP/include" |
322 |
|
fi |
323 |
|
AC_MSG_RESULT([$HAVE_CL_H]) |
324 |
|
fi |
325 |
|
if test x"$HAVE_CL_H" = xno ; then |
326 |
|
# check for NVIDIA's SDK |
327 |
|
AC_MSG_CHECKING([for NVIDIA's SDK cl.h]) |
328 |
|
CUDA_HOME=none |
329 |
|
for CUDA in cuda cuda-7.0 cuda-6.5 cuda-6.0 ; do |
330 |
|
if test -d /usr/local/$CUDA/include/CL ; then |
331 |
|
CUDA_HOME=/usr/local/$CUDA |
332 |
|
break |
333 |
|
fi |
334 |
|
done |
335 |
|
if test x"$CUDA_HOME" != xnone ; then |
336 |
|
HAVE_CL_H="yes" |
337 |
|
CL_HEADER="$CUDA_HOME/include/CL/cl.h" |
338 |
|
AC_DEFINE([HAVE_CL_CL_H]) |
339 |
|
CPPFLAGS_CL="-I$CUDA_HOME/include" |
340 |
|
fi |
341 |
|
AC_MSG_RESULT([$HAVE_CL_H]) |
342 |
|
fi |
343 |
|
if test x"$HAVE_CL_H" = xno ; then |
344 |
|
AC_MSG_WARN([no cl.h found]) |
345 |
|
CL_ENABLED=false |
346 |
|
CL_VERSION=0 |
347 |
|
SIZEOF_CL_INT=0 |
348 |
|
SIZEOF_CL_LONG=0 |
349 |
|
SIZEOF_CL_FLOAT=0 |
350 |
|
SIZEOF_CL_DOUBLE=0 |
351 |
|
else |
352 |
|
# check the cl.h header for which version of OpenCL is supported |
353 |
|
AC_LANG([C]) |
354 |
|
save_CPPFLAGS=$CPPFLAGS |
355 |
|
CPPFLAGS="$CPPFLAGS_CL $CPPFLAGS" |
356 |
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
357 |
|
#include <stdio.h> |
358 |
|
# ifdef HAVE_CL_CL_H |
359 |
|
# include <CL/cl.h> |
360 |
|
# elif defined(HAVE_OPENCL_CL_H) |
361 |
|
# include <OpenCL/cl.h> |
362 |
|
# else |
363 |
|
# error no cl.h |
364 |
|
# endif]], |
365 |
|
[[#if defined(CL_VERSION_1_2) |
366 |
|
printf("120\n"); |
367 |
|
#elif defined(CL_VERSION_1_1) |
368 |
|
printf("110\n"); |
369 |
|
#elif defined(CL_VERSION_1_0) |
370 |
|
printf("100\n"); |
371 |
|
#else |
372 |
|
printf("0\n"); |
373 |
|
#endif |
374 |
|
]])], |
375 |
|
[CL_VERSION=`./conftest$EXEEXT`], [CL_VERSION=0]) |
376 |
|
dnl |
377 |
|
dnl check to see how we access the host-side vector types. For OpenCL 1.1, |
378 |
|
dnl the specification specifies the behavior, but it was unspecified in 1.0. |
379 |
|
dnl |
380 |
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
381 |
|
#include "$CL_HEADER" |
382 |
|
]], |
383 |
|
[[cl_float4 x; x[0] = 0.0;]])], |
384 |
|
[AC_DEFINE([CL_HOST_VECTORS_ARE_ARRAYS],[1],[host vector types are arrays])], |
385 |
|
dnl |
386 |
|
dnl not arrays, so try the OpenCL 1.1 structure representation |
387 |
|
dnl |
388 |
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
389 |
|
#include "$CL_HEADER" |
390 |
|
]], |
391 |
|
[[cl_float4 x; x.s[0] = 0.0;]])], |
392 |
|
[AC_DEFINE([CL_HOST_VECTORS_ARE_STRUCTS],[1],[host vector types are structs])], |
393 |
|
[AC_MSG_ERROR([unable to figure out host types for OpenCL vectors])])]) |
394 |
|
# restore saved CPPFLAGS |
395 |
|
CPPFLAGS=$save_CPPFLAGS |
396 |
|
# substitutions |
397 |
|
AC_SUBST(LIBS_CL) |
398 |
|
AC_SUBST(CPPFLAGS_CL) |
399 |
|
# |
400 |
|
# determine the sizes of the host-side OpenCL types |
401 |
|
AC_CHECK_SIZEOF([cl_int], [], [#include "$CL_HEADER"]) |
402 |
|
SIZEOF_CL_INT=$ac_cv_sizeof_cl_int |
403 |
|
AC_CHECK_SIZEOF([cl_long], [], [#include "$CL_HEADER"]) |
404 |
|
SIZEOF_CL_LONG=$ac_cv_sizeof_cl_long |
405 |
|
AC_CHECK_SIZEOF([cl_float], [], [#include "$CL_HEADER"]) |
406 |
|
SIZEOF_CL_FLOAT=$ac_cv_sizeof_cl_float |
407 |
|
AC_CHECK_SIZEOF([cl_double], [], [#include "$CL_HEADER"]) |
408 |
|
SIZEOF_CL_DOUBLE=$ac_cv_sizeof_cl_double |
409 |
|
fi |
410 |
|
fi |
411 |
|
else |
412 |
|
CL_ENABLED=false |
413 |
|
CL_VERSION="0" |
414 |
|
SIZEOF_CL_INT="0" |
415 |
|
SIZEOF_CL_LONG="0" |
416 |
|
SIZEOF_CL_FLOAT="0" |
417 |
|
SIZEOF_CL_DOUBLE="0" |
418 |
|
fi |
419 |
|
|
420 |
|
AC_SUBST(CL_ENABLED) |
421 |
|
AC_SUBST(CL_VERSION) |
422 |
|
AC_DEFINE_UNQUOTED(DIDEROT_CL_VERSION,[$CL_VERSION],[version of OpenCL supported by system]) |
423 |
|
|
424 |
|
AC_SUBST(SIZEOF_CL_INT) |
425 |
|
AC_SUBST(SIZEOF_CL_LONG) |
426 |
|
AC_SUBST(SIZEOF_CL_FLOAT) |
427 |
|
AC_SUBST(SIZEOF_CL_DOUBLE) |
428 |
|
|
429 |
|
#################### end OpenCL configuration #################### |
430 |
|
|
431 |
|
#################### Teem configuration #################### |
432 |
|
|
433 |
|
dnl get the path to the TEEM installation. We need this to build the Diderot |
434 |
|
dnl runtime code and we use the path when searching for teem in the Diderot |
435 |
|
dnl compiler. |
436 |
|
dnl |
437 |
|
|
438 |
|
dnl the path can be specified using "--with-teem=..." too |
439 |
dnl |
dnl |
440 |
AC_ARG_WITH(teem, |
AC_ARG_WITH(teem, |
441 |
AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]), |
AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]), |
442 |
[ac_cv_use_teem=$withval], [ac_cv_use_teem=no]) |
[ac_cv_use_teem=$withval], [ac_cv_use_teem=no]) |
443 |
|
|
444 |
if test x"$ac_cv_use_teem" = xno ; then |
if test x"$ac_cv_use_teem" = xno ; then |
445 |
|
dnl search for Teem in some standard places |
446 |
|
dnl |
447 |
|
AC_MSG_CHECKING([for teem]) |
448 |
TEEM_DIR=none |
TEEM_DIR=none |
449 |
|
POSSIBLE_TEEM_DIRS="/usr/local/teem /usr/local" |
450 |
|
for dir in $POSSIBLE_TEEM_DIRS ; do |
451 |
|
if test -f $dir/include/teem/nrrd.h ; then |
452 |
|
TEEM_DIR=$dir |
453 |
|
AC_MSG_RESULT([$TEEM_DIR]) |
454 |
|
break |
455 |
|
fi |
456 |
|
done |
457 |
|
if test $TEEM_DIR = none ; then |
458 |
|
AC_MSG_ERROR([unable to find teem; use --with-teem option to specify location]) |
459 |
|
fi |
460 |
else |
else |
461 |
AC_MSG_CHECKING([path to teem ($ac_cv_use_teem)]) |
AC_MSG_CHECKING([path to teem ($ac_cv_use_teem)]) |
462 |
case $ac_cv_use_teem in |
case $ac_cv_use_teem in |
467 |
TEEM_DIR=$ac_cv_use_teem |
TEEM_DIR=$ac_cv_use_teem |
468 |
# check that TEEM_DIR actually points to something that looks like teem |
# check that TEEM_DIR actually points to something that looks like teem |
469 |
if test -f $TEEM_DIR/include/teem/nrrd.h ; then |
if test -f $TEEM_DIR/include/teem/nrrd.h ; then |
470 |
AC_MSG_RESULT([ okay]) |
AC_MSG_RESULT([yes]) |
471 |
else |
else |
472 |
TEEM_DIR=none |
TEEM_DIR=none |
473 |
AC_MSG_RESULT([ invalid]) |
AC_MSG_RESULT([invalid path to teem]) |
474 |
fi |
fi |
475 |
else |
else |
476 |
TEEM_DIR=none |
TEEM_DIR=none |
477 |
AC_MSG_RESULT([ invalid]) |
AC_MSG_RESULT([invalid path to teem]) |
478 |
fi |
fi |
479 |
fi |
fi |
480 |
if test x"$TEEM_DIR" = xnone ; then |
if test x"$TEEM_DIR" = xnone ; then |
481 |
AC_MSG_ERROR([unable to find teem]) |
AC_MSG_ERROR([unable to find teem]) |
482 |
fi |
fi |
483 |
|
dnl |
484 |
|
dnl check that unu supports the dnorm command |
485 |
|
dnl |
486 |
|
AC_MSG_CHECKING([that \"unu dnorm\" works]) |
487 |
|
if test -x $TEEM_DIR/bin/unu ; then |
488 |
|
$TEEM_DIR/bin/unu dnorm > /dev/null 2> /dev/null |
489 |
|
if test $? -eq 0 ; then |
490 |
|
AC_MSG_RESULT([yes]) |
491 |
|
else |
492 |
|
AC_MSG_ERROR([\"unu dnorm\" is not supported; please update your teem installation]) |
493 |
|
fi |
494 |
|
else |
495 |
|
AC_MSG_ERROR([unable to find unu executable in $TEEM_DIR/bin"]) |
496 |
|
fi |
497 |
|
|
498 |
AC_SUBST(TEEM_DIR) |
AC_SUBST(TEEM_DIR) |
499 |
|
|
500 |
dnl ******************** SML/NJ configuration ******************** |
#################### end Teem configuration #################### |
501 |
|
|
502 |
|
#################### SML configuration #################### |
503 |
|
|
504 |
|
dnl |
505 |
|
dnl We support building with both SML/NJ (the default) or MLton. |
506 |
dnl |
dnl |
507 |
|
|
508 |
|
dnl first check for --with-mlton=path flag |
509 |
|
dnl |
510 |
|
AC_ARG_WITH([mlton], |
511 |
|
[AS_HELP_STRING([--with-mlton=<path-to-mlton>], |
512 |
|
[use the MLton Standard ML compiler to build Diderot])], |
513 |
|
[with_mlton=yes],[with_mlton=no]) |
514 |
|
if test x"$with_mlton" = xyes ; then |
515 |
|
if test x"$ac_cv_path_with_mlton" = x ; then |
516 |
|
# look for mlton in the PATH |
517 |
|
AC_PATH_PROGS(with_mlton, mlton, no) |
518 |
|
if test x"$MLTON" = xno ; then |
519 |
|
AC_MSG_ERROR([unable to find mlton executable; please specify the path]) |
520 |
|
fi |
521 |
|
else |
522 |
|
with_mlton=$ac_cv_path_with_mlton |
523 |
|
case $with_mlton in |
524 |
|
/*) ;; |
525 |
|
*) AC_MSG_ERROR([please specify absolute path for mlton executable]) ;; |
526 |
|
esac |
527 |
|
if test ! -x $with_mlton ; then |
528 |
|
AC_MSG_ERROR([invalid path for mlton; $with_mlton is not executable]) |
529 |
|
fi |
530 |
|
fi |
531 |
|
fi |
532 |
|
|
533 |
|
if test x"$with_mlton" = xno ; then |
534 |
|
# we are using SML/NJ |
535 |
|
# |
536 |
|
|
537 |
dnl check that we have a compatible version of SML/NJ |
dnl check that we have a compatible version of SML/NJ |
538 |
dnl |
dnl |
539 |
CHECK_SMLNJ([AC_MSG_ERROR([unable to find SML/NJ installation; check your PATH or set SMLNJ_CMD])]) |
CHECK_SMLNJ([AC_MSG_ERROR([unable to find SML/NJ installation; check your PATH or set SMLNJ_CMD])]) |
540 |
if test $SMLNJ_MAJOR_VERSION -lt 110 \ |
if test $SMLNJ_MAJOR_VERSION -lt 110 \ |
541 |
-o $SMLNJ_MINOR_VERSION -lt 73 |
-o $SMLNJ_MINOR_VERSION -lt 79 |
542 |
then |
then |
543 |
AC_MSG_ERROR([installation requires SML/NJ version 110.73+]) |
AC_MSG_ERROR([installation requires SML/NJ version 110.79+ (available from smlnj.org)]) |
544 |
fi |
fi |
|
AC_SUBST(SMLNJ_VERSION) |
|
545 |
|
|
546 |
dnl determine the heap-image suffix |
dnl determine the heap-image suffix |
547 |
dnl |
dnl |
550 |
|
|
551 |
dnl look for ml-makedepend |
dnl look for ml-makedepend |
552 |
dnl |
dnl |
|
AC_MSG_CHECKING([for ml-makedepend]) |
|
553 |
tmpPATH="$SMLNJ_PATH:$PATH" |
tmpPATH="$SMLNJ_PATH:$PATH" |
554 |
AC_PATH_PROG(ML_MAKEDEPEND, ml-makedepend, ":", $tmpPATH) |
AC_PATH_PROG(ML_MAKEDEPEND, ml-makedepend, ":", $tmpPATH) |
|
if test $ML_MAKEDEPEND = none ; then |
|
|
AC_MSG_ERROR([ml-makedepend not found]) |
|
|
else |
|
|
AC_MSG_RESULT([$ML_MAKEDEPEND]) |
|
|
fi |
|
555 |
AC_SUBST(ML_MAKEDEPEND) |
AC_SUBST(ML_MAKEDEPEND) |
556 |
|
|
557 |
dnl |
dnl |
563 |
AC_MSG_ERROR([ml-build not found]) |
AC_MSG_ERROR([ml-build not found]) |
564 |
fi |
fi |
565 |
AC_SUBST(ML_BUILD) |
AC_SUBST(ML_BUILD) |
566 |
|
SML=smlnj |
|
dnl ******************** Paths ******************** |
|
|
|
|
|
DIDEROT_ROOT=`pwd` |
|
|
DIDEROT_DOCDIR=$DIDEROT_ROOT/doc |
|
|
DIDEROT_SRCDIR=$DIDEROT_ROOT/src |
|
|
DIDEROT_LIBDIR=$DIDEROT_ROOT/lib |
|
|
DIDEROT_BINDIR=$DIDEROT_ROOT/bin |
|
|
DIDEROT_MKDIR=$DIDEROT_ROOT/mk |
|
567 |
|
|
568 |
HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap |
HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap |
569 |
INSTALL_SMLNJ_WRAPPER=$DIDEROT_BINDIR/install-sml-wrapper.sh |
INSTALL_SMLNJ_WRAPPER=$DIDEROT_BINDIR/install-sml-wrapper.sh |
|
|
|
|
AC_SUBST(DIDEROT_ROOT) |
|
|
AC_SUBST(DIDEROT_DOCDIR) |
|
|
AC_SUBST(DIDEROT_SRCDIR) |
|
|
AC_SUBST(DIDEROT_LIBDIR) |
|
|
AC_SUBST(DIDEROT_BINDIR) |
|
|
AC_SUBST(DIDEROT_MKDIR) |
|
570 |
AC_SUBST(HEAP_IMAGE_DIR) |
AC_SUBST(HEAP_IMAGE_DIR) |
571 |
AC_SUBST(INSTALL_SMLNJ_WRAPPER) |
AC_SUBST(INSTALL_SMLNJ_WRAPPER) |
572 |
|
|
573 |
dnl |
else |
|
dnl ******************** C compiler properties ******************** |
|
|
dnl |
|
574 |
|
|
575 |
dnl |
# we are using MLton |
576 |
dnl run the compiler tests in 64-bit mode |
MLTON=$with_mlton |
577 |
dnl |
AC_SUBST(MLTON) |
578 |
save_CFLAGS=$CFLAGS |
SML=mlton |
|
CFLAGS="$CFLAGS $CFLAG_M64" |
|
579 |
|
|
580 |
dnl |
fi |
581 |
dnl check for gcc builtin atomic operations |
AC_SUBST(SML) |
|
dnl |
|
|
AC_MSG_CHECKING([for builtin atomic operations]) |
|
|
AC_LINK_IFELSE( |
|
|
[AC_LANG_PROGRAM([], [int foo1; int foo2 = __sync_fetch_and_add(&foo1, 1);])], |
|
|
AC_MSG_RESULT(yes) |
|
|
AC_DEFINE( |
|
|
[HAVE_BUILTIN_ATOMIC_OPS], 1, |
|
|
[Define to 1 if gcc compiler provides atomic operations.]), |
|
|
AC_MSG_RESULT(no)) |
|
582 |
|
|
583 |
AC_C_BIGENDIAN |
#################### end SML configuration #################### |
584 |
|
|
585 |
|
#################### Documentation tools configuration #################### |
586 |
|
|
587 |
|
dnl check for doxygen |
588 |
dnl |
dnl |
589 |
dnl restore CFLAGS |
AC_ARG_WITH([doxygen], |
590 |
|
[AS_HELP_STRING([--with-doxygen=<path>], [specify location of doxygen executable])], |
591 |
|
[DOXYGEN=$with_doxygen], |
592 |
|
[DOXYGEN=none]) |
593 |
|
if test x$DOXYGEN = xnone ; then |
594 |
|
# see if we can find doxygen in the user's path |
595 |
|
AC_PATH_PROG(DOXYGEN, [doxygen], [none]) |
596 |
|
fi |
597 |
|
if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then |
598 |
|
AC_MSG_ERROR([--with-doxygen option must specify directory argument]) |
599 |
|
elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then |
600 |
|
AC_MSG_ERROR([doxygen not found at $DOXYGEN]) |
601 |
|
elif test x$DOXYGEN != xnone ; then |
602 |
dnl |
dnl |
603 |
CFLAGS=$save_CFLAGS |
dnl verify that $DOXYGEN is an absolute path |
604 |
|
dnl |
605 |
|
case $DOXYGEN in |
606 |
|
/*) ;; |
607 |
|
*) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;; |
608 |
|
esac |
609 |
|
fi |
610 |
|
if test $DOXYGEN = xnone ; then |
611 |
|
DOXYGEN=: |
612 |
|
fi |
613 |
|
AC_SUBST(DOXYGEN) |
614 |
|
|
615 |
|
dnl check for asciidoc and related tools |
616 |
dnl |
dnl |
617 |
dnl ******************** config.h stuff ******************** |
AC_PATH_PROGS([ASCIIDOC], [asciidoc], [none]) |
618 |
|
AC_PATH_PROGS([A2X], [a2x], [none]) |
619 |
|
AC_PATH_PROGS([HIGHLIGHTER], [pygmentize], [none]) |
620 |
|
AC_PATH_PROGS([DBLATEX], [dblatex], [none]) |
621 |
|
|
622 |
|
dnl |
623 |
|
dnl get the path to the asciidoc cofiguration files |
624 |
dnl |
dnl |
625 |
|
if test x"$ASCIIDOC" != xnone ; then |
626 |
|
AC_MSG_CHECKING([path to asciidoc configuration files]) |
627 |
|
ASCIIDOC_CONF_DIR=`$ASCIIDOC -v /dev/null 2>&1 | head -n 1 | sed 's|.*reading: \(.*\)/asciidoc.conf|\1|'` |
628 |
|
AC_MSG_RESULT([$ASCIIDOC_CONF_DIR]) |
629 |
|
fi |
630 |
|
AC_SUBST(ASCIIDOC) |
631 |
|
AC_SUBST(A2X) |
632 |
|
AC_SUBST(ASCIIDOC_CONF_DIR) |
633 |
|
AC_SUBST(HIGHLIGHTER) |
634 |
|
AC_SUBST(DBLATEX) |
635 |
|
|
636 |
AC_DEFINE_UNQUOTED(DIDEROT_INCLUDE_PATH,["$DIDEROT_SRCDIR/include"], [path for Diderot header files]) |
#################### end Documentation tools configuration #################### |
637 |
|
|
638 |
|
#################### config.h #################### |
639 |
|
|
640 |
|
AC_DEFINE_UNQUOTED(DIDEROT_INCLUDE_PATH,["$DIDEROT_SRCDIR/lib/include"], [path for Diderot header files]) |
641 |
|
|
642 |
AH_TOP([ |
AH_TOP([ |
643 |
/* |
/* |
644 |
* COPYRIGHT (c) 2011 Diderot project. (http://diderot-language.cs.uchicago.edu) |
* This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu) |
645 |
* All rights reserved. |
* |
646 |
|
* COPYRIGHT (c) 2016 The University of Chicago * All rights reserved. |
647 |
*/ |
*/ |
648 |
|
|
649 |
#ifndef _DIDEROT_CONFIG_H_ |
#ifndef _DIDEROT_CONFIG_H_ |
655 |
#endif /* !_DIDEROT_CONFIG_H_ */ |
#endif /* !_DIDEROT_CONFIG_H_ */ |
656 |
]) |
]) |
657 |
|
|
658 |
dnl |
#################### end config.h #################### |
659 |
dnl ******************** write output ******************** |
|
660 |
dnl |
#################### write output #################### |
661 |
|
|
662 |
|
dnl The compiler Makefile depends on which SML system we are |
663 |
|
dnl using. |
664 |
|
if test x"$SML" = xmlton ; then |
665 |
|
COMPILER_MAKEFILE_IN=":src/compiler/Makefile_mlton.in" |
666 |
|
else |
667 |
|
COMPILER_MAKEFILE_IN="" |
668 |
|
fi |
669 |
|
|
670 |
AC_CONFIG_FILES( |
AC_CONFIG_FILES( |
671 |
dnl |
dnl |
672 |
dnl ***** Makefiles ***** |
dnl ***** Makefiles ***** |
673 |
Makefile |
Makefile |
674 |
doc/Makefile |
dnl doc/Makefile |
675 |
src/clinfo/Makefile |
dnl doc/man/Makefile |
676 |
src/dnorm/Makefile |
dnl src/clinfo/Makefile |
677 |
src/compiler/Makefile |
src/compiler/Makefile"$COMPILER_MAKEFILE_IN" |
678 |
src/lib/build/Makefile |
src/lib/build/Makefile |
679 |
src/lib/build/mk/build.gmk:src/lib/build/mk/build_gmk.in |
src/lib/build/mk/build.gmk:src/lib/build/mk/build_gmk.in |
680 |
test/MIP/Makefile |
dnl test/MIP/Makefile |
681 |
test/probe/Makefile |
dnl test/probe/Makefile |
682 |
test/iso2d-polyline/Makefile |
dnl test/iso2d-polyline/Makefile |
683 |
test/vr-lite-cam/Makefile |
dnl test/vr-lite-cam/Makefile |
684 |
test/hlic/Makefile |
dnl test/hlic/Makefile |
685 |
dnl |
dnl |
686 |
dnl ***** SML source files ***** |
dnl ***** SML source files ***** |
687 |
src/compiler/fields/run-dnorm.sml:src/compiler/fields/run-dnorm_sml.in |
src/compiler/nrrd/run-dnorm.sml:src/compiler/nrrd/run-dnorm_sml.in |
688 |
src/compiler/common/paths.sml:src/compiler/common/paths_sml.in |
src/compiler/common/paths.sml:src/compiler/common/paths_sml.in |
689 |
|
src/compiler/common/size-of.sml:src/compiler/common/size-of_sml.in |
690 |
|
src/compiler/options/version.sml:src/compiler/options/version_sml.in |
691 |
) |
) |
692 |
|
|
693 |
AC_CONFIG_HEADERS(src/include/Diderot/config.h:config/config_h.in) |
AC_CONFIG_HEADERS(src/lib/include/diderot/config.h:config/config_h.in) |
694 |
|
|
695 |
dnl |
dnl |
696 |
dnl shell scripts |
dnl shell scripts |
699 |
bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in |
bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in |
700 |
], [chmod +x bin/install-sml-wrapper.sh]) |
], [chmod +x bin/install-sml-wrapper.sh]) |
701 |
AC_CONFIG_FILES([ |
AC_CONFIG_FILES([ |
702 |
src/compiler/gen/file2str/file2str.sh:src/compiler/gen/file2str/file2str_sh.in |
src/compiler/gen/fragments/mkfrags.sh:src/compiler/gen/fragments/mkfrags_sh.in |
703 |
], [chmod +x src/compiler/gen/file2str/file2str.sh]) |
], [chmod +x src/compiler/gen/fragments/mkfrags.sh]) |
704 |
|
AC_CONFIG_FILES([ |
705 |
|
src/compiler/gen/fragments/mkmk.sh:src/compiler/gen/fragments/mkmk_sh.in |
706 |
|
], [chmod +x src/compiler/gen/fragments/mkmk.sh]) |
707 |
AC_CONFIG_FILES([ |
AC_CONFIG_FILES([ |
708 |
rtest/scripts/run.sh:rtest/scripts/run_sh.in |
src/tests/rtest/scripts/run.sh:src/tests/rtest/scripts/run_sh.in |
709 |
], [chmod +x rtest/scripts/run.sh]) |
], [chmod +x src/tests/rtest/scripts/run.sh]) |
710 |
AC_CONFIG_FILES([ |
AC_CONFIG_FILES([ |
711 |
rtest/scripts/run-one.sh:rtest/scripts/run-one_sh.in |
src/tests/rtest/scripts/run-one.sh:src/tests/rtest/scripts/run-one_sh.in |
712 |
], [chmod +x rtest/scripts/run-one.sh]) |
], [chmod +x src/tests/rtest/scripts/run-one.sh]) |
713 |
|
# |
714 |
|
# more regression tests; should merge with rtest at some point |
715 |
|
# |
716 |
|
# AC_CONFIG_FILES([ |
717 |
|
# rtest2/scripts/run.sh:rtest2/scripts/run_sh.in |
718 |
|
# ], [chmod +x rtest2/scripts/run.sh]) |
719 |
|
# AC_CONFIG_FILES([ |
720 |
|
# rtest2/scripts/run-one.sh:rtest2/scripts/run-one_sh.in |
721 |
|
# ], [chmod +x rtest2/scripts/run-one.sh]) |
722 |
|
|
723 |
dnl |
dnl |
724 |
dnl generate makefiles for runtime library builds |
dnl generate makefiles for runtime library builds |
725 |
dnl |
dnl |
726 |
dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>) |
dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>) |
727 |
dnl |
dnl |
728 |
|
dnl where the options are taken from [debug, parallel] |
729 |
|
dnl |
730 |
AC_DEFUN([MK_BUILD_DIR], [ |
AC_DEFUN([MK_BUILD_DIR], [ |
731 |
if test ! -d src/lib/build/$1 ; then |
if test ! -d src/lib/build/$1 ; then |
732 |
mkdir src/lib/build/$1 |
mkdir src/lib/build/$1 |
739 |
AC_CONFIG_FILES(src/lib/build/$1/Makefile) |
AC_CONFIG_FILES(src/lib/build/$1/Makefile) |
740 |
]) |
]) |
741 |
|
|
742 |
MK_BUILD_DIR(rt-c-f, c, [float]) |
MK_BUILD_DIR(rt-seq, sequential, []) |
743 |
MK_BUILD_DIR(rt-c-d, c, [double]) |
MK_BUILD_DIR(rt-seq-debug, sequential, [debug]) |
744 |
MK_BUILD_DIR(rt-c-f-debug, c, [float debug]) |
MK_BUILD_DIR(rt-par, parallel, [parallel]) |
745 |
MK_BUILD_DIR(rt-c-d-debug, c, [double debug]) |
MK_BUILD_DIR(rt-par-debug, parallel, [parallel debug]) |
746 |
MK_BUILD_DIR(rt-c-f-par, parallel, [parallel float]) |
|
747 |
MK_BUILD_DIR(rt-c-d-par, parallel, [parallel double]) |
#if test x"$CL_ENABLED" = xtrue ; then |
748 |
MK_BUILD_DIR(rt-c-f-par-debug, parallel, [parallel float debug]) |
# MK_BUILD_DIR(rt-cl-f, opencl, [float]) |
749 |
MK_BUILD_DIR(rt-c-d-par-debug, parallel, [parallel double debug]) |
# MK_BUILD_DIR(rt-cl-d, opencl, [double]) |
750 |
|
# MK_BUILD_DIR(rt-cl-f-debug, opencl, [float debug]) |
751 |
if test x"$CL_ENABLED" = xtrue ; then |
# MK_BUILD_DIR(rt-cl-d-debug, opencl, [double debug]) |
752 |
MK_BUILD_DIR(rt-cl-f, cl, [float]) |
#fi |
|
MK_BUILD_DIR(rt-cl-d, cl, [double]) |
|
|
MK_BUILD_DIR(rt-cl-f-debug, cl, [float debug]) |
|
|
MK_BUILD_DIR(rt-cl-d-debug, cl, [double debug]) |
|
|
fi |
|
753 |
|
|
754 |
AC_OUTPUT |
AC_OUTPUT |
755 |
|
|
756 |
|
#################### end write output #################### |