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 436, Tue Oct 19 14:35:45 2010 UTC branches/vis15/configure.ac revision 4110, Thu Jun 30 04:04:30 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="master"
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
 AC_PROG_CC_C99  
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 FIXME: this works for now, but we should probably switch to libtool
65  dnl  dnl
66  dnl If we are on Mac OS X, check for the presence of macports and/or fink  AC_PATH_PROG(LD, [ld], [none])
67    if test x$LD = xnone ; then
68      AC_MSG_ERROR([cannot find ld command])
69    fi
70    AC_SUBST(LD)
71    
72    dnl extra compiler options
73    dnl
74    CXXFLAGS_BASE="$CXXFLAGS -Wreturn-type -Wuninitialized"
75    
76    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
89    dnl run the compiler tests in 64-bit mode
90    dnl
91    save_CFLAGS=$CFLAGS
92    CFLAGS="$CFLAGS $CFLAG_MXX"
93    
94    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  dnl
135    dnl check for pthreads support
136    dnl
137    ACX_PTHREAD
138    
139    dnl
140    dnl check for various library routines etc.
141    dnl
142    AC_CHECK_FUNCS(posix_memalign)
143    if test x"$ac_cv_func_posix_memalign" != xyes ; then
144      AC_CHECK_FUNCS(memalign)
145      if test x"$ac_cv_func_posix_memalign" != xyes ; then
146        AC_CHECK_FUNCS(valloc)
147      fi
148    fi
149    
150    AC_CHECK_FUNCS(mach_absolute_time)
151    AC_CHECK_TYPES([struct timespec])
152    AC_CHECK_FUNCS(pthread_barrier_init)
153    
154    dnl
155    dnl check for clock_gettime.  On Linux, this requires librt.
156    dnl
157    save_LIBS=$LIBS
158    LIBS="-lrt $LIBS"
159    AC_MSG_CHECKING([for clock_gettime])
160    AC_LINK_IFELSE(
161      [AC_LANG_PROGRAM(
162        [[#include <time.h>]],
163        [[struct timespec t; clock_gettime(CLOCK_REALTIME, &t); ]])],
164      [ ac_cv_func_clock_gettime=yes;
165        AC_DEFINE(HAVE_CLOCK_GETTIME, [1], [is clock_gettime available?])],
166      [ac_cv_func_clock_gettime=no])
167    AC_MSG_RESULT($ac_cv_func_clock_gettime)
168    if test "$ac_cv_func_clock_gettime" = "no" ; then
169      LIBS=$save_LIBS
170    fi
171    
172    AC_CHECK_FUNCS(pthread_getcpuclockid)
173    AC_CHECK_FUNCS(sigtimedwait nanosleep)
174    
175    dnl
176    dnl check for sched_setaffinity
177    dnl
178    AC_CHECK_FUNCS(sched_setaffinity)
179    
180    dnl
181    dnl check for pthread_setaffinity_np
182    dnl
183    save_LIBS=$LIBS
184    save_CFLAGS=$CFLAGS
185    LIBS="$PTHREAD_LIBS $LIBS"
186    CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
187    AC_MSG_CHECKING([for pthread_setaffinity_np])
188    AC_LINK_IFELSE(
189      [AC_LANG_PROGRAM(
190        [[#include <pthread.h>]],
191        [[cpu_set_t s; pthread_setaffinity_np(pthread_self(), sizeof(s), &s); ]])],
192      [ ac_cv_func_pthread_setaffinity_np=yes;
193        AC_DEFINE(HAVE_PTHREAD_SETAFFINITY_NP, [1], [is pthread_setaffinity_np available?])],
194      [ac_cv_func_pthread_setaffinity_np=no])
195    AC_MSG_RESULT($ac_cv_func_pthread_setaffinity_np)
196    LIBS=$save_LIBS
197    CFLAGS=$save_CFLAGS
198    
199    dnl
200    dnl check for Linux NUMA support (libnuma)
201    dnl
202    AC_CHECK_LIB(numa,numa_available)
203    if test "$ac_cv_lib_numa_numa_available" = "yes" ; then
204      PTHREAD_LIBS="$PTHREAD_LIBS -lnuma"
205    fi
206    
207    dnl check for /proc/cpuinfo
208    dnl
209    AC_CHECK_FILES(/proc/cpuinfo)
210    
211    dnl
212    dnl OS-specific linking issues
213    dnl
214    LD_NEEDS_RPATH=false;
215    LIBM=""
216  case "$host_os" in  case "$host_os" in
217    darwin*) # On Mac OS X we check for installed frameworks    darwin*) # On Mac OS X we check for the presence of macports and/or fink
218      if test -x /opt/local/bin/port ; then      if test -x /opt/local/bin/port ; then
219        HAS_MACPORTS=yes        HAS_MACPORTS=yes
220      else      else
# Line 50  Line 226 
226        HAS_FINK=no        HAS_FINK=no
227      fi      fi
228    ;;    ;;
229      linux*) # On Linux we include the -rpath option to pick up dynamically-loaded libraries
230        LD_NEEDS_RPATH=true
231        LIBM="-lm"
232      ;;
233  esac  esac
234    
235  if test x"$HAS_MACPORTS" = xyes ; then  if test x"$HAS_MACPORTS" = xyes ; then
# Line 60  Line 240 
240    LDPATHS=""    LDPATHS=""
241  fi  fi
242  AC_SUBST(LDPATHS)  AC_SUBST(LDPATHS)
243    AC_SUBST(LD_NEEDS_RPATH)
244    AC_SUBST(LIBM)
245    
246    #################### CUDA configuration ####################
247    
248    dnl
249    dnl Look for NVIDIA's nvcc compiler
250    dnl
251    AC_MSG_NOTICE([checking for CUDA and nvcc])
252    AC_PATH_PROG(NVCC, nvcc, no, $PATH)
253    if test x"$NVCC" = xno ; then
254      AC_MSG_WARN([nvcc not found])
255      CUDA_ENABLED=false
256      NVCC=":"
257    else
258      AC_MSG_RESULT([$NVCC])
259      CUDA_ENABLED=true
260    fi
261    AC_SUBST(NVCC)
262    AC_SUBST(CUDA_ENABLED)
263    
264    #################### end CUDA configuration ####################
265    
266    #################### OpenCL configuration ####################
267    
268    dnl
269    dnl check for OpenCL support
270    dnl
271    LIBS_CL="none"
272    case "$host_os" in
273      darwin*) # On Mac OS X we check for installed frameworks
274        AX_CHECK_FRAMEWORK([OpenCL], [LIBS_CL="-framework OpenCL"], [])
275      ;;
276      *)
277        AC_CHECK_LIB([OpenCL],[clGetPlatformIDs],[LIBS_CL="-lOpenCL"])
278      ;;
279    esac
280    if test x"$LIBS_CL" = xnone ; then
281      AC_MSG_WARN([no OpenCL library found])
282      CL_ENABLED=false
283      CL_VERSION=0
284    else
285      CL_ENABLED=true
286      CPPFLAGS_CL=""
287      CL_HEADER=""
288      AC_CHECK_HEADERS([CL/cl.h OpenCL/cl.h], [HAVE_CL_H="yes"; CL_HEADER="$ac_header"; break], [HAVE_CL_H="no"])
289      if test x"$HAVE_CL_H" = xno ; then
290        # check for AMD's SDK
291        AC_MSG_CHECKING([for cl.h in AMD's SDK])
292        if test -d /opt/AMDAPP/include/CL ; then
293          HAVE_CL_H="yes"
294          CL_HEADER="/opt/AMDAPP/include/CL/cl.h"
295          AC_DEFINE([HAVE_CL_CL_H])
296          CPPFLAGS_CL="-I/opt/AMDAPP/include"
297        fi
298        AC_MSG_RESULT([$HAVE_CL_H])
299      fi
300      if test x"$HAVE_CL_H" = xno ; then
301        # check for NVIDIA's SDK
302        AC_MSG_CHECKING([for NVIDIA's SDK cl.h])
303        CUDA_HOME=none
304        for CUDA in cuda cuda-7.0 cuda-6.5 cuda-6.0 ; do
305          if test -d /usr/local/$CUDA/include/CL ; then
306            CUDA_HOME=/usr/local/$CUDA
307            break
308          fi
309        done
310        if test x"$CUDA_HOME" != xnone ; then
311          HAVE_CL_H="yes"
312          CL_HEADER="$CUDA_HOME/include/CL/cl.h"
313          AC_DEFINE([HAVE_CL_CL_H])
314          CPPFLAGS_CL="-I$CUDA_HOME/include"
315        fi
316        AC_MSG_RESULT([$HAVE_CL_H])
317      fi
318      if test x"$HAVE_CL_H" = xno ; then
319        AC_MSG_WARN([no cl.h found])
320        CL_ENABLED=false
321        CL_VERSION=0
322        SIZEOF_CL_INT=0
323        SIZEOF_CL_LONG=0
324        SIZEOF_CL_FLOAT=0
325        SIZEOF_CL_DOUBLE=0
326      else
327        # check the cl.h header for which version of OpenCL is supported
328        AC_LANG([C])
329        save_CPPFLAGS=$CPPFLAGS
330        CPPFLAGS="$CPPFLAGS_CL $CPPFLAGS"
331        AC_LINK_IFELSE([AC_LANG_PROGRAM([[
332    #include <stdio.h>
333    # ifdef HAVE_CL_CL_H
334    #   include <CL/cl.h>
335    # elif defined(HAVE_OPENCL_CL_H)
336    #   include <OpenCL/cl.h>
337    # else
338    #   error no cl.h
339    # endif]],
340    [[#if defined(CL_VERSION_1_2)
341      printf("120\n");
342    #elif defined(CL_VERSION_1_1)
343      printf("110\n");
344    #elif defined(CL_VERSION_1_0)
345      printf("100\n");
346    #else
347      printf("0\n");
348    #endif
349          ]])],
350          [CL_VERSION=`./conftest$EXEEXT`], [CL_VERSION=0])
351    dnl
352    dnl check to see how we access the host-side vector types.  For OpenCL 1.1,
353    dnl the specification specifies the behavior, but it was unspecified in 1.0.
354    dnl
355        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
356    #include "$CL_HEADER"
357    ]],
358          [[cl_float4 x; x[0] = 0.0;]])],
359          [AC_DEFINE([CL_HOST_VECTORS_ARE_ARRAYS],[1],[host vector types are arrays])],
360    dnl
361    dnl not arrays, so try the OpenCL 1.1 structure representation
362    dnl
363          [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
364    #include "$CL_HEADER"
365    ]],
366          [[cl_float4 x; x.s[0] = 0.0;]])],
367          [AC_DEFINE([CL_HOST_VECTORS_ARE_STRUCTS],[1],[host vector types are structs])],
368          [AC_MSG_ERROR([unable to figure out host types for OpenCL vectors])])])
369      # restore saved CPPFLAGS
370        CPPFLAGS=$save_CPPFLAGS
371      # substitutions
372        AC_SUBST(LIBS_CL)
373        AC_SUBST(CPPFLAGS_CL)
374      #
375      # determine the sizes of the host-side OpenCL types
376      AC_CHECK_SIZEOF([cl_int], [], [#include "$CL_HEADER"])
377      SIZEOF_CL_INT=$ac_cv_sizeof_cl_int
378      AC_CHECK_SIZEOF([cl_long], [], [#include "$CL_HEADER"])
379      SIZEOF_CL_LONG=$ac_cv_sizeof_cl_long
380      AC_CHECK_SIZEOF([cl_float], [], [#include "$CL_HEADER"])
381      SIZEOF_CL_FLOAT=$ac_cv_sizeof_cl_float
382      AC_CHECK_SIZEOF([cl_double], [], [#include "$CL_HEADER"])
383      SIZEOF_CL_DOUBLE=$ac_cv_sizeof_cl_double
384      fi
385    fi
386    AC_SUBST(CL_ENABLED)
387    AC_SUBST(CL_VERSION)
388    AC_DEFINE_UNQUOTED(DIDEROT_CL_VERSION,[$CL_VERSION],[version of OpenCL supported by system])
389    
390    AC_SUBST(SIZEOF_CL_INT)
391    AC_SUBST(SIZEOF_CL_LONG)
392    AC_SUBST(SIZEOF_CL_FLOAT)
393    AC_SUBST(SIZEOF_CL_DOUBLE)
394    
395    #################### end OpenCL configuration ####################
396    
397    #################### Teem configuration ####################
398    
399  dnl  dnl
400  dnl get the path to the TEEM installation  dnl get the path to the TEEM installation.  We need this to build the Diderot
401    dnl runtime code and we use the path when searching for teem in the Diderot
402    dnl compiler.
403  dnl  dnl
404  AC_ARG_WITH(teem,  AC_ARG_WITH(teem,
405    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),
# Line 77  Line 414 
414    esac    esac
415    if test -x $ac_cv_use_teem ; then    if test -x $ac_cv_use_teem ; then
416      TEEM_DIR=$ac_cv_use_teem      TEEM_DIR=$ac_cv_use_teem
417      AC_MSG_RESULT([ okay])      # check that TEEM_DIR actually points to something that looks like teem
418        if test -f $TEEM_DIR/include/teem/nrrd.h ; then
419          AC_MSG_RESULT([yes])
420    else    else
421      TEEM_DIR=none      TEEM_DIR=none
422      AC_MSG_RESULT([ invalid])        AC_MSG_RESULT([no])
423        fi
424      else
425        TEEM_DIR=none
426        AC_MSG_RESULT([no])
427    fi    fi
428  fi  fi
429  if test x"$TEEM_DIR" = xnone ; then  if test x"$TEEM_DIR" = xnone ; then
430    AC_MSG_ERROR([unable to find teem])    AC_MSG_ERROR([unable to find teem; use --with-teem option to specify location])
431    fi
432    dnl
433    dnl check that unu supports the dnorm command
434    dnl
435    if test x"$TEEM_DIR" != xnone ; then
436      AC_MSG_CHECKING([that \"unu dnorm\" works])
437      if test -x $TEEM_DIR/bin/unu ; then
438        $TEEM_DIR/bin/unu dnorm > /dev/null 2> /dev/null
439        if test $? -eq 0 ; then
440          AC_MSG_RESULT([yes])
441        else
442          AC_MSG_ERROR([\"unu dnorm\" is not supported; please update your teem installation])
443        fi
444      else
445        AC_MSG_ERROR([unable to find unu executable in $TEEM_DIR/bin"])
446      fi
447  fi  fi
448  AC_SUBST(TEEM_DIR)  AC_SUBST(TEEM_DIR)
449    
450  dnl ******************** SML/NJ configuration ********************  #################### end Teem configuration ####################
451    
452    #################### SML configuration ####################
453    
454    dnl
455    dnl We support building with both SML/NJ (the default) or MLton.
456    dnl
457    
458    dnl first check for --with-mlton=path flag
459  dnl  dnl
460    AC_ARG_WITH([mlton],
461      [AS_HELP_STRING([--with-mlton=<path-to-mlton>],
462        [use the MLton Standard ML compiler to build Diderot])],
463      [with_mlton=yes],[with_mlton=no])
464    if test x"$with_mlton" = xyes ; then
465      if test x"$ac_cv_path_with_mlton" = x ; then
466        # look for mlton in the PATH
467        AC_PATH_PROGS(with_mlton, mlton, no)
468        if test x"$MLTON" = xno ; then
469          AC_MSG_ERROR([unable to find mlton executable; please specify the path])
470        fi
471      else
472        with_mlton=$ac_cv_path_with_mlton
473        case $with_mlton in
474          /*) ;;
475          *) AC_MSG_ERROR([please specify absolute path for mlton executable]) ;;
476        esac
477        if test ! -x $with_mlton ; then
478          AC_MSG_ERROR([invalid path for mlton; $with_mlton is not executable])
479        fi
480      fi
481    fi
482    
483    if test x"$with_mlton" = xno ; then
484      # we are using SML/NJ
485      #
486    
487  dnl check that we have a compatible version of SML/NJ  dnl check that we have a compatible version of SML/NJ
488  dnl  dnl
489  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])])
490  if test $SMLNJ_MAJOR_VERSION -lt 110 \  if test $SMLNJ_MAJOR_VERSION -lt 110 \
491    -o $SMLNJ_MINOR_VERSION -lt 72      -o $SMLNJ_MINOR_VERSION -lt 79
492  then  then
493    AC_MSG_ERROR([installation requires SML/NJ version 110.72+])      AC_MSG_ERROR([installation requires SML/NJ version 110.79+ (available from smlnj.org)])
494  fi  fi
 AC_SUBST(SMLNJ_VERSION)  
495    
496  dnl determine the heap-image suffix  dnl determine the heap-image suffix
497  dnl  dnl
# Line 127  Line 519 
519    AC_MSG_ERROR([ml-build not found])    AC_MSG_ERROR([ml-build not found])
520  fi  fi
521  AC_SUBST(ML_BUILD)  AC_SUBST(ML_BUILD)
522      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  
523    
524  HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap  HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap
525  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)  
526  AC_SUBST(HEAP_IMAGE_DIR)  AC_SUBST(HEAP_IMAGE_DIR)
527  AC_SUBST(INSTALL_SMLNJ_WRAPPER)  AC_SUBST(INSTALL_SMLNJ_WRAPPER)
528    
529    else
530    
531      # we are using MLton
532      MLTON=$with_mlton
533      AC_SUBST(MLTON)
534      SML=mlton
535    
536    fi
537    AC_SUBST(SML)
538    
539    #################### SML configuration ####################
540    
541    #################### Documentation tools configuration ####################
542    
543    dnl check for doxygen
544    dnl
545    AC_ARG_WITH([doxygen],
546      [AS_HELP_STRING([--with-doxygen=<path>], [specify location of doxygen executable])],
547      [DOXYGEN=$with_doxygen],
548      [DOXYGEN=none])
549    if test x$DOXYGEN = xnone ; then
550      # see if we can find doxygen in the user's path
551      AC_PATH_PROG(DOXYGEN, [doxygen], [none])
552    fi
553    if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then
554      AC_MSG_ERROR([--with-doxygen option must specify directory argument])
555    elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then
556      AC_MSG_ERROR([doxygen not found at $DOXYGEN])
557    elif test x$DOXYGEN != xnone ; then
558  dnl  dnl
559  dnl ******************** write output ********************  dnl verify that $DOXYGEN is an absolute path
560  dnl  dnl
561      case $DOXYGEN in
562        /*) ;;
563        *) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;;
564      esac
565    fi
566    if test $DOXYGEN = xnone ; then
567      DOXYGEN=:
568    fi
569    AC_SUBST(DOXYGEN)
570    
571    dnl check for asciidoc and related tools
572    dnl
573    AC_PATH_PROGS([ASCIIDOC], [asciidoc], [none])
574    AC_PATH_PROGS([A2X], [a2x], [none])
575    AC_PATH_PROGS([HIGHLIGHTER], [pygmentize], [none])
576    AC_PATH_PROGS([DBLATEX], [dblatex], [none])
577    
578    dnl
579    dnl get the path to the asciidoc cofiguration files
580    dnl
581    if test x"$ASCIIDOC" != xnone ; then
582      AC_MSG_CHECKING([path to asciidoc configuration files])
583      ASCIIDOC_CONF_DIR=`$ASCIIDOC -v /dev/null 2>&1 | head -n 1 | sed 's|.*reading: \(.*\)/asciidoc.conf|\1|'`
584      AC_MSG_RESULT([$ASCIIDOC_CONF_DIR])
585    fi
586    AC_SUBST(ASCIIDOC)
587    AC_SUBST(A2X)
588    AC_SUBST(ASCIIDOC_CONF_DIR)
589    AC_SUBST(HIGHLIGHTER)
590    AC_SUBST(DBLATEX)
591    
592    #################### end Documentation tools configuration ####################
593    
594    #################### config.h ####################
595    
596    AC_DEFINE_UNQUOTED(DIDEROT_INCLUDE_PATH,["$DIDEROT_SRCDIR/lib/include"], [path for Diderot header files])
597    
598    AH_TOP([
599    /*
600     * This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu)
601     *
602     * COPYRIGHT (c) 2016 The University of Chicago * All rights reserved.
603     */
604    
605    #ifndef _DIDEROT_CONFIG_H_
606    #define _DIDEROT_CONFIG_H_
607    
608    ])
609    AH_BOTTOM([
610    
611    #endif /* !_DIDEROT_CONFIG_H_ */
612    ])
613    
614    #################### end config.h ####################
615    
616    #################### write output ####################
617    
618    dnl The compiler Makefile depends on which SML system we are
619    dnl using.
620    if test x"$SML" = xmlton ; then
621      COMPILER_MAKEFILE_IN=":src/compiler/Makefile_mlton.in"
622    else
623      COMPILER_MAKEFILE_IN=""
624    fi
625    
626  AC_CONFIG_FILES(  AC_CONFIG_FILES(
627  dnl  dnl
628  dnl ***** Makefiles *****  dnl ***** Makefiles *****
629    Makefile    Makefile
630    src/dnorm/Makefile  dnl  doc/Makefile
631    src/compiler/Makefile  dnl  doc/man/Makefile
632    test/MIP/Makefile  dnl  src/clinfo/Makefile
633    test/probe/Makefile    src/compiler/Makefile"$COMPILER_MAKEFILE_IN"
634      src/lib/build/Makefile
635      src/lib/build/mk/build.gmk:src/lib/build/mk/build_gmk.in
636    dnl  test/MIP/Makefile
637    dnl  test/probe/Makefile
638    dnl  test/iso2d-polyline/Makefile
639    dnl  test/vr-lite-cam/Makefile
640    dnl  test/hlic/Makefile
641  dnl  dnl
642  dnl ***** SML source files *****  dnl ***** SML source files *****
643    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
644      src/compiler/common/paths.sml:src/compiler/common/paths_sml.in
645      src/compiler/common/size-of.sml:src/compiler/common/size-of_sml.in
646      src/compiler/options/version.sml:src/compiler/options/version_sml.in
647  )  )
648    
649    AC_CONFIG_HEADERS(src/lib/include/diderot/config.h:config/config_h.in)
650    
651  dnl  dnl
652  dnl shell scripts  dnl shell scripts
653  dnl  dnl
654  AC_CONFIG_FILES([  AC_CONFIG_FILES([
655    bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in    bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in
656  ], [chmod +x bin/install-sml-wrapper.sh])  ], [chmod +x bin/install-sml-wrapper.sh])
657    AC_CONFIG_FILES([
658      src/compiler/gen/fragments/mkfrags.sh:src/compiler/gen/fragments/mkfrags_sh.in
659    ], [chmod +x src/compiler/gen/fragments/mkfrags.sh])
660    AC_CONFIG_FILES([
661      src/compiler/gen/fragments/mkmk.sh:src/compiler/gen/fragments/mkmk_sh.in
662    ], [chmod +x src/compiler/gen/fragments/mkmk.sh])
663    AC_CONFIG_FILES([
664      src/tests/rtest/scripts/run.sh:src/tests/rtest/scripts/run_sh.in
665    ], [chmod +x src/tests/rtest/scripts/run.sh])
666    AC_CONFIG_FILES([
667      src/tests/rtest/scripts/run-one.sh:src/tests/rtest/scripts/run-one_sh.in
668    ], [chmod +x src/tests/rtest/scripts/run-one.sh])
669    #
670    # more regression tests; should merge with rtest at some point
671    #
672    # AC_CONFIG_FILES([
673    #   rtest2/scripts/run.sh:rtest2/scripts/run_sh.in
674    # ], [chmod +x rtest2/scripts/run.sh])
675    # AC_CONFIG_FILES([
676    #   rtest2/scripts/run-one.sh:rtest2/scripts/run-one_sh.in
677    # ], [chmod +x rtest2/scripts/run-one.sh])
678    
679    dnl
680    dnl generate makefiles for runtime library builds
681    dnl
682    dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>)
683    dnl
684    dnl where the options are taken from [debug, parallel]
685    dnl
686    AC_DEFUN([MK_BUILD_DIR], [
687        if test ! -d src/lib/build/$1 ; then
688          mkdir src/lib/build/$1
689        fi
690        [sed -e 's,@BUILD_TARGET@,$1,g' \
691          -e 's,@TARGET_PLATFORM@,$2,g' \
692          -e 's,@BUILD_OPTIONS@,$3,g' \
693          src/lib/build/mk/Makefile.in \
694            > src/lib/build/$1/Makefile.in]
695        AC_CONFIG_FILES(src/lib/build/$1/Makefile)
696      ])
697    
698    MK_BUILD_DIR(rt-seq, sequential, [])
699    MK_BUILD_DIR(rt-seq-debug, sequential, [debug])
700    MK_BUILD_DIR(rt-par, parallel, [parallel])
701    MK_BUILD_DIR(rt-par-debug, parallel, [parallel debug])
702    
703    #if test x"$CL_ENABLED" = xtrue ; then
704    #  MK_BUILD_DIR(rt-cl-f, opencl, [float])
705    #  MK_BUILD_DIR(rt-cl-d, opencl, [double])
706    #  MK_BUILD_DIR(rt-cl-f-debug, opencl, [float debug])
707    #  MK_BUILD_DIR(rt-cl-d-debug, opencl, [double debug])
708    #fi
709    
710  AC_OUTPUT  AC_OUTPUT
711    
712    #################### end write output ####################

Legend:
Removed from v.436  
changed lines
  Added in v.4110

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