| 1 |
* BUILDING EMACS ON MAC OS Classic AND MAC OS X -*- outline -*- |
|---|
| 2 |
|
|---|
| 3 |
Copyright (C) 2001, 2002, 2003, 2004, 2005, |
|---|
| 4 |
2006, 2007, 2008 Free Software Foundation, Inc. |
|---|
| 5 |
See the end of the file for license conditions. |
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
* BUILDING EMACS ON MAC OS X |
|---|
| 9 |
|
|---|
| 10 |
You should be able to build Emacs on Mac OS X by typing the following |
|---|
| 11 |
commands at the top-level directory after the source distribution is |
|---|
| 12 |
un-tarred. |
|---|
| 13 |
|
|---|
| 14 |
./configure --enable-carbon-app |
|---|
| 15 |
make |
|---|
| 16 |
make install |
|---|
| 17 |
|
|---|
| 18 |
The last step may fail if you do not have permissions to install. If |
|---|
| 19 |
you try to install into /usr (with ./configure --prefix=/usr), then you |
|---|
| 20 |
must install as root using the sudo command. However, it is not |
|---|
| 21 |
recommended; see the notes section below for more details. |
|---|
| 22 |
|
|---|
| 23 |
The --enable-carbon-app specifies that the Carbon GUI application |
|---|
| 24 |
should be installed into /Applications. If you want it to install in |
|---|
| 25 |
a different location, specify --enable-carbon-app=<mydir> |
|---|
| 26 |
|
|---|
| 27 |
You can type `make bootstrap' instead of `make' to rebuild everything, |
|---|
| 28 |
including byte-compiling the Lisp files. |
|---|
| 29 |
|
|---|
| 30 |
If you are compiling on Mac OS X versions before 10.2 and have not |
|---|
| 31 |
installed the GNU texinfo package on your system, the build will |
|---|
| 32 |
complain that makeinfo cannot be found. Instructions for installing the |
|---|
| 33 |
GNU texinfo package are given below. Alternatively, you can type `make |
|---|
| 34 |
-k' instead of `make' and safely ignore the error messages and use the |
|---|
| 35 |
existing info files. |
|---|
| 36 |
|
|---|
| 37 |
After Emacs is installed, you can run a text-only terminal version by |
|---|
| 38 |
typing `emacs' from a terminal (make sure your path contains |
|---|
| 39 |
/usr/local/bin) or a GUI application by double-clicking on |
|---|
| 40 |
/Applications/Emacs.app in the Finder. Even in the terminal version, |
|---|
| 41 |
some Carbon-specific functions such as `mac-set-file-creator' are |
|---|
| 42 |
still meaningful. |
|---|
| 43 |
|
|---|
| 44 |
To start Emacs as a GUI application from the terminal, the pathname to |
|---|
| 45 |
the executable in the bundle, i.e., |
|---|
| 46 |
|
|---|
| 47 |
/Applications/Emacs.app/Contents/MacOS/Emacs |
|---|
| 48 |
|
|---|
| 49 |
must be typed to the shell to enable Emacs to locate its resources |
|---|
| 50 |
correctly. You may want to create an alias to this path to quickly |
|---|
| 51 |
access both the terminal and GUI versions. You can specify some |
|---|
| 52 |
standard Emacs options when invoking Emacs in this way. |
|---|
| 53 |
|
|---|
| 54 |
Emacs on Mac OS X is not configured to use X11 unless either it is |
|---|
| 55 |
requested or the use of Carbon is disabled explicitly. So, if you are |
|---|
| 56 |
building Emacs to run on X Window System, you need to specify like: |
|---|
| 57 |
|
|---|
| 58 |
./configure --with-x |
|---|
| 59 |
|
|---|
| 60 |
Note that the Carbon-specific functions mentioned above are not |
|---|
| 61 |
available on the X11-enabled build. |
|---|
| 62 |
|
|---|
| 63 |
To use colors in Terminal.app on Mac OS X 10.1, put the following |
|---|
| 64 |
lines in the file ~/.termcap and log in again. |
|---|
| 65 |
|
|---|
| 66 |
----- |
|---|
| 67 |
# added ANSI color |
|---|
| 68 |
vt100|vt100-am|vt100am|dec vt100:\ |
|---|
| 69 |
:pa#64:Co#8:Sf=\E[3%dm:Sb=\E[4%dm:op=\E[m:AF=\E[3%dm:AB=\E[4%dm:\ |
|---|
| 70 |
:do=^J:co#80:li#24:cl=\E[;H\E[2J:sf=2*\ED:\ |
|---|
| 71 |
:le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\ |
|---|
| 72 |
:ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\ |
|---|
| 73 |
:md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:\ |
|---|
| 74 |
:rf=/usr/share/tabset/vt100:\ |
|---|
| 75 |
:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[;r\E[0m\E(B\E)B\E[2J:\ |
|---|
| 76 |
:ks=\E[?1h\E=:ke=\E[?1l\E>:\ |
|---|
| 77 |
:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\ |
|---|
| 78 |
:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:pt:sr=2*\EM:vt#3:xn:\ |
|---|
| 79 |
:sc=\E7:rc=\E8:cs=\E[%i%d;%dr: |
|---|
| 80 |
----- |
|---|
| 81 |
|
|---|
| 82 |
To build the `info' files in versions prior to Mac OS X 10.2, you need |
|---|
| 83 |
to install the texinfo software. |
|---|
| 84 |
|
|---|
| 85 |
To install from source, obtain texinfo-4.2.tar.gz from ftp.gnu.org or |
|---|
| 86 |
a mirror. Un-tar it, enter its directory and type |
|---|
| 87 |
|
|---|
| 88 |
./configure |
|---|
| 89 |
make |
|---|
| 90 |
make install |
|---|
| 91 |
|
|---|
| 92 |
The last step may need to be performed as root (sudo make install). |
|---|
| 93 |
|
|---|
| 94 |
You may also like to install ispell, which will allow you to use |
|---|
| 95 |
ispell and flyspell-mode. To install ispell from source, you first |
|---|
| 96 |
need to install GNU textutils. |
|---|
| 97 |
|
|---|
| 98 |
To do so, download textutils-2.0.tar.gz from ftp.gnu.org or a mirror. |
|---|
| 99 |
Un-tar it, enter its directory, type |
|---|
| 100 |
|
|---|
| 101 |
./configure --host=powerpc-apple-bsd |
|---|
| 102 |
make |
|---|
| 103 |
make install |
|---|
| 104 |
|
|---|
| 105 |
Again, the last step may need to be performed as root. Note that if you |
|---|
| 106 |
run `make check', the test for `pr' will fail. |
|---|
| 107 |
|
|---|
| 108 |
Get and un-tar ispell-3.2.06.tar.gz. Look for it here: |
|---|
| 109 |
|
|---|
| 110 |
http://fmg-www.cs.ucla.edu/geoff/ispell.html |
|---|
| 111 |
|
|---|
| 112 |
Go into its directory, type |
|---|
| 113 |
|
|---|
| 114 |
cp local.h.samp local.h |
|---|
| 115 |
|
|---|
| 116 |
Add a line `#define TERMLIB ""' to the end of local.h. |
|---|
| 117 |
|
|---|
| 118 |
Set the environment variable TMPDIR to an existing directory. For |
|---|
| 119 |
example since `/tmp' exists on my machine and I am using `bash', I |
|---|
| 120 |
typed |
|---|
| 121 |
|
|---|
| 122 |
export TMPDIR=/tmp |
|---|
| 123 |
|
|---|
| 124 |
Run `make' and `make install', the latter as root. |
|---|
| 125 |
|
|---|
| 126 |
* BUILDING BINARY DISTRIBUTIONS FOR MAC OS X |
|---|
| 127 |
|
|---|
| 128 |
If you are intending to build a binary distribution of Emacs, there is |
|---|
| 129 |
a script that will greatly simplify the process. It is called |
|---|
| 130 |
make-package and it is contained in this directory. It will generate |
|---|
| 131 |
a disc image containing a installer bundle. By default the installer |
|---|
| 132 |
will place the emacs common files in /usr/local/* and the Carbon |
|---|
| 133 |
application in /Applications. Typical usage would be |
|---|
| 134 |
|
|---|
| 135 |
./make-package |
|---|
| 136 |
|
|---|
| 137 |
After running, an compressed disk image of the installer will be placed |
|---|
| 138 |
in a file called EmacsInstaller.dmg. This file can be then distributed |
|---|
| 139 |
to whomever would like a binary distribution. Here are the common |
|---|
| 140 |
options to user |
|---|
| 141 |
|
|---|
| 142 |
--with-x - Use the X11 GUI instead of the Carbon GUI. |
|---|
| 143 |
--prefix=DIR - Place the common emacs files in the given DIR. The |
|---|
| 144 |
default is /usr/local. See note below if placing |
|---|
| 145 |
in /usr |
|---|
| 146 |
--self-contained - Place the common emacs files inside the Emacs.app |
|---|
| 147 |
itself. This makes the application trivial to |
|---|
| 148 |
uninstall and copy between computers. |
|---|
| 149 |
--app-symlink - Use a symlink inside the Application to the |
|---|
| 150 |
$prefix/bin/emacs to reduce disk space. Note, this |
|---|
| 151 |
option may removed in the future. |
|---|
| 152 |
|
|---|
| 153 |
|
|---|
| 154 |
For usage of other options, use the --help option. |
|---|
| 155 |
|
|---|
| 156 |
Note: due to the problem "Installing to a directory with non-ASCII |
|---|
| 157 |
characters in the name fails" mentioned in etc/PROBLEMS, you may not |
|---|
| 158 |
move a self-contained Emacs.app application bundle to a non-ASCII |
|---|
| 159 |
directory. |
|---|
| 160 |
|
|---|
| 161 |
* BUILDING EMACS ON MAC OS Classic |
|---|
| 162 |
|
|---|
| 163 |
You can use MPW-GM (Aug. 2001) to build Emacs. MPW-GM can be |
|---|
| 164 |
downloaded free of charge from Apple. |
|---|
| 165 |
|
|---|
| 166 |
### IMPORTANT ### You can use StuffIt Expander to decompress and untar |
|---|
| 167 |
the distribution. However, you *must* set the radio button in the |
|---|
| 168 |
Preferences->Cross Platform->Convert text files to Macintosh format to |
|---|
| 169 |
"Never". Otherwise the compiled Lisp files will be corrupted. |
|---|
| 170 |
|
|---|
| 171 |
(Optional) A subset of the fonts from the GNU intlfonts-1.2 |
|---|
| 172 |
distribution converted to NFNT format can be obtained from |
|---|
| 173 |
|
|---|
| 174 |
http://members.shaw.ca/akochoi-emacs/stories/Resources/GNU-Fonts.smi.bin |
|---|
| 175 |
|
|---|
| 176 |
To build Emacs in the MPW Shell, simply set the directory to |
|---|
| 177 |
...:emacs:mac: and build the target Emacs of the make file |
|---|
| 178 |
makefile.MPW. I.e., execute the commands |
|---|
| 179 |
|
|---|
| 180 |
make Emacs -f makefile.MPW > Emacs.MakeScript |
|---|
| 181 |
Emacs.MakeScript |
|---|
| 182 |
|
|---|
| 183 |
The above commands create an executable that uses the Carbon API. |
|---|
| 184 |
The non-Carbon version can also be created by replacing all the |
|---|
| 185 |
occurrences of `Emacs' above with `NonCarbon'. Not that the |
|---|
| 186 |
non-Carbon version does not support some features such as file |
|---|
| 187 |
dialogs, drag-and-drop, and Unicode menus. |
|---|
| 188 |
|
|---|
| 189 |
Once built, the Emacs application (Emacs MPW) can be launched where it |
|---|
| 190 |
is created. |
|---|
| 191 |
|
|---|
| 192 |
* NOTES |
|---|
| 193 |
|
|---|
| 194 |
Emacs should build and run on a PowerMac running Mac OS 8.6 - 9.2 (but |
|---|
| 195 |
only tested on 9.2.2), and Mac OS X 10.1 - 10.5. |
|---|
| 196 |
|
|---|
| 197 |
You will need around 100 MB of disk space for the source files and |
|---|
| 198 |
intermediate files. |
|---|
| 199 |
|
|---|
| 200 |
Under Mac OS Classic, there is no support for building the LEIM |
|---|
| 201 |
directory. However, it can be built on Mac OS X or another platform |
|---|
| 202 |
and transferred to the Mac. |
|---|
| 203 |
|
|---|
| 204 |
On Mac OS X, installing the emacs files in /usr can cause issues with |
|---|
| 205 |
system software updates possibly overwriting the distribution. If this |
|---|
| 206 |
is a concern, as it should be in normal binary distributions, please |
|---|
| 207 |
use /usr/local as the prefix for installation. |
|---|
| 208 |
|
|---|
| 209 |
Emacs supports both PowerPC and Intel-based Macintoshes. However, |
|---|
| 210 |
due to the unexec process that Emacs uses to dump core, it is not |
|---|
| 211 |
possible at this time to generate a universal binary that supports both |
|---|
| 212 |
architectures. In addition, Rosetta doesn't appear to work correctly |
|---|
| 213 |
with PowerPC builds of Emacs; you will have to recompile for Intel. |
|---|
| 214 |
Therefore, builds of Emacs are architecture specific. |
|---|
| 215 |
|
|---|
| 216 |
Enjoy! |
|---|
| 217 |
|
|---|
| 218 |
|
|---|
| 219 |
This file is part of GNU Emacs. |
|---|
| 220 |
|
|---|
| 221 |
GNU Emacs is free software; you can redistribute it and/or modify |
|---|
| 222 |
it under the terms of the GNU General Public License as published by |
|---|
| 223 |
the Free Software Foundation; either version 3, or (at your option) |
|---|
| 224 |
any later version. |
|---|
| 225 |
|
|---|
| 226 |
GNU Emacs is distributed in the hope that it will be useful, |
|---|
| 227 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 228 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 229 |
GNU General Public License for more details. |
|---|
| 230 |
|
|---|
| 231 |
You should have received a copy of the GNU General Public License |
|---|
| 232 |
along with GNU Emacs; see the file COPYING. If not, write to the |
|---|
| 233 |
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
|---|
| 234 |
Boston, MA 02110-1301, USA. |
|---|