-*-text-*- Obtaining CVS Code ------------------ This seems redundant, since if you're reading this you most likely have already performed this step; however, for completeness, you can obtain the GNU make source code via anonymous CVS from the FSF's Savannah project : $ cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/make co make You might want to use the "-z3" option to get compression, and you most certainly will want the -P option to avoid unneeded directories cluttering up your source. Personally I add these (as well as -dP for update) to my ~/.cvsrc file. If you have an older version of CVS, you might have to login first. There is no password; just hit the ENTER key if you are asked for one. Building From CVS ----------------- To build GNU make from CVS, you will need Autoconf 2.53 (or better), Automake 1.6.1 (or better), and Gettext 0.11.3-pre2 (or better), and any tools that those utilities require (GNU m4, Perl, etc.). After checking out the code, you will need to perform these steps to get to the point where you can run "configure" then "make". Hopefully at some point in the (near) future this will all be obsolete and you can just run "autoreconf" and have it DTRT. 1) $ autopoint This will instantiate various m4 macros files, etc. in the config and po directories. 2) $ aclocal -I config Generate the proper aclocal.m4 file. 3) $ autoheader Generate a "config.h.in" file from the contents of configure.in, etc. 4) $ automake --add-missing Add (symlink) missing files into the distribution, and generate Makefile.in's from Makefile.am's. You will see these perhaps unexpected messages (among others which you should be expecting :)); just ignore them--I know what I'm doing :). Makefile.am: required file `./README' not found configure.in:xxx: required file `./build.sh.in' not found Makefile.am:xxx: automatically discovered file `getloadavg.c' should not be explicitly mentioned 5) $ autoconf Generate a "configure" script from configure.in and acinclude.m4. At this point you have successfully brought your CVS copy of the GNU make source directory up to the point where it can be treated more-or-less like the official package you would get from ftp.gnu.org. That is, you can just run: $ ./configure && make && make check && make install to build and install GNU make. Creating a Package ------------------ Once you have performed the above steps (including the configuration and build) you can create a GNU make package. This is very simple, just run: $ make dist-gzip and, if you like: $ make dist-bzip2 Even better, you should run this: $ make distcheck Which will build both .gz and .bz2 package files, then unpack them into a temporary location, try to build them, and repack them, verifying that everything works, you get the same results, _and_ no extraneous files are left over after the "distclean" rule--whew!! Now, _that_ is why converting to Automake is worth the trouble! A big "huzzah!" to Tom T. and the AutoToolers! That's it, you're done! Appendix A - For The Brave -------------------------- For those of you who trust me implicitly, or are just brave (or foolhardy), here is a canned sequence of commands to build a GNU make distribution package from a virgin CVS source checkout (assuming all the prerequisites are available of course). This list is eminently suitable for a quick swipe o' the old mouse and a swift click o' mouse-2 into an xterm. I even grudgingly removed my use of "advanced shell features" like {}. Go for it! autopoint aclocal -I config autoheader automake --add-missing autoconf ./configure make make check make distcheck