aboutsummaryrefslogtreecommitdiff
path: root/bootstrap/src
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/src')
-rw-r--r--bootstrap/src/BuildModel.hs21
1 files changed, 10 insertions, 11 deletions
diff --git a/bootstrap/src/BuildModel.hs b/bootstrap/src/BuildModel.hs
index 043173f..6446a12 100644
--- a/bootstrap/src/BuildModel.hs
+++ b/bootstrap/src/BuildModel.hs
@@ -44,25 +44,24 @@ data Source =
}
| Module
{ moduleSourceFileName :: FilePath
+ , moduleObjectFileName :: FilePath -> FilePath
}
processRawSource :: RawSource -> Source
processRawSource rawSource =
let sourceFileName = rawSourceFilename rawSource
parsedContents = parseContents rawSource
+ objectFileName =
+ \bd -> bd </> (pathSeparatorsToUnderscores sourceFileName) <.> "o"
in if hasProgramDeclaration parsedContents
- then Program
- { programSourceFileName = sourceFileName
- , programObjectFileName = \buildDirectory ->
- buildDirectory
- </> (pathSeparatorsToUnderscores
- sourceFileName
- )
- <.> "o"
- , programModulesUsed = getModulesUsed parsedContents
- }
+ then Program { programSourceFileName = sourceFileName
+ , programObjectFileName = objectFileName
+ , programModulesUsed = getModulesUsed parsedContents
+ }
else if hasModuleDeclaration parsedContents
- then Module { moduleSourceFileName = sourceFileName }
+ then Module { moduleSourceFileName = sourceFileName
+ , moduleObjectFileName = objectFileName
+ }
else undefined
pathSeparatorsToUnderscores :: FilePath -> FilePath