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

revision 1714, Sat Mar 10 00:00:50 2012 UTC revision 2685, Mon Aug 25 18:58:33 2014 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 COPYRIGHT (c) 2014 The Diderot Project
4  dnl All rights reserved.  dnl All rights reserved.
5  dnl  dnl
6    
7  AC_INIT(diderot,0.1,)  AC_INIT(diderot,0.1,)
8    
9  AC_PREREQ(2.60)  AC_PREREQ(2.60)
10  AC_COPYRIGHT([[COPYRIGHT (c) 2011 The Diderot Project (http://diderot-language.cs.uchicago.edu)]])  AC_COPYRIGHT([[COPYRIGHT (c) 2014 The Diderot Project (http://diderot-language.cs.uchicago.edu)]])
11  AC_CONFIG_SRCDIR(src/dnorm/dnorm.c)  AC_CONFIG_SRCDIR(src/compiler/driver/main.sml)
12  AC_CONFIG_AUX_DIR(config)  AC_CONFIG_AUX_DIR(config)
13  AC_CONFIG_MACRO_DIR(config)  AC_CONFIG_MACRO_DIR(config)
14    
# Line 47  Line 47 
47    AC_MSG_ERROR([Diderot requires c99 support])    AC_MSG_ERROR([Diderot requires c99 support])
48  fi  fi
49    
50    AC_ARG_ENABLE([32-bit],
51      AC_HELP_STRING([--enable-32-bit], [configure Diderot to produce 32-bit executables]),
52      [CFLAG_MXX="-m32"],
53      [CFLAG_MXX="-m64"])
54    
55  dnl extra C compiler options  dnl extra C compiler options
56  dnl  dnl
57  CFLAGS=""  CFLAGS=""
 CFLAG_M64="-m64"  
58  CFLAGS_BASE="-Wformat -Wreturn-type -Wuninitialized"  CFLAGS_BASE="-Wformat -Wreturn-type -Wuninitialized"
59  AC_SUBST(CFLAG_M64)  AC_SUBST(CFLAG_MXX)
60  AC_SUBST(CFLAGS_BASE)  AC_SUBST(CFLAGS_BASE)
61    
62  dnl  dnl
63  dnl check for pthreads support  dnl standard headers
64  dnl  dnl
65  ACX_PTHREAD()  AC_HEADER_STDBOOL
66    
 dnl check for doxygen  
 dnl  
 AC_ARG_WITH([doxygen],  
   [AS_HELP_STRING([--with-doxygen=PATH], [specify location of doxygen executable])],  
   [DOXYGEN=$with_doxygen],  
   [DOXYGEN=none])  
 if test x$DOXYGEN = xnone ; then  
   # see if we can find doxygen in the user's path  
   AC_PATH_PROG(DOXYGEN, [doxygen], [none])  
 fi  
 if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then  
   AC_MSG_ERROR([--with-doxygen option must specify directory argument])  
 elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then  
   AC_MSG_ERROR([doxygen not found at $DOXYGEN])  
 elif test x$DOXYGEN != xnone ; then  
67  dnl  dnl
68  dnl verify that $DOXYGEN is an absolute path  dnl check for pthreads support
69  dnl  dnl
70    case $DOXYGEN in  ACX_PTHREAD
     /*) ;;  
     *) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;;  
   esac  
 fi  
 if test $DOXYGEN = xnone ; then  
   DOXYGEN=:  
 fi  
 AC_SUBST(DOXYGEN)  
71    
72  dnl  dnl
73  dnl Look for NVIDIA's nvcc compiler  dnl Look for NVIDIA's nvcc compiler
# Line 107  Line 88 
88  dnl  dnl
89  dnl check for OpenCL support  dnl check for OpenCL support
90  dnl  dnl
91  CL_LIBS="none"  LIBS_CL="none"
92  case "$host_os" in  case "$host_os" in
93    darwin*) # On Mac OS X we check for installed frameworks    darwin*) # On Mac OS X we check for installed frameworks
94      AX_CHECK_FRAMEWORK([OpenCL], [CL_LIBS="-framework OpenCL"], [])      AX_CHECK_FRAMEWORK([OpenCL], [LIBS_CL="-framework OpenCL"], [])
95    ;;    ;;
96    *)    *)
97      AC_CHECK_LIB([OpenCL],[clGetPlatformIDs],[CL_LIBS="-lOpenCL"])      AC_CHECK_LIB([OpenCL],[clGetPlatformIDs],[LIBS_CL="-lOpenCL"])
98    ;;    ;;
99  esac  esac
100  if test x"$CL_LIBS" = xnone ; then  if test x"$LIBS_CL" = xnone ; then
101    AC_MSG_WARN([no OpenCL library found])    AC_MSG_WARN([no OpenCL library found])
102    CL_ENABLED=false    CL_ENABLED=false
103    CL_VERSION=0    CL_VERSION=0
104  else  else
105    CL_ENABLED=true    CL_ENABLED=true
106    AC_CHECK_HEADERS([CL/cl.h OpenCL/cl.h])    CPPFLAGS_CL=""
107      CL_HEADER=""
108      AC_CHECK_HEADERS([CL/cl.h OpenCL/cl.h], [HAVE_CL_H="yes"; CL_HEADER="$ac_header"; break], [HAVE_CL_H="no"])
109      if test x"$HAVE_CL_H" = xno ; then
110        # check for AMD's SDK
111        AC_MSG_CHECKING([for cl.h in AMD's SDK])
112        if test -d /opt/AMDAPP/include/CL ; then
113          HAVE_CL_H="yes"
114          CL_HEADER="/opt/AMDAPP/include/CL/cl.h"
115          AC_DEFINE([HAVE_CL_CL_H])
116          CPPFLAGS_CL="-I/opt/AMDAPP/include"
117        fi
118        AC_MSG_RESULT([$HAVE_CL_H])
119      fi
120      if test x"$HAVE_CL_H" = xno ; then
121        # check for NVIDIA's SDK
122        AC_MSG_CHECKING([for NVIDIA's SDK cl.h])
123        if test -d /usr/local/cuda/include/CL ; then
124          HAVE_CL_H="yes"
125          AC_DEFINE([HAVE_CL_CL_H])
126          CPPFLAGS_CL="-I/usr/local/cuda/include"
127        fi
128        AC_MSG_RESULT([$HAVE_CL_H])
129      fi
130      if test x"$HAVE_CL_H" = xno ; then
131        AC_MSG_WARN([no cl.h found])
132        CL_ENABLED=false
133        CL_VERSION=0
134        SIZEOF_CL_INT=0
135        SIZEOF_CL_LONG=0
136        SIZEOF_CL_FLOAT=0
137        SIZEOF_CL_DOUBLE=0
138      else
139    # check the cl.h header for which version of OpenCL is supported    # check the cl.h header for which version of OpenCL is supported
140    AC_LANG([C])    AC_LANG([C])
141        save_CPPFLAGS=$CPPFLAGS
142        CPPFLAGS="$CPPFLAGS_CL $CPPFLAGS"
143    AC_LINK_IFELSE([AC_LANG_PROGRAM([[    AC_LINK_IFELSE([AC_LANG_PROGRAM([[
144  #include <stdio.h>  #include <stdio.h>
145  # ifdef HAVE_CL_CL_H  # ifdef HAVE_CL_CL_H
# Line 148  Line 163 
163  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.
164  dnl  dnl
165    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
166  # ifdef HAVE_CL_CL_H  #include "$CL_HEADER"
167  #   include <CL/cl.h>  ]],
 # elif defined(HAVE_OPENCL_CL_H)  
 #   include <OpenCL/cl.h>  
 # else  
 #   error no cl.h  
 # endif]],  
168      [[cl_float4 x; x[0] = 0.0;]])],      [[cl_float4 x; x[0] = 0.0;]])],
169      [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])],
170  dnl  dnl
171  dnl not arrays, so try the OpenCL 1.1 structure representation  dnl not arrays, so try the OpenCL 1.1 structure representation
172  dnl  dnl
173      [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[      [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
174  # ifdef HAVE_CL_CL_H  #include "$CL_HEADER"
175  #   include <CL/cl.h>  ]],
 # elif defined(HAVE_OPENCL_CL_H)  
 #   include <OpenCL/cl.h>  
 # else  
 #   error no cl.h  
 # endif]],  
176      [[cl_float4 x; x.s[0] = 0.0;]])],      [[cl_float4 x; x.s[0] = 0.0;]])],
177      [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])],
178      [AC_MSG_ERROR([unable to figure out host types for OpenCL vectors])])])      [AC_MSG_ERROR([unable to figure out host types for OpenCL vectors])])])
179      # restore saved CPPFLAGS
180        CPPFLAGS=$save_CPPFLAGS
181    # substitutions    # substitutions
182    AC_SUBST(CL_LIBS)      AC_SUBST(LIBS_CL)
183        AC_SUBST(CPPFLAGS_CL)
184      #
185      # determine the sizes of the host-side OpenCL types
186      AC_CHECK_SIZEOF([cl_int], [], [#include "$CL_HEADER"])
187      SIZEOF_CL_INT=$ac_cv_sizeof_cl_int
188      AC_CHECK_SIZEOF([cl_long], [], [#include "$CL_HEADER"])
189      SIZEOF_CL_LONG=$ac_cv_sizeof_cl_long
190      AC_CHECK_SIZEOF([cl_float], [], [#include "$CL_HEADER"])
191      SIZEOF_CL_FLOAT=$ac_cv_sizeof_cl_float
192      AC_CHECK_SIZEOF([cl_double], [], [#include "$CL_HEADER"])
193      SIZEOF_CL_DOUBLE=$ac_cv_sizeof_cl_double
194      fi
195  fi  fi
196  AC_SUBST(CL_ENABLED)  AC_SUBST(CL_ENABLED)
197  AC_SUBST(CL_VERSION)  AC_SUBST(CL_VERSION)
198    
199    AC_SUBST(SIZEOF_CL_INT)
200    AC_SUBST(SIZEOF_CL_LONG)
201    AC_SUBST(SIZEOF_CL_FLOAT)
202    AC_SUBST(SIZEOF_CL_DOUBLE)
203    
204  dnl  dnl
205  dnl check for various library routines etc.  dnl check for various library routines etc.
206  dnl  dnl
# Line 285  Line 309 
309  AC_SUBST(LIBM)  AC_SUBST(LIBM)
310    
311  dnl  dnl
312  dnl get the path to the TEEM installation  dnl get the path to the TEEM installation.  We need this to build the Diderot
313    dnl runtime code and we use the path when searching for teem in the Diderot
314    dnl compiler.
315  dnl  dnl
316  AC_ARG_WITH(teem,  AC_ARG_WITH(teem,
317    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),    AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),
# Line 302  Line 328 
328      TEEM_DIR=$ac_cv_use_teem      TEEM_DIR=$ac_cv_use_teem
329      # check that TEEM_DIR actually points to something that looks like teem      # check that TEEM_DIR actually points to something that looks like teem
330      if test -f $TEEM_DIR/include/teem/nrrd.h ; then      if test -f $TEEM_DIR/include/teem/nrrd.h ; then
331        AC_MSG_RESULT([ okay])        AC_MSG_RESULT([yes])
332      else      else
333        TEEM_DIR=none        TEEM_DIR=none
334        AC_MSG_RESULT([ invalid])        AC_MSG_RESULT([no])
335      fi      fi
336    else    else
337      TEEM_DIR=none      TEEM_DIR=none
338      AC_MSG_RESULT([ invalid])      AC_MSG_RESULT([no])
339    fi    fi
340  fi  fi
341  if test x"$TEEM_DIR" = xnone ; then  if test x"$TEEM_DIR" = xnone ; then
342    AC_MSG_ERROR([unable to find teem])    AC_MSG_ERROR([unable to find teem; use --with-teem option to specify location])
343    fi
344    dnl
345    dnl check that unu supports the dnorm command
346    dnl
347    if test x"$TEEM_DIR" != xnone ; then
348      AC_MSG_CHECKING([that \"unu dnorm\" works])
349      if test -x $TEEM_DIR/bin/unu ; then
350        $TEEM_DIR/bin/unu dnorm > /dev/null 2> /dev/null
351        if test $? -eq 0 ; then
352          AC_MSG_RESULT([yes])
353        else
354          AC_MSG_ERROR([\"unu dnorm\" is not supported; please update your teem installation])
355        fi
356      else
357        AC_MSG_ERROR([unable to find unu executable in $TEEM_DIR/bin"])
358      fi
359  fi  fi
360  AC_SUBST(TEEM_DIR)  AC_SUBST(TEEM_DIR)
361    
# Line 324  Line 366 
366  dnl  dnl
367  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])])
368  if test $SMLNJ_MAJOR_VERSION -lt 110 \  if test $SMLNJ_MAJOR_VERSION -lt 110 \
369    -o $SMLNJ_MINOR_VERSION -lt 73    -o $SMLNJ_MINOR_VERSION -lt 77
370  then  then
371    AC_MSG_ERROR([installation requires SML/NJ version 110.73+])    AC_MSG_ERROR([installation requires SML/NJ version 110.77+ (available from smlnj.org)])
372  fi  fi
373  AC_SUBST(SMLNJ_VERSION)  AC_SUBST(SMLNJ_VERSION)
374    
# Line 357  Line 399 
399  fi  fi
400  AC_SUBST(ML_BUILD)  AC_SUBST(ML_BUILD)
401    
402    dnl ******************** Documentation tools ********************
403    
404    dnl check for doxygen
405    dnl
406    AC_ARG_WITH([doxygen],
407      [AS_HELP_STRING([--with-doxygen=PATH], [specify location of doxygen executable])],
408      [DOXYGEN=$with_doxygen],
409      [DOXYGEN=none])
410    if test x$DOXYGEN = xnone ; then
411      # see if we can find doxygen in the user's path
412      AC_PATH_PROG(DOXYGEN, [doxygen], [none])
413    fi
414    if test x$with_doxygen = xyes -o x$with_doxygen = xno ; then
415      AC_MSG_ERROR([--with-doxygen option must specify directory argument])
416    elif test x$DOXYGEN != xnone -a ! -x $DOXYGEN ; then
417      AC_MSG_ERROR([doxygen not found at $DOXYGEN])
418    elif test x$DOXYGEN != xnone ; then
419    dnl
420    dnl verify that $DOXYGEN is an absolute path
421    dnl
422      case $DOXYGEN in
423        /*) ;;
424        *) AC_MSG_ERROR([--with-doxygen path must be absolute]) ;;
425      esac
426    fi
427    if test $DOXYGEN = xnone ; then
428      DOXYGEN=:
429    fi
430    AC_SUBST(DOXYGEN)
431    
432    dnl check for asciidoc and related tools
433    dnl
434    AC_PATH_PROGS([ASCIIDOC], [asciidoc], [none])
435    AC_PATH_PROGS([A2X], [a2x], [none])
436    AC_PATH_PROGS([HIGHLIGHTER], [pygmentize], [none])
437    AC_PATH_PROGS([DBLATEX], [dblatex], [none])
438    
439    dnl
440    dnl get the path to the asciidoc cofiguration files
441    dnl
442    if test x"$ASCIIDOC" != xnone ; then
443      AC_MSG_CHECKING([path to asciidoc configuration files])
444      ASCIIDOC_CONF_DIR=`$ASCIIDOC -v /dev/null 2>&1 | head -n 1 | sed 's|.*reading: \(.*\)/asciidoc.conf|\1|'`
445      AC_MSG_RESULT([$ASCIIDOC_CONF_DIR])
446    fi
447    AC_SUBST(ASCIIDOC)
448    AC_SUBST(A2X)
449    AC_SUBST(ASCIIDOC_CONF_DIR)
450    AC_SUBST(HIGHLIGHTER)
451    AC_SUBST(DBLATEX)
452    
453    
454  dnl ******************** Paths ********************  dnl ******************** Paths ********************
455    
456  DIDEROT_ROOT=`pwd`  DIDEROT_ROOT=`pwd`
# Line 386  Line 480 
480  dnl run the compiler tests in 64-bit mode  dnl run the compiler tests in 64-bit mode
481  dnl  dnl
482  save_CFLAGS=$CFLAGS  save_CFLAGS=$CFLAGS
483  CFLAGS="$CFLAGS $CFLAG_M64"  CFLAGS="$CFLAGS $CFLAG_MXX"
484    
485  dnl  dnl
486  dnl check for gcc builtin atomic operations  dnl check for gcc builtin atomic operations
# Line 402  Line 496 
496    
497  AC_C_BIGENDIAN  AC_C_BIGENDIAN
498    
499    #
500    # determine the sizes of the standard C types
501    AC_CHECK_SIZEOF([int])
502    SIZEOF_C_INT=$ac_cv_sizeof_int
503    AC_CHECK_SIZEOF([long])
504    SIZEOF_C_LONG=$ac_cv_sizeof_long
505    AC_CHECK_SIZEOF([float])
506    SIZEOF_C_FLOAT=$ac_cv_sizeof_float
507    AC_CHECK_SIZEOF([double])
508    SIZEOF_C_DOUBLE=$ac_cv_sizeof_double
509    
510    AC_SUBST(SIZEOF_C_INT)
511    AC_SUBST(SIZEOF_C_LONG)
512    AC_SUBST(SIZEOF_C_FLOAT)
513    AC_SUBST(SIZEOF_C_DOUBLE)
514    
515  dnl  dnl
516  dnl restore CFLAGS  dnl restore CFLAGS
517  dnl  dnl
# Line 425  Line 535 
535  ])  ])
536  AH_BOTTOM([  AH_BOTTOM([
537    
538    #ifdef NDEBUG
539    #define STATIC_INLINE   static inline
540    #else
541    #define STATIC_INLINE   static
542    #endif
543    
544  #endif /* !_DIDEROT_CONFIG_H_ */  #endif /* !_DIDEROT_CONFIG_H_ */
545  ])  ])
546    
# Line 437  Line 553 
553  dnl ***** Makefiles *****  dnl ***** Makefiles *****
554    Makefile    Makefile
555    doc/Makefile    doc/Makefile
556      doc/man/Makefile
557    src/clinfo/Makefile    src/clinfo/Makefile
   src/dnorm/Makefile  
