+DEST=$(SBCL_PWD)/obj/sbcl-home/contrib/
+FASL=$(DEST)/$(MODULE).fasl
+ASD=$(DEST)/$(MODULE).asd
-$(MODULE).fasl: $(MODULE).lisp
- $(SBCL) --eval '(compile-file "$(MODULE)")' </dev/null
+fasl:: $(FASL)
+$(FASL):: $(MODULE).lisp ../../output/sbcl.core
+ $(SBCL) --eval '(compile-file (format nil "SYS:CONTRIB;~:@(~A~);~:@(~A~).LISP" "$(MODULE)" "$(MODULE)") :output-file (parse-native-namestring "$@"))' </dev/null
-test:: $(MODULE).fasl
+$(ASD)::
+ echo "(defsystem :$(MODULE) :class require-system)" > $@
-install: test
- cp $(MODULE).fasl $(INSTALL_DIR)
+test:: $(FASL) $(ASD)
+
+install:
+ cp $(FASL) $(ASD) "$(BUILD_ROOT)$(INSTALL_DIR)"