Various updates, mainly to the Windows port, from Eli Zaretskii and
[make.git] / README.cvs
blobfe6c1ac3307dadeeb0a2307fceb52feb9ba24f4a
1                                                                      -*-text-*-
3 Obtaining CVS Code
4 ------------------
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/>:
11   $ cvs -d:pserver:anoncvs@cvs.savannah.gnu.org:/sources/make co make
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.
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.
23 Building From CVS
24 -----------------
26 To build GNU make from CVS, you will need Autoconf, Automake, and
27 Gettext, and any tools that those utilities require (GNU m4, Perl,
28 etc.).  See the configure.in file to find the minimum versions of each
29 of these tools.  You will also need a copy of wget.
31 After checking out the code, you will need to perform these steps to get
32 to the point where you can run "make".
35  1) $ autoreconf -i -s
37     This rebuilds all the things that need rebuilding, installing
38     missing files as symbolic links.
40     You may get warnings here about missing files like README, etc.
41     Ignore them, they are harmless.
44  2) $ ./configure
46     Generate a Makefile
49  3) $ make update
51     Use wget to retrieve various other files that GNU make relies on,
52     but does not keep in its own source tree.
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/.
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:
63   $ make && make check && make install
65 to build and install GNU make.
68 Creating a Package
69 ------------------
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:
75   $ make dist-gzip
77 and, if you like:
79   $ make dist-bzip2
81 Even better, you should run this:
83   $ make distcheck
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!
93 That's it, you're done!
96 Windows builds from CVS
97 -----------------------
99 IF you have managed to successfully perform the 1st two or three steps of
100 the general build procedure as explained above:
102   $ autoreconf [-i] -s
103   $ ./configure
104  [$ make update]
106 THEN proceed with file README.W32.
108 ELSE ignore the general build procedure, instead execute the following
109 command lines at a Windows command prompt:
111   if not exist README.W32 copy README.W32.template README.W32
112   if not exist config.h.W32 copy config.h.W32.template config.h.W32
113   if not exist NMakefile copy NMakefile.template NMakefile
115 Now proceed with file README.W32.
118 Appendix A - For The Brave
119 --------------------------
121 For those of you who trust me implicitly, or are just brave (or
122 foolhardy), here is a canned sequence of commands to build a GNU make
123 distribution package from a virgin CVS source checkout (assuming all the
124 prerequisites are available of course).
126 This list is eminently suitable for a quick swipe o' the mouse and a
127 swift click o' mouse-2 into an xterm.  Go for it!
130 autoreconf -i -s
131 ./configure
132 make update
133 make
134 make check
135 make distcheck