Commit | Line | Data |
---|---|---|
e0156c8d EZ |
1 | Building and Installing Emacs from CVS |
2 | ||
3 | Some of the files that are included in the Emacs tarball, such as | |
4 | byte-compiled Lisp files, are not stored in the CVS repository. | |
5 | Therefore, to build from CVS you must run "make bootstrap" | |
6 | instead of just "make": | |
7 | ||
8 | $ ./configure | |
9 | $ make bootstrap | |
10 | ||
11 | The bootstrap process makes sure all necessary files are rebuilt | |
12 | before it builds the final Emacs binary. | |
13 | ||
14 | Normally, it is not necessary to use "make bootstrap" after every CVS | |
15 | update. Unless there are problems, we suggest the following | |
16 | procedure: | |
17 | ||
18 | $ ./configure | |
19 | $ make | |
20 | $ cd lisp | |
21 | $ make recompile EMACS=../src/emacs | |
22 | $ cd .. | |
23 | $ make | |
24 | ||
25 | (If you want to install the Emacs binary, type "make install" instead | |
26 | of "make" in the last command.) | |
27 | ||
10209171 EZ |
28 | Occasionally the files "lisp/loaddefs.el" or lisp/mh-e/mh-loaddefs.el |
29 | will need be updated to reflect new autoloaded functions. If you see | |
30 | errors about undefined lisp functions during compilation, that may be | |
31 | the reason. Another symptom may be an error saying that "loaddefs.el" | |
32 | could not be found; this is due to a change in the way loaddefs.el was | |
33 | handled in CVS, and should only happen once, for users that are | |
34 | updating old CVS trees. | |
93e3e16a | 35 | |
10209171 | 36 | To update loaddefs.el and mh-loaddefs.el, do: |
93e3e16a MB |
37 | |
38 | $ cd lisp | |
10209171 | 39 | $ make autoloads mh-autoloads EMACS=../src/emacs |
93e3e16a | 40 | |
10209171 | 41 | If either of the above partial procedures fails, try "make bootstrap". |
e0156c8d EZ |
42 | |
43 | Users of non-Posix systems (MS-Windows etc.) should run the | |
44 | platform-specific configuration scripts (nt/configure.bat, config.bat, | |
45 | etc.) before "make bootstrap" or "make"; the rest of the procedure is | |
10209171 EZ |
46 | applicable to those systems as well, except that the value of the |
47 | EMACS variable on the Make command line might be different, e.g., | |
48 | ../bin/emacs.exe or some such. | |
e0156c8d | 49 | |
7df58a0d | 50 | Questions, requests, and bug reports about the CVS versions of Emacs |
b633b319 SM |
51 | should be sent to emacs-pretest-bug@gnu.org rather than gnu.emacs.help |
52 | or gnu.emacs.bug. Ideally, use M-x report-emacs-bug RET which will | |
53 | send it to the proper place. | |
58ec79cf KS |
54 | |
55 | ||
25dc5de2 | 56 | Note on using SSH to access the CVS repository from inside Emacs |
58ec79cf KS |
57 | ---------------------------------------------------------------- |
58 | ||
59 | Write access to the CVS repository requires using SSH v2. | |
60 | ||
25dc5de2 | 61 | If you execute cvs commands inside Emacs, specifically if you use |
58ec79cf | 62 | pcl-cvs, output from CVS may be lost due to a problem in the |
25dc5de2 SM |
63 | interface between ssh, cvs, and libc. Corrupted checkins have |
64 | also been rumored to have happened. | |
58ec79cf KS |
65 | |
66 | To fix the problem, save the following script into a file, make it | |
67 | executable, and set CVS_RSH to the file name of the script: | |
68 | ||
69 | #!/bin/bash | |
70 | exec 2> >(exec cat >&2 2>/dev/null) | |
71 | exec ssh "$@" | |
72 | ||
73 | This may be combined with the following entry in ~/.ssh/config to | |
74 | simplify accessing the CVS repository: | |
75 | ||
76 | Host subversions.gnu.org | |
77 | Protocol 2 | |
78 | ForwardX11 no | |
79 | User YOUR_USERID |