April 27, 2006

Installing GNU Emacs 23 from CVS

Posted in Emacs at 20:25 by theBlackDragon

Emacs 23 is the current alpha version of GNU Emacs, the most important or at least notable feature of this upcoming version is the unicode support.

Exactly how alpha this version is can easily be deduced if you realise that the current stable Emacs version is 21.4 and that 22.0.50 is the current development version, so expect things to break, even though I haven't experienced any major breakage yet.

So let's get to installing this thing, first you'll need to checkout the code from CVS, figuring out which branch the 23 version is in was probably the hardest part, finding the correct command line switches to CVS in the CVS manpage must have been the second hardest (hey, I'm an avid Subversion user) 😉

I keep my source packages in ~/tmp/src, which I'll use in this example too, just replace this folder with whatever you use. From that directory execute this command:

$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs

This then pulls in the latest Emacs 23 (or as the branch is called emacs-unicode-2, I still wonder why they changed that instead of staying with emacs-unicode) from CVS in a new directory named emacs.

After this has finished (might take a while depending on your connection speed) you have to execute a small variation on the typal configure && make && make install routine as outlined in the INSTALL.CVS file.

There are three options you'll probably want to pass to configure, being –with-gtk, –prefix and –suffix, the first for enabling GTK2 support the second to keep it out of your filesystem structure, and theh last one to add a unique suffix to the binaries, so you can add them to you $PATH without them conflicting with already installed Emacsen.

I installed Emacs 23 in my homedirectory in a folder named local with a suffix of ".emacs-23.0.0" and GTK2 enabled

$ ./configure --prefix=/home/theBlackDragon/local --program-suffix=.emacs-23.0.0 --with-gtk

After configure has done it's job you need to run make bootstrap, this can take quite some time, but fortunately you don't need to do this every time you update the sources from CVS.

make bootstrap

Now you just need to follow the "regular" steps:

$ cd lisp
$ make recompile EMACS=../src/emacs
$ cd ..
$ make install

To update Emacs afterwards you'd use:

$ cvs update
$ ./configure --prefix=/home/theBlackDragon/local --program-suffix=.emacs-23.0.0 --with-gtk
$ make
$ cd lisp
$ make recompile EMACS=../src/emacs
$ cd ..
$ make install

When this finishes succesfully you'll have Emacs 23 Alpha installed and you can start poking around. If this doesn't finish succesfully you'll either have to fix it yourself or wait a day and do a CVS update in the hopes that your problem will have been fixed.
Emacs 23 freshly built from CVS

Little disclaimer: this is how I istalled it, there might be some inaccuracies in here, should you find some, please let me know. I do hope you found this article useful in any case 🙂

April 26, 2006

JDEE installation guide bit me again

Posted in Emacs at 16:46 by theBlackDragon

When I last tried to get the JDEE running on Windows with GNU Emacs 22 I was stung by the old inaccuracy in the installaiton guide concerning the installation of the cedet.

The guide suggests you add the different needed parts of the cedet separately by doing this:

(add-to-list 'load-path (expand-file-name "~/emacs/site/jde/lisp"))
(add-to-list 'load-path (expand-file-name "~/emacs/site/cedet/common"))
(load-file (expand-file-name "~/emacs/site/cedet/common/cedet.el"))
(add-to-list 'load-path (expand-file-name "~/emacs/site/elib"))

This kept on giving me errors and after trying various versions of the cedet libraries it dawned on me that it might just be possible to load the cedet as a whole, which it was. I did it like this:

(add-to-list 'load-path (expand-file-name "C:/elisp/cedet-1.0pre3/common"))
(require 'cedet)

It now works like a charm and I thought I might as well share it, maybe you'll get hit by the same problem one day (or I'll forget about it again 😉 ).

For completeness sake, this is the full code in my .emacs for loading the JDE on Windows (it's the same for other OSs, just substitute the correct paths):

;;; JDEE
(add-to-list 'load-path (expand-file-name "C:/elisp/elib-1.0/"))
(add-to-list 'load-path (expand-file-name "C:/elisp/cedet-1.0pre3/common"))
(add-to-list 'load-path (expand-file-name "C:/elisp/jde-"))
(require 'cedet)

;; (require 'jde)
(setq defer-loading-jde t)

(if defer-loading-jde
      (autoload 'jde-mode "jde" "JDE mode." t)
      (setq auto-mode-alist
         '((".java'" . jde-mode))

(require 'jde))