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