Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis15/configure.ac
ViewVC logotype

Diff of /branches/vis15/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

branches/vis12/configure.ac revision 1997, Thu Oct 4 11:00:44 2012 UTC branches/vis15/configure.ac revision 5500, Mon Nov 13 16:45:15 2017 UTC
# Line 1  Line 1 
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) 2017 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,2.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) 2017 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/ax_check_compile_flag.m4)
27    sinclude(config/ax_gcc_func_attribute.m4)
28    sinclude(config/ax_gcc_x86_cpuid.m4)
29    sinclude(config/ax_gcc_x86_avx_xgetbv.m4)
30    sinclude(config/ax_ext.m4)
31  sinclude(config/acx_pthread.m4)  sinclude(config/acx_pthread.m4)
32  sinclude(config/check_smlnj.m4)  sinclude(config/check_smlnj.m4)
33  sinclude(config/check_smlnj_heap_suffix.m4)  sinclude(config/check_smlnj_heap_suffix.m4)
34  sinclude(config/ax_check_framework.m4)  sinclude(config/ax_check_framework.m4)
35    sinclude(config/ax_cxx_compile_stdcxx.m4)
36    
37  dnl  dnl
38  dnl get host information  dnl get host information
39  dnl  dnl
40  AC_CANONICAL_HOST  AC_CANONICAL_HOST
41    
42    #################### Paths configuration ####################
43    
44    DIDEROT_ROOT=`pwd`
45    DIDEROT_DOCDIR=$DIDEROT_ROOT/doc
46    DIDEROT_SRCDIR=$DIDEROT_ROOT/src
47    DIDEROT_LIBDIR=$DIDEROT_ROOT/lib
48    DIDEROT_BINDIR=$DIDEROT_ROOT/bin
49    DIDEROT_MKDIR=$DIDEROT_ROOT/mk
50    
51    AC_SUBST(DIDEROT_ROOT)
52    AC_SUBST(DIDEROT_DOCDIR)
53    AC_SUBST(DIDEROT_SRCDIR)
54    AC_SUBST(DIDEROT_LIBDIR)
55    AC_SUBST(DIDEROT_BINDIR)
56    AC_SUBST(DIDEROT_MKDIR)
57    
58    #################### end Paths configuration ####################
59    
60  dnl check for standard programs  dnl check for standard programs
61  dnl  dnl
 AC_PROG_CC([clang gcc cc])  
62  AC_PROG_CPP  AC_PROG_CPP
63    AC_PROG_CC([clang gcc cc])
64    AC_PROG_CXX([clang++ g++ c++])
65    AX_CXX_COMPILE_STDCXX(11,[],[mandatory])
66  AC_PROG_INSTALL  AC_PROG_INSTALL
67  AC_PROG_MAKE_SET  AC_PROG_MAKE_SET
68    
# Line 40  Line 74 
74  fi  fi
75  AC_SUBST(LD)  AC_SUBST(LD)
76    
77  dnl check for c99 support  dnl extra compiler options
78  dnl  dnl
79  AC_PROG_CC_C99  CXXFLAGS_BASE="-Wreturn-type -Wuninitialized"
 if test x"$ac_cv_prog_cc_c99" = xno ; then  
   AC_MSG_ERROR([Diderot requires c99 support])  
 fi  
80    
81  dnl extra C compiler options  AC_LANG_PUSH([C++])
82    AX_GCC_FUNC_ATTRIBUTE(noreturn)
83    AC_LANG_POP([C++])
84    
85    dnl check for SIMD support
86  dnl  dnl
87  CFLAGS=""  AX_EXT
88  CFLAG_M64="-m64"  
89  CFLAGS_BASE="-Wformat -Wreturn-type -Wuninitialized"  AC_ARG_ENABLE([32-bit],
90  AC_SUBST(CFLAG_M64)    AC_HELP_STRING([--enable-32-bit], [configure Diderot to produce 32-bit executables]),
91  AC_SUBST(CFLAGS_BASE)    [CXXFLAG_Mxx="-m32"],
92      [CXXFLAG_Mxx="-m64"])
93    
94    CXXFLAGS="$CXXFLAG_Mxx $CXXFLAGS_BASE"
95    AC_SUBST(CXXFLAG_Mxx)
96    AC_SUBST(CXXFLAGS_BASE)
97    
98  dnl  dnl
99  dnl standard headers  dnl run the compiler tests in 64-bit mode
100    dnl
101    save_CFLAGS=$CFLAGS
102    CFLAGS="$CFLAGS $CXXFLAG_Mxx"
103    
104    dnl
105    dnl check for gcc builtin atomic operations
106    dnl
107    AC_MSG_CHECKING([for builtin atomic operations])
108    AC_LINK_IFELSE(
109       [AC_LANG_PROGRAM([], [int foo1; int foo2 = __sync_fetch_and_add(&foo1, 1);])],
110       AC_MSG_RESULT(yes)
111       AC_DEFINE(
112        [HAVE_BUILTIN_ATOMIC_OPS], 1,
113        [Define to 1 if gcc compiler provides atomic operations.]),
114       AC_MSG_RESULT(no))
115    
116    dnl
117    dnl check endianess
118    dnl
119    AC_C_BIGENDIAN
120    
121    #
122    # determine the sizes of the standard C types
123    AC_CHECK_SIZEOF([int])
124    SIZEOF_C_INT=$ac_cv_sizeof_int
125    AC_CHECK_SIZEOF([long])
126    SIZEOF_C_LONG=$ac_cv_sizeof_long
127    AC_CHECK_SIZEOF([float])
128    SIZEOF_C_FLOAT=$ac_cv_sizeof_float
129    AC_CHECK_SIZEOF([double])
130    SIZEOF_C_DOUBLE=$ac_cv_sizeof_double
131    
132    AC_SUBST(SIZEOF_C_INT)
133    AC_SUBST(SIZEOF_C_LONG)
134    AC_SUBST(SIZEOF_C_FLOAT)
135    AC_SUBST(SIZEOF_C_DOUBLE)
136    
137    dnl
138    dnl restore CFLAGS
139    dnl
140    CFLAGS=$save_CFLAGS
141    
142    dnl
143    dnl check for <stdbool.h>, which we use in the C API
144  dnl  dnl
145  AC_HEADER_STDBOOL  AC_HEADER_STDBOOL
146    
147  dnl  dnl
148    dnl the C boolean type to use in generated library headers
149    dnl
150    if test x"$ac_cv_header_stdbool_h" = xyes ; then
151      BOOLTY="bool"
152    elif test "x$ac_cv_type__Bool" = xyes; then
153      BOOLTY="_Bool"
154    else
155      BOOLTY="int"
156    fi
157    AC_SUBST(BOOLTY)
158    
159    dnl
160  dnl check for pthreads support  dnl check for pthreads support
161  dnl  dnl
162  ACX_PTHREAD  ACX_PTHREAD
163    
 dnl check for doxygen  
