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 | ||
0e21fc54 EZ |
28 | Occasionally the file "lisp/loaddefs.el" will need be updated to |
29 | reflect new autoloaded functions. If you see errors about undefined | |
30 | lisp functions during compilation, that may be the reason. Another | |
31 | symptom may be an error saying that "loaddefs.el" could not be found; | |
32 | this is due to a change in the way loaddefs.el was handled in CVS, and | |
33 | should only happen once, for users that are updating old CVS trees. | |
93e3e16a | 34 | |
0e21fc54 | 35 | To update loaddefs.el, do: |
93e3e16a MB |
36 | |
37 | $ cd lisp | |
0e21fc54 | 38 | $ make autoloads EMACS=../src/emacs |
93e3e16a | 39 | |
10209171 | 40 | If either of the above partial procedures fails, try "make bootstrap". |
e0156c8d EZ |
41 | |
42 | Users of non-Posix systems (MS-Windows etc.) should run the | |
43 | platform-specific configuration scripts (nt/configure.bat, config.bat, | |
44 | etc.) before "make bootstrap" or "make"; the rest of the procedure is | |
10209171 EZ |
45 | applicable to those systems as well, except that the value of the |
46 | EMACS variable on the Make command line might be different, e.g., | |
47 | ../bin/emacs.exe or some such. | |
e0156c8d | 48 | |
7df58a0d | 49 | Questions, requests, and bug reports about the CVS versions of Emacs |
b633b319 SM |
50 | should be sent to emacs-pretest-bug@gnu.org rather than gnu.emacs.help |
51 | or gnu.emacs.bug. Ideally, use M-x report-emacs-bug RET which will | |
52 | send it to the proper place. | |
58ec79cf KS |
53 | |
54 | ||
25dc5de2 | 55 | Note on using SSH to access the CVS repository from inside Emacs |
58ec79cf KS |
56 | ---------------------------------------------------------------- |
57 | ||
58 | Write access to the CVS repository requires using SSH v2. | |
59 | ||
25dc5de2 | 60 | If you execute cvs commands inside Emacs, specifically if you use |
58ec79cf | 61 | pcl-cvs, output from CVS may be lost due to a problem in the |
25dc5de2 SM |
62 | interface between ssh, cvs, and libc. Corrupted checkins have |
63 | also been rumored to have happened. | |
58ec79cf KS |
64 | |
65 | To fix the problem, save the following script into a file, make it | |
66 | executable, and set CVS_RSH to the file name of the script: | |
67 | ||
68 | #!/bin/bash | |
69 | exec 2> >(exec cat >&2 2>/dev/null) | |
70 | exec ssh "$@" | |
71 | ||
72 | This may be combined with the following entry in ~/.ssh/config to | |
73 | simplify accessing the CVS repository: | |
74 | ||
75 | Host subversions.gnu.org | |
76 | Protocol 2 | |
77 | ForwardX11 no | |
78 | User YOUR_USERID |