aboutsummaryrefslogtreecommitdiff
path: root/src/interp/define.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2013-06-01 07:35:18 +0000
committerdos-reis <gdr@axiomatics.org>2013-06-01 07:35:18 +0000
commit64aeafac79d72f440b6546bae91583e6efd6b674 (patch)
treede419861e4625d20bc0e1c68f5db1590a50708b9 /src/interp/define.boot
parentde3a19c35df30298d323c5882e39931f329ea29e (diff)
downloadopen-axiom-64aeafac79d72f440b6546bae91583e6efd6b674.tar.gz
Support --output in compiler, for bootstrapping stage.
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r--src/interp/define.boot12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 585c5461..f3f70c72 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1201,6 +1201,7 @@ compDefineCategory(df,m,e,fal) ==
dbClearForCompilation! db
dbConstructorForm(db) := lhs
dbCompilerData(db) := makeCompilationData()
+ dbOutputPath(db) := getOutputPath()
$backend: local := function(x +-> printBackendStmt(dbLibstream db,x))
try
$insideFunctorIfTrue => compDefineCategory1(db,df,m,e,fal)
@@ -1442,6 +1443,16 @@ setDollarName(form,env) ==
getDollarName env ==
get('%compilerData,'%dollar,env)
+getOutputPath() ==
+ outfile := getOptionValue "output"
+ outfile = nil => nil
+ $insideCategoryPackageIfTrue =>
+ d := filePathDirectory outfile
+ n := strconc(filePathString filePathName outfile,'"-")
+ t := filePathType outfile
+ filePathString makeFilePath(directory <- d,name <- n,type <- t)
+ outfile
+
compDefineFunctor(df,m,e,fal) ==
$profileCompiler: local := true
$profileAlist: local := nil
@@ -1450,6 +1461,7 @@ compDefineFunctor(df,m,e,fal) ==
dbClearForCompilation! db
dbConstructorForm(db) := form
dbCompilerData(db) := makeCompilationData()
+ dbOutputPath(db) := getOutputPath()
$backend: local := function(x +-> printBackendStmt(dbLibstream db,x))
try compDefineLisplib(db,df,m,e,fal,'compDefineFunctor1)
finally dbCompilerData(db) := nil