@@ -7,7 +7,7 @@ module Util.DynamicLinker (ForeignFun(..), DynamicLib(..), tryLoadLib, tryLoadFn
7import Foreign.LibFFI
7import Foreign.LibFFI
8import Foreign.Ptr (Ptr(), nullPtr, FunPtr, nullFunPtr, castPtrToFunPtr)
8import Foreign.Ptr (Ptr(), nullPtr, FunPtr, nullFunPtr, castPtrToFunPtr)
9import System.Directory
9import System.Directory
10−#ifndef WINDOWS
10+#ifndef mingw32_HOST_OS
11import System.Posix.DynamicLinker
11import System.Posix.DynamicLinker
12import System.FilePath.Posix ((</>))
12import System.FilePath.Posix ((</>))
@@ -19,15 +19,15 @@ type DL = HMODULE
21hostDynamicLibExt :: String
21hostDynamicLibExt :: String
22−#ifdef LINUX
22+#ifdef linux_HOST_OS
23hostDynamicLibExt = "so"
23hostDynamicLibExt = "so"
24−#elif MACOSX
24+#elif darwin_HOST_OS
25hostDynamicLibExt = "dylib"
25hostDynamicLibExt = "dylib"
26−#elif WINDOWS
26+#elif mingw32_HOST_OS
27hostDynamicLibExt = "dll"
27hostDynamicLibExt = "dll"
28−#elif FREEBSD
28+#elif freebsd_HOST_OS
29hostDynamicLibExt = "so"
29hostDynamicLibExt = "so"
30−#elif DRAGONFLY
30+#elif dragonfly_HOST_OS
31hostDynamicLibExt = "so"
31hostDynamicLibExt = "so"
33hostDynamicLibExt = error $ unwords
33hostDynamicLibExt = error $ unwords
@@ -61,7 +61,7 @@ libFileName dirs lib = do let names = [lib, lib ++ "." ++ hostDynamicLibExt]
61 map ("."</>) names ++ [d </> f | d <- cwd:dirs, f <- names]
61 map ("."</>) names ++ [d </> f | d <- cwd:dirs, f <- names]
62 return $ maybe (lib ++ "." ++ hostDynamicLibExt) id found
62 return $ maybe (lib ++ "." ++ hostDynamicLibExt) id found
64−#ifndef WINDOWS
64+#ifndef mingw32_HOST_OS
65tryLoadLib :: [FilePath] -> String -> IO (Maybe DynamicLib)
65tryLoadLib :: [FilePath] -> String -> IO (Maybe DynamicLib)
66tryLoadLib dirs lib = do filename <- libFileName dirs lib
66tryLoadLib dirs lib = do filename <- libFileName dirs lib
67 handle <- dlopen filename [RTLD_NOW, RTLD_GLOBAL]
67 handle <- dlopen filename [RTLD_NOW, RTLD_GLOBAL]