mescc: Use basename of input as default output name.
authorJan Nieuwenhuizen <janneke@gnu.org>
Mon, 8 Jul 2019 17:42:31 +0000 (19:42 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 8 Jul 2019 17:42:31 +0000 (19:42 +0200)
* module/mescc/mescc.scm (mescc:preprocess, mescc:compile,
mescc:assemble, M1->hex2): Use basename of input as default output name.

module/mescc/mescc.scm

index 0f801daacdd6cee47fbc903d9a026b6ad0672413..83ebd1d241cfd78d24e6699833db9670cf52aab8 100644 (file)
          (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)))
 (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)))
 (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))
 
 (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"))