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

SCM Repository

[diderot] Annotation of /branches/pure-cfg/configure.ac
ViewVC logotype

Annotation of /branches/pure-cfg/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1172 - (view) (download)

1 : jhr 3 dnl Process this file with autoconf to produce a configure script.
2 :     dnl
3 :     dnl COPYRIGHT (c) 2010 The Diderot Project
4 :     dnl All rights reserved.
5 :     dnl
6 :    
7 :     dnl NOTE: MANTICORE_DIST_VERSION is an M4 variable defined in config/aclocal.m4
8 :     dnl
9 :     AC_INIT(diderot,0.1,)
10 :    
11 :     AC_PREREQ(2.60)
12 : jhr 436 AC_COPYRIGHT([[COPYRIGHT (c) 2010 The Diderot Project (http://diderot-language.cs.uchicago.edu)]])
13 : jhr 123 AC_CONFIG_SRCDIR(src/dnorm/dnorm.c)
14 : jhr 3 AC_CONFIG_AUX_DIR(config)
15 :     AC_CONFIG_MACRO_DIR(config)
16 : jhr 123
17 : jhr 3 dnl
18 :     dnl include additional macros
19 :     dnl
20 :     sinclude(config/acx_pthread.m4)
21 : jhr 123 sinclude(config/check_smlnj.m4)
22 :     sinclude(config/check_smlnj_heap_suffix.m4)
23 : jhr 1171 sinclude(config/ax_check_framework.m4)
24 : jhr 3
25 :     dnl
26 : jhr 123 dnl get host information
27 : jhr 3 dnl
28 :     AC_CANONICAL_HOST
29 :    
30 :     dnl check for standard programs
31 :     dnl
32 : jhr 1164 AC_PROG_CC([clang gcc cc])
33 : jhr 3 AC_PROG_CPP
34 :     AC_PROG_INSTALL
35 :     AC_PROG_MAKE_SET
36 :    
37 : jhr 671 dnl check for c99 support
38 : jhr 123 dnl
39 : jhr 671 AC_PROG_CC_C99
40 :     if test x"$ac_cv_prog_cc_c99" = xno ; then
41 :     AC_MSG_ERROR([Diderot requires c99 support])
42 :     fi
43 :    
44 :     dnl extra C compiler options
45 :     dnl
46 : jhr 1094 CFLAG_M64="-m64"
47 : jhr 1164 CFLAGS_BASE="-Wformat -Wreturn-type -Wuninitialized"
48 : jhr 1094 AC_SUBST(CFLAG_M64)
49 : jhr 1164 AC_SUBST(CFLAGS_BASE)
50 : jhr 671
51 :     dnl
52 : jhr 676 dnl Look for NVIDIA's nvcc compiler
53 :     dnl
54 : jhr 1171 AC_MSG_NOTICE([checking for CUDA and nvcc])
55 :     AC_PATH_PROG(NVCC, nvcc, no, $PATH)
56 :     if test x"$NVCC" = xno ; then
57 : jhr 679 AC_MSG_WARN([nvcc not found])
58 : jhr 1171 CUDA_ENABLED=false
59 :     NVCC=":"
60 : jhr 676 else
61 :     AC_MSG_RESULT([$NVCC])
62 : jhr 1171 CUDA_ENABLED=true
63 : jhr 676 fi
64 :     AC_SUBST(NVCC)
65 : jhr 1171 AC_SUBST(CUDA_ENABLED)
66 : jhr 676
67 :     dnl
68 : jhr 1171 dnl check for OpenCL support
69 :     dnl
70 :     OPENCL_LIBS="none"
71 :     case "$host_os" in
72 :     darwin*) # On Mac OS X we check for installed frameworks
73 :     AX_CHECK_FRAMEWORK([OpenCL], [OPENCL_LIBS="-framework OpenCL"], [])
74 :     ;;
75 :     *)
76 :     AC_CHECK_LIB([OpenCL],[clGetPlatformIDs],[OPENCL_LIBS="-lOpenCL"])
77 :     ;;
78 :     esac
79 :     if test x"$OPENCL_LIBS" = xnone ; then
80 :     AC_MSG_WARN([no OpenCL library found])
81 :     OPENCL_ENABLED=false
82 :     else
83 :     OPENCL_ENABLED=true
84 :     AC_SUBST(OPENCL_LIBS)
85 :     fi
86 :     AC_SUBST(OPENCL_ENABLED)
87 :    
88 :     dnl
89 : jhr 997 dnl check for pthreads support
90 :     dnl
91 :     ACX_PTHREAD()
92 :    
93 :     dnl
94 : jhr 989 dnl OS-specific linking issues
95 : jhr 123 dnl
96 : jhr 989 LD_NEEDS_RPATH=false;
97 : jhr 997 LIBM=""
98 : jhr 123 case "$host_os" in
99 : jhr 989 darwin*) # On Mac OS X we check for the presence of macports and/or fink
100 : jhr 123 if test -x /opt/local/bin/port ; then
101 :     HAS_MACPORTS=yes
102 :     else
103 :     HAS_MACPORTS=no
104 :     fi
105 :     if test -x /sw/bin/fink ; then
106 :     HAS_FINK=yes
107 :     else
108 :     HAS_FINK=no
109 :     fi
110 :     ;;
111 : jhr 999 linux*) # On Linux we include the -rpath option to pick up dynamically-loaded libraries
112 : jhr 989 LD_NEEDS_RPATH=true
113 : jhr 997 LIBM="-lm"
114 : jhr 989 ;;
115 : jhr 123 esac
116 : jhr 3
117 : jhr 123 if test x"$HAS_MACPORTS" = xyes ; then
118 :     LDPATHS="-L/opt/local/lib"
119 :     elif test x"$HAS_FINK" = xyes ; then
120 :     LDPATHS="-L/sw/lib"
121 :     else
122 :     LDPATHS=""
123 :     fi
124 :     AC_SUBST(LDPATHS)
125 : jhr 989 AC_SUBST(LD_NEEDS_RPATH)
126 : jhr 997 AC_SUBST(LIBM)
127 : jhr 123
128 :     dnl
129 :     dnl get the path to the TEEM installation
130 :     dnl
131 :     AC_ARG_WITH(teem,
132 :     AC_HELP_STRING([--with-teem=<path>], [specify path to teem installation]),
133 :     [ac_cv_use_teem=$withval], [ac_cv_use_teem=no])
134 :     if test x"$ac_cv_use_teem" = xno ; then
135 :     TEEM_DIR=none
136 :     else
137 :     AC_MSG_CHECKING([path to teem ($ac_cv_use_teem)])
138 :     case $ac_cv_use_teem in
139 :     /*) ;;
140 :     *) AC_MSG_ERROR([path to teem must be absolute]) ;;
141 :     esac
142 :     if test -x $ac_cv_use_teem ; then
143 :     TEEM_DIR=$ac_cv_use_teem
144 :     AC_MSG_RESULT([ okay])
145 :     else
146 :     TEEM_DIR=none
147 :     AC_MSG_RESULT([ invalid])
148 :     fi
149 :     fi
150 :     if test x"$TEEM_DIR" = xnone ; then
151 :     AC_MSG_ERROR([unable to find teem])
152 :     fi
153 :     AC_SUBST(TEEM_DIR)
154 :    
155 :     dnl ******************** SML/NJ configuration ********************
156 :     dnl
157 :    
158 :     dnl check that we have a compatible version of SML/NJ
159 :     dnl
160 :     CHECK_SMLNJ([AC_MSG_ERROR([unable to find SML/NJ installation; check your PATH or set SMLNJ_CMD])])
161 :     if test $SMLNJ_MAJOR_VERSION -lt 110 \
162 :     -o $SMLNJ_MINOR_VERSION -lt 72
163 :     then
164 :     AC_MSG_ERROR([installation requires SML/NJ version 110.72+])
165 :     fi
166 :     AC_SUBST(SMLNJ_VERSION)
167 :    
168 :     dnl determine the heap-image suffix
169 :     dnl
170 :     CHECK_SMLNJ_HEAP_SUFFIX([
171 :     AC_MSG_ERROR([unsupported configuration ${host_cpu}-${host_os}])])
172 :    
173 :     dnl look for ml-makedepend
174 :     dnl
175 :     AC_MSG_CHECKING([for ml-makedepend])
176 :     tmpPATH="$SMLNJ_PATH:$PATH"
177 :     AC_PATH_PROG(ML_MAKEDEPEND, ml-makedepend, ":", $tmpPATH)
178 :     if test $ML_MAKEDEPEND = none ; then
179 :     AC_MSG_ERROR([ml-makedepend not found])
180 :     else
181 :     AC_MSG_RESULT([$ML_MAKEDEPEND])
182 :     fi
183 :     AC_SUBST(ML_MAKEDEPEND)
184 :    
185 :     dnl
186 :     dnl look for ml-build
187 :     dnl
188 :     tmpPATH="$SMLNJ_PATH:$PATH"
189 :     AC_PATH_PROG(ML_BUILD, ml-build, none, $tmpPATH)
190 :     if test $ML_BUILD = none ; then
191 :     AC_MSG_ERROR([ml-build not found])
192 :     fi
193 :     AC_SUBST(ML_BUILD)
194 :    
195 :     dnl ******************** Paths ********************
196 :    
197 :     DIDEROT_ROOT=`pwd`
198 :     DIDEROT_DOCDIR=$DIDEROT_ROOT/doc
199 :     DIDEROT_SRCDIR=$DIDEROT_ROOT/src
200 :     DIDEROT_LIBDIR=$DIDEROT_ROOT/lib
201 :     DIDEROT_BINDIR=$DIDEROT_ROOT/bin
202 :     DIDEROT_MKDIR=$DIDEROT_ROOT/mk
203 :    
204 :     HEAP_IMAGE_DIR=$DIDEROT_BINDIR/.heap
205 :     INSTALL_SMLNJ_WRAPPER=$DIDEROT_BINDIR/install-sml-wrapper.sh
206 :    
207 :     AC_SUBST(DIDEROT_ROOT)
208 :     AC_SUBST(DIDEROT_DOCDIR)
209 :     AC_SUBST(DIDEROT_SRCDIR)
210 :     AC_SUBST(DIDEROT_LIBDIR)
211 :     AC_SUBST(DIDEROT_BINDIR)
212 :     AC_SUBST(DIDEROT_MKDIR)
213 :     AC_SUBST(HEAP_IMAGE_DIR)
214 :     AC_SUBST(INSTALL_SMLNJ_WRAPPER)
215 :    
216 :     dnl
217 :     dnl ******************** write output ********************
218 :     dnl
219 :    
220 : jhr 127 AC_CONFIG_FILES(
221 :     dnl
222 : jhr 123 dnl ***** Makefiles *****
223 : jhr 321 Makefile
224 : jhr 123 src/dnorm/Makefile
225 :     src/compiler/Makefile
226 : jhr 1094 src/lib/build/Makefile
227 :     src/lib/build/mk/build.gmk:src/lib/build/mk/build_gmk.in
228 : jhr 204 test/MIP/Makefile
229 : jhr 260 test/probe/Makefile
230 : jhr 127 dnl
231 : jhr 1171 dnl ***** CM files *****
232 :     src/compiler/codegen/sources.cm:src/compiler/codegen/sources_cm.in
233 :     dnl
234 : jhr 127 dnl ***** SML source files *****
235 : jhr 202 src/compiler/fields/run-dnorm.sml:src/compiler/fields/run-dnorm_sml.in
236 : jhr 632 src/compiler/common/paths.sml:src/compiler/common/paths_sml.in
237 : jhr 123 )
238 :    
239 :     dnl
240 :     dnl shell scripts
241 :     dnl
242 :     AC_CONFIG_FILES([
243 :     bin/install-sml-wrapper.sh:config/install-sml-wrapper_sh.in
244 :     ], [chmod +x bin/install-sml-wrapper.sh])
245 :    
246 : jhr 1094 dnl
247 :     dnl generate makefiles for runtime library builds
248 :     dnl
249 :     dnl usage: MK_BUILD_DIR(<build-dir>, <target-platform>, <options>)
250 :     dnl
251 :     AC_DEFUN([MK_BUILD_DIR], [
252 :     if test ! -d src/lib/build/$1 ; then
253 :     mkdir src/lib/build/$1
254 :     fi
255 :     [sed -e 's,@BUILD_TARGET@,$1,g' \
256 :     -e 's,@TARGET_PLATFORM@,$2,g' \
257 :     -e 's,@BUILD_OPTIONS@,$3,g' \
258 :     src/lib/build/mk/Makefile.in \
259 :     > src/lib/build/$1/Makefile.in]
260 :     AC_CONFIG_FILES(src/lib/build/$1/Makefile)
261 :     ])
262 :    
263 :     MK_BUILD_DIR(rt-c-f, c-target, [float])
264 :     MK_BUILD_DIR(rt-c-f-debug, c-target, [float debug])
265 :    
266 : jhr 3 AC_OUTPUT

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