cake3-0.3.0.1: Third cake the Makefile EDSL

Safe HaskellSafe-Inferred

Development.Cake3.Types

Synopsis

Documentation

data Variable Source

The representation of Makefile variable

Constructors

Variable 

Fields

vname :: String

The name of a variable

vval :: Maybe String

Nothing means that variable is defined elsewhere (eg. borrowed from the environment)

type Command = [CommandPiece]Source

Command represents OS command line and consists of a list of fragments. Each fragment is either text (may contain spaces) or FilePath (spaces should be escaped)

data Flag Source

Constructors

Phony 
Intermediate 

data Recipe Source

Recipe answers to the question 'How to build the targets'. Internally, it contains sets of targets and prerequisites, as well as shell commands required to build former from latter

Constructors

Recipe 

Fields

rtgt :: Set File

Targets

rsrc :: Set File

Prerequisites

rcmd :: [Command]

A list of shell commands

rvars :: Set Variable

Container of variables

rloc :: String
 
rflags :: Set Flag
 

groupSet :: (Ord k, Ord x, Foldable t) => (x -> Set k) -> t x -> Map k (Set x)Source

flattern :: [Set x] -> [x]Source

applyPlacement' :: Eq x => [File] -> Map File x -> [x]Source

transformRecipesM_ :: (Monad m, Foldable t) => (Recipe -> m ()) -> t Recipe -> m ()Source

makevarSource

Arguments

:: String

Variable name

-> String

Default value

-> Variable 

Declare the variable which is defined in the current Makefile and has it's default value

extvar :: String -> VariableSource

Declare the variable which is not defined in the target Makefile

make :: VariableSource

Special variable $(MAKE)