path <- getEnv "PATH"
search (parseSearchPath path)
where
- fileName = binary `joinFileExt` drop 1 exeExt
+ fileName = binary `joinFileExt` drop 1 exeExtension
search :: [FilePath] -> IO (Maybe FilePath)
search [] = return Nothing
if b then return (Just path)
else search ds
--- ToDo: This should be determined via autoconf (AC_EXEEXT)
-exeExt :: String
-#ifdef mingw32_TARGET_OS
-exeExt = ".exe"
-#else
-exeExt = ""
-#endif
-
#ifdef __GLASGOW_HASKELL__
{- |@'getDirectoryContents' dir@ returns a list of /all/ entries
in /dir/.
, isPathSeparator
, pathSeparator
, searchPathSeparator
+
+ -- * Filename extensions
+ , exeExtension
+ , objExtension
+ , dllExtension
) where
import Prelude -- necessary to get dependencies right
#else
searchPathSeparator = ':'
#endif
+
+-- ToDo: This should be determined via autoconf (AC_EXEEXT)
+-- | Extension for executable files
+-- (typically @""@ on Unix and @".exe"@ on Windows or OS/2)
+exeExtension :: String
+
+-- ToDo: This should be determined via autoconf (AC_OBJEXT)
+-- | Extension for object files
+-- (typically @".o"@ on Unix and @".obj"@ on Windows)
+objExtension :: String
+
+-- | Extension for dynamically linked (or shared) libraries
+-- (typically @".so"@ on Unix and @".dll"@ on Windows)
+dllExtension :: String
+
+#ifdef mingw32_TARGET_OS
+exeExtension = ".exe"
+objExtension = ".obj"
+dllExtension = ".dll"
+#else
+exeExtension = ""
+objExtension = ".o"
+dllExtension = ".so"
+#endif