In Scurry, I select the CALLCONV on the CPP command line. This might be
better if it's the only place you need an #ifdef.
http://hackage.haskell.org/packages/archive/Scurry/0.0.3/Scurry.cabal

See the OS selection in the executable section:

executable scurry

[..]

    if os(mingw32)
        c-sources:          src/C/help-win.c
        extra-libraries:    Iphlpapi, ws2_32
        cc-options:         -D MINGW32
        cpp-options:        -DCALLCONV=stdcall

    if os(linux)
        build-depends: unix >= 2.3.0.0
        c-sources:          src/C/help-linux.c
        cc-options:         -D LINUX
        cpp-options:        -DCALLCONV=ccall


/jve


On Mon, Mar 30, 2009 at 4:41 AM, Alistair Bayley <alist...@abayley.org>wrote:

> 2009/3/29 Johan Tibell <johan.tib...@gmail.com>:
> >
> > foreign import CALLCONV unsafe "send"
> >    c_send :: CInt -> Ptr a -> CSize -> CInt -> IO CInt
> >
> > Compiling results in:
> >
> > parse error on input `CALLCONV'
>
>
> This is what we use in Takusen's Database.ODBC.OdbcFunctions.hsc:
>
> #ifdef mingw32_HOST_OS
> #let CALLCONV = "stdcall"
> #else
> #let CALLCONV = "ccall"
> #endif
>
> foreign import #{CALLCONV} unsafe "sql.h SQLAllocHandle" sqlAllocHandle ::
>  SqlHandleType -> Handle -> Ptr Handle -> IO SqlReturn
>
> Alistair
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to