Scheme=scheme
o=3

.SUFFIXES:
.SUFFIXES: .ss .so

# If the fluid-let-syntax macro is present in ${Scheme},
# this generates an error (invalid syntax).  Otherwise
# it expands as a variable reference.

%.so: %.ss
	echo "(optimize-level $o)\
	      (generate-inspector-information (or))\
	      (current-eval interpret)\
	      (subset-mode 'system)\
              (compile-file\
                (call/cc\
                  (lambda (set-filename)\
                    (parameterize ([error-handler\
                                    (lambda args\
                                      (set-filename \"/dev/null\"))])\
                      (expand 'fluid-let-syntax)\
                      (set-filename \"$*.ss\"))))\
                \"${SWLBIN}/$*.so\")" | ${Scheme}

syntax: syntax.so
