c646b9df0c07a77c2613ad2777df98707b07e4b3
[sbcl.git] / contrib / asdf-module.mk
1 CC=gcc
2
3 # Need to set CFLAGS and LDFLAGS here. sb-posix, sb-grovel, and
4 # sb-bsd-sockets depends upon these being set on x86_64. Setting these
5 # in their Makefile's is not adequate since their asd files are
6 # invoked when loaded from other modules which don't require these
7 # environmental values in their Makefile's.
8
9 UNAME:=$(shell uname -m)
10 export CFLAGS=-fPIC
11 ifeq (solaris,$(UNAME))
12   export LDFLAGS=-shared -lresolv -lsocket -lnsl
13 else
14   ifeq (Darwin,$(UNAME))
15     export LDFLAGS=-bundle
16   else
17     ifeq (x86_64,$(UNAME))
18       export LDFLAGS=-m32 -shared
19       export CFLAGS+= -m32
20     else
21       export LDFLAGS=-shared
22     endif
23   endif
24 endif
25
26 export CC SBCL CFLAGS LDFLAGS
27
28 all: $(EXTRA_ALL_TARGETS)
29         $(MAKE) -C ../asdf
30         $(SBCL) --eval '(load "../asdf/asdf")' \
31           --eval "(setf asdf::*central-registry* '((MERGE-PATHNAMES \"systems/\" (TRUENAME (SB-EXT:POSIX-GETENV \"SBCL_HOME\")))))" \
32           --eval "(push :sb-building-contrib *features*)" \
33           --eval "(asdf:operate 'asdf:load-op :$(SYSTEM))" \
34           --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\"))" \
35           --eval "(quit)"
36
37 test: all
38         echo "(asdf:operate (quote asdf:load-op) :$(SYSTEM))" \
39              "(asdf:operate (quote asdf:test-op) :$(SYSTEM))" | \
40           $(SBCL) --eval '(load "../asdf/asdf")'
41
42
43 install: $(EXTRA_INSTALL_TARGETS)
44         tar cf - . | ( cd $(BUILD_ROOT)$(INSTALL_DIR) && tar xpvf - )
45         ( cd  $(BUILD_ROOT)$(SBCL_HOME)/systems && ln -fs ../$(SYSTEM)/$(SYSTEM).asd . )