you can now specifiy an arg vm parser
This commit is contained in:
parent
4703ce142a
commit
88aaa91880
|
@ -80,6 +80,13 @@ For testing load this at a scsh prompt
|
|||
(else
|
||||
(display "error: -o requires argument") (newline)
|
||||
(usage (car argl)))))
|
||||
((equal? (car args) "--args")
|
||||
(cond ((not (null? (cdr args)))
|
||||
(set-options:args-parser options (cadr args))
|
||||
(loop (cddr args)))
|
||||
(else
|
||||
(display "error: --args requires argument") (newline)
|
||||
(usage (car argl)))))
|
||||
((equal? (car args) "--temp")
|
||||
(cond ((not (null? (cdr args)))
|
||||
(set-options:temp-dir options (cadr args))
|
||||
|
@ -112,6 +119,11 @@ For testing load this at a scsh prompt
|
|||
(format #t "error: unknown argument ~a" (car args))
|
||||
(newline)
|
||||
(usage (car argl)))))
|
||||
(set-options:args-parser
|
||||
options
|
||||
(if (options:args-parser options)
|
||||
(list (options:args-parser options))
|
||||
'()))
|
||||
(set-options:temp-dir
|
||||
options
|
||||
(or (options:temp-dir options)
|
||||
|
@ -142,6 +154,7 @@ For testing load this at a scsh prompt
|
|||
"usage: ~a ~%"
|
||||
" [-i image]~%"
|
||||
" [-o executable]~%"
|
||||
" [--args object]~%"
|
||||
" [--temp directory]~%"
|
||||
" [--cc command]~%"
|
||||
" [--ld command]~%"
|
||||
|
@ -154,8 +167,9 @@ For testing load this at a scsh prompt
|
|||
|
||||
(define-record options
|
||||
(input-image #f) ; the input scheme image file
|
||||
(temp-dir #f) ; place for intermediate .c .o files
|
||||
(output-executable #f) ; the output executable file
|
||||
(args-parser #f) ; .o file for replacement process_args
|
||||
(temp-dir #f) ; place for intermediate .c .o files
|
||||
(cc-command #f) ; command to compile a .c file
|
||||
(ld-flags #f) ; flags needed to link executable
|
||||
(libraries #f) ; linbraries need to link executable
|
||||
|
@ -367,8 +381,9 @@ For testing load this at a scsh prompt
|
|||
(scsh-emit-descriptor start reloc port)
|
||||
(write-char #\; port)
|
||||
(newline port)))
|
||||
(message (append cc '("static.c")))
|
||||
(run (,@(append cc '("static.c"))))))
|
||||
(let ((command (append cc '("static.c"))))
|
||||
(message command)
|
||||
(run (,@command)))))
|
||||
|
||||
;;; compile-c-image
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -404,9 +419,10 @@ For testing load this at a scsh prompt
|
|||
;; wait for last compile before starting new one
|
||||
(if process
|
||||
(wait process))
|
||||
(message (append cc (list filename)))
|
||||
(set! process (& (,@(append cc (list filename)))))
|
||||
(chunk-loop (+ 1 c))))
|
||||
(let ((command (append cc (list filename))))
|
||||
(message command)
|
||||
(set! process (& (,@command))))
|
||||
(chunk-loop (+ 1 c))))
|
||||
(else
|
||||
(wait process))))))
|
||||
|
||||
|
@ -421,39 +437,25 @@ For testing load this at a scsh prompt
|
|||
(line->list (options:ld-flags options))
|
||||
`(-o ,(options:output-executable options))))
|
||||
(libs (line->list (options:libraries options))))
|
||||
(message (append ld
|
||||
(let loop ((i 0)
|
||||
(l '()))
|
||||
(cond ((not (= i n))
|
||||
(loop (+ i 1)
|
||||
(cons
|
||||
(format #f "static-i~s.o" i)
|
||||
(cons
|
||||
(format #f "static-p~s.o" i)
|
||||
l))))
|
||||
(else
|
||||
(reverse
|
||||
(cons "static.o"
|
||||
l)))))
|
||||
'("@prefix@/lib/scsh/libscshvm.a")
|
||||
libs))
|
||||
(run (,@(append
|
||||
ld
|
||||
(let loop ((i 0)
|
||||
(l '()))
|
||||
(cond ((not (= i n))
|
||||
(loop (+ i 1)
|
||||
(cons
|
||||
(format #f "static-i~s.o" i)
|
||||
(cons
|
||||
(format #f "static-p~s.o" i)
|
||||
l))))
|
||||
(else
|
||||
(reverse
|
||||
(cons "static.o"
|
||||
l)))))
|
||||
'("@prefix@/lib/scsh/libscshvm.a")
|
||||
libs)))))
|
||||
(let ((command (append ld
|
||||
(let loop ((i 0)
|
||||
(l '()))
|
||||
(cond ((not (= i n))
|
||||
(loop (+ i 1)
|
||||
(cons
|
||||
(format #f "static-i~s.o" i)
|
||||
(cons
|
||||
(format #f "static-p~s.o" i)
|
||||
l))))
|
||||
(else
|
||||
(reverse
|
||||
(cons "static.o"
|
||||
l)))))
|
||||
(options:args-parser options)
|
||||
'("-L" "@prefix@/lib/scsh" "-lscshvm")
|
||||
libs)))
|
||||
(message command)
|
||||
(run (,@command)))))
|
||||
|
||||
;;; scsh-emit-initializer
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
|
Loading…
Reference in New Issue