Chapter 13. Platform-Specific Considerations

In this chapter, we describe installing Emacs on Unix, Mac OS X, and Windows as well as some of the subtleties of running Emacs on the latter two platforms.

Emacs 21 runs on free Unix systems including Linux and BSD variants as well as on commercial Unix versions such as AIX, Solaris, SunOS,` and Ultrix. It runs on Mac OS X (currently a separate fork, but due to be folded into the main distribution starting with 21.4). It runs on Windows and even on MS-DOS. You can still get ports for Mac OS 8/9 and Amiga (to name only a few). Emacs is truly a multiplatform editor.

We cover installing Emacs on Unix, Mac OS X, and Windows. For Windows and Mac OS X, prebuilt binaries are available. You may want to build Emacs from source in order to obtain the latest version. However, we have found up-to-date binaries online for Windows and Mac OS X; you just have to scout around on the Net to find them. By the time you read this, the sources for the binaries that we cite may be out of date. Check out this book's web site for updated links in that case (http://www.oreilly.com/catalog/gnu3).

A related issue is where to get Emacs. The Free Software Foundation (FSF) is the official source for Emacs, but like most software organizations, official releases are few and far between. Often, building Emacs from CVS sources is the best way to get a leading-edge version. Only you can decide whether you would rather have the latest features—along with some bugs—or download the tried-and-true version from the FSF's site.

Emacs was originally built on a Unix system and continues to run on the multitude of Unix variants out there. We're going to download the latest source and show you how to build Emacs from scratch. It's not really that hard and it has the salutary effect of keeping you up-to-date with future releases.

As we mentioned earlier, you can also use CVS to pull the source files. The big advantage with CVS is that you get the absolute latest version.

You'll see thousands of filenames flying by. If you have a slow network connection, this process could take a while. Hang in there, though—you're on your way to building the absolute latest version of 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 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.[1] 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.


  6. If you see the Emacs splash screen,[2] 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!



[1] 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.

[2] 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.