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