Remove our local copy so we can use the standard version.
[make.git] / README.cvs
blob046486225fbc7d723ec25bfd3e8565d242f3f8df
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@subversions.gnu.org:/cvsroot/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 2.53 (or better),
27 Automake 1.6.1 (or better), and Gettext 0.11.1 (or better), and any
28 tools that those utilities require (GNU m4, Perl, etc.).
30 After checking out the code, you will need to perform these steps to get
31 to the point where you can run "configure" then "make".
33 Hopefully at some point in the (near) future this will all be obsolete
34 and you can just run "autoreconf" and have it DTRT.
37  1) $ gettextize --no-changelog
38     $ mv config/Makefile.am{~,}
39     $ mv Makefile.am{~,}
40     $ mv configure.in{~,}
42     This will instantiate various m4 macros files, etc. in the config
43     and po directories.
45     The mv commands are necessary because gettextize doesn't realize
46     that the things it's adding to those files already exist in it.
47     Hopefully there will be a better solution for this in upcoming
48     versions of Gettext.
51  2) $ aclocal -I config
53     Generate the proper aclocal.m4 file.
56  3) $ automake --add-missing
58     Add (symlink) missing files into the distribution, and generate
59     Makefile.in's from Makefile.am's.
61     You will see these perhaps unexpected messages (among others which
62     you should be expecting :)); just ignore them--I know what I'm doing
63     :).
65       Makefile.am: required file `./README' not found
66       configure.in:xxx: required file `./build.sh.in' not found
67       Makefile.am:xxx: automatically discovered file `getloadavg.c' should not be explicitly mentioned
70  4) $ autoconf
72     Generate a "configure" script from configure.in and acinclude.m4.
75  5) $ autoheader
77     Generate a "config.h.in" file from the contents of configure.in,
78     etc.
81 At this point you have successfully brought your CVS copy of the GNU
82 make source directory up to the point where it can be treated
83 more-or-less like the official package you would get from ftp.gnu.org.
84 That is, you can just run:
86   $ ./configure && make && make check && make install
88 to build and install GNU make.
91 Creating a Package
92 ------------------
94 Once you have performed the above steps (including the configuration and
95 build) you can create a GNU make package.  This is very simple, just
96 run:
98   $ make dist-gzip
100 and, if you like:
102   $ make dist-bzip2
104 Even better, you should run this:
106   $ make distcheck
108 Which will build both .gz and .bz2 package files, then unpack them into
109 a temporary location, try to build them, and repack them, verifying that
110 everything works, you get the same results, _and_ no extraneous files
111 are left over after the "distclean" rule--whew!!  Now, _that_ is why
112 converting to Automake is worth the trouble!  A big "huzzah!" to Tom
113 T. and the AutoToolers!
116 That's it, you're done!
119 Appendix A - For The Brave
120 --------------------------
122 For those of you who trust me implicitly, or are just brave (or
123 foolhardy), here is a canned sequence of commands to build a GNU make
124 distribution package from a virgin CVS source checkout (assuming all the
125 prerequisites are available of course).
127 This list is eminently suitable for a quick swipe o' the old mouse and a
128 swift click o' mouse-2 into an xterm.  I even grudgingly removed my use
129 of "advanced shell features" like {}.  Go for it!
132 gettextize --no-changelog
133 mv config/Makefile.am~ config/Makefile.am
134 mv Makefile.am~ Makefile.am
135 mv configure.in~ configure.in
136 aclocal -I config
137 automake --add-missing
138 autoconf
139 autoheader
140 ./configure
141 make
142 make check
143 make distcheck