Allowing overriding the c compiler in chibi-ffi.

This commit is contained in:
Alex Shinn 2015-05-09 21:50:27 +09:00
parent b1243c63d4
commit 2f27dbb5bc

View file

@ -1982,6 +1982,7 @@
(let ((args (command-line))) (let ((args (command-line)))
(let lp ((args (if (pair? args) (cdr args) args)) (let lp ((args (if (pair? args) (cdr args) args))
(compile? #f) (compile? #f)
(cc #f)
(cflags '()) (cflags '())
(features '())) (features '()))
(cond (cond
@ -1989,12 +1990,15 @@
(eqv? #\- (string-ref (car args) 0))) (eqv? #\- (string-ref (car args) 0)))
(case (string->symbol (car args)) (case (string->symbol (car args))
((-c --compile) ((-c --compile)
(lp (cdr args) #t cflags features)) (lp (cdr args) #t cc cflags features))
((-cc --cc)
(lp (cddr args) compile? (cadr args) cflags features))
((-f --flags) ((-f --flags)
(if (null? (cdr args)) (if (null? (cdr args))
(error "--flags requires an argument")) (error "--flags requires an argument"))
(lp (cddr args) (lp (cddr args)
compile? compile?
cc
(append cflags (string-split (cadr args) #\space)) (append cflags (string-split (cadr args) #\space))
features)) features))
((--features) ((--features)
@ -2002,6 +2006,7 @@
(error "--features requires an argument")) (error "--features requires an argument"))
(lp (cddr args) (lp (cddr args)
compile? compile?
cc
cflags cflags
(append features (string-split (cadr args) #\,)))) (append features (string-split (cadr args) #\,))))
(else (else
@ -2043,5 +2048,5 @@
`(cond-expand `(cond-expand
(macosx (append '("-dynamiclib" "-Oz") ',base-args)) (macosx (append '("-dynamiclib" "-Oz") ',base-args))
(else (append '("-fPIC" "-shared" "-Os") ',base-args))))) (else (append '("-fPIC" "-shared" "-Os") ',base-args)))))
(cc (if *c++?* "c++" "cc"))) (cc (or cc (if *c++?* "c++" "cc"))))
(execute cc (cons cc args)))))))))) (execute cc (cons cc args))))))))))