-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A make alternative based on Plan9's mk. -- -- Clone of Plan9's mk command, said to have "improved on make by -- removing all the vowels from the name". Most features of mk are -- implemented, including basic meta-rules support and concurrent -- execution of jobs. -- -- The library exports a generic dependency graph traversal that can be -- used independently of the rest. -- -- The documentation is embedded in the literate Haskell source. -- -- Note: the library portion is released to the public -- domain. Those source files that are not part of the library are -- released under GPLv3 or later. @package hmk @version 0.9.7 module Control.Hmk.Analyze coalesce :: (Ord a) => [Rule m a] -> [Rule m a] complete :: (Ord a, Show a) => Cmp m a -> [Rule m a] -> [Rule m a] process :: (Ord a, Show a) => Cmp m a -> [Rule m a] -> [Rule m a] module Control.Hmk.Concurrent data Done Done :: Done processTree :: (Ord a, Show a) => Int -> DepGraph IO a -> IO () module Control.Hmk mk :: (Ord a, Applicative m, Monad m) => [Rule m a] -> [a] -> m (Schedule m) mkConcurrent :: (Ord a, Show a) => Int -> [Rule IO a] -> [a] -> IO () type Cmp m a = a -> a -> m Bool data Rule m a Rule :: a -> [a] -> Maybe ([a] -> Task m) -> Cmp m a -> Rule m a target :: Rule m a -> a prereqs :: Rule m a -> [a] recipe :: Rule m a -> Maybe ([a] -> Task m) isStale :: Rule m a -> Cmp m a type Task m = m Result type DepGraph m a = [Tree m a] data Tree m a Node :: a -> (DepGraph m a) -> (Rule m a) -> Tree m a type Schedule m = [Task m] data Result TaskSuccess :: Result TaskFailure :: Result instance Eq Result instance Show Result instance (Show a) => Show (Tree m a) instance (Show a) => Show (Rule m a) module Control.Hmk.IO isStale :: Cmp IO FilePath testExitCode :: ExitCode -> IO Result