annotate nextstep/INSTALL @ 107777:13c077500eb3

2010-04-04 John Wiegley <jwiegley@gmail.com> * ido.el (ido-use-virtual-buffers): New variable to indicate whether "virtual buffer" support is enabled for IDO. Essentially it works as follows: Say you are visiting a file and the buffer gets cleaned up by mignight.el. Later, you want to switch to that buffer, but find it's no longer open. With virtual buffers enabled, the buffer name stays in the buffer list (using the ido-virtual face, and always at the end), and if you select it, it opens the file back up again. This allows you to think less about whether recently opened files are still open or not. Most of the time you can quit Emacs, restart, and then switch to a file buffer that was previously open as if it still were. NOTE: This feature has been present in iswitchb for several years now, and I'm porting the same logic to IDO. (ido-virtual): Face used to indicate virtual buffers in the list. (ido-buffer-internal): If a buffer is chosen, and no such buffer exists, but a virtual buffer of that name does (which would be why it was in the list), recreate the buffer by reopening the file. (ido-make-buffer-list): If virtual buffers are being used, call `ido-add-virtual-buffers-to-list' before the make list hook. (ido-virtual-buffers): New variable which contains a copy of the current contents of the `recentf-list', albeit pared down for the sake of speed, and with proper faces applied. (ido-add-virtual-buffers-to-list): Using the `recentf-list', create a list of "virtual buffers" to present to the user in addition to the currently open set. Note that this logic could get rather slow if that list is too large. With the default `recentf-max-saved-items' of 200, there is little speed penalty.
author jwiegley@gmail.com
date Sun, 04 Apr 2010 02:55:19 -0400
parents 1d1d5d9bd884
children 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 103242
diff changeset
1 Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
96771
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
2 See the end of the file for license conditions.
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
3
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
4
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
5 Compilation
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
6 -----------
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
7
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
8 In the top-level directory, use:
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
9
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
10 ./configure --with-ns
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
11
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
12 This will compile all the files, but emacs will not be able to be run except
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
13 in -nw (terminal) mode.
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
14
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
15 In order to run Emacs.app, you must run:
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
16
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
17 make install
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
18
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
19 This will assemble the app in nextstep/Emacs.app.
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
20
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
21 If you pass the --disable-ns-self-contained option to configure, the lisp
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
22 files will be installed under whatever 'prefix' is set to (defaults to
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
23 /usr/local). The bundle will be smaller, but depend on these resources (may
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
24 require 'sudo' for "make install").
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
25
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
26
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
27 Installation
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
28 ------------
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
29
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
30 Move nextstep/Emacs.app to any desired install location.
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
31
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
32
103242
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
33 Xcode
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
34 -----
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
35
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
36 On OS X Emacs can be built under Xcode. You need to run "configure"
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
37 as described above first. There are two targets: 'temacs' and 'Emacs.app'.
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
38
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
39 'temacs' will build the undumped emacs executable, and copy it and the
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
40 *.o files to the src directory. These steps are necessary so the next target
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
41 works.
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
42
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
43 'Emacs.app' uses "Run Script" build phases to assemble the Emacs.app bundle.
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
44 It uses the 'ns-app' target in src/Makefile together with the 'install' target
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
45 in the top level Makefile.
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
46
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
47 The source files under the temacs target must list "pre-crt0" first
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
48 and "lastfile" last, so that dumping works.
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
49
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
50 (Note, under GNUstep, you CAN'T use ProjectCenter, since PC cannot work
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
51 with files outside of its project directory.)
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
52
e0d2d5addcbf * Cocoa/Emacs.xcodeproj/project.pbxproj: Update and redo targets to utilize Makefiles for assembly portions of the build. * INSTALL: Describe the Xcode project.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101914
diff changeset
53
96771
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
54 Distributions and Universal Binaries
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
55 ------------------------------------
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
56
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
57 Building as outlined above will create ordinary binaries running on your
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
58 architecture only. To create universal binaries, set CFLAGS to include
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
59 "-arch ppc -arch i386".
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
60
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
61
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
62 This file is part of GNU Emacs.
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
63
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
64 GNU Emacs is free software: you can redistribute it and/or modify
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
65 it under the terms of the GNU General Public License as published by
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
66 the Free Software Foundation, either version 3 of the License, or
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
67 (at your option) any later version.
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
68
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
69 GNU Emacs is distributed in the hope that it will be useful,
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
70 but WITHOUT ANY WARRANTY; without even the implied warranty of
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
71 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
72 GNU General Public License for more details.
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
73
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
74 You should have received a copy of the GNU General Public License
d92ec7333164 make more parallel to other platforms
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
75 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.