: Learning GNU Emacs, 3rd Edition

13.1.5 Building Emacs

13.1.5 Building Emacs

Unless you get a prebuilt version of Emacs that is right for your system, you will need to build and install the many executable components of Emacs from source code before you can use it. At this point, it doesn't matter how you got the source code (HTTP or CVS), you just need to compile it! Here is some information to get you started on this task.

Your source code has a top-level directory with a name like emacs-21.3. In this directory, you will find files called INSTALL and README. Examine README first; it contains useful general information as well as last-minute release notes that may be important for you to read before proceeding. Then read INSTALL, which gives step-by-step instructions for building Emacs. Even if you aren't a Unix expert, you should be able to follow these instructions. (For convenience, we provide a procedure you can follow later in this section.)

The FSF's standard installation procedure gets more comprehensive and bulletproof all the time. Still, the actual ease of building Emacs depends primarily on what combination of hardware and software you have. The FSF's installation script includes a program called configure that examines your system, figures out what hardware and software you are running, and configures Emacs accordingly.

configure is likely to guess correctly if you have a popular combination (such as a Sun SPARC CPU and a recent release of Solaris). If this is true, you should be able to build Emacs without lots of tweaking or technical expertise. However, if you have an unusual setupa wildly obsolete computer or operating system version, an unusual hardware/software combination, or unconventional system configurationthen you will have no choice but to tweak the software. That's beyond the scope of this book, but those README and INSTALL files that come with the source distribution are a great place to start when dealing with uncommon setups.

Here's a procedure for building Emacs that you can use as a guide:

1.Change to the directory where you uncompressed and unpacked Emacs. For example, if you placed it in the /usr/local/install directory:

$ cd /usr/local/install/emacs-21.3

2.Run the configure utility.[88] You should see quite a bit of output that shows what parts of the system the build script is looking for.

$ ./configure
creating cache ./config.cache
checking host system type... sparc-sun-solaris2.9
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether ln -s works... yes
checking how to run the C preprocessor... gcc -E

3.If configure is successful, you should see a handy summary message similar to the following:

Configured for `sparc-sun-solaris2.9'.
Where should the build process find the source code? /usr/local/install/emacs-21.3
What operating system and machine description files should Emacs use?
`s/sol2-5.h' and `m/sparc.h'
What compiler should emacs be built with? gcc -g -O2
Should Emacs use the GNU version of malloc?yes
Should Emacs use a relocating allocator for buffers?yes
Should Emacs use mmap(2) for buffer allocation?no
What window system should Emacs use?x11
What toolkit should Emacs use?LUCID
Where do we find X Windows header files?Standard dirs
Where do we find X Windows libraries?Standard dirs
Does Emacs use -lXaw3d?no
Does Emacs use -lXpm?yes
Does Emacs use -ljpeg?no
Does Emacs use -ltiff?no
Does Emacs use -lungif?no
Does Emacs use -lpng?no
Does Emacs use X toolkit scroll bars?no

If the configuration process fails for any reason, you'll want to go back and consult the INSTALL document. It has several tips and tricks for particular systems and situations.

4.If everything is properly configured, you can go ahead and compile Emacs with the make utility. This may take a while, so start it before you head out for lunch.

$ make
if [ ! -f /usr/local/install/emacs-21.3/lisp/abbrev.elc ]; then
make bootstrap;
cd lib-src; make all
CC='gcc' CFLAGS='-g -O2' CPPFLAGS=''
LDFLAGS='' MAKE='make'
gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/local/install/emacs-21.3/lib-src
-I/usr/local/install/emacs-21.3/lib-src/../src -g -O2 -o test-distrib
./test-distrib /usr/local/install/emacs-21.3/lib-src/testfile
gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/local/install/emacs-21.3/lib-src
-I/usr/local/install/emacs-21.3/lib-src/../src -g -O2 /usr/local/install/
emacs-21.3/lib-src/make-docfile.c -lsocket -lnsl -lkstat -o make-docfile

5.When that completes, the INSTALL document recommends testing your newly built Emacs with the following command:

$ src/emacs -q

Emacs should run and you should get an introduction screen similar to Figure 13-2.

Figure13-2.Emacs test after building on a Linux system

6.If you see the Emacs splash screen,[89] you're in good shape, so go ahead and install it:

$ sudo make install

or, if you su'd to root earlier, simply:

$ make install

You'll be prompted for your password. After the install completes, you should be all set to use Emacs. Congratulations!

: 0.427. /Cache: 3 / 0