List the sources in only one place
authorDavid Vázquez <davazp@gmail.com>
Thu, 25 Apr 2013 12:41:03 +0000 (13:41 +0100)
committerDavid Vázquez <davazp@gmail.com>
Thu, 25 Apr 2013 12:41:03 +0000 (13:41 +0100)
ecmalisp.lisp

index b412d21..45b22f9 100644 (file)
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 (eval-when (:load-toplevel :compile-toplevel :execute)
-  (load "compat")
-  (load "utils")
-  (load "print")
-  (load "read")
-  (load "compiler"))
+  (defvar *source*
+    '(("boot.lisp"      :target)
+      ("compat"         :host)
+      ("utils.lisp"     :both)
+      ("print.lisp"     :both)
+      ("read.lisp"      :both)
+      ("compiler.lisp"  :both)
+      ("toplevel.lisp"  :target)))
+
+  (dolist (input *source*)
+    (when (member (cadr input) '(:host :both))
+      (load (car input)))))
 
 (defun read-whole-file (filename)
   (with-open-file (in filename)
         *block-counter* 0)
   (with-open-file (out "ecmalisp.js" :direction :output :if-exists :supersede)
     (write-string (read-whole-file "prelude.js") out)
-    (dolist (file '("boot.lisp"
-                    "utils.lisp"
-                    "print.lisp"
-                    "read.lisp"
-                    "compiler.lisp"
-                    "toplevel.lisp"))
-      (ls-compile-file file out))))
+    (dolist (input *source*)
+      (when (member (cadr input) '(:target :both))
+        (ls-compile-file (car input) out)))))