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 setup—a wildly obsolete computer or operating system version, an unusual hardware/software combination, or unconventional system configuration—then 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; \
fi
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
/usr/local/install/emacs-21.3/lib-src/test-distrib.c
./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.
Figure 13-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!
13.2 Emacs and Mac OS X
As you may have picked up reading other parts of this book, we treat Mac OS X as a Unix variant for many tasks. We do that with good reason, of course. Mac OS X is based on Unix. For example, you could more or less follow the CVS and Unix build instructions in the previous sections and come away with a full installation of Emacs.[90] However, as you know, Mac OS X can be a little different in some ways; it doesn't have all the Unix utilities by default (see the section on installing Ispell for one example of this). This section covers installing Emacs on Mac OS X as well as other issues such as running Emacs from the command line, changing the location of your Meta key, and installing Ispell. And if you do want to build Emacs from scratch using CVS, we have a few notes on that, too.
13.2.1 "But I Already Have Emacs"
Mac OS X comes with a version of Emacs installed: 21.2.1 with Panther (10.3.2) and 21.1.1 with Jaguar (10.2.8). To start this version, use the Terminal application in your Utilities folder (which is inside the Applications folder) and just type emacs.
Figure 13-3 shows the built-in Emacs running in the Terminal application.
Figure 13-3. The Terminal-based Emacs built into Mac OS X
88
Depending on your system and its permissions, you may have to switch to the root user using su to install Emacs. In that case, you won't need to preface the final make command with sudo.
89
One of the authors was not able to see the splash screen, but the install worked fine nonetheless. We say forge ahead even if you don't see it.
90
We say "more or less" because at the time we went to press, you still needed to grab the source from a separate site. That difference should eventually disappear as well.