1 |
-*-text-*- |
2 |
|
3 |
Obtaining CVS Code |
4 |
------------------ |
5 |
|
6 |
This seems redundant, since if you're reading this you most likely have |
7 |
already performed this step; however, for completeness, you can obtain |
8 |
the GNU make source code via anonymous CVS from the FSF's Savannah |
9 |
project <http://savannah.gnu.org/projects/make/>: |
10 |
|
11 |
$ cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/make co make |
12 |
|
13 |
You might want to use the "-z3" option to get compression, and you most |
14 |
certainly will want the -P option to avoid unneeded directories |
15 |
cluttering up your source. Personally I add these (as well as -dP for |
16 |
update) to my ~/.cvsrc file. |
17 |
|
18 |
|
19 |
If you have an older version of CVS, you might have to login first. |
20 |
There is no password; just hit the ENTER key if you are asked for one. |
21 |
|
22 |
|
23 |
Building From CVS |
24 |
----------------- |
25 |
|
26 |
To build GNU make from CVS, you will need Autoconf 2.57 (or better), |
27 |
Automake 1.7.3 (or better), and Gettext 0.11.5 (or better), and any |
28 |
tools that those utilities require (GNU m4, Perl, etc.). You will also |
29 |
need a copy of wget. |
30 |
|
31 |
After checking out the code, you will need to perform these steps to get |
32 |
to the point where you can run "make". |
33 |
|
34 |
|
35 |
1) $ autoreconf -i -s |
36 |
|
37 |
This rebuilds all the things that need rebuilding, installing |
38 |
missing files as symbolic links. |
39 |
|
40 |
You may get warnings here about missing files like README, etc. |
41 |
Ignore them, they are harmless. |
42 |
|
43 |
|
44 |
2) $ ./configure |
45 |
|
46 |
Generate a Makefile |
47 |
|
48 |
|
49 |
3) $ make update |
50 |
|
51 |
Use wget to retrieve various other files that GNU make relies on, |
52 |
but does not keep in its own source tree. |
53 |
|
54 |
NB: You may need GNU make to correctly perform this step; if you use |
55 |
a platform-local make you may get problems with missing files in doc/. |
56 |
|
57 |
|
58 |
At this point you have successfully brought your CVS copy of the GNU |
59 |
make source directory up to the point where it can be treated |
60 |
more-or-less like the official package you would get from ftp.gnu.org. |
61 |
That is, you can just run: |
62 |
|
63 |
$ make && make check && make install |
64 |
|
65 |
to build and install GNU make. |
66 |
|
67 |
|
68 |
Creating a Package |
69 |
------------------ |
70 |
|
71 |
Once you have performed the above steps (including the configuration and |
72 |
build) you can create a GNU make package. This is very simple, just |
73 |
run: |
74 |
|
75 |
$ make dist-gzip |
76 |
|
77 |
and, if you like: |
78 |
|
79 |
$ make dist-bzip2 |
80 |
|
81 |
Even better, you should run this: |
82 |
|
83 |
$ make distcheck |
84 |
|
85 |
Which will build both .gz and .bz2 package files, then unpack them into |
86 |
a temporary location, try to build them, and repack them, verifying that |
87 |
everything works, you get the same results, _and_ no extraneous files |
88 |
are left over after the "distclean" rule--whew!! Now, _that_ is why |
89 |
converting to Automake is worth the trouble! A big "huzzah!" to Tom |
90 |
T. and the AutoToolers! |
91 |
|
92 |
|
93 |
That's it, you're done! |
94 |
|
95 |
|
96 |
Appendix A - For The Brave |
97 |
-------------------------- |
98 |
|
99 |
For those of you who trust me implicitly, or are just brave (or |
100 |
foolhardy), here is a canned sequence of commands to build a GNU make |
101 |
distribution package from a virgin CVS source checkout (assuming all the |
102 |
prerequisites are available of course). |
103 |
|
104 |
This list is eminently suitable for a quick swipe o' the mouse and a |
105 |
swift click o' mouse-2 into an xterm. Go for it! |
106 |
|
107 |
|
108 |
autoreconf -i -s |
109 |
./configure |
110 |
make update |
111 |
make |
112 |
make check |
113 |
make distcheck |