~ubuntu-branches/debian/sid/c2hs/sid

« back to all changes in this revision

Viewing changes to c2hs/configure.in

  • Committer: Bazaar Package Importer
  • Author(s): Arjan Oosting
  • Date: 2006-12-14 00:06:12 UTC
  • mfrom: (3.1.5 feisty)
  • Revision ID: james.westby@ubuntu.com-20061214000612-s7mds83cxqkgv1bj
Tags: 0.14.5-6
* debian/patches/09_replace-deprecated-withObject: Replace all
  occurrences of 'withObject' with 'with' as the deprecated 'withObject'
  was removed with GHC 6.6. (Closes: #402979)
* Set the urgency to medium as the above bug decreases c2hs usefulness
  with GHC 6.6 dramatically. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
dnl C->Haskell Binding Compiler
2
 
dnl Copyright (c) [1999..2001] Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>
3
 
dnl 
4
 
dnl This library is free software; you can redistribute it and/or
5
 
dnl modify it under the terms of the GNU Library General Public
6
 
dnl License as published by the Free Software Foundation; either
7
 
dnl version 2 of the License, or (at your option) any later version.
8
 
dnl 
9
 
dnl This library is distributed in the hope that it will be useful,
10
 
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
 
dnl Library General Public License for more details.
13
 
dnl 
14
 
dnl You should have received a copy of the GNU Library General Public
15
 
dnl License along with this library (COPYING.LIB); if not, write to the Free
16
 
dnl Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
17
 
dnl MA  02111-1307  USA
18
 
 
19
 
dnl ######################################################################
20
 
dnl Process this file with autoconf to produce a configure script.
21
 
dnl ######################################################################
22
 
 
23
 
 
24
 
dnl Initialise.
25
 
AC_INIT(toplevel/Version.hs)
26
 
 
27
 
dnl Select a specific Haskell compiler and/or flags.
28
 
AC_ARG_WITH(hc, 
29
 
            [  --with-hc=HC            use Haskell compiler HC],
30
 
            [HC=$withval])
31
 
AC_ARG_WITH(hcflags, 
32
 
            [  --with-hcflags=HCFLAGS  specify flags for Haskell compiler],
33
 
            [HCFLAGS=$withval])
34
 
 
35
 
dnl Select whether to use --add-package during installation.
36
 
AC_ARG_ENABLE(add_package,
37
 
              [  --enable-add-package    register package during installation],
38
 
              [ENABLE_ADD_PACKAGE=$enableval])
39
 
 
40
 
dnl Link with electric fence?
41
 
AC_ARG_WITH(efence, 
42
 
            [  --with-efence           link with efence malloc debugger],
43
 
            [efence=$withval])
44
 
 
45
 
dnl Check for OS and set dynamic library suffix and temporary directory.
46
 
DLSUFFIX=".so"
47
 
TMPDIR="/tmp"
48
 
AC_CYGWIN
49
 
if test "$CYGWIN" = "yes"; then
50
 
  DLSUFFIX=".dll"
51
 
  TMPDIR="C:\TMP"
52
 
fi
53
 
 
54
 
dnl Checks for programs.
55
 
AC_PROG_CC
56
 
AC_PROG_CPP
57
 
AC_PATH_PROG(BASENAME,basename)
58
 
AC_PATH_PROG(EXPR,expr)
59
 
AC_PATH_PROG(GREP,grep)
60
 
AC_PATH_PROG(HEAD,head)
61
 
AC_PATH_PROG(SED,sed)
62
 
AC_PATH_PROG(MKDIR,mkdir)
63
 
AC_PATH_PROG(MV,mv)
64
 
 
65
 
dnl This is far from elegant, but works for extracting the plain version number
66
 
C2HS_VERSION=`$GREP '^versnum' toplevel/Version.hs\
67
 
              | $SED '-e s/versnum.* "//' '-e s/"//'`
68
 
 
69
 
dnl Haskell compiler; currently only GHC 4.08 upwards and nhc98 1.14 have the 
70
 
dnl required FFI and existentially quantified variables correctly working.
71
 
AC_PATH_PROGS(HC, $HC ghc nhc98)
72
 
if test -z "$HC"; then
73
 
 AC_MSG_ERROR([Could not find a Haskell compiler!
74
 
Currently supported are ghc 4.08 upwards & nhc98 1.14.
75
 
** Check \"http://haskell.org\". **])
76
 
fi
77
 
dnl The following can happen if a wrong --with-hc=HC option is given.
78
 
if test ! -x "$HC"; then
79
 
 AC_MSG_ERROR([File not found: $HC])
80
 
fi
81
 
 
82
 
dnl Determine basic compiler name.
83
 
case `$BASENAME $HC` in
84
 
  ghc*) hc_base=ghc;;
85
 
  nhc98*) hc_base=nhc98;;
86
 
esac
87
 
 
88
 
dnl Check ghc's details.
89
 
if test $hc_base = ghc; then
90
 
  dnl set GHC, as this is what the following command inspects
91
 
  GHC=$HC
92
 
  CTK_GHC_VERSION(hc_vers,hc_maj_vers,hc_min_vers,hc_pl)
93
 
  CTK_PROG_CHECK_VERSION($hc_vers, -lt, 4.08, [
94
 
    AC_MSG_ERROR([We need to have version 4.08 upwards of ghc!
95
 
** Check \"http://haskell.org\". **])])
96
 
  dnl Determine compilation system identifier.
97
 
  SYS=ghc$hc_maj_vers
98
 
  HCID="GHC $hc_vers"
99
 
  HIDIROPT=-i
100
 
  REQUIRES_HASKELL="ghc = $hc_vers"
101
 
fi
102
 
 
103
 
dnl Check nhc98's details.
104
 
if test $hc_base = nhc98; then
105
 
  AC_CACHE_CHECK([nhc98 version], ctk_cv_prog_nhc98_version, [
106
 
    ctk_cv_prog_nhc98_version=`$HC --version 2>&1 | $HEAD -n 1 | $SED -e 's/.*v\([[0-9]]\)\.\([[0-9]]*\).*/\1.\2/'`
107
 
  ])
108
 
  hc_maj_vers=`echo $ctk_cv_prog_nhc98_version | $SED -e 's/\([[0-9]]\)\.[[0-9]]*/\1/'`
109
 
  hc_min_vers=`echo $ctk_cv_prog_nhc98_version | $SED -e 's/[[0-9]]\.\([[0-9]]*\)/\1/'`
110
 
  if test $hc_maj_vers -lt 1 -o $hc_min_vers -lt 14; then
111
 
   AC_MSG_ERROR([You need version 1.14 upwards of nhc98!
112
 
  ** Check \"http://haskell.org/\". **])
113
 
  fi
114
 
  dnl Determine compilation system identifier.
115
 
  SYS=nhc$hc_maj_vers
116
 
  HCID="nhc98 $hc_maj_vers.$hc_min_vers"
117
 
  HIDIROPT=-I
118
 
  dnl FIXME: In the case of nhc98, do we have to require a specific version, 
119
 
  dnl        too? 
120
 
  REQUIRES_HASKELL=nhc
121
 
fi
122
 
 
123
 
dnl Determine whether the Haskell system supports packages.
124
 
dnl
125
 
if test $hc_base = ghc; then
126
 
  HASPKG=yes
127
 
fi
128
 
if test $hc_base = nhc1; then
129
 
  HASPKG=no
130
 
fi
131
 
 
132
 
dnl Determine whether we need Legacy FFI support.
133
 
dnl
134
 
dnl In case of Legacy FFI support, we need to determine the errno constants for
135
 
dnl the OS (needed by `CError').
136
 
dnl
137
 
LEGACY_FFI=no
138
 
if test $hc_base = ghc; then
139
 
  if test $hc_maj_vers -eq 4 -a $hc_min_vers -eq 8; then
140
 
    LEGACY_FFI=yes
141
 
  fi
142
 
elif test $hc_base = nhc98; then
143
 
  LEGACY_FFI=no
144
 
fi
145
 
dnl
146
 
if test $LEGACY_FFI = yes; then
147
 
  BEGIN_LEGACY_FFI=
148
 
  END_LEGACY_FFI=
149
 
  BEGIN_NEW_FFI="{- for systems supporting the New FFI"
150
 
  END_NEW_FFI="-}"
151
 
else
152
 
  BEGIN_LEGACY_FFI="{- for systems including the Legacy FFI"
153
 
  END_LEGACY_FFI="-}"
154
 
  BEGIN_NEW_FFI=
155
 
  END_NEW_FFI=
156
 
fi
157
 
dnl And nhc does it yet differently...
158
 
BEGIN_NHC="{- NHC does some things differently..."
159
 
END_NHC="-}"
160
 
BEGIN_NOT_NHC=
161
 
END_NOT_NHC=
162
 
if test $hc_base = nhc98; then
163
 
  BEGIN_NHC=
164
 
  END_NHC=
165
 
  BEGIN_NOT_NHC="{- That's the right way, but nhc doesn't unnderstand it."
166
 
  END_NOT_NHC="-}"
167
 
fi
168
 
dnl
169
 
if test $LEGACY_FFI = yes; then
170
 
  C2HS_CHECK_CCONSTS(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EADV EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBADRPC EBUSY ECHILD ECOMM ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDIRTY EDOM EDQUOT EEXIST EFAULT EFBIG EFTYPE EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENONET ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROCUNAVAIL EPROGMISMATCH EPROGUNAVAIL EPROTO EPROTONOSUPPORT EPROTOTYPE ERANGE EREMCHG EREMOTE EROFS ERPCMISMATCH ERREMOTE ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESRMNT ESTALE ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV)
171
 
  dnl
172
 
  dnl AC_SUBSTs can't be used in a loop as they are intepreted by autoconf.
173
 
  dnl
174
 
  AC_SUBST(CCONST_E2BIG)
175
 
  AC_SUBST(CCONST_EACCES)
176
 
  AC_SUBST(CCONST_EADDRINUSE)
177
 
  AC_SUBST(CCONST_EADDRNOTAVAIL)
178
 
  AC_SUBST(CCONST_EADV)
179
 
  AC_SUBST(CCONST_EAFNOSUPPORT)
180
 
  AC_SUBST(CCONST_EAGAIN)
181
 
  AC_SUBST(CCONST_EALREADY)
182
 
  AC_SUBST(CCONST_EBADF)
183
 
  AC_SUBST(CCONST_EBADMSG)
184
 
  AC_SUBST(CCONST_EBADRPC)
185
 
  AC_SUBST(CCONST_EBUSY)
186
 
  AC_SUBST(CCONST_ECHILD)
187
 
  AC_SUBST(CCONST_ECOMM)
188
 
  AC_SUBST(CCONST_ECONNABORTED)
189
 
  AC_SUBST(CCONST_ECONNREFUSED)
190
 
  AC_SUBST(CCONST_ECONNRESET)
191
 
  AC_SUBST(CCONST_EDEADLK)
192
 
  AC_SUBST(CCONST_EDESTADDRREQ)
193
 
  AC_SUBST(CCONST_EDIRTY)
194
 
  AC_SUBST(CCONST_EDOM)
195
 
  AC_SUBST(CCONST_EDQUOT)
196
 
  AC_SUBST(CCONST_EEXIST)
197
 
  AC_SUBST(CCONST_EFAULT)
198
 
  AC_SUBST(CCONST_EFBIG)
199
 
  AC_SUBST(CCONST_EFTYPE)
200
 
  AC_SUBST(CCONST_EHOSTDOWN)
201
 
  AC_SUBST(CCONST_EHOSTUNREACH)
202
 
  AC_SUBST(CCONST_EIDRM)
203
 
  AC_SUBST(CCONST_EILSEQ)
204
 
  AC_SUBST(CCONST_EINPROGRESS)
205
 
  AC_SUBST(CCONST_EINTR)
206
 
  AC_SUBST(CCONST_EINVAL)
207
 
  AC_SUBST(CCONST_EIO)
208
 
  AC_SUBST(CCONST_EISCONN)
209
 
  AC_SUBST(CCONST_EISDIR)
210
 
  AC_SUBST(CCONST_ELOOP)
211
 
  AC_SUBST(CCONST_EMFILE)
212
 
  AC_SUBST(CCONST_EMLINK)
213
 
  AC_SUBST(CCONST_EMSGSIZE)
214
 
  AC_SUBST(CCONST_EMULTIHOP)
215
 
  AC_SUBST(CCONST_ENAMETOOLONG)
216
 
  AC_SUBST(CCONST_ENETDOWN)
217
 
  AC_SUBST(CCONST_ENETRESET)
218
 
  AC_SUBST(CCONST_ENETUNREACH)
219
 
  AC_SUBST(CCONST_ENFILE)
220
 
  AC_SUBST(CCONST_ENOBUFS)
221
 
  AC_SUBST(CCONST_ENODATA)
222
 
  AC_SUBST(CCONST_ENODEV)
223
 
  AC_SUBST(CCONST_ENOENT)
224
 
  AC_SUBST(CCONST_ENOEXEC)
225
 
  AC_SUBST(CCONST_ENOLCK)
226
 
  AC_SUBST(CCONST_ENOLINK)
227
 
  AC_SUBST(CCONST_ENOMEM)
228
 
  AC_SUBST(CCONST_ENOMSG)
229
 
  AC_SUBST(CCONST_ENONET)
230
 
  AC_SUBST(CCONST_ENOPROTOOPT)
231
 
  AC_SUBST(CCONST_ENOSPC)
232
 
  AC_SUBST(CCONST_ENOSR)
233
 
  AC_SUBST(CCONST_ENOSTR)
234
 
  AC_SUBST(CCONST_ENOSYS)
235
 
  AC_SUBST(CCONST_ENOTBLK)
236
 
  AC_SUBST(CCONST_ENOTCONN)
237
 
  AC_SUBST(CCONST_ENOTDIR)
238
 
  AC_SUBST(CCONST_ENOTEMPTY)
239
 
  AC_SUBST(CCONST_ENOTSOCK)
240
 
  AC_SUBST(CCONST_ENOTTY)
241
 
  AC_SUBST(CCONST_ENXIO)
242
 
  AC_SUBST(CCONST_EOPNOTSUPP)
243
 
  AC_SUBST(CCONST_EPERM)
244
 
  AC_SUBST(CCONST_EPFNOSUPPORT)
245
 
  AC_SUBST(CCONST_EPIPE)
246
 
  AC_SUBST(CCONST_EPROCLIM)
247
 
  AC_SUBST(CCONST_EPROCUNAVAIL)
248
 
  AC_SUBST(CCONST_EPROGMISMATCH)
249
 
  AC_SUBST(CCONST_EPROGUNAVAIL)
250
 
  AC_SUBST(CCONST_EPROTO)
251
 
  AC_SUBST(CCONST_EPROTONOSUPPORT)
252
 
  AC_SUBST(CCONST_EPROTOTYPE)
253
 
  AC_SUBST(CCONST_ERANGE)
254
 
  AC_SUBST(CCONST_EREMCHG)
255
 
  AC_SUBST(CCONST_EREMOTE)
256
 
  AC_SUBST(CCONST_EROFS)
257
 
  AC_SUBST(CCONST_ERPCMISMATCH)
258
 
  AC_SUBST(CCONST_ERREMOTE)
259
 
  AC_SUBST(CCONST_ESHUTDOWN)
260
 
  AC_SUBST(CCONST_ESOCKTNOSUPPORT)
261
 
  AC_SUBST(CCONST_ESPIPE)
262
 
  AC_SUBST(CCONST_ESRCH)
263
 
  AC_SUBST(CCONST_ESRMNT)
264
 
  AC_SUBST(CCONST_ESTALE)
265
 
  AC_SUBST(CCONST_ETIME)
266
 
  AC_SUBST(CCONST_ETIMEDOUT)
267
 
  AC_SUBST(CCONST_ETOOMANYREFS)
268
 
  AC_SUBST(CCONST_ETXTBSY)
269
 
  AC_SUBST(CCONST_EUSERS)
270
 
  AC_SUBST(CCONST_EWOULDBLOCK)
271
 
  AC_SUBST(CCONST_EXDEV)
272
 
fi
273
 
 
274
 
dnl Checks for libraries.
275
 
 
276
 
dnl Info needed for the package configuration.
277
 
dnl
278
 
dnl The `exec_prefix=$prefix' line shouldn't be necessary, but for some reason 
279
 
dnl `exec_prefix' is otherwise defined to be `NONE' here.
280
 
test "x$prefix" = xNONE && prefix=$ac_default_prefix
281
 
# Let make expand exec_prefix.
282
 
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
283
 
LIBDIR=`eval echo \`eval echo $libdir\``
284
 
 
285
 
dnl Needed substitutions.
286
 
AC_SUBST(DLSUFFIX)
287
 
AC_SUBST(TMPDIR)
288
 
AC_SUBST(C2HS_VERSION)
289
 
AC_SUBST(HCFLAGS)
290
 
AC_SUBST(LIB_HCFLAGS)
291
 
AC_SUBST(SYS)
292
 
AC_SUBST(HCID)
293
 
AC_SUBST(LEGACY_FFI)
294
 
AC_SUBST(BEGIN_LEGACY_FFI)
295
 
AC_SUBST(END_LEGACY_FFI)
296
 
AC_SUBST(BEGIN_NEW_FFI)
297
 
AC_SUBST(END_NEW_FFI)
298
 
AC_SUBST(BEGIN_NHC)
299
 
AC_SUBST(END_NHC)
300
 
AC_SUBST(BEGIN_NOT_NHC)
301
 
AC_SUBST(END_NOT_NHC)
302
 
AC_SUBST(ENABLE_ADD_PACKAGE)
303
 
AC_SUBST(LIBDIR)
304
 
AC_SUBST(HASPKG)
305
 
AC_SUBST(REQUIRES_HASKELL)
306
 
 
307
 
dnl Write the results...
308
 
AC_OUTPUT([
309
 
  toplevel/C2HSConfig.hs
310
 
  lib/NewStorable.hs
311
 
  lib/NewStablePtr.hs
312
 
  lib/CError.hs
313
 
  mk/config.mk
314
 
  c2hs-config
315
 
  c2hs.conf
316
 
  c2hs.spec
317
 
], [chmod +x c2hs-config])