On 07/09/11 08:47, Aidan Gauland wrote:
...
> I tried that patch and was not even able to build Stump.
...
> $ make
> MAKE=: clisp-link add "`clisp -b`/base" clisp-core "`clisp -b`/clx/new-clx"
> /usr/bin/clisp-link: Cannot determine the dynamic module directory: 
> *lib-directory* is not writable and *user-lib-directory* is not specified
> make: *** [clisp-core] Error 1
> 
> I have the following clisp packages installed.
> $ dpkg -l '*clisp*' | grep \^ii
> ii  clisp                                    1:2.49-7                       
> GNU CLISP, a Common Lisp implementation
> ii  clisp-dev                                1:2.49-7                       
> GNU CLISP, a Common Lisp implementation (development files)
> ii  clisp-module-clx                         1:2.49-7                       
> clisp module that adds X11 bindings
> 
> I should probably restate that I am on Debian squeeze, but the clisp
> packages are pulled in from wheezy.
> 
> Regards,
> Aidan Gauland

This seems to be a permission problem which can be avoided
by preventing clisp-link from writing into the lib directory.
I hadn't noticed this problem before because in my test
installation the lib directory was writeable.

Could you please give the attached new version of the patch
a try?

--
Dirk
diff --git a/Makefile.in b/Makefile.in
index c7512d7..2157952 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=: with_dynamic_modules=no @LISP_LINK@ add "`$(LISP) -b`/base" $@ "`$(LISP) -b`/clx/new-clx"
+
 # End of file
diff --git a/configure.ac b/configure.ac
index 5c65917..2a286b5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,6 +6,8 @@ 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_LINK)
 AC_SUBST(LISP)
 AC_SUBST(PPCRE_PATH)
 
@@ -105,6 +107,17 @@ 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_LINK="$LISP_PROGRAM-link"
+      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