module Cake.Marxup where import Cake.Core import Cake.Rules import Cake.Process import System.FilePath import Parsek ghcMake x = produce x $ do let src = x <.> "hs" need src system ["ghc", "-o", x, "--make", src] marxup x = do produce (x <.> "tex") $ do ghcMake x cut $ system $ ["./" ++ x] produce (x <.> "mp") $ return () mpost x = system ["mpost", x] remove x = system ["rm", "-f", x] pdf_marxup x = produce (x <.> "pdf") $ do marxup x let delayed = x ++ "-delayed.mp" produce delayed $ do let mp = x <.> "mp" need mp cut $ do remove delayed mpost mp mpost mp cut $ _pdflatex x