I've applied Andrew Choi's patches and now I have two XEmacsen (21.5.18) running on my iBook, the "original" X version and a Carbon version.

They seem to perform roughly the same, with the X version using a little bit less of memory. I personally prefer the tool-bar icons of the X version and for some reason the Carbon version starts with a dark background by default.

So far I couldn't find a place where the Carbon XEmacs would integrate better with native Mac stuff than the X version: copy-paste works the same in both, drag-n-drop (which I don't need) doesn't work in either, the Fonts menu under Options is empty in both. Of course I can have Carbon XEmacs in my dock more easily.

Running Gnus I notice the first real differences, buttonizing of URLs or attachment placeholders doesn't seem to work in Carbon XEmacs, which is rather annoying.

And then I tried to write some code and compile it. Soon I get reminded of my ~/.Xmodmap or better why I have one. I still haven't found a way to disable dead-keys for Cocoa or Carbon apps - having to press space after C-x ` is annoying. Carbon XEmacs doesn't seem to recognize my German keyboard layout, which makes things worse.

For now I'm going to stick with the X version of XEmacs.

path: /en/Mac/XEmacs | #

As Fink would install an XEmacs version from the beta branch, using the latest beta release seemed like a good start (21.5.15). "./configure --with-mule" told me that I didn't have libpng and that it was highly recommended to install it.

libpng 1.2.5 worked more or less out-of-the-box, I only had to add a -dynamiclib option to LDFLAGS in makefile.macosx. I also had to manually create a symlink from libpng. to libpng.dylib to make -lpng work

OK, rerun configure for XEmacs and it finds the new library. Run make and wait 25 minutes. temacs has been compiled and links successfully, the emacs lisp files get compiled just fine, xemacs gets dumped and recompiles the lisp files, everything looks good until "ellcc" fails to create eldap.ell because of a bunch of undefined symbols.

After a lot of playing around I found that changing ELLCC_DLL_LDFLAGS from "-shared" (which isn't supported on MacOS X anyway) to "-flat_namespace -undefined suppress" in lib-src/ellcc.h created a working xemacs (at least at first glance). Unfortunately I haven't found any way to tell configure to create it, but there is an environment variable ELLDLLFLAGS that is supposed to override the setting.

So what I do now is

> ./configure --with-mule
> export ELLDLLFLAGS="-flat_namespace -undefined suppress"
> make
and it seems to work. The fonts are the ugliest things I've ever used, but that can be solved later.

path: /en/Mac/XEmacs | #