{-# OPTIONS -fglasgow-exts #-}
-----------------------------------------------------------------------------
--- $Id: Main.hs,v 1.28 2002/09/13 15:01:40 simonpj Exp $
+-- $Id: Main.hs,v 1.31 2002/10/29 10:53:42 simonpj Exp $
--
-- Package management tool
-----------------------------------------------------------------------------
#include "../../includes/config.h"
#ifdef mingw32_HOST_OS
-import CString
import Foreign
+
+#if __GLASGOW_HASKELL__ >= 504
+import Foreign.C.String
+#else
+import CString
+#endif
#endif
main = do
"Automatically build libs for GHCi (with -a)"
]
-#ifdef mingw32_HOST_OS
-subst a b ls = map (\ x -> if x == a then b else x) ls
-
-unDosifyPath xs = subst '\\' '/' xs
-#endif
runit clis = do
let err_msg = "missing -f option, location of package.conf unknown"
conf_file <-
case [ f | Config f <- clis ] of
fs@(_:_) -> return (last fs)
-#ifndef mingw32_HOST_OS
- [] -> die err_msg
-#else
[] -> do mb_dir <- getExecDir "/bin/ghc-pkg.exe"
case mb_dir of
Nothing -> die err_msg
Just dir -> return (dir ++ "/package.conf")
-#endif
let toField "import_dirs" = return import_dirs
toField "source_dirs" = return source_dirs
-- Cut and pasted from ghc/compiler/SysTools
#if defined(mingw32_HOST_OS)
+subst a b ls = map (\ x -> if x == a then b else x) ls
+unDosifyPath xs = subst '\\' '/' xs
+
getExecDir :: String -> IO (Maybe String)
-- (getExecDir cmd) returns the directory in which the current
-- executable, which should be called 'cmd', is running