558    src/compiler/Makefile    src/compiler/Makefile
559    src/lib/build/Makefile    src/lib/build/Makefile
560    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
561    test/MIP/Makefile    test/MIP/Makefile
562    test/probe/Makefile    test/probe/Makefile
563      test/iso2d-polyline/Makefile
564      test/vr-lite-cam/Makefile
565      test/hlic/Makefile
566  dnl  dnl
567  dnl ***** SML source files *****  dnl ***** SML source files *****
568    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
569    src/compiler/common/paths.sml:src/compiler/common/paths_sml.in    src/compiler/common/paths.sml:src/compiler/common/paths_sml.in
570      src/compiler/common/size-of.sml:src/compiler/common/size-of_sml.in
571  )  )
572    
573  AC_CONFIG_HEADERS(src/include/Diderot/config.h:config/config_h.in)  AC_CONFIG_HEADERS(src/include/Diderot/config.h:config/config_h.in)
# Line 461  Line 581 
581  AC_CONFIG_FILES([  AC_CONFIG_FILES([
582    src/compiler/gen/file2str/file2str.sh:src/compiler/gen/file2str/file2str_sh.in    src/compiler/gen/file2str/file2str.sh:src/compiler/gen/file2str/file2str_sh.in
583  ], [chmod +x src/compiler/gen/file2str/file2str.sh])  ], [chmod +x src/compiler/gen/file2str/file2str.sh])
584    AC_CONFIG_FILES([
585      rtest/scripts/run.sh:rtest/scripts/run_sh.in
586    ], [chmod +x rtest/scripts/run.sh])
587    AC_CONFIG_FILES([
588      rtest/scripts/run-one.sh:rtest/scripts/run-one_sh.in
589    ], [chmod +x rtest/scripts/run-one.sh])
590    
591  dnl  dnl
592  dnl generate makefiles for runtime library builds  dnl generate makefiles for runtime library builds

Legend:
Removed from v.1714  
changed lines
  Added in v.2685

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