164  dnl  dnl
165  AC_ARG_WITH([doxygen],  dnl check for various library routines etc.
166    [AS_HELP_STRING([--with-doxygen=PATH], [specify location of doxygen executable])],  dnl
167    [DOXYGEN=$with_doxygen],  AC_CHECK_FUNCS(posix_memalign)
168    [DOXYGEN=none])  if test x"$ac_cv_func_posix_memalign" != xyes ; then
169  if test x$DOXYGEN = xnone ; then    AC_CHECK_FUNCS(memalign)
170    # see if we can find doxygen in the user's path    if test x"$ac_cv_func_posix_memalign" != xyes ; then
171    AC_PATH_PROG(DOXYGEN, [doxygen], [none])      AC_CHECK_FUNCS(valloc)
172  fi  fi
173  if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then  fi
174    AC_MSG_ERROR([--with-doxygen option must specify directory argument])  
175  elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then  AC_CHECK_FUNCS(mach_absolute_time)
176    AC_MSG_ERROR([doxygen not found at $DOXYGEN])  AC_CHECK_TYPES([struct timespec])
177  elif test x$DOXYGEN != xnone ; then  AC_CHECK_FUNCS(pthread_barrier_init)
178    
179  dnl  dnl
180  dnl verify that $DOXYGEN is an absolute path  dnl check for clock_gettime.  On Linux, this requires librt.
181  dnl  dnl
182    case $DOXYGEN in  save_LIBS=$LIBS
183      /*) ;;  LIBS="-lrt $LIBS"
184      *) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;;  AC_MSG_CHECKING([for clock_gettime])
185    esac  AC_LINK_IFELSE(
186      [AC_LANG_PROGRAM(
187        [[#include <time.h>]],
188        [[struct timespec t; clock_gettime(CLOCK_REALTIME, &t); ]])],
189      [ ac_cv_func_clock_gettime=yes;
190        AC_DEFINE(HAVE_CLOCK_GETTIME, [1], [is clock_gettime available?])],
191      [ac_cv_func_clock_gettime=no])
192    AC_MSG_RESULT($ac_cv_func_clock_gettime)
193    if test "$ac_cv_func_clock_gettime" = "no" ; then
194      LIBS=$save_LIBS
195  fi  fi
196  if test $DOXYGEN = xnone ; then  
197    DOXYGEN=:  AC_CHECK_FUNCS(pthread_getcpuclockid)
198    AC_CHECK_FUNCS(sigtimedwait nanosleep)
199    
200    dnl
201    dnl check for pthread_setaffinity_np
202    dnl
203    save_LIBS=$LIBS
204    save_CFLAGS=$CFLAGS
205    LIBS="$PTHREAD_LIBS $LIBS"
206    CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
207    AC_MSG_CHECKING([for pthread_setaffinity_np])
208    AC_LINK_IFELSE(
209      [AC_LANG_PROGRAM(
210        [[#include <pthread.h>]],
211        [[cpu_set_t s; pthread_setaffinity_np(pthread_self(), sizeof(s), &s); ]])],
212      [ ac_cv_func_pthread_setaffinity_np=yes;
213        AC_DEFINE(HAVE_PTHREAD_SETAFFINITY_NP, [1], [is pthread_setaffinity_np available?])],
214      [ac_cv_func_pthread_setaffinity_np=no])
215    AC_MSG_RESULT($ac_cv_func_pthread_setaffinity_np)
216    LIBS=$save_LIBS
217    CFLAGS=$save_CFLAGS
218    
219    dnl
220    dnl check for Linux NUMA support (libnuma)
221    dnl
222    AC_CHECK_LIB(numa,numa_available)
223    if test "$ac_cv_lib_numa_numa_available" = "yes" ; then
224      PTHREAD_LIBS="$PTHREAD_LIBS -lnuma"
225  fi  fi
 AC_SUBST(DOXYGEN)  
226    
227    dnl check for /proc/cpuinfo
228    dnl
229    AC_CHECK_FILES(/proc/cpuinfo)
230    
231    dnl check for getcpu and/or sched_getcpu
232    dnl
233    hasGetCPU=no;
234    AC_CHECK_HEADERS([linux/getcpu.h])
235    if test "x$ac_cv_header_linux_getcpu_h" = xyes; then
236      AC_CHECK_FUNCS([getcpu])
237      hasGetCPU=yes;
238    else
239      # getcpu is usually called using syscall
240      #
241      AC_MSG_CHECKING([SYS_getcpu])
242      AC_RUN_IFELSE([AC_LANG_SOURCE([[
243        #define _GNU_SOURCE
244        #include <unistd.h>
245        #include <sys/syscall.h>
246        int main () {
247          unsigned cpu, node;
248          return syscall (SYS_getcpu, &cpu, &node, 0);
249        }
250        ]])],[hasGetCPU=yes],[])
251      AC_MSG_RESULT([$hasGetCPU])
252      if test x"$hasGetCPU" = xyes ; then
253        AC_DEFINE([HAVE_SYS_GETCPU],[1],[Define if SYS_getcpu is defined in <sys/syscall.h>])
254      fi
255    fi
256    if test x"$hasGetCPU" != xyes ; then
257    AC_CHECK_FUNCS([sched_getcpu])
258    fi
259    
260    dnl
261    dnl OS-specific linking issues
262    dnl
263    LD_NEEDS_RPATH=false;
264    CXXFLAG_fPIC=""
265    LDFLAG_LIBM=""
266    case "$host_os" in
267      darwin*)
268      # On Mac OS X we check for the presence of homebrew, macports, and fink.
269      # we set up the search paths in priority homebrew > macports > fink.
270        if test -x /sw/bin/fink ; then
271          LDPATHS="-L/sw/lib"
272        fi
273        if test -x /opt/local/bin/port ; then
274          LDPATHS="-L/opt/local/lib $LDPATHS"
275        fi
276        if test -d /usr/local/Cellar -a /usr/local/bin/brew ; then
277          LDPATHS="-L/usr/local/lib $LDPATHS"
278        fi
279      ;;
280      linux*)
281      # On Linux we include the -rpath option to pick up dynamically-loaded libraries
282      # and the -fPIC compiler flag to generate position-indenpendent code
283        LD_NEEDS_RPATH=true
284        LDFLAG_LIBM="-lm"
285        CXXFLAG_fPIC="-fPIC"
286      ;;
287    esac
288    
289    AC_SUBST(LDPATHS)
290    AC_SUBST(LD_NEEDS_RPATH)
291    AC_SUBST(LDFLAG_LIBM)
292    AC_SUBST(CXXFLAG_fPIC)
293    
294    #################### Logging configuration ####################
295    
296    LOGGING_ENABLED=false
297    AC_ARG_ENABLE([event-logging],
298      AC_HELP_STRING([--enable-event-logging], [include event-logging support for parallel target]),
299      [LOGGING_ENABLED=true],
300      [LOGGING_ENABLED=false])
301    
302    AC_SUBST(LOGGING_ENABLED)
303    
304    #################### end Logging configuration ####################
305    
306    #################### Diderot Debugger configuration ####################
307    
308    DEBUGGER_ENABLED=false
309    AC_ARG_ENABLE([debugger],
310      AC_HELP_STRING([--enable-debugger], [build the Diderot debugger (experimental)]),
311      [DEBUGGER_ENABLED=true],
312      [DEBUGGER_ENABLED=false])
313    
314    AC_SUBST(DEBUGGER_ENABLED)
315    
316    #################### end Diderot Debugger configuration ####################
317    
318    #################### CUDA configuration ####################
319    
320    AC_ARG_ENABLE([cuda],
321      AC_HELP_STRING([--enable-cuda], [include support for targeting CUDA]))
322    
323    if test "${enable_cuda+set}" = set ; then
324  dnl  dnl
325  dnl Look for NVIDIA's nvcc compiler  dnl Look for NVIDIA's nvcc compiler
326  dnl  dnl
# Line 106  Line 334 
334    AC_MSG_RESULT([$NVCC])    AC_MSG_RESULT([$NVCC])
335    CUDA_ENABLED=true    CUDA_ENABLED=true
336  fi  fi
337    else
338      NVCC=":"
339      CUDA_ENABLED=false
340    fi
341  AC_SUBST(NVCC)  AC_SUBST(NVCC)
342  AC_SUBST(CUDA_ENABLED)  AC_SUBST(CUDA_ENABLED)
343    
344    #################### end CUDA configuration ####################
345    
346    #################### OpenCL configuration ####################
347    
348    AC_ARG_ENABLE([opencl],
349      AC_HELP_STRING([--enable-opencl], [include support for targeting OpenCL]))
350    
351    if test "${enable_opencl+set}" = set ; then
352    
353  dnl  dnl
354  dnl check for OpenCL support  dnl check for OpenCL support
355  dnl  dnl
# Line 128  Line 369 
369  else  else
370    CL_ENABLED=true    CL_ENABLED=true
371    CPPFLAGS_CL=""    CPPFLAGS_CL=""
372    AC_CHECK_HEADERS([CL/cl.h OpenCL/cl.h], [HAVE_CL_H="yes"; break], [HAVE_CL_H="no"])      CL_HEADER=""
373        AC_CHECK_HEADERS([CL/cl.h OpenCL/cl.h], [HAVE_CL_H="yes"; CL_HEADER="$ac_header"; break], [HAVE_CL_H="no"])
374    if test x"$HAVE_CL_H" = xno ; then    if test x"$HAVE_CL_H" = xno ; then
375      # check for AMD's SDK      # check for AMD's SDK
376      AC_MSG_CHECKING([for cl.h in AMD's SDK])      AC_MSG_CHECKING([for cl.h in AMD's SDK])
377      if test -d /opt/AMDAPP/include/CL ; then      if test -d /opt/AMDAPP/include/CL ; then
378        HAVE_CL_H="yes"        HAVE_CL_H="yes"
379            CL_HEADER="/opt/AMDAPP/include/CL/cl.h"
380        AC_DEFINE([HAVE_CL_CL_H])        AC_DEFINE([HAVE_CL_CL_H])
381        CPPFLAGS_CL="-I/opt/AMDAPP/include"        CPPFLAGS_CL="-I/opt/AMDAPP/include"
382      fi      fi
383      AC_MSG_RESULT([$HAVE_CL_H])      AC_MSG_RESULT([$HAVE_CL_H])
384    fi    fi
385    if test x"$HAVE_CL_H" = xno ; then    if test x"$HAVE_CL_H" = xno ; then
386          # check for NVIDIA's SDK
387          AC_MSG_CHECKING([for NVIDIA's SDK cl.h])
388          CUDA_HOME=none
389          for CUDA in cuda cuda-7.0 cuda-6.5 cuda-6.0 ; do
390            if test -d /usr/local/$CUDA/include/CL ; then
391              CUDA_HOME=/usr/local/$CUDA
392              break
393            fi
394          done
395          if test x"$CUDA_HOME" != xnone ; then
396            HAVE_CL_H="yes"
397            CL_HEADER="$CUDA_HOME/include/CL/cl.h"
398            AC_DEFINE([HAVE_CL_CL_H])
399            CPPFLAGS_CL="-I$CUDA_HOME/include"
400          fi
401          AC_MSG_RESULT([$HAVE_CL_H])
402        fi
403        if test x"$HAVE_CL_H" = xno ; then
404      AC_MSG_WARN([no cl.h found])      AC_MSG_WARN([no cl.h found])
405      CL_ENABLED=false      CL_ENABLED=false
406      CL_VERSION=0      CL_VERSION=0
407          SIZEOF_CL_INT=0
408          SIZEOF_CL_LONG=0
409          SIZEOF_CL_FLOAT=0
410          SIZEOF_CL_DOUBLE=0
411    else    else
412      # check the cl.h header for which version of OpenCL is supported      # check the cl.h header for which version of OpenCL is supported
413      AC_LANG([C])      AC_LANG([C])
# Line 157  Line 422 
422  # else  # else
423  #   error no cl.h  #   error no cl.h
424  # endif]],  # endif]],
425  [[#if defined(CL_VERSION_1_1)  [[#if defined(CL_VERSION_1_2)
426    printf("11000\n");    printf("120\n");
427    #elif defined(CL_VERSION_1_1)
428      printf("110\n");
429  #elif defined(CL_VERSION_1_0)  #elif defined(CL_VERSION_1_0)
430    printf("10000\n");    printf("100\n");
431  #else  #else
432    printf("0\n");    printf("0\n");
433  #endif  #endif
# Line 171  Line 438 
438  dnl the specification specifies the behavior, but it was unspecified in 1.0.  dnl the specification specifies the behavior, but it was unspecified in 1.0.
439  dnl  dnl
440      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
441  # ifdef HAVE_CL_CL_H    #include "$CL_HEADER"
442  #   include <CL/cl.h>    ]],
 # elif defined(HAVE_OPENCL_CL_H)  
 #   include <OpenCL/cl.h>  
 # else  
 #   error no cl.h  
 # endif]],  
443        [[cl_float4 x; x[0] = 0.0;]])],        [[cl_float4 x; x[0] = 0.0;]])],
444        [AC_DEFINE([CL_HOST_VECTORS_ARE_ARRAYS],[1],[host vector types are arrays])],        [AC_DEFINE([CL_HOST_VECTORS_ARE_ARRAYS],[1],[host vector types are arrays])],
445  dnl  dnl
446  dnl not arrays, so try the OpenCL 1.1 structure representation  dnl not arrays, so try the OpenCL 1.1 structure representation
447  dnl  dnl
448        [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[        [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
449  # ifdef HAVE_CL_CL_H  #include "$CL_HEADER"
450  #   include <CL/cl.h>  ]],
 # elif defined(HAVE_OPENCL_CL_H)  
 #   include <OpenCL/cl.h>  
 # else  
 #   error no cl.h  
 # endif]],  
451        [[cl_float4 x; x.s[0] = 0.0;]])],        [[cl_float4 x; x.s[0] = 0.0;]])],
452        [AC_DEFINE([CL_HOST_VECTORS_ARE_STRUCTS],[1],[host vector types are structs])],        [AC_DEFINE([CL_HOST_VECTORS_ARE_STRUCTS],[1],[host vector types are structs])],
453        [AC_MSG_ERROR([unable to figure out host types for OpenCL vectors])])])        [AC_MSG_ERROR([unable to figure out host types for OpenCL vectors])])])
# Line 199  Line 456 
456    # substitutions    # substitutions
457      AC_SUBST(LIBS_CL)      AC_SUBST(LIBS_CL)
458      AC_SUBST(CPPFLAGS_CL)      AC_SUBST(CPPFLAGS_CL)
459        #
460        # determine the sizes of the host-side OpenCL types
461        AC_CHECK_SIZEOF([cl_int], [], [#include "$CL_HEADER"])
462        SIZEOF_CL_INT=$ac_cv_sizeof_cl_int
463        AC_CHECK_SIZEOF([cl_long], [], [#include "$CL_HEADER"])
464        SIZEOF_CL_LONG=$ac_cv_sizeof_cl_long
465        AC_CHECK_SIZEOF([cl_float], [], [#include "$CL_HEADER"])
466        SIZEOF_CL_FLOAT=$ac_cv_sizeof_cl_float
467        AC_CHECK_SIZEOF([cl_double], [], [#include "$CL_HEADER"])
468        SIZEOF_CL_DOUBLE=$ac_cv_sizeof_cl_double
469        fi
470    fi    fi
471    else
472      CL_ENABLED=false
473      CL_VERSION="0"
474      SIZEOF_CL_INT="0"
475      SIZEOF_CL_LONG="0"
476      SIZEOF_CL_FLOAT="0"
477      SIZEOF_CL_DOUBLE="0"
478  fi  fi
479    
480  AC_SUBST(CL_ENABLED)  AC_SUBST(CL_ENABLED)
481  AC_SUBST(CL_VERSION)  AC_SUBST(CL_VERSION)
482    AC_DEFINE_UNQUOTED(DIDEROT_CL_VERSION,[$CL_VERSION],[version of OpenCL supported by system])
483    
484  dnl  AC_SUBST(SIZEOF_CL_INT)
485  dnl check for various library routines etc.  AC_SUBST(SIZEOF_CL_LONG)
486  dnl  AC_SUBST(SIZEOF_CL_FLOAT)
487  AC_CHECK_FUNCS(posix_memalign)  AC_SUBST(SIZEOF_CL_DOUBLE)
 if test x"$ac_cv_func_posix_memalign" != xyes ; then  
   AC_CHECK_FUNCS(memalign)  
   if test x"$ac_cv_func_posix_memalign" != xyes ; then  
     AC_CHECK_FUNCS(valloc)  
   fi  
 fi  
488    
489  AC_CHECK_FUNCS(mach_absolute_time)  #################### end OpenCL configuration ####################
 AC_CHECK_TYPES([struct timespec])  
 AC_CHECK_FUNCS(pthread_barrier_init)  
490    
491  dnl  #################### Teem configuration ####################
 dnl check for clock_gettime.  On Linux, this requires librt.  
 dnl  
 save_LIBS=$LIBS  
 LIBS="-lrt $LIBS"  
 AC_MSG_CHECKING([for clock_gettime])  
 AC_LINK_IFELSE(  
   [AC_LANG_PROGRAM(  
     [[#include <time.h>]],  
     [[struct timespec t; clock_gettime(CLOCK_REALTIME, &t); ]])],  
   [ ac_cv_func_clock_gettime=yes;  
     AC_DEFINE(HAVE_CLOCK_GETTIME, [1], [is clock_gettime available?])],  
   [ac_cv_func_clock_gettime=no])  
 AC_MSG_RESULT($ac_cv_func_clock_gettime)  
 if test "$ac_cv_func_clock_gettime" = "no" ; then  
   LIBS=$save_LIBS  
 fi  
   
 AC_CHECK_FUNCS(pthread_getcpuclockid)  
 AC_CHECK_FUNCS(sigtimedwait nanosleep)  
492    
493    dnl get the path to the TEEM installation.  We need this to build the Diderot
494    dnl runtime code and we use the path when searching for teem in the Diderot
495    dnl compiler.
496  dnl  dnl
 dnl check for sched_setaffinity  
 dnl  
 AC_CHECK_FUNCS(sched_setaffinity)  
497    
498  dnl  dnl the path can be specified using "--with-teem=..." too
 dnl check for pthread_setaffinity_np  
 dnl  
 save_LIBS=$LIBS  
 save_CFLAGS=$CFLAGS  
 LIBS="$PTHREAD_LIBS $LIBS"  
 CFLAGS="$PTHREAD_CFLAGS $CFLAGS"  
 AC_MSG_CHECKING([for pthread_setaffinity_np])  
 AC_LINK_IFELSE(  
   [AC_LANG_PROGRAM(  
     [[#include <pthread.h>]],  
     [[cpu_set_t s; pthread_setaffinity_np(pthread_self(), sizeof(s), &s); ]])],  
   [ ac_cv_func_pthread_setaffinity_np=yes;  
     AC_DEFINE(HAVE_PTHREAD_SETAFFINITY_NP, [1], [is pthread_setaffinity_np available?])],  
   [ac_cv_func_pthread_setaffinity_np=no])  
 AC_MSG_RESULT($ac_cv_func_pthread_setaffinity_np)  
 LIBS=$save_LIBS  
 CFLAGS=$save_CFLAGS  
   
 dnl  
 dnl check for Linux NUMA support (libnuma)  
 dnl  
 AC_CHECK_LIB(numa,numa_available)  
 if test "$ac_cv_lib_numa_numa_available" = "yes" ; then  
   PTHREAD_LIBS="$PTHREAD_LIBS -lnuma"  
 fi  
   
 dnl check for /proc/cpuinfo  
 dnl  
 AC_CHECK_FILES(/proc/cpuinfo)  
   
 dnl  
 dnl OS-specific linking issues  
 dnl  
 LD_NEEDS_RPATH=false;  
 LIBM=""  
 case "$host_os" in  
   darwin*) # On Mac OS X we check for the presence of macports and/or fink  
     if test -x /opt/local/bin/port ; then  
       HAS_MACPORTS=yes  
     else  
       HAS_MACPORTS=no  
     fi  
     if test -x /sw/bin/fink ; then  
       HAS_FINK=yes  
     else  
       HAS_FINK=no  
     fi  
   ;;  
   linux*) # On Linux we include the -rpath option to pick up dynamically-loaded libraries  
     LD_NEEDS_RPATH=true  
     LIBM="-lm"  
   ;;  
 esac  
   
 if test x"$HAS_MACPORTS" = xyes ; then  
   LDPATHS="-L/opt/local/lib"  
 elif test x"$HAS_FINK" = xyes ; then  
   LDPATHS="-L/sw/lib"  
 else  
   LDPATHS=""  
 fi  
 AC_SUBST(LDPATHS)  
 AC_SUBST(LD_NEEDS_RPATH)  
 AC_SUBST(LIBM)  
   
 dnl  
 dnl get the path to the TEEM installation  
499  dnl  dnl
500  AC_ARG_WITH(teem,  AC_ARG_WITH(teem,
501    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),
502    [ac_cv_use_teem=$withval], [ac_cv_use_teem=no])    [ac_cv_use_teem=$withval], [ac_cv_use_teem=no])
503    
504  if test x"$ac_cv_use_teem" = xno ; then  if test x"$ac_cv_use_teem" = xno ; then
505    dnl search for Teem in some standard places
506    dnl
507      AC_MSG_CHECKING([for teem])
508    TEEM_DIR=none    TEEM_DIR=none
509      POSSIBLE_TEEM_DIRS="/usr/local/teem /usr/local"
510      for dir in $POSSIBLE_TEEM_DIRS ; do
511        if test -f $dir/include/teem/nrrd.h ; then
512          TEEM_DIR=$dir
513          AC_MSG_RESULT([$TEEM_DIR])
514          break
515        fi
516      done
517      if test $TEEM_DIR = none ; then
518        AC_MSG_ERROR([unable to find teem; use --with-teem option to specify location])
519      fi
520  else  else
521    AC_MSG_CHECKING([path to teem ($ac_cv_use_teem)])    AC_MSG_CHECKING([path to teem ($ac_cv_use_teem)])
522    case $ac_cv_use_teem in    case $ac_cv_use_teem in
# Line 329  Line 527 
527      TEEM_DIR=$ac_cv_use_teem      TEEM_DIR=$ac_cv_use_teem
528      # check that TEEM_DIR actually points to something that looks like teem      # check that TEEM_DIR actually points to something that looks like teem
529      if test -f $TEEM_DIR/include/teem/nrrd.h ; then      if test -f $TEEM_DIR/include/teem/nrrd.h ; then
530        AC_MSG_RESULT([ okay])        AC_MSG_RESULT([yes])
531      else      else
532        TEEM_DIR=none        TEEM_DIR=none
533        AC_MSG_RESULT([ invalid])        AC_MSG_RESULT([invalid path to teem])
534      fi      fi
535    else    else
536      TEEM_DIR=none      TEEM_DIR=none
537      AC_MSG_RESULT([ invalid])      AC_MSG_RESULT([invalid path to teem])
538    fi    fi
539  fi  fi
540  if test x"$TEEM_DIR" = xnone ; then  if test x"$TEEM_DIR" = xnone ; then
541    AC_MSG_ERROR([unable to find teem])    AC_MSG_ERROR([unable to find teem])
542  fi  fi
543    dnl
544    dnl check that teem supports the nrrdMetaDataNormalize function
545    dnl
546    save_LDFLAGS=$LDFLAGS
547    save_LIBS=$LIBS
548    LDFLAGS="$LDFLAGS -L$TEEM_DIR/lib"
549    LIBS="$LIBS -lteem -lm"
550    AC_CHECK_FUNCS([nrrdMetaDataNormalize])
551    LDFLAGS=$save_LDFLAGS
552    LIBS=$save_LIBS
553    
554    if test "x$ac_cv_func_nrrdMetaDataNormalize" != xyes; then
555      AC_MSG_ERROR(["please update your teem installation"])
556    fi
557    
558  AC_SUBST(TEEM_DIR)  AC_SUBST(TEEM_DIR)
559    
560  dnl ******************** SML/NJ configuration ********************  #################### end Teem configuration ####################
561    
562    #################### SML configuration ####################
563    
564    dnl
565    dnl We support building with both SML/NJ (the default) or MLton.
566  dnl  dnl
567    
568    dnl first check for --with-mlton=path flag
569    dnl
570    AC_ARG_WITH([mlton],
571      [AS_HELP_STRING([--with-mlton=<path-to-mlton>],
572        [use the MLton Standard ML compiler to build Diderot])],
573      [with_mlton=yes],[with_mlton=no])
574    if test x"$with_mlton" = xyes ; then
575      if test x"$ac_cv_path_with_mlton" = x ; then
576        # look for mlton in the PATH
577        AC_PATH_PROGS(with_mlton, mlton, no)
578        if test x"$MLTON" = xno ; then
579          AC_MSG_ERROR([unable to find mlton executable; please specify the path])
580        fi
581      else
582        with_mlton=$ac_cv_path_with_mlton
583        case $with_mlton in
584          /*) ;;
585          *) AC_MSG_ERROR([please specify absolute path for mlton executable]) ;;
586        esac
587        if test ! -x $with_mlton ; then
588          AC_MSG_ERROR([invalid path for mlton; $with_mlton is not executable])
589        fi
590      fi
591    fi
592    
593    if test x"$with_mlton" = xno ; then
594      # we are using SML/NJ
595      #
596    
597  dnl check that we have a compatible version of SML/NJ  dnl check that we have a compatible version of SML/NJ
598  dnl  dnl
599  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; please add it to your PATH or set SML_CMD])])
600  if test $SMLNJ_MAJOR_VERSION -lt 110 \  if test $SMLNJ_MAJOR_VERSION -lt 110 \
601    -o $SMLNJ_MINOR_VERSION -lt 73      -o $SMLNJ_MINOR_VERSION -lt 80
602  then  then
603    AC_MSG_ERROR([installation requires SML/NJ version 110.73+])      AC_MSG_ERROR([installation requires SML/NJ version 110.80+ (available from smlnj.org)])
604  fi  fi
 AC_SUBST(SMLNJ_VERSION)  
605    
606  dnl determine the heap-image suffix  dnl determine the heap-image suffix
607  dnl  dnl
# Line 364  Line 610 
610    
611  dnl look for ml-makedepend  dnl look for ml-makedepend
612  dnl  dnl
 AC_MSG_CHECKING([for ml-makedepend])  
613  tmpPATH="$SMLNJ_PATH:$PATH"  tmpPATH="$SMLNJ_PATH:$PATH"
614  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  
615  AC_SUBST(ML_MAKEDEPEND)  AC_SUBST(ML_MAKEDEPEND)
616    
617  dnl  dnl
# Line 383  Line 623 
623    AC_MSG_ERROR([ml-build not found])    AC_MSG_ERROR([ml-build not found])
624  fi  fi
625  AC_SUBST(ML_BUILD)  AC_SUBST(ML_BUILD)
626      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  
627    
628  HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap  HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap
629  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)  
630  AC_SUBST(HEAP_IMAGE_DIR)  AC_SUBST(HEAP_IMAGE_DIR)
631  AC_SUBST(INSTALL_SMLNJ_WRAPPER)  AC_SUBST(INSTALL_SMLNJ_WRAPPER)
632    
633  dnl  else
634  dnl ******************** C compiler properties ********************  
635  dnl    # we are using MLton
636      MLTON=$with_mlton
637      AC_SUBST(MLTON)
638      SML=mlton
639    
640    fi
641    AC_SUBST(SML)
642    
643    #################### end SML configuration ####################
644    
645    #################### Documentation tools configuration ####################
646    
647    dnl check for doxygen
648  dnl  dnl
649  dnl run the compiler tests in 64-bit mode  AC_ARG_WITH([doxygen],
650      [AS_HELP_STRING([--with-doxygen=<path>], [specify location of doxygen executable])],
651      [DOXYGEN=$with_doxygen],
652      [DOXYGEN=none])
653    if test x$DOXYGEN = xnone ; then
654      # see if we can find doxygen in the user's path
655      AC_PATH_PROG(DOXYGEN, [doxygen], [none])
656    fi
657    if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then
658      AC_MSG_ERROR([--with-doxygen option must specify directory argument])
659    elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then
660      AC_MSG_ERROR([doxygen not found at $DOXYGEN])
661    elif test x$DOXYGEN != xnone ; then
662  dnl  dnl
663  save_CFLAGS=$CFLAGS  dnl verify that $DOXYGEN is an absolute path
 CFLAGS="$CFLAGS $CFLAG_M64"  
   
664  dnl  dnl
665  dnl check for gcc builtin atomic operations    case $DOXYGEN in
666        /*) ;;
667        *) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;;
668      esac
669    fi
670    if test $DOXYGEN = xnone ; then
671      DOXYGEN=:
672    fi
673    AC_SUBST(DOXYGEN)
674    
675    dnl check for asciidoctor
676  dnl  dnl
677  AC_MSG_CHECKING([for builtin atomic operations])  AC_PATH_PROGS([ASCIIDOCTOR], [asciidoctor], [none])
678  AC_LINK_IFELSE(  AC_SUBST(ASCIIDOCTOR)
    [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))  
679    
680  AC_C_BIGENDIAN  #################### end Documentation tools configuration ####################
681    
682  dnl  #################### Diderot Debugger configuration ####################
 dnl restore CFLAGS  
 dnl  
 CFLAGS=$save_CFLAGS  
683    
684    dnl The debugger is under development
685  dnl  dnl
686  dnl ******************** config.h stuff ********************  
687    dnl if the debugger is enabled, then include its makefile and
688    dnl look for wxwidgets
689  dnl  dnl
690    if test x"$DEBUGGER_ENABLED" = xtrue ; then
691      DEBUGGER_MAKEFILE=src/debugger/build/Makefile
692      search_path="$PATH$PATH_SEPARATOR/usr/local/bin$PATH_SEPARATOR/opt/local/bin"
693      AC_PATH_PROG([WX_CONFIG], [wx-config], [none], [$search_path])
694      if test x"$WX_CONFIG" = xnone ; then
695        AC_MSG_ERROR([unable to find wx-config, which is required by the Diderot debugger])
696      fi
697    else
698      DEBUGGER_MAKEFILE=
699    fi
700    
701  AC_DEFINE_UNQUOTED(DIDEROT_INCLUDE_PATH,["$DIDEROT_SRCDIR/include"], [path for Diderot header files])  #################### end Diderot Debugger configuration ####################
702    
703    #################### config.h ####################
704    
705    AC_DEFINE_UNQUOTED(DIDEROT_INCLUDE_PATH,["$DIDEROT_SRCDIR/lib/include"], [path for Diderot header files])
706    
707  AH_TOP([  AH_TOP([
708  /*  /*
709   * 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)
710   * All rights reserved.   *
711     * COPYRIGHT (c) 2016 The University of Chicago * All rights reserved.
712   */   */
713    
714  #ifndef _DIDEROT_CONFIG_H_  #ifndef _DIDEROT_CONFIG_H_
# Line 455  Line 720 
720  #endif /* !_DIDEROT_CONFIG_H_ */  #endif /* !_DIDEROT_CONFIG_H_ */
721  ])  ])
722    
723  dnl  #################### end config.h ####################
724  dnl ******************** write output ********************  
725  dnl  #################### write output ####################
726    
727    dnl The Makefile for the compiler depends on which SML system we are
728    dnl using.
729    if test x"$SML" = xmlton ; then
730      COMPILER_MAKEFILE_IN=":src/compiler/Makefile_mlton.in"
731      FRAG_GEN_MAKEFILE="src/compiler/gen/fragments/Makefile"
732    else
733      COMPILER_MAKEFILE_IN=""
734      FRAG_GEN_MAKEFILE=
735    fi
736    
737  AC_CONFIG_FILES(  AC_CONFIG_FILES(
738  dnl  dnl
739  dnl ***** Makefiles *****  dnl ***** Makefiles *****
740    Makefile    Makefile
741    doc/Makefile  dnl  doc/Makefile
742    src/clinfo/Makefile    doc/src/man/Makefile
743    src/dnorm/Makefile  dnl  src/clinfo/Makefile
744    src/compiler/Makefile    src/compiler/Makefile"$COMPILER_MAKEFILE_IN"
745      $FRAG_GEN_MAKEFILE
746      $DEBUGGER_MAKEFILE
747    src/lib/build/Makefile    src/lib/build/Makefile
748    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
   test/MIP/Makefile  
   test/probe/Makefile  
   test/iso2d-polyline/Makefile  
   test/vr-lite-cam/Makefile  
   test/hlic/Makefile  
749  dnl  dnl
750  dnl ***** SML source files *****  dnl ***** SML source files *****
751    src/compiler/nrrd/run-dnorm.sml:src/compiler/nrrd/run-dnorm_sml.in    src/compiler/nrrd/run-dnorm.sml:src/compiler/nrrd/run-dnorm_sml.in
752    src/compiler/common/paths.sml:src/compiler/common/paths_sml.in    src/compiler/common/paths.sml:src/compiler/common/paths_sml.in
753      src/compiler/common/size-of.sml:src/compiler/common/size-of_sml.in
754      src/compiler/options/version.sml:src/compiler/options/version_sml.in
755  )  )
756    
757  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)
758    
759  dnl  dnl
760  dnl shell scripts  dnl shell scripts
# Line 489  Line 763 
763    bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in    bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in
764  ], [chmod +x bin/install-sml-wrapper.sh])  ], [chmod +x bin/install-sml-wrapper.sh])
765  AC_CONFIG_FILES([  AC_CONFIG_FILES([
766    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
767  ], [chmod +x src/compiler/gen/file2str/file2str.sh])  ], [chmod +x src/compiler/gen/fragments/mkfrags.sh])
768  AC_CONFIG_FILES([  AC_CONFIG_FILES([
769    rtest/scripts/run.sh:rtest/scripts/run_sh.in    src/compiler/gen/fragments/mkmk.sh:src/compiler/gen/fragments/mkmk_sh.in
770  ], [chmod +x rtest/scripts/run.sh])  ], [chmod +x src/compiler/gen/fragments/mkmk.sh])
771    
772    dnl
773    dnl additional files for logging tools
774    dnl
775    if test x"$LOGGING_ENABLED" = xtrue ; then
776  AC_CONFIG_FILES([  AC_CONFIG_FILES([
777    rtest/scripts/run-one.sh:rtest/scripts/run-one_sh.in      src/logging/gen/Makefile
778  ], [chmod +x rtest/scripts/run-one.sh])      src/logging/log-analyze/Makefile
779        src/logging/log-dump/Makefile
780        src/logging/gen/log-gen.sh:src/logging/gen/log-gen_sh.in
781        src/logging/gen/main.sml:src/logging/gen/main_sml.in
782        src/logging/lib/default-log-paths.hxx:src/logging/lib/default-log-paths_hxx.in
783      ], [chmod +x src/logging/gen/log-gen.sh])
784    fi
785    
786  dnl  dnl
787  dnl generate makefiles for runtime library builds  dnl generate makefiles for runtime library builds
788  dnl  dnl
789  dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>)  dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>)
790  dnl  dnl
791    dnl where the options are taken from [debug, parallel]
792    dnl
793  AC_DEFUN([MK_BUILD_DIR], [  AC_DEFUN([MK_BUILD_DIR], [
794      if test ! -d src/lib/build/$1 ; then      if test ! -d src/lib/build/$1 ; then
795        mkdir src/lib/build/$1        mkdir src/lib/build/$1
# Line 515  Line 802 
802      AC_CONFIG_FILES(src/lib/build/$1/Makefile)      AC_CONFIG_FILES(src/lib/build/$1/Makefile)
803    ])    ])
804    
805  MK_BUILD_DIR(rt-c-f, c, [float])  MK_BUILD_DIR(rt-seq, sequential, [])
806  MK_BUILD_DIR(rt-c-d, c, [double])  MK_BUILD_DIR(rt-seq-debug, sequentiagetcpul, [debug])
807  MK_BUILD_DIR(rt-c-f-debug, c, [float debug])  MK_BUILD_DIR(rt-par, parallel, [parallel])
808  MK_BUILD_DIR(rt-c-d-debug, c, [double debug])  MK_BUILD_DIR(rt-par-debug, parallel, [parallel debug])
809  MK_BUILD_DIR(rt-c-f-par, parallel, [parallel float])  
810  MK_BUILD_DIR(rt-c-d-par, parallel, [parallel double])  if test x"$LOGGING_ENABLED" = xtrue ; then
811  MK_BUILD_DIR(rt-c-f-par-debug, parallel, [parallel float debug])    MK_BUILD_DIR(rt-par-log, parallel, [parallel logging])
 MK_BUILD_DIR(rt-c-d-par-debug, parallel, [parallel double debug])  
   
 if test x"$CL_ENABLED" = xtrue ; then  
   MK_BUILD_DIR(rt-cl-f, cl, [float])  
   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])  
812  fi  fi
813    
814    #if test x"$CL_ENABLED" = xtrue ; then
815    #  MK_BUILD_DIR(rt-cl-f, opencl, [float])
816    #  MK_BUILD_DIR(rt-cl-d, opencl, [double])
817    #  MK_BUILD_DIR(rt-cl-f-debug, opencl, [float debug])
818    #  MK_BUILD_DIR(rt-cl-d-debug, opencl, [double debug])
819    #fi
820    
821  AC_OUTPUT  AC_OUTPUT
822    
823    #################### end write output ####################

Legend:
Removed from v.1997  
changed lines
  Added in v.5500

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0