From 6541ec8c0971d59a9dbe337635a48fc294a67931 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 8 Jul 2019 19:42:31 +0200 Subject: [PATCH] mescc: Use basename of input as default output name. * module/mescc/mescc.scm (mescc:preprocess, mescc:compile, mescc:assemble, M1->hex2): Use basename of input as default output name. --- module/mescc/mescc.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/module/mescc/mescc.scm b/module/mescc/mescc.scm index 0f801daa..83ebd1d2 100644 --- a/module/mescc/mescc.scm +++ b/module/mescc/mescc.scm @@ -44,9 +44,10 @@ (pretty-print/write (if (eq? pretty-print/write 'pretty-print) pretty-print write)) (files (option-ref options '() '("a.c"))) (input-file-name (car files)) + (input-base (basename input-file-name)) (ast-file-name (cond ((and (option-ref options 'preprocess #f) (option-ref options 'output #f))) - (else (replace-suffix input-file-name ".E")))) + (else (replace-suffix input-base ".E")))) (dir (dirname input-file-name)) (defines (reverse (filter-map (multi-opt 'define) options))) (includes (reverse (filter-map (multi-opt 'include) options))) @@ -65,9 +66,10 @@ (define (mescc:compile options) (let* ((files (option-ref options '() '("a.c"))) (input-file-name (car files)) + (input-base (basename input-file-name)) (M1-file-name (cond ((and (option-ref options 'compile #f) (option-ref options 'output #f))) - (else (replace-suffix input-file-name ".s")))) + (else (replace-suffix input-base ".s")))) (infos (map (cut file->info options <>) files)) (verbose? (option-ref options 'verbose #f)) (align? (option-ref options 'align #f))) @@ -98,9 +100,10 @@ (define (mescc:assemble options) (let* ((files (option-ref options '() '("a.c"))) (input-file-name (car files)) + (input-base (basename input-file-name)) (hex2-file-name (cond ((and (option-ref options 'assemble #f) (option-ref options 'output #f))) - (else (replace-suffix input-file-name ".o")))) + (else (replace-suffix input-base ".o")))) (s-files (filter .s? files)) (hex2-files M1->hex2 ) ;; FIXME (source-files (filter (disjoin .c? .E?) files)) @@ -162,11 +165,12 @@ (define (M1->hex2 options M1-files) (let* ((input-file-name (car (option-ref options '() '("a.c")))) + (input-base (basename input-file-name)) (M1-file-name (car M1-files)) (hex2-file-name (cond ((and (option-ref options 'assemble #f) (option-ref options 'output #f))) ((option-ref options 'assemble #f) - (replace-suffix input-file-name ".o")) + (replace-suffix input-base ".o")) (else (replace-suffix M1-file-name ".o")))) (verbose? (option-ref options 'verbose #f)) (M1 (or (getenv "M1") "M1"))