canna build failure caused by module name

Marcus Crestani crestani at informatik.uni-tuebingen.de
Fri Oct 7 12:20:02 EDT 2005


Stephen,

building the canna module of current CVS results in

../../lib-src/ellcc -Wall -Wno-switch -Wundef -Wsign-compare
-Wno-char-subscripts -Wpacked -Wunused-parameter -g   --mode=compile
--mod-output=canna-api_i.o -I../../src
-I/home/crestani/src/xemacs/xemacs-21.5/modules/canna/../../src -c
canna-api_i.c
canna-api_i.c:10: error: syntax error before '-' token
canna-api_i.c:20: error: syntax error before '-' token

and many other connected errors.

Your recent renaming of the canna module causes the error: one use of
MODNAME (defined in Makefile.in.in) is to generate C function
identifiers, therefore it must itself be a valid C identifier.  My
patch renames it from canna-api to canna_api, this fixes the build.

Index: modules/canna/Makefile.in.in
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/modules/canna/Makefile.in.in,v
retrieving revision 1.2
diff -u -r1.2 Makefile.in.in
--- modules/canna/Makefile.in.in	4 Oct 2005 17:51:32 -0000	1.2
+++ modules/canna/Makefile.in.in	7 Oct 2005 12:35:58 -0000
@@ -26,7 +26,7 @@
 ## source tree.
 
 ### Specialize this part for your module
-MODNAME=canna-api
+MODNAME=canna_api
 MODVER=0.5.0
 MODTITLE="Module wrapping Canna libraries for XEmacs"
 CFLAGS=@CFLAGS@


The change in the module name has also to be reflected in
canna-leim.el.  I also think that the path "canna/" has to be removed
from the require statement:

Index: lisp/mule/canna-leim.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/mule/canna-leim.el,v
retrieving revision 1.8
diff -u -r1.8 canna-leim.el
--- lisp/mule/canna-leim.el	4 Oct 2005 17:51:29 -0000	1.8
+++ lisp/mule/canna-leim.el	7 Oct 2005 14:38:06 -0000
@@ -45,7 +45,7 @@
 
 (defun canna-activate (&optional name)
   ;; XEmacs 21.5.10 and later have 3-argument require.
-  (unless (require 'CANNA "canna/canna-api" 'no-error)
+  (unless (require 'CANNA "canna_api" 'no-error)
     (error 'file-error
 	   "No Canna API support!? See M-x describe-installation & C-h v module-load-path."))
   (unless (require 'canna nil 'no-error)


Because canna_api.ell gets copied (with `make install') to
/usr/local/lib/xemacs-21.5-b22/i686-pc-linux/modules/canna_api.ell,
with no additional subdirectory.  Is this only a problem on my local
installation?  My module-load-path contains:
("/usr/local/lib/xemacs/site-modules/"
"/usr/local/lib/xemacs-21.5-b22/i686-pc-linux/modules/").

The above patches fix canna for me, but there are several ways to
approach the problems, and I really don't know what would be the best
way.  Thus, I didn't send this to -patches.  So, please consider this
mail more as a bugreport than as a fix.  Let me know, if you want me
to send my changes to -patches, though, I'd be happy to do this then.

-- 
Marcus




More information about the XEmacs-Beta mailing list