1 Copyright (C) 2008 Free Software Foundation, Inc.
2 See the end of the file for license conditions.
7 This file introduces the NeXTstep-based port of GNU Emacs, known as Emacs.app,
8 which runs on on many POSIX systems and possibly W32 using the GNUstep
9 libraries and on MacOS X systems using the Cocoa libraries. The directory
10 "nextstep" and its subdirectories "Cocoa" and "GNUstep" contain files
11 relevant to building and running on these systems.
13 Those primarily responsible for the port (in chronological order) were:
19 Christophe de Dinechin
22 See AUTHORS file and "Release History" below for more information.
24 GNU Emacs is due to Richard Stallman and company.
26 The GNUstep port was made possible through the assistance of Adam Fedor, Fred
27 Kiefer, M. Uli Klusterer, Alexander Malmberg, Jonas Matton, and Riccardo
30 Peter Dyballa assisted in a variety of ways to improve text rendering and
31 keyboard handling. Adam Ratcliffe documented the Preferences panel. David
32 M. Cooke contributed fixes to XPM handling. Carsten Bormann helped get dired
33 working for non-ASCII filenames.
40 GNUstep "Startup 0.13" or later
41 Tested on linux, should work on other systems, perhaps with minor build
48 Run "./compile" in this directory, which will create a self-contained
49 Emacs.app under 'build/'. This can be moved anywhere and run. To create a
50 shared-lisp build, do "sudo ./compile -shared <install_root>". Set
51 <install_root> to where the lisp will go, for example /usr/local to end up
52 with /usr/local/shared/emacs/...
54 See the script itself for further details, and customizations.
56 You can rerun configure and/or run 'make' manually in the top-level or src
57 directories to refresh nextstep/build/Emacs.app. (Or edit the "compile"
60 On OS X you can also open Cocoa/Emacs.xcodeproj and build it again there. (Note,
61 ZeroLink currently does not work with Emacs owing to the use of private_extern
62 in the code as well as some other, unidentifiable problem.) Before doing this
63 you must run 'compile' once as outlined above, to set up the lisp resources.
65 On GNUstep, you CAN'T use ProjectCenter, since PC cannot work with files
66 outside of its project directory.
72 Please use the first entry under the help menu within Emacs.app, do
79 Internally to emacs, the port and its code are referred to using the term
80 "NeXTstep", despite the fact that no system or API has been released under
81 this name in more than 10 years. Here's some background on why..
83 NeXT, Inc. introduced the NeXTstep API with its computer and operating system
84 in the late 1980's. Later on in collaboration with Sun, this API was
85 published as a specification called OpenStep. The GNUstep project started in
86 the early 1990's to provide a free implementation of this API. Later on,
87 Apple bought NeXT (some would say "NeXT bought Apple") and made OpenStep the
88 basis of OS X, calling the API "Cocoa". Since then, Cocoa has evolved beyond
89 the OpenStep specification, and GNUstep has followed it.
91 Thus, calling this port "OpenStep" is not technically accurate, and in the
92 absence of any other determinant, we are using the term "NeXTstep", both
93 because it signifies the original inspiration that created these APIs, and
94 because all of the classes and functions still begin with the letters "NS".
96 (See http://en.wikipedia.org/wiki/Nextstep)
98 This Emacs port was first released in the early 1990's on the NeXT computer,
99 and was successively updated to OpenStep, Rhapsody, OS X, and then finally
100 GNUstep, tracking GNU emacs core releases in the meantime.
103 Files specific to the port
104 --------------------------
115 lisp/ns-carbon-compat.el
117 lib-src/mac-fix-env.m
118 doc/emacs/ns-emacs.texi
123 Files modified for port:
125 many -- look for HAVE_NS / NS_IMPL_... #ifdefs
131 1990-1992 1.0-3.0 (?) Michael Brouwer's socket/terminal communication
132 based version (GUI ran as a separate process.)
134 1993/10/25 3.0.1 Last (?) release of Brouwer version. Supports
135 NeXTstep 3.x and below.
137 1994/04/24 4.0 Carl Edman's version using direct API following
138 the X-Windows port. NeXTstep 3.x only.
140 1995/06/15 4.1 Second (and last) Carl Edman release, based on
143 1996/07/28 4.2 First Christian Limpach release, based on
148 1997/12/?? 6.0b1 Ported to OpenStep by Scott Bender. Updated
151 ?? 6.0b2 (?) Scott Bender: ported to Rhapsody.
153 1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3.
155 2001/06/25 7.0 Ported to MacOS X (10.1) by Christophe de
156 Dinechin. Release based on Emacs 20.7. Hosting
157 moved to SourceForge.
159 2002/01/03 7.0.1 Bug fixes.
161 2002/08/27 7.0.2 Jaguar (OS X 10.2) support. Added an autoconf
162 option for sys_nerr being in stdio. Added
163 libncurses to the build libraries. Fixed a
164 problem with ns-alternate-is-meta. Changed the
165 icon color to blue, since Jaguar is yellow.
167 2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert.
169 2004/11/04 8.0-pre2 Restored functionality on OS X (menu code
170 cleanup). Improved scrollbar handling and
171 paste from other applications. File icons
172 obtained properly from NSWorkspace. Dropped
173 Gorm and Nib files. Background refresh bug
174 fixed (in GNUstep). Various small fixes and
175 code cleanups. Now starts up under Art.
177 2005/01/27 8.0-pre3 Bold and italic faces supported. Cursor and
178 mouse highlighting rendering bugs
179 fixed. Drag/drop and cut/paste interaction
180 w/external apps fixed. File load/save panels
181 available. Stability and rendering speed
182 improvements. Some ObjC and VC mode bugs fixed.
184 2005/02/27 8.0-rc1 Dynamic path detection at startup so Emacs.app
185 can be moved anywhere. Added binary packages
186 and simplified source installation to running
187 two scripts. Thorough cleanup of menu code;
188 now fully functional. Fixed all detected
189 memory leaks. Minor frame focus and title
192 2005/03/30 8.0-rc2 "Configure" info directory now uses dynamic
193 path setting, so info files can go under .app.
194 Improved select() handling and PTY fixes so
195 shell mode and tramp run smoothly.
196 Significant rendering optimizations under
197 GNUstep, and now works under Art backend.
198 Non-Latin text rendering works (but not
199 fontsets), and LEIM is bundled. UTF8 is used
200 for clipboard interaction.
201 Arrow cursor now used on scrollbar.
202 objc-mode and tramp now bundled in site-lisp.
204 2005/05/30 8.0-rc3 Fixed bug with parsing of "easymenu" menus.
205 Many problems with modes such as SLIME, MatLab,
206 and Planner go away. Improved scrollbar
207 handling and rendering speed. Color panel
208 and other bug fixes. mac-fix-env utility.
209 Font handling improvements (OS X 10.3, 10.4):
210 - heed 'GSFontAntiAlias' default
211 - heed system antialiasing threshold
212 - added 'UseQuickdrawSmoothing' default to
213 invoke less heavy antialiasing
215 2005/07/05 8.0-rc4 Added a Preferences panel. Cleaned up
216 rendering for synthetic italic fonts. Further
217 improved menu parsing. Use system highlight
218 color. Added previous- and next-mark history
219 navigation commmands bound to M-p,M-n.
220 Miscellaneous bug fixes.
222 2005/08/04 8.0-rc5 All internal string handling changed to UTF-8.
223 This means menu items, color and color list
224 names, and a few other things will now display
225 properly. It does NOT mean UTF-8 filenames
226 are displayed correctly in the minibuffer.
227 Also relating to UTF-8, contents of files
228 using this coding can now be displayed (though
229 not auto-recognized; add extensions to your
230 default coding alist). Limited mac-roman
231 support was also added (also sans recognition).
232 Certain characters are not displayed properly
233 due to a translation problem. (UTF-8 based on
234 work by Otfried Cheong; mac-roman from
235 emacs-21.) Partial support for "dead-key"
236 handling now added. Transparency (e.g., M-x
237 set-background-color ARGB88FFFFFF) improved:
238 only the background is made transparent.
239 Cursor drawing glitches fixed. Preferences
240 handling improved. Fixed some portability
241 problems on Tiger and Puma.
243 2005/09/12 8.0 Bundled ispell on OS X. Minor bug fixes and
244 stability improvements. Compiles under gcc-4.
246 2005/09/26 8.0.1 Correct clipped rendering for synthetic
247 italics. Include the info directory.
248 Fix grabenv. Bundle whitespace package.
250 2005/10/27 8.0.2 Correct rendering for wide characters during
251 cursor movement. Fix bungled hack in ispell
254 2005/11/05 9.0-pre1 Updated to latest Emacs CVS code on unicode-2
255 branch (proposed to be released 2006/2007 as
258 2005/11/11 9.0-pre2 Fix crashes for deiconifying and loading
259 certain images. Improve vertical font metrics
260 (fixes inaccurate page up/down, window size,
261 and partial lines). Support better remapping
262 of Alt/Opt and remapping of Command. More
263 insistent defaulting of scrollbar to right.
264 Modest improvements to build process.
266 2006/04/22 9.0-pre2a Stopgap interim release to sync w/latest
267 unicode-2 CVS. Includes XPM and partial
270 2006/06/08 9.0-pre3 Major upgrade to keyboard handling:
271 system-selected compositional input methods
272 should now work, as well as more keys /
273 keyboards. XPM, toolbar, and tooltip support.
274 Some improvements to scrollbars, zoom, italic
275 rendering, pasting, Color panel. Added function
276 ns-set-background-alpha to work around
277 inability to customize with numeric colors.
279 2006/12/24 9.0-rc1 Reworked font handling and text rendering to
280 use Kenichi Handa's new font back-end system.
281 Font sets are now supported and automatically
282 created when a font is selected. Added recent
283 X11 colors to Emacs.clr (remove
284 ~/Library/Colors/Emacs.clr to pick up). Added
285 ns-option-modifier, ns-control-modifier,
286 ns-function-modifier customization variables.
287 Update menus to Emacs 21+ conventions. Right
288 mouse button now generates mouse-3 events.
289 Various bug fixes and rendering improvements.
291 2007/09/10 9.0-rc2 Improve menubar, popup menu, and scrollbar
292 behavior, let accented char entry work in
293 isearch, follow system keymap for shortcut
294 keys, fix border and box drawing, remove
295 glitches in modeline drawing, support
296 overstrike for unavailable bold fonts, fix XPM
297 related crasher bugs. Incremental font
298 metrics caching and other performance
299 improvements. Shared-lisp builds now possible.
301 2007/09/20 9.0-rc2a Interim release. New features: composed
302 character display, colored fringe bitmaps,
303 colored relief drawing, dynamic resizing,
304 Bug fixes: popup menu position and selection,
305 font width calculation, face color adaptation
306 to background, submenu keyboard navigation.
307 NOT TESTED ON GNUSTEP.
309 2007/11/19 9.0-rc3 Integrated the multi-TTY functionality from
310 emacs core (however, mixed TTY and GUI
311 sessions are not working yet). Support 10.5.
312 Give site-lisp load precedence over lisp and
313 add a compile option to prefer an additional
314 directory, use miniaturized miniwindow images
315 in some cases, rename cursor types for
316 consistency w/other emacs terms, improved font
317 selection for symbol scripts.
318 Bug fixes: fringe and bitmap, frame deletion,
319 resizing, cursor blink, workspace open-file,
320 image backgrounds, toolbar item enablement,
321 context menu positioning.
323 2008/07/15 (none) Merge to GNU Emacs CVS trunk.
326 This file is part of GNU Emacs.
328 GNU Emacs is free software: you can redistribute it and/or modify
329 it under the terms of the GNU General Public License as published by
330 the Free Software Foundation, either version 3 of the License, or
331 (at your option) any later version.
333 GNU Emacs is distributed in the hope that it will be useful,
334 but WITHOUT ANY WARRANTY; without even the implied warranty of
335 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
336 GNU General Public License for more details.
338 You should have received a copy of the GNU General Public License
339 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.