(define default-srcdir ".") (define default-prefix "/usr/local") (define default-root-post "lib/scsh/packages") (define default-root (string-append default-prefix "/" default-root-post)) (define default-activate? #t) (define configure-usage (string-append "Usage: configure [OPTION]... Configuration: -h, --help display this help and exit -V, --version display version information and exit --srcdir=DIR find the sources in DIR [.] Installation directories: --prefix=PREFIX install files in PREFIX [" default-prefix "] --root=ROOT what should this be? [PREFIX/" default-root-post "] Options: --enable-active make this version of this package active [default] --enable-active=no don't make this version of this package active Ignore these: --with-* --enable-* ")) (define configure-version "configure: This is just a test version.\n") (define options (list (option '(#\h "help") #f #f (lambda (option name arg . seeds) (display configure-usage) (exit 0))) (option '(#\V "version") #f #f (lambda (option name arg . seeds) (display configure-version) (exit 0))) (option '("srcdir") #t #f (lambda (option name arg srcdir prefix root activate?) (values arg prefix root activate?))) (option '("prefix") #t #f (lambda (option name arg srcdir prefix root activate?) (values srcdir arg root activate?))) (option '("root") #t #f (lambda (option name arg srcdir prefix root activate?) (values srcdir prefix arg activate?))) (option '("enable-active") #f #t (lambda (option name arg srcdir prefix root activate?) (values srcdir prefix root (not (and arg (string=? arg "no")))))))) (define (process-unknown-arg option name arg . seeds) (define ignore? (lambda (what) (and (string? name) (>= (string-length name) (string-length what)) (string=? what (substring name 0 (string-length what)))))) (if (or (ignore? "with-") (ignore? "enable-")) (apply values seeds) (error "Unknown option:" name))) (define (configure-main cmd-line) (let ((args (cdr cmd-line))) (receive (srcdir prefix root activate?) (args-fold args options process-unknown-arg (lambda (operand root activate?) ; operand (error "No operands accepted" operand)) default-srcdir default-prefix #f default-activate?) (with-current-output-port (open-output-file "Makefile") (display (format " # This Makefile was automatically generated by the configure script. SCSH = scsh srcdir = ~a prefix = ~a root = ~a activate = ~a # ISSUE: srfi-37 isn't native in scsh, so we must load sunterlib. module-stuff = -lm /usr/local/lib/sunterlib/interfaces.scm -lm /usr/local/lib/sunterlib/packages.scm -lm install-pkg.scm -m install arg-stuff = --root=$(root) $(activate) all: \t .PHONY: install # ISSUE: these just call Michel Schinz's original scripts, which # haven't been adjusted to obey srcdir, etc.! install: \t$(SCSH) $(module-stuff) -e install-main -s /dev/null $(arg-stuff) .PHONY: uninstall uninstall: \t$(SCSH) $(module-stuff) -e uninstall-main -s /dev/null $(arg-stuff) " srcdir prefix (or root (string-append prefix "/" default-root-post)) (if activate? "" "--inactive")))))))