* Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles...
[bpt/emacs.git] / nextstep / README
1 Copyright (C) 2008, 2009 Free Software Foundation, Inc.
2 See the end of the file for license conditions.
3
4 This directory contains the files needed to build Emacs on
5 Nextstep-based platforms, including GNUstep and Mac OS X.
6
7 The Nextstep support code works on many POSIX systems (and possibly
8 W32) using the GNUstep libraries, and on MacOS X systems using the
9 Cocoa libraries.
10
11 See the INSTALL file in this directory for compilation instructions.
12
13 Those primarily responsible for the port were, in chronological order:
14 Michael Brouwer, Carl Edman, Christian Limpach, Scott Bender,
15 Christophe de Dinechin, and Adrian Robert.
16
17 Peter Dyballa assisted in a variety of ways to improve text rendering
18 and keyboard handling, Adam Ratcliffe documented the Preferences
19 panel, David M. Cooke contributed fixes to XPM handling, and Carsten
20 Bormann helped get dired working for non-ASCII filenames. People who
21 provided additional assistance include Adam Fedor, Fred Kiefer, M. Uli
22 Klusterer, Alexander Malmberg, Jonas Matton, and Riccardo Mottola.
23 See AUTHORS file and "Release History" below for more information.
24
25
26 Requirements
27 ------------
28 MacOS X 10.3 or later
29
30 - or -
31
32 GNUstep "Startup 0.13" or later
33 Tested on GNU/Linux, should work on other systems, perhaps with minor
34 build tweaking.
35
36
37 Background
38 ----------
39 Within Emacs, the port and its code are referred to using the term
40 "Nextstep", despite the fact that no system or API has been released
41 under this name in more than 10 years. Here's some background on why:
42
43 NeXT, Inc. introduced the NeXTstep API with its computer and operating
44 system in the late 1980's. Later on, in collaboration with Sun, this
45 API was published as a specification called OpenStep. The GNUstep
46 project started in the early 1990's to provide a free implementation
47 of this API. Later on, Apple bought NeXT (some would say "NeXT bought
48 Apple") and made OpenStep the basis of OS X, calling the API "Cocoa".
49 Since then, Cocoa has evolved beyond the OpenStep specification, and
50 GNUstep has followed it.
51
52 Thus, calling this port "OpenStep" is not technically accurate, and in
53 the absence of any other determinant, we are using the term
54 "Nextstep", both because it signifies the original inspiration that
55 created these APIs, and because all of the classes and functions still
56 begin with the letters "NS".
57
58 (See http://en.wikipedia.org/wiki/Nextstep)
59
60 This Emacs port was first released in the early 1990's on the NeXT
61 computer, and was successively updated to OpenStep, Rhapsody, OS X,
62 and then finally GNUstep, tracking GNU emacs core releases in the
63 meantime.
64
65
66 Release History
67 ---------------
68
69 1990-1992 1.0-3.0 (?) Michael Brouwer's socket/terminal communication
70 based version (GUI ran as a separate process.)
71
72 1993/10/25 3.0.1 Last (?) release of Brouwer version. Supports
73 NeXTstep 3.x and below.
74
75 1994/04/24 4.0 Carl Edman's version using direct API following
76 the X-Windows port. NeXTstep 3.x only.
77
78 1995/06/15 4.1 Second (and last) Carl Edman release, based on
79 Emacs 19.28.
80
81 1996/07/28 4.2 First Christian Limpach release, based on
82 Emacs 19.29.
83
84 ?? 5.0 ??
85
86 1997/12/?? 6.0b1 Ported to OpenStep by Scott Bender. Updated
87 to Emacs 20.2.
88
89 ?? 6.0b2 (?) Scott Bender: ported to Rhapsody.
90
91 1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3.
92
93 2001/06/25 7.0 Ported to MacOS X (10.1) by Christophe de
94 Dinechin. Release based on Emacs 20.7. Hosting
95 moved to SourceForge.
96
97 2002/01/03 7.0.1 Bug fixes.
98
99 2002/08/27 7.0.2 Jaguar (OS X 10.2) support. Added an autoconf
100 option for sys_nerr being in stdio. Added
101 libncurses to the build libraries. Fixed a
102 problem with ns-alternate-is-meta. Changed the
103 icon color to blue, since Jaguar is yellow.
104
105 2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert.
106
107 2004/11/04 8.0-pre2 Restored functionality on OS X (menu code
108 cleanup). Improved scrollbar handling and
109 paste from other applications. File icons
110 obtained properly from NSWorkspace. Dropped
111 Gorm and Nib files. Background refresh bug
112 fixed (in GNUstep). Various small fixes and
113 code cleanups. Now starts up under Art.
114
115 2005/01/27 8.0-pre3 Bold and italic faces supported. Cursor and
116 mouse highlighting rendering bugs
117 fixed. Drag/drop and cut/paste interaction
118 w/external apps fixed. File load/save panels
119 available. Stability and rendering speed
120 improvements. Some ObjC and VC mode bugs fixed.
121
122 2005/02/27 8.0-rc1 Dynamic path detection at startup so Emacs.app
123 can be moved anywhere. Added binary packages
124 and simplified source installation to running
125 two scripts. Thorough cleanup of menu code;
126 now fully functional. Fixed all detected
127 memory leaks. Minor frame focus and title
128 bugs fixed.
129
130 2005/03/30 8.0-rc2 "Configure" info directory now uses dynamic
131 path setting, so info files can go under .app.
132 Improved select() handling and PTY fixes so
133 shell mode and tramp run smoothly.
134 Significant rendering optimizations under
135 GNUstep, and now works under Art backend.
136 Non-Latin text rendering works (but not
137 fontsets), and LEIM is bundled. UTF8 is used
138 for clipboard interaction.
139 Arrow cursor now used on scrollbar.
140 objc-mode and tramp now bundled in site-lisp.
141
142 2005/05/30 8.0-rc3 Fixed bug with parsing of "easymenu" menus.
143 Many problems with modes such as SLIME, MatLab,
144 and Planner go away. Improved scrollbar
145 handling and rendering speed. Color panel
146 and other bug fixes. mac-fix-env utility.
147 Font handling improvements (OS X 10.3, 10.4):
148 - heed 'GSFontAntiAlias' default
149 - heed system antialiasing threshold
150 - added 'UseQuickdrawSmoothing' default to
151 invoke less heavy antialiasing
152
153 2005/07/05 8.0-rc4 Added a Preferences panel. Cleaned up
154 rendering for synthetic italic fonts. Further
155 improved menu parsing. Use system highlight
156 color. Added previous- and next-mark history
157 navigation commmands bound to M-p,M-n.
158 Miscellaneous bug fixes.
159
160 2005/08/04 8.0-rc5 All internal string handling changed to UTF-8.
161 This means menu items, color and color list
162 names, and a few other things will now display
163 properly. It does NOT mean UTF-8 filenames
164 are displayed correctly in the minibuffer.
165 Also relating to UTF-8, contents of files
166 using this coding can now be displayed (though
167 not auto-recognized; add extensions to your
168 default coding alist). Limited mac-roman
169 support was also added (also sans recognition).
170 Certain characters are not displayed properly
171 due to a translation problem. (UTF-8 based on
172 work by Otfried Cheong; mac-roman from
173 emacs-21.) Partial support for "dead-key"
174 handling now added. Transparency (e.g., M-x
175 set-background-color ARGB88FFFFFF) improved:
176 only the background is made transparent.
177 Cursor drawing glitches fixed. Preferences
178 handling improved. Fixed some portability
179 problems on Tiger and Puma.
180
181 2005/09/12 8.0 Bundled ispell on OS X. Minor bug fixes and
182 stability improvements. Compiles under gcc-4.
183
184 2005/09/26 8.0.1 Correct clipped rendering for synthetic
185 italics. Include the info directory.
186 Fix grabenv. Bundle whitespace package.
187
188 2005/10/27 8.0.2 Correct rendering for wide characters during
189 cursor movement. Fix bungled hack in ispell
190 bundling.
191
192 2005/11/05 9.0-pre1 Updated to latest Emacs CVS code on unicode-2
193 branch (proposed to be released 2006/2007 as
194 Emacs 23).
195
196 2005/11/11 9.0-pre2 Fix crashes for deiconifying and loading
197 certain images. Improve vertical font metrics
198 (fixes inaccurate page up/down, window size,
199 and partial lines). Support better remapping
200 of Alt/Opt and remapping of Command. More
201 insistent defaulting of scrollbar to right.
202 Modest improvements to build process.
203
204 2006/04/22 9.0-pre2a Stopgap interim release to sync w/latest
205 unicode-2 CVS. Includes XPM and partial
206 toolbar support.
207
208 2006/06/08 9.0-pre3 Major upgrade to keyboard handling:
209 system-selected compositional input methods
210 should now work, as well as more keys /
211 keyboards. XPM, toolbar, and tooltip support.
212 Some improvements to scrollbars, zoom, italic
213 rendering, pasting, Color panel. Added function
214 ns-set-background-alpha to work around
215 inability to customize with numeric colors.
216
217 2006/12/24 9.0-rc1 Reworked font handling and text rendering to
218 use Kenichi Handa's new font back-end system.
219 Font sets are now supported and automatically
220 created when a font is selected. Added recent
221 X11 colors to Emacs.clr (remove
222 ~/Library/Colors/Emacs.clr to pick up). Added
223 ns-option-modifier, ns-control-modifier,
224 ns-function-modifier customization variables.
225 Update menus to Emacs 21+ conventions. Right
226 mouse button now generates mouse-3 events.
227 Various bug fixes and rendering improvements.
228
229 2007/09/10 9.0-rc2 Improve menubar, popup menu, and scrollbar
230 behavior, let accented char entry work in
231 isearch, follow system keymap for shortcut
232 keys, fix border and box drawing, remove
233 glitches in modeline drawing, support
234 overstrike for unavailable bold fonts, fix XPM
235 related crasher bugs. Incremental font
236 metrics caching and other performance
237 improvements. Shared-lisp builds now possible.
238
239 2007/09/20 9.0-rc2a Interim release. New features: composed
240 character display, colored fringe bitmaps,
241 colored relief drawing, dynamic resizing,
242 Bug fixes: popup menu position and selection,
243 font width calculation, face color adaptation
244 to background, submenu keyboard navigation.
245 NOT TESTED ON GNUSTEP.
246
247 2007/11/19 9.0-rc3 Integrated the multi-TTY functionality from
248 emacs core (however, mixed TTY and GUI
249 sessions are not working yet). Support 10.5.
250 Give site-lisp load precedence over lisp and
251 add a compile option to prefer an additional
252 directory, use miniaturized miniwindow images
253 in some cases, rename cursor types for
254 consistency w/other emacs terms, improved font
255 selection for symbol scripts.
256 Bug fixes: fringe and bitmap, frame deletion,
257 resizing, cursor blink, workspace open-file,
258 image backgrounds, toolbar item enablement,
259 context menu positioning.
260
261 2008/07/15 (none) Merge to GNU Emacs CVS trunk.
262
263 \f
264 This file is part of GNU Emacs.
265
266 GNU Emacs is free software: you can redistribute it and/or modify
267 it under the terms of the GNU General Public License as published by
268 the Free Software Foundation, either version 3 of the License, or
269 (at your option) any later version.
270
271 GNU Emacs is distributed in the hope that it will be useful,
272 but WITHOUT ANY WARRANTY; without even the implied warranty of
273 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
274 GNU General Public License for more details.
275
276 You should have received a copy of the GNU General Public License
277 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.