~ chicken-core (chicken-5) 4d2c536e5caea00d3fccecdb790335fc0830c072
commit 4d2c536e5caea00d3fccecdb790335fc0830c072
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Apr 5 16:55:50 2017 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Wed Apr 5 16:55:50 2017 +0200
compile with default optimization options, unless given in the .egg file
diff --git a/egg-compile.scm b/egg-compile.scm
index 02dfb8c6..b93e394f 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -32,6 +32,9 @@
(define default-dynamic-extension-link-options '())
(define default-extension-linkage '(static dynamic))
(define default-program-linkage '(dynamic))
+(define default-static-compilation-options '("-O2" "-d1"))
+(define default-dynamic-compilation-options '("-O2" "-d1"))
+(define default-import-library-compilation-options '("-O2" "-d0"))
(define +unix-executable-extension+ "")
(define +windows-executable-extension+ ".exe")
@@ -374,6 +377,9 @@
default-csc))
(sname (prefix srcdir name))
(ssname (and source (prefix srcdir source)))
+ (opts (if (null? options)
+ default-static-compilation-options
+ options))
(out (quotearg (target-file (conc sname
(object-extension platform))
mode)))
@@ -383,7 +389,7 @@
" -setup-mode -static -I " srcdir
" -D compiling-extension -c -J -unit " name
" -D compiling-static-extension"
- " -C -I" srcdir (arglist options)
+ " -C -I" srcdir (arglist opts)
" " src " -o " out " : "
src #;(arglist dependencies))))
@@ -394,13 +400,16 @@
(let* ((cmd (or (and custom (prefix-custom-command custom))
default-csc))
(sname (prefix srcdir name))
+ (opts (if (null? options)
+ default-dynamic-compilation-options
+ options))
(ssname (and source (prefix srcdir source)))
(out (quotearg (target-file (conc sname ".so") mode)))
(src (quotearg (or ssname (conc sname ".scm")))))
(print "\n" (slashify default-builder platform) " " out " " cmd
(if keep-generated-files " -k" "")
" -D compiling-extension -J -s"
- " -setup-mode -I " srcdir " -C -I" srcdir (arglist options)
+ " -setup-mode -I " srcdir " -C -I" srcdir (arglist opts)
(arglist link-options) " " src " -o " out " : "
src #;(arglist dependencies))))
@@ -412,12 +421,15 @@
default-csc))
(sname (prefix srcdir name))
(ssname (and source (prefix srcdir source)))
+ (opts (if (null? options)
+ default-import-library-compilation-options
+ options))
(out (quotearg (target-file (conc sname ".import.so") mode)))
(src (quotearg (or source (conc sname ".import.scm")))))
(print "\n" (slashify default-builder platform) " " out " " cmd
(if keep-generated-files " -k" "")
" -setup-mode -s"
- " -I " srcdir " -C -I" srcdir (arglist options)
+ " -I " srcdir " -C -I" srcdir (arglist opts)
(arglist link-options) " " src " -o " out " : "
src #;(arglist dependencies))))
@@ -429,6 +441,9 @@
default-csc))
(sname (prefix srcdir name))
(ssname (and source (prefix srcdir source)))
+ (opts (if (null? options)
+ default-dynamic-compilation-options
+ options))
(out (quotearg (target-file (conc sname
(executable-extension platform))
mode)))
@@ -436,7 +451,7 @@
(print "\n" (slashify default-builder platform) " " out " " cmd
(if keep-generated-files " -k" "")
" -setup-mode"
- " -I " srcdir " -C -I" srcdir (arglist options)
+ " -I " srcdir " -C -I" srcdir (arglist opts)
(arglist link-options) " " src " -o " out " : "
src #;(arglist dependencies))))
@@ -448,6 +463,9 @@
default-csc))
(sname (prefix srcdir name))
(ssname (and source (prefix srcdir source)))
+ (opts (if (null? options)
+ default-static-compilation-options
+ options))
(out (quotearg (target-file (conc sname
(executable-extension platform))
mode)))
@@ -455,7 +473,7 @@
(print "\n" (slashify default-builder platform) " " out " " cmd
(if keep-generated-files " -k" "")
" -static -setup-mode -I " srcdir " -C -I"
- srcdir (arglist options)
+ srcdir (arglist opts)
(arglist link-options) " " src " -o " out " : "
src #;(arglist dependencies))))
diff --git a/manual/Extensions b/manual/Extensions
index 4e3b8962..679bfd93 100644
--- a/manual/Extensions
+++ b/manual/Extensions
@@ -318,7 +318,10 @@ usually contains a shell command and thus may be platform sensitive.
[egg property] (csc-options OPTION ...)
Specifies additional compiler options for {{csc}} that should be
-used when building this component.
+used when building this component. If this property is not
+given, the default options are used, which are {{-O2 -d1}}
+for extensions and programs and {{-O2 -d0}} for import
+libraries.
====== link-options
Trap