more variants
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Thu, 13 Apr 2023 10:19:45 +0000 (20:19 +1000)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Thu, 13 Apr 2023 10:19:45 +0000 (20:19 +1000)
packnl.lsp

index d8adb2ea947258a04cf207b7f208e14dc55b37d6..3e20f2b74f984e8874d82edbd36b01dabeee4c6d 100644 (file)
@@ -2,7 +2,9 @@
 ;; binary, which is an embedded newlisp binary with the same embedding
 ;; script as binnl itself.
 ;;
-;; Usage: [ -r ] binary ( member | -a archive | -C dir )*
+;; Usage: -w binary ( member | -a archive | -A archive | -C dir )*
+;;        -t binary
+;;        -u binary directory
 ;;
 ;; The script processes the arguments from left to right to form then
 ;; named binary with the named members appended.
@@ -15,7 +17,7 @@
 ;;
 ;; Use '-C dir' to change source directory
 ;;
-;; Use '-r' to overwrite an existing binary
+;; Use '-w' to overwrite an existing binary
 
 ;; The first embedded member will be the "main script".
 ;;
 
 (define (compile-file M (D (read-file M)))
   (unless D
-    (write-line 2 (format "*** Mising %s .. aborting" M))
+    (write-line 2 (format "*** Cannot read %s .. aborting" M))
+    (when (and (archives M) (not (ends-with (archives M) ".a")))
+      (write-line 2 (format "*** (Archive filename %s must end with \".a\")"
+                            (archives M))))
     (exit 1))
   (append-file BINARY (format "%s\n%d\n" M (length D)))
   (append-file BINARY D))
 
 (define (compile-ar A M)
   (let ((MEMBERS (archive M)))
-    (if (= A "-A") (dolist (M MEMBERS) (compile-file M)))))
+    (dolist (X MEMBERS)
+      ;;(write-line 2 (format "including %s from %s" X M))
+      (when (= A "-A") (compile-file X))
+      )))
 
 (define (compile BINARY MEMBERS)
   (unless (starts-with BINARY "/")
@@ -47,7 +55,6 @@
   (exec (format "chmod a+x %s" BINARY))
   (let ((A nil) (C nil))
     (dolist (M MEMBERS)
-      ;;(write-line 1 (string "[" M "]" (archives)))
       (case M
         ("-a" (setf A "-a"))
         ("-A" (setf A "-A"))