packages feed

kansas-lava-shake-0.1.1: src/Development/KansasLava/Shake.hs

module Development.KansasLava.Shake
       ( lavaRules
       ) where

import Development.Shake
import Development.Shake.FilePath
import Language.KansasLava.VHDL (writeVhdlPrelude)

lavaRules :: FilePath -> String -> String -> Rules ()
lavaRules modName vhdl ucf = do
    gensrc modName <.> "vhdl" *> \target -> do
        alwaysRerun
        writeFileChanged target vhdl
    gensrc modName <.> "ucf" *> \target -> do
        alwaysRerun
        writeFileChanged target ucf
    gensrc "lava-prelude.vhdl" *> liftIO . writeVhdlPrelude
  where
    gensrc f = "gensrc" </> f