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