Fix make-array transforms.
[sbcl.git] / contrib / asdf-module.mk
index 6bf4a36..e211f0c 100644 (file)
@@ -1,5 +1,3 @@
-CC=gcc
-
 # We need to extend flags to the C compiler and the linker
 # here. sb-posix, sb-grovel, and sb-bsd-sockets depends upon these
 # being set on x86_64. Setting these in their Makefiles is not
@@ -8,6 +6,9 @@ CC=gcc
 # ones as dependencies.
 
 UNAME:=$(shell uname -s)
+DEST=$(SBCL_PWD)/obj/sbcl-home/contrib/
+FASL=$(DEST)/$(SYSTEM).fasl
+ASD=$(DEST)/$(SYSTEM).asd
 
 ifeq (SunOS,$(UNAME))
   EXTRA_CFLAGS=-D_XOPEN_SOURCE=500 -D__EXTENSIONS__
@@ -16,26 +17,33 @@ endif
 ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
   EXTRA_CFLAGS=-mno-cygwin
   # GCC 4.x doesn't accept -mno-cygwin.
-  CC:=gcc=3
+  CC:=gcc-3
   # SBCL can't read cygwin symlinks, and cygwin likes to symlink
   # gcc.  To further complicate things, SBCL can't handle cygwin
   # paths, either.
   CC:=$(shell cygpath -m $(shell readlink -fn $(shell which $(CC))))
 endif
+ifeq (Linux,$(UNAME))
+  EXTRA_CFLAGS=-D_GNU_SOURCE
+endif
 
 export CC SBCL EXTRA_CFLAGS EXTRA_LDFLAGS
 
-all: $(EXTRA_ALL_TARGETS)
+all: $(FASL) $(ASD) $(EXTRA_ALL_TARGETS)
+
+$(FASL)::
        $(MAKE) -C ../asdf
-       $(SBCL) --eval '(defvar *system* "$(SYSTEM)")' --load ../asdf-stub.lisp --eval '(quit)'
+       $(SBCL) --load ../asdf-stub.lisp \
+               --eval '(asdf::build-asdf-contrib "$(SYSTEM)")'
+
+$(ASD)::
+       echo "(defsystem :$(SYSTEM) :class require-system)" > $@
 
-test: all
-       echo "(asdf:operate (quote asdf:load-op) :$(SYSTEM))" \
-            "(asdf:operate (quote asdf:test-op) :$(SYSTEM))" | \
-         $(SBCL) --eval '(load "../asdf/asdf")'
+test: $(FASL) $(ASD)
+       $(SBCL) --load ../asdf-stub.lisp \
+               --eval '(asdf::test-asdf-contrib "$(SYSTEM)")'
 
 # KLUDGE: There seems to be no portable way to tell tar to not to
 # preserve owner, so chown after installing for the current user.
 install: $(EXTRA_INSTALL_TARGETS)
-       tar cf - . | ( cd "$(BUILD_ROOT)$(INSTALL_DIR)" && tar xpvf - )
-       find "$(BUILD_ROOT)$(INSTALL_DIR)" -exec chown `id -u`:`id -g` {} \;
+       cp $(FASL) $(ASD) "$(BUILD_ROOT)$(INSTALL_DIR)"