On 07/04/11 08:23, Ben Spencer wrote:
> On Mon, Jul 04, 2011 at 12:10:19AM +0200, Dirk Sondermann wrote:
>> As a more convenient alternative, you may apply the patch posted by
>> Ben Spencer on March 22 on this list. Since make-image.lisp.in has
>> changed in the meantime, I've attached an updated version of that
>> patch.
> 
> Unfortunately this makes it build but the resulting binary doesn't work:
> 
> ben@arctor:~/src/stumpwm$ ./stumpwm
> module 'syscalls' requires package OS.

I've combined your patch with the creation of a temporary linking
set using clisp-link. The resulting binary now actually works.

For building stumpwm on Debian wheezy with this patch, in addition
to the packages clisp and clisp-module-clx also clisp-dev has to
be installed.

--
Dirk

diff --git a/Makefile.in b/Makefile.in
index c7512d7..4d23b37 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,11 +1,11 @@
 LISP=@LISP_PROGRAM@
 
-clisp_BUILDOPTS=-K full -on-error exit ./make-image.lisp
+clisp_BUILDOPTS=-on-error exit ./make-image.lisp
 sbcl_BUILDOPTS=--load ./make-image.lisp
 ccl_BUILDOPTS=--load ./make-image.lisp
 ecl_BUILDOPTS=-norc -shell ./make-image.lisp
 
-clisp_INFOOPTS=-K full -on-error exit -x "(require 'asdf '(\"asdf.lisp\")) (load \"stumpwm.asd\") (load \"@PPCRE_PATH@/cl-ppcre.asd\") (asdf:operate 'asdf:load-op :stumpwm) (load (compile-file \"manual.lisp\")) (stumpwm::generate-manual) (ext:exit)"
+clisp_INFOOPTS=-on-error exit -x "(require 'asdf '(\"asdf.lisp\")) (load \"stumpwm.asd\") (load \"@PPCRE_PATH@/cl-ppcre.asd\") (asdf:operate 'asdf:load-op :stumpwm) (load (compile-file \"manual.lisp\")) (stumpwm::generate-manual) (ext:exit)"
 sbcl_INFOOPTS=--eval "(progn (require 'asdf) (require 'stumpwm) (load \"manual.lisp\"))" --eval "(progn (stumpwm::generate-manual) (sb-ext:quit))"
 ccl_INFOOPTS=--eval "(progn (require 'asdf) (require 'stumpwm))" --load manual.lisp --eval "(progn (stumpwm::generate-manual) (quit))"
 ecl_INFOOPTS=-eval "(progn (require 'asdf) (load \"@PPCRE_PATH@/cl-ppcre.asd\") (require 'stumpwm) (load \"manual.lisp\"))" -eval "(progn (stumpwm::generate-manual) (ext:quit))"
@@ -33,10 +33,10 @@ stumpwm.info: stumpwm.texi
 	makeinfo stumpwm.texi
 
 # FIXME: This rule is too hardcoded
-stumpwm.texi: stumpwm.texi.in
+stumpwm.texi: stumpwm.texi.in @LISP_CORE@
 	$(LISP) $(@LISP@_INFOOPTS)
 
-stumpwm: $(FILES)
+stumpwm: $(FILES) @LISP_CORE@
 	$(LISP) $(@LISP@_BUILDOPTS)
 
 release:
@@ -58,6 +58,7 @@ clean:
 	rm -f *.fasl *.fas *.lib *.*fsl
 	rm -f *.log *.fns *.fn *.aux *.cp *.ky *.log *.toc *.pg *.tp *.vr *.vrs
 	rm -f stumpwm stumpwm.texi stumpwm.info
+	rm -fr clisp-core/
 
 install: stumpwm.info stumpwm
 	test -z "$(destdir)$(bindir)" || mkdir -p "$(destdir)$(bindir)"
@@ -71,4 +72,7 @@ uninstall:
 	install-info --info-dir="$(destdir)$(infodir)" --remove "$(destdir)$(infodir)/stumpwm.info"
 	rm "$(destdir)$(infodir)/stumpwm.info"
 
+clisp-core:
+	MAKE=: clisp-link add "`clisp -b`/base" $@ "`clisp -b`/clx/new-clx"
+
 # End of file
diff --git a/configure.ac b/configure.ac
index 5c65917..bf122f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,6 +6,7 @@ AC_INIT(Stump Window Manager, 0.9.8-git, sabe...@gmail.com)
 
 AC_SUBST(CONTRIB_DIR)
 AC_SUBST(LISP_PROGRAM)
+AC_SUBST(LISP_CORE)
 AC_SUBST(LISP)
 AC_SUBST(PPCRE_PATH)
 
@@ -105,6 +106,16 @@ fi
 
 if test "$LISP" = "clisp"; then
    AC_CHECK_FILE([$PPCRE_PATH/cl-ppcre.asd],,AC_MSG_ERROR([Cannot find ppcre. When using clisp you must specify its location using --with-ppcre]))
+   AC_MSG_CHECKING([whether clisp is built with dynamic modules support])
+   result=$($LISP_PROGRAM -q -q -x '(nth-value 0 (find-symbol "DYNLOAD-MODULES" "SYS"))')
+   if test "x$result" = "xNIL"; then
+      AC_MSG_RESULT([no])
+      LISP_PROGRAM="$LISP_PROGRAM -K full"
+   else
+      AC_MSG_RESULT([yes])
+      LISP_CORE="clisp-core"
+      LISP_PROGRAM="$LISP_PROGRAM -K `pwd`/$LISP_CORE"
+   fi
 fi
 
 # XXX How to do an OR ?

_______________________________________________
Stumpwm-devel mailing list
Stumpwm-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/stumpwm-devel

Reply via email to