CurryInfo: makefile-3.0.0 / GenerateMakeFile.generateMakeFile

definition:
generateMakeFile :: String -> String -> String -> String -> IO MakeFile
generateMakeFile args root tool mainmod = do
  allints <- readFlatCurryIntWithImports mainmod
  let allmods = (foldl union [mainmod]
                       (map (\ (Prog _ imps _ _ _) -> imps) allints))
  allsources <- mapM findSourceFileInLoadPath (filter (/="Prelude") allmods)
  currypath  <- getEnv "CURRYPATH"
  curdir     <- getCurrentDirectory
  let simpcurrypath = if null currypath
                        then ""
                        else intercalate [searchPathSeparator]
                                         (map (simplifyPath curdir)
                                              (splitSearchPath currypath))
  return $ modToMakeFile args root tool mainmod
                         (sort (map (simplifyPath curdir) allsources))
                         simpcurrypath
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
-- Generate a makefile for a given main module:
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_,_,_) |-> _}
name:
generateMakeFile
precedence:
no precedence defined
result-values:
_
signature:
String -> String -> String -> String -> Prelude.IO [MakeFile.MakeElement]
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term