diff --git a/src/gerbil/compiler/driver.ss b/src/gerbil/compiler/driver.ss index 7d3ec46e0..66a4ff329 100644 --- a/src/gerbil/compiler/driver.ss +++ b/src/gerbil/compiler/driver.ss @@ -85,22 +85,25 @@ namespace: gxc (unless (string? srcpath) (raise-compile-error "Invalid module source path" srcpath)) - (let ((outdir (pgetq output-dir: opts)) - (invoke-gsc? (pgetq invoke-gsc: opts)) - (target (pgetq target: opts)) - (gsc-options (pgetq gsc-options: opts)) - (keep-scm? (pgetq keep-scm: opts)) - (verbosity (pgetq verbose: opts)) - (optimize (pgetq optimize: opts)) - (debug (pgetq debug: opts)) - (gen-ssxi (pgetq generate-ssxi: opts)) - (parallel? (pgetq parallel: opts))) + (let* ((outdir (pgetq output-dir: opts)) + (invoke-gsc? (pgetq invoke-gsc: opts)) + (target (or (pgetq target: opts) 'C)) + (gsc-options (append + ["-target" (symbol->string target)] + (or (pgetq gsc-options: opts) []))) + (keep-scm? (pgetq keep-scm: opts)) + (verbosity (pgetq verbose: opts)) + (optimize (pgetq optimize: opts)) + (debug (pgetq debug: opts)) + (gen-ssxi (pgetq generate-ssxi: opts)) + (parallel? (pgetq parallel: opts))) + (when outdir (with-driver-mutex (create-directory* outdir))) (when optimize (with-driver-mutex (optimizer-info-init!))) (parameterize ((current-compile-output-dir outdir) - (current-compilation-target (or target 'C)) + (current-compilation-target target) (current-compile-invoke-gsc invoke-gsc?) (current-compile-gsc-options gsc-options) (current-compile-keep-scm keep-scm?) @@ -119,19 +122,21 @@ namespace: gxc (unless (string? srcpath) (raise-compile-error "Invalid module source path" srcpath)) - (let ((outdir (pgetq output-dir: opts)) - (invoke-gsc? (pgetq invoke-gsc: opts)) - (target (pgetq target: opts)) - (gsc-options (pgetq gsc-options: opts)) - (keep-scm? (pgetq keep-scm: opts)) - (verbosity (pgetq verbose: opts)) - (debug (pgetq debug: opts)) - (parallel? (pgetq parallel: opts))) + (let* ((outdir (pgetq output-dir: opts)) + (invoke-gsc? (pgetq invoke-gsc: opts)) + (target (or (pgetq target: opts) 'C)) + (gsc-options (append + ["-target" (symbol->string target)] + (or (pgetq gsc-options: opts) []))) + (keep-scm? (pgetq keep-scm: opts)) + (verbosity (pgetq verbose: opts)) + (debug (pgetq debug: opts)) + (parallel? (pgetq parallel: opts))) (when outdir (with-driver-mutex (create-directory* outdir))) (parameterize ((current-compile-output-dir outdir) (current-compile-invoke-gsc invoke-gsc?) - (current-compilation-target (or target 'C)) + (current-compilation-target target) (current-compile-gsc-options gsc-options) (current-compile-keep-scm keep-scm?) (current-compile-verbose verbosity) diff --git a/src/gerbil/gxc-main.ss b/src/gerbil/gxc-main.ss index b5754fc0d..253f6e9b1 100644 --- a/src/gerbil/gxc-main.ss +++ b/src/gerbil/gxc-main.ss @@ -133,7 +133,6 @@ (("-target") (match rest ([opt . rest] - (add-gsc-option! ["-target" opt]) (set! target (string->symbol opt)) (lp rest)) (else