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

trunk/configure.ac revision 1116, Thu May 5 04:49:02 2011 UTC branches/vis15/configure.ac revision 4307, Fri Jul 29 19:29:48 2016 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) 2010 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  dnl NOTE: MANTICORE_DIST_VERSION is an M4 variable defined in config/aclocal.m4  AC_INIT(diderot,1.0,)
 dnl  
 AC_INIT(diderot,0.1,)  
10    
11  AC_PREREQ(2.60)  AC_PREREQ(2.60)
12  AC_COPYRIGHT([[COPYRIGHT (c) 2010 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)
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
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    
64  dnl check for c99 support  dnl FIXME: this works for now, but we should probably switch to libtool
65  dnl  dnl
66  AC_PROG_CC_C99  AC_PATH_PROG(LD, [ld], [none])
67  if test x"$ac_cv_prog_cc_c99" = xno ; then  if test x$LD = xnone ; then
68    AC_MSG_ERROR([Diderot requires c99 support])    AC_MSG_ERROR([cannot find ld command])
69  fi  fi
70    AC_SUBST(LD)
71    
72  dnl extra C compiler options  dnl extra compiler options
73  dnl  dnl
74  CFLAG_M64="-m64"  CXXFLAGS_BASE="-Wreturn-type -Wuninitialized"
75  CFLAGS="$CFLAGS -Wformat -Wreturn-type -Wuninitialized"  
76  AC_SUBST(CFLAG_M64)  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
83    
84    CXXFLAGS="$CXXFLAG_Mxx $CXXFLAGS_BASE"
85    AC_SUBST(CXXFLAG_Mxx)
86    AC_SUBST(CXXFLAGS_BASE)
87    
88  dnl  dnl
89  dnl Look for NVIDIA's nvcc compiler  dnl run the compiler tests in 64-bit mode
90  dnl  dnl
91  AC_MSG_CHECKING([for CUDA and nvcc])  save_CFLAGS=$CFLAGS
92  AC_PATH_PROG(NVCC, nvcc, ":", $PATH)  CFLAGS="$CFLAGS $CFLAG_MXX"
93  if test $NVCC = none ; then  
94    AC_MSG_WARN([nvcc not found])  dnl
95    dnl check for gcc builtin atomic operations
96    dnl
97    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    
124    dnl
125    dnl restore CFLAGS
126    dnl
127    CFLAGS=$save_CFLAGS
128    
129    dnl
130    dnl check for <stdbool.h>, which we use in the C API
131    dnl
132    AC_HEADER_STDBOOL
133    
134    dnl
135    dnl the C boolean type to use in generated library headers
136    dnl
137    if test x"$ac_cv_header_stdbool_h" = xyes ; then
138      BOOLTY="bool"
139    elif test "x$ac_cv_type__Bool" = xyes; then
140      BOOLTY="_Bool"
141  else  else
142    AC_MSG_RESULT([$NVCC])    BOOLTY="int"
143  fi  fi
144  AC_SUBST(NVCC)  AC_SUBST(BOOLTY)
145    
146  dnl  dnl
147  dnl check for pthreads support  dnl check for pthreads support
148  dnl  dnl
149  ACX_PTHREAD()  ACX_PTHREAD
150    
151    dnl
152    dnl check for various library routines etc.
153    dnl
154    AC_CHECK_FUNCS(posix_memalign)
155    if test x"$ac_cv_func_posix_memalign" != xyes ; then
156      AC_CHECK_FUNCS(memalign)
157      if test x"$ac_cv_func_posix_memalign" != xyes ; then
158        AC_CHECK_FUNCS(valloc)
159      fi
160    fi
161    
162    AC_CHECK_FUNCS(mach_absolute_time)
163    AC_CHECK_TYPES([struct timespec])
164    AC_CHECK_FUNCS(pthread_barrier_init)
165    
166    dnl
167    dnl check for clock_gettime.  On Linux, this requires librt.
168    dnl
169    save_LIBS=$LIBS
170    LIBS="-lrt $LIBS"
171    AC_MSG_CHECKING([for clock_gettime])
172    AC_LINK_IFELSE(
173      [AC_LANG_PROGRAM(
174        [[#include <time.h>]],
175        [[struct timespec t; clock_gettime(CLOCK_REALTIME, &t); ]])],
176      [ ac_cv_func_clock_gettime=yes;
177        AC_DEFINE(HAVE_CLOCK_GETTIME, [1], [is clock_gettime available?])],
178      [ac_cv_func_clock_gettime=no])
179    AC_MSG_RESULT($ac_cv_func_clock_gettime)
180    if test "$ac_cv_func_clock_gettime" = "no" ; then
181      LIBS=$save_LIBS
182    fi
183    
184    AC_CHECK_FUNCS(pthread_getcpuclockid)
185    AC_CHECK_FUNCS(sigtimedwait nanosleep)
186    
187    dnl
188    dnl check for sched_setaffinity
189    dnl
190    AC_CHECK_FUNCS(sched_setaffinity)
191    
192    dnl
193    dnl check for pthread_setaffinity_np
194    dnl
195    save_LIBS=$LIBS
196    save_CFLAGS=$CFLAGS
197    LIBS="$PTHREAD_LIBS $LIBS"
198    CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
199    AC_MSG_CHECKING([for pthread_setaffinity_np])
200    AC_LINK_IFELSE(
201      [AC_LANG_PROGRAM(
202        [[#include <pthread.h>]],
203        [[cpu_set_t s; pthread_setaffinity_np(pthread_self(), sizeof(s), &s); ]])],
204      [ ac_cv_func_pthread_setaffinity_np=yes;
205        AC_DEFINE(HAVE_PTHREAD_SETAFFINITY_NP, [1], [is pthread_setaffinity_np available?])],
206      [ac_cv_func_pthread_setaffinity_np=no])
207    AC_MSG_RESULT($ac_cv_func_pthread_setaffinity_np)
208    LIBS=$save_LIBS
209    CFLAGS=$save_CFLAGS
210    
211    dnl
212    dnl check for Linux NUMA support (libnuma)
213    dnl
214    AC_CHECK_LIB(numa,numa_available)
215    if test "$ac_cv_lib_numa_numa_available" = "yes" ; then
216      PTHREAD_LIBS="$PTHREAD_LIBS -lnuma"
217    fi
218    
219    dnl check for /proc/cpuinfo
220    dnl
221    AC_CHECK_FILES(/proc/cpuinfo)
222    
223  dnl  dnl
224  dnl OS-specific linking issues  dnl OS-specific linking issues
# Line 97  Line 255 
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
294    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  dnl
434  dnl get the path to the TEEM installation  dnl get the path to the TEEM installation.  We need this to build the Diderot
435    dnl runtime code and we use the path when searching for teem in the Diderot
436    dnl compiler.
437  dnl  dnl
438  AC_ARG_WITH(teem,  AC_ARG_WITH(teem,
439    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),
440    [ac_cv_use_teem=$withval], [ac_cv_use_teem=no])    [ac_cv_use_teem=$withval], [ac_cv_use_teem=no])
441  if test x"$ac_cv_use_teem" = xno ; then  if test x"$ac_cv_use_teem" = xno ; then
442    TEEM_DIR=none    TEEM_DIR=none
443      AC_MSG_ERROR([unable to find teem; use --with-teem option to specify location])
444  else  else
445    AC_MSG_CHECKING([path to teem ($ac_cv_use_teem)])    AC_MSG_CHECKING([path to teem ($ac_cv_use_teem)])
446    case $ac_cv_use_teem in    case $ac_cv_use_teem in
# Line 113  Line 449 
449    esac    esac
450    if test -x $ac_cv_use_teem ; then    if test -x $ac_cv_use_teem ; then
451      TEEM_DIR=$ac_cv_use_teem      TEEM_DIR=$ac_cv_use_teem
452      AC_MSG_RESULT([ okay])      # check that TEEM_DIR actually points to something that looks like teem
453        if test -f $TEEM_DIR/include/teem/nrrd.h ; then
454          AC_MSG_RESULT([yes])
455    else    else
456      TEEM_DIR=none      TEEM_DIR=none
457      AC_MSG_RESULT([ invalid])        AC_MSG_RESULT([invalid path to teem])
458        fi
459      else
460        TEEM_DIR=none
461        AC_MSG_RESULT([invalid path to teem])
462    fi    fi
463  fi  fi
464  if test x"$TEEM_DIR" = xnone ; then  if test x"$TEEM_DIR" = xnone ; then
465    AC_MSG_ERROR([unable to find teem])    AC_MSG_ERROR([unable to find teem])
466  fi  fi
467    dnl
468    dnl check that unu supports the dnorm command
469    dnl
470    if test x"$TEEM_DIR" != xnone ; then
471      AC_MSG_CHECKING([that \"unu dnorm\" works])
472      if test -x $TEEM_DIR/bin/unu ; then
473        $TEEM_DIR/bin/unu dnorm > /dev/null 2> /dev/null
474        if test $? -eq 0 ; then
475          AC_MSG_RESULT([yes])
476        else
477          AC_MSG_ERROR([\"unu dnorm\" is not supported; please update your teem installation])
478        fi
479      else
480        AC_MSG_ERROR([unable to find unu executable in $TEEM_DIR/bin"])
481      fi
482    fi
483  AC_SUBST(TEEM_DIR)  AC_SUBST(TEEM_DIR)
484    
485  dnl ******************** SML/NJ configuration ********************  #################### end Teem configuration ####################
486    
487    #################### SML configuration ####################
488    
489  dnl  dnl
490    dnl We support building with both SML/NJ (the default) or MLton.
491    dnl
492    
493    dnl first check for --with-mlton=path flag
494    dnl
495    AC_ARG_WITH([mlton],
496      [AS_HELP_STRING([--with-mlton=<path-to-mlton>],
497        [use the MLton Standard ML compiler to build Diderot])],
498      [with_mlton=yes],[with_mlton=no])
499    if test x"$with_mlton" = xyes ; then
500      if test x"$ac_cv_path_with_mlton" = x ; then
501        # look for mlton in the PATH
502        AC_PATH_PROGS(with_mlton, mlton, no)
503        if test x"$MLTON" = xno ; then
504          AC_MSG_ERROR([unable to find mlton executable; please specify the path])
505        fi
506      else
507        with_mlton=$ac_cv_path_with_mlton
508        case $with_mlton in
509          /*) ;;
510          *) AC_MSG_ERROR([please specify absolute path for mlton executable]) ;;
511        esac
512        if test ! -x $with_mlton ; then
513          AC_MSG_ERROR([invalid path for mlton; $with_mlton is not executable])
514        fi
515      fi
516    fi
517    
518    if test x"$with_mlton" = xno ; then
519      # we are using SML/NJ
520      #
521    
522  dnl check that we have a compatible version of SML/NJ  dnl check that we have a compatible version of SML/NJ
523  dnl  dnl
524  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])])
525  if test $SMLNJ_MAJOR_VERSION -lt 110 \  if test $SMLNJ_MAJOR_VERSION -lt 110 \
526    -o $SMLNJ_MINOR_VERSION -lt 72      -o $SMLNJ_MINOR_VERSION -lt 79
527  then  then
528    AC_MSG_ERROR([installation requires SML/NJ version 110.72+])      AC_MSG_ERROR([installation requires SML/NJ version 110.79+ (available from smlnj.org)])
529  fi  fi
 AC_SUBST(SMLNJ_VERSION)  
530    
531  dnl determine the heap-image suffix  dnl determine the heap-image suffix
532  dnl  dnl
# Line 163  Line 554 
554    AC_MSG_ERROR([ml-build not found])    AC_MSG_ERROR([ml-build not found])
555  fi  fi
556  AC_SUBST(ML_BUILD)  AC_SUBST(ML_BUILD)
557      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  
558    
559  HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap  HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap
560  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)  
561  AC_SUBST(HEAP_IMAGE_DIR)  AC_SUBST(HEAP_IMAGE_DIR)
562  AC_SUBST(INSTALL_SMLNJ_WRAPPER)  AC_SUBST(INSTALL_SMLNJ_WRAPPER)
563    
564    else
565    
566      # we are using MLton
567      MLTON=$with_mlton
568      AC_SUBST(MLTON)
569      SML=mlton
570    
571    fi
572    AC_SUBST(SML)
573    
574    #################### end SML configuration ####################
575    
576    #################### Documentation tools configuration ####################
577    
578    dnl check for doxygen
579    dnl
580    AC_ARG_WITH([doxygen],
581      [AS_HELP_STRING([--with-doxygen=<path>], [specify location of doxygen executable])],
582      [DOXYGEN=$with_doxygen],
583      [DOXYGEN=none])
584    if test x$DOXYGEN = xnone ; then
585      # see if we can find doxygen in the user's path
586      AC_PATH_PROG(DOXYGEN, [doxygen], [none])
587    fi
588    if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then
589      AC_MSG_ERROR([--with-doxygen option must specify directory argument])
590    elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then
591      AC_MSG_ERROR([doxygen not found at $DOXYGEN])
592    elif test x$DOXYGEN != xnone ; then
593    dnl
594    dnl verify that $DOXYGEN is an absolute path
595    dnl
596      case $DOXYGEN in
597        /*) ;;
598        *) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;;
599      esac
600    fi
601    if test $DOXYGEN = xnone ; then
602      DOXYGEN=:
603    fi
604    AC_SUBST(DOXYGEN)
605    
606    dnl check for asciidoc and related tools
607    dnl
608    AC_PATH_PROGS([ASCIIDOC], [asciidoc], [none])
609    AC_PATH_PROGS([A2X], [a2x], [none])
610    AC_PATH_PROGS([HIGHLIGHTER], [pygmentize], [none])
611    AC_PATH_PROGS([DBLATEX], [dblatex], [none])
612    
613  dnl  dnl
614  dnl ******************** write output ********************  dnl get the path to the asciidoc cofiguration files
615  dnl  dnl
616    if test x"$ASCIIDOC" != xnone ; then
617      AC_MSG_CHECKING([path to asciidoc configuration files])
618      ASCIIDOC_CONF_DIR=`$ASCIIDOC -v /dev/null 2>&1 | head -n 1 | sed 's|.*reading: \(.*\)/asciidoc.conf|\1|'`
619      AC_MSG_RESULT([$ASCIIDOC_CONF_DIR])
620    fi
621    AC_SUBST(ASCIIDOC)
622    AC_SUBST(A2X)
623    AC_SUBST(ASCIIDOC_CONF_DIR)
624    AC_SUBST(HIGHLIGHTER)
625    AC_SUBST(DBLATEX)
626    
627    #################### end Documentation tools configuration ####################
628    
629    #################### config.h ####################
630    
631    AC_DEFINE_UNQUOTED(DIDEROT_INCLUDE_PATH,["$DIDEROT_SRCDIR/lib/include"], [path for Diderot header files])
632    
633    AH_TOP([
634    /*
635     * This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu)
636     *
637     * COPYRIGHT (c) 2016 The University of Chicago * All rights reserved.
638     */
639    
640    #ifndef _DIDEROT_CONFIG_H_
641    #define _DIDEROT_CONFIG_H_
642    
643    ])
644    AH_BOTTOM([
645    
646    #endif /* !_DIDEROT_CONFIG_H_ */
647    ])
648    
649    #################### end config.h ####################
650    
651    #################### write output ####################
652    
653    dnl The compiler Makefile depends on which SML system we are
654    dnl using.
655    if test x"$SML" = xmlton ; then
656      COMPILER_MAKEFILE_IN=":src/compiler/Makefile_mlton.in"
657    else
658      COMPILER_MAKEFILE_IN=""
659    fi
660    
661  AC_CONFIG_FILES(  AC_CONFIG_FILES(
662  dnl  dnl
663  dnl ***** Makefiles *****  dnl ***** Makefiles *****
664    Makefile    Makefile
665    src/dnorm/Makefile  dnl  doc/Makefile
666    src/compiler/Makefile  dnl  doc/man/Makefile
667    src/lib/Makefile  dnl  src/clinfo/Makefile
668      src/compiler/Makefile"$COMPILER_MAKEFILE_IN"
669    src/lib/build/Makefile    src/lib/build/Makefile
670    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
671    test/Makefile  dnl  test/MIP/Makefile
672    test/MIP/Makefile  dnl  test/probe/Makefile
673    test/probe/Makefile  dnl  test/iso2d-polyline/Makefile
674    dnl  test/vr-lite-cam/Makefile
675    dnl  test/hlic/Makefile
676  dnl  dnl
677  dnl ***** SML source files *****  dnl ***** SML source files *****
678    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
679    src/compiler/common/paths.sml:src/compiler/common/paths_sml.in    src/compiler/common/paths.sml:src/compiler/common/paths_sml.in
680      src/compiler/common/size-of.sml:src/compiler/common/size-of_sml.in
681      src/compiler/options/version.sml:src/compiler/options/version_sml.in
682  )  )
683    
684    AC_CONFIG_HEADERS(src/lib/include/diderot/config.h:config/config_h.in)
685    
686  dnl  dnl
687  dnl shell scripts  dnl shell scripts
688  dnl  dnl
689  AC_CONFIG_FILES([  AC_CONFIG_FILES([
690    bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in    bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in
691  ], [chmod +x bin/install-sml-wrapper.sh])  ], [chmod +x bin/install-sml-wrapper.sh])
692    AC_CONFIG_FILES([
693      src/compiler/gen/fragments/mkfrags.sh:src/compiler/gen/fragments/mkfrags_sh.in
694    ], [chmod +x src/compiler/gen/fragments/mkfrags.sh])
695    AC_CONFIG_FILES([
696      src/compiler/gen/fragments/mkmk.sh:src/compiler/gen/fragments/mkmk_sh.in
697    ], [chmod +x src/compiler/gen/fragments/mkmk.sh])
698    AC_CONFIG_FILES([
699      src/tests/rtest/scripts/run.sh:src/tests/rtest/scripts/run_sh.in
700    ], [chmod +x src/tests/rtest/scripts/run.sh])
701    AC_CONFIG_FILES([
702      src/tests/rtest/scripts/run-one.sh:src/tests/rtest/scripts/run-one_sh.in
703    ], [chmod +x src/tests/rtest/scripts/run-one.sh])
704    #
705    # more regression tests; should merge with rtest at some point
706    #
707    # AC_CONFIG_FILES([
708    #   rtest2/scripts/run.sh:rtest2/scripts/run_sh.in
709    # ], [chmod +x rtest2/scripts/run.sh])
710    # AC_CONFIG_FILES([
711    #   rtest2/scripts/run-one.sh:rtest2/scripts/run-one_sh.in
712    # ], [chmod +x rtest2/scripts/run-one.sh])
713    
714  dnl  dnl
715  dnl generate makefiles for runtime library builds  dnl generate makefiles for runtime library builds
716  dnl  dnl
717  dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>)  dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>)
718  dnl  dnl
719    dnl where the options are taken from [debug, parallel]
720    dnl
721  AC_DEFUN([MK_BUILD_DIR], [  AC_DEFUN([MK_BUILD_DIR], [
722      if test ! -d src/lib/build/$1 ; then      if test ! -d src/lib/build/$1 ; then
723        mkdir src/lib/build/$1        mkdir src/lib/build/$1
# Line 231  Line 730 
730      AC_CONFIG_FILES(src/lib/build/$1/Makefile)      AC_CONFIG_FILES(src/lib/build/$1/Makefile)
731    ])    ])
732    
733  MK_BUILD_DIR(rt-c-f, c-target, [float])  MK_BUILD_DIR(rt-seq, sequential, [])
734  MK_BUILD_DIR(rt-c-f-debug, c-target, [float debug])  MK_BUILD_DIR(rt-seq-debug, sequential, [debug])
735    MK_BUILD_DIR(rt-par, parallel, [parallel])
736    MK_BUILD_DIR(rt-par-debug, parallel, [parallel debug])
737    
738    #if test x"$CL_ENABLED" = xtrue ; then
739    #  MK_BUILD_DIR(rt-cl-f, opencl, [float])
740    #  MK_BUILD_DIR(rt-cl-d, opencl, [double])
741    #  MK_BUILD_DIR(rt-cl-f-debug, opencl, [float debug])
742    #  MK_BUILD_DIR(rt-cl-d-debug, opencl, [double debug])
743    #fi
744    
745  AC_OUTPUT  AC_OUTPUT
746    
747    #################### end write output ####################

Legend:
Removed from v.1116  
changed lines
  Added in v.4307

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