0.8.6.5
[sbcl.git] / contrib / asdf-module.mk
index 6179c56..c646b9d 100644 (file)
@@ -1,17 +1,45 @@
 CC=gcc
-export CC
 
-all: 
+# Need to set CFLAGS and LDFLAGS here. sb-posix, sb-grovel, and
+# sb-bsd-sockets depends upon these being set on x86_64. Setting these
+# in their Makefile's is not adequate since their asd files are
+# invoked when loaded from other modules which don't require these
+# environmental values in their Makefile's.
+
+UNAME:=$(shell uname -m)
+export CFLAGS=-fPIC
+ifeq (solaris,$(UNAME))
+  export LDFLAGS=-shared -lresolv -lsocket -lnsl
+else
+  ifeq (Darwin,$(UNAME))
+    export LDFLAGS=-bundle
+  else
+    ifeq (x86_64,$(UNAME))
+      export LDFLAGS=-m32 -shared
+      export CFLAGS+= -m32
+    else
+      export LDFLAGS=-shared
+    endif
+  endif
+endif
+
+export CC SBCL CFLAGS LDFLAGS
+
+all: $(EXTRA_ALL_TARGETS)
        $(MAKE) -C ../asdf
-       echo "(asdf:operate 'asdf:load-op :$(SYSTEM) :force t)" | \
-         $(SBCL) --eval '(load "../asdf/asdf")'
+       $(SBCL) --eval '(load "../asdf/asdf")' \
+         --eval "(setf asdf::*central-registry* '((MERGE-PATHNAMES \"systems/\" (TRUENAME (SB-EXT:POSIX-GETENV \"SBCL_HOME\")))))" \
+         --eval "(push :sb-building-contrib *features*)" \
+         --eval "(asdf:operate 'asdf:load-op :$(SYSTEM))" \
+         --eval "(progn (when (probe-file \"$(SYSTEM).fasl\") (error \"fasl file exists\")) (with-open-file (s \"$(SYSTEM).lisp\" :direction :output :if-exists :error) (print (quote (require :asdf)) s) (print (quote (require :$(SYSTEM))) s)) (compile-file \"$(SYSTEM).lisp\") (delete-file \"$(SYSTEM).lisp\"))" \
+         --eval "(quit)"
 
 test: all
-       echo "(asdf:operate (quote asdf:load-op) :$(SYSTEM)) "\
+       echo "(asdf:operate (quote asdf:load-op) :$(SYSTEM))" \
             "(asdf:operate (quote asdf:test-op) :$(SYSTEM))" | \
          $(SBCL) --eval '(load "../asdf/asdf")'
 
 
-install:
-       tar cf - . | ( cd $(INSTALL_DIR) && tar xpvf - )
-       ( cd  $(SBCL_HOME)/systems && ln -fs ../$(SYSTEM)/$(SYSTEM).asd . )
+install: $(EXTRA_INSTALL_TARGETS)
+       tar cf - . | ( cd $(BUILD_ROOT)$(INSTALL_DIR) && tar xpvf - )
+       ( cd  $(BUILD_ROOT)$(SBCL_HOME)/systems && ln -fs ../$(SYSTEM)/$(SYSTEM).asd . )