import IO
import System
-import Config
import Package
main :: IO ()
main = do
args <- getArgs
case args of
- [ "install" ] -> do { putStrLn (dumpPackages (package_details True)) }
- [ "in-place" ] -> do { putStrLn (dumpPackages (package_details False)) }
- _ -> do hPutStr stderr "usage: pkgconf (install | in-place)\n"
- exitWith (ExitFailure 1)
+ ("install":rest) -> do { putStrLn (dumpPackages (package_details True rest)) }
+ ("in-place":rest) -> do { putStrLn (dumpPackages (package_details False rest)) }
+ _ -> do hPutStr stderr "usage: pkgconf (install | in-place) ...\n"
+ exitWith (ExitFailure 1)
+
+package_details :: Bool -> [String] -> [PackageConfig]
+package_details installing
+ [ cTARGETPLATFORM
+ , cCURRENT_DIR
+ , cHaveLibGmp
+ , cLibsReadline
+ , clibdir
+ , cGHC_LIB_DIR
+ , cGHC_RUNTIME_DIR
+ , cGHC_UTILS_DIR
+ , cGHC_INCLUDE_DIR
+ , cFPTOOLS_TOP_ABS ] =
-package_details :: Bool -> [Package]
-package_details installing =
[
Package {
name = "gmp", -- GMP is at the bottom of the heap
import_dirs = [],
+ source_dirs = [],
library_dirs = if cHaveLibGmp == "YES"
then []
else if installing
Package {
name = "rts", -- The RTS is just another package!
import_dirs = [],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ ghc_src_dir cGHC_RUNTIME_DIR ],
#ifndef mingw32_TARGET_OS
extra_libraries = [],
#else
- extra_libraries = [ "-lwinmm" ], -- for the threadDelay timer
+ extra_libraries = [ "winmm" ], -- for the threadDelay timer
#endif
include_dirs = if installing
then [ clibdir ++ "/includes" ]
, "PrelIOBase_stackOverflow_closure"
, "PrelIOBase_heapOverflow_closure"
, "PrelIOBase_NonTermination_closure"
- , "PrelIOBase_PutFullMVar_closure"
, "PrelIOBase_BlockedOnDeadMVar_closure"
, "PrelWeak_runFinalizzerBatch_closure"
, "__init_Prelude"
import_dirs = if installing
then [ clibdir ++ "/imports/std" ]
else [ ghc_src_dir cGHC_LIB_DIR ++ "/std" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ ghc_src_dir cGHC_LIB_DIR ++ "/std"
hs_libraries = [ "HSstd" ],
extra_libraries = [ "HSstd_cbits" ] ++
# ifdef mingw32_TARGET_OS
- ["wsock32"]
+ ["wsock32", "msvcrt"]
# else
["m"] -- libm, that is
# endif
then [ clibdir ++ "/imports/lang" ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/lang"
, cFPTOOLS_TOP_ABS ++ "/hslibs/lang/monads" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/lang"
import_dirs = if installing
then [ clibdir ++ "/imports/concurrent" ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/concurrent" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/concurrent" ],
, cFPTOOLS_TOP_ABS ++ "/hslibs/data/edison/Assoc"
, cFPTOOLS_TOP_ABS ++ "/hslibs/data/edison/Coll"
, cFPTOOLS_TOP_ABS ++ "/hslibs/data/edison/Seq" ],
+ source_dirs = [],
library_dirs = if installing
then [clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/data" ],
import_dirs = if installing
then [ clibdir ++ "/imports/net" ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/net" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/net"
import_dirs = if installing
then [ clibdir ++ "/imports/posix" ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/posix" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/posix"
, cFPTOOLS_TOP_ABS ++ "/hslibs/text/html"
, cFPTOOLS_TOP_ABS ++ "/hslibs/text/HaXml/lib"
, cFPTOOLS_TOP_ABS ++ "/hslibs/text/parsec" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/text"
then [ clibdir ++ "/imports/util" ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/util"
, cFPTOOLS_TOP_ABS ++ "/hslibs/util/check" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/util"
import_dirs = if installing
then [ clibdir ++ "/imports/hssource" ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/hssource" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/hssource" ],
import_dirs = if installing
then [ clibdir ++ "/imports/greencard" ]
else [ cFPTOOLS_TOP_ABS ++ "/green-card/lib/ghc" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/green-card/lib/ghc" ],
import_dirs = if installing
then [ clibdir ++ "/imports/win32" ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/win32" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hslibs/win32" ],
import_dirs = if installing
then [ clibdir ++ "/imports/com" ]
else [ cFPTOOLS_TOP_ABS ++ "/hdirect/lib" ],
+ source_dirs = [],
library_dirs = if installing
then [ clibdir ]
else [ cFPTOOLS_TOP_ABS ++ "/hdirect/lib" ],
extra_ld_opts = []
}
]
-
-ghc_src_dir :: String -> String
-ghc_src_dir path = cFPTOOLS_TOP_ABS ++ '/':cCURRENT_DIR ++ '/':path
+ where
+ ghc_src_dir :: String -> String
+ ghc_src_dir path = cFPTOOLS_TOP_ABS ++ '/':cCURRENT_DIR ++ '/':path