2002-04-22 10:11:31 +08:00
|
|
|
-*-text-*-
|
|
|
|
|
2006-02-12 03:02:21 +08:00
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
|
|
|
1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
|
|
|
|
This file is part of GNU Make.
|
|
|
|
|
|
|
|
GNU Make is free software; you can redistribute it and/or modify it under the
|
|
|
|
terms of the GNU General Public License as published by the Free Software
|
|
|
|
Foundation; either version 2, or (at your option) any later version.
|
|
|
|
|
|
|
|
GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
|
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
|
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License along with
|
|
|
|
GNU Make; see the file COPYING. If not, write to the Free Software
|
|
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
2002-04-22 10:11:31 +08:00
|
|
|
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 <http://savannah.gnu.org/projects/make/>:
|
|
|
|
|
2006-02-01 15:54:22 +08:00
|
|
|
$ cvs -d:pserver:anoncvs@cvs.savannah.gnu.org:/sources/make co make
|
2002-04-22 10:11:31 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
-----------------
|
|
|
|
|
2004-03-04 21:42:51 +08:00
|
|
|
To build GNU make from CVS, you will need Autoconf, Automake, and
|
|
|
|
Gettext, and any tools that those utilities require (GNU m4, Perl,
|
|
|
|
etc.). See the configure.in file to find the minimum versions of each
|
|
|
|
of these tools. You will also need a copy of wget.
|
2002-04-22 10:11:31 +08:00
|
|
|
|
|
|
|
After checking out the code, you will need to perform these steps to get
|
2002-07-08 21:05:02 +08:00
|
|
|
to the point where you can run "make".
|
2002-04-22 10:11:31 +08:00
|
|
|
|
|
|
|
|
2003-03-25 08:15:25 +08:00
|
|
|
1) $ autoreconf -i -s
|
2002-04-22 10:11:31 +08:00
|
|
|
|
2003-03-25 08:15:25 +08:00
|
|
|
This rebuilds all the things that need rebuilding, installing
|
|
|
|
missing files as symbolic links.
|
2002-04-22 10:11:31 +08:00
|
|
|
|
2003-10-22 12:35:27 +08:00
|
|
|
You may get warnings here about missing files like README, etc.
|
|
|
|
Ignore them, they are harmless.
|
|
|
|
|
2002-04-22 10:11:31 +08:00
|
|
|
|
2003-03-25 08:15:25 +08:00
|
|
|
2) $ ./configure
|
2002-07-08 21:05:02 +08:00
|
|
|
|
|
|
|
Generate a Makefile
|
|
|
|
|
|
|
|
|
2003-03-25 08:15:25 +08:00
|
|
|
3) $ make update
|
2002-07-08 21:05:02 +08:00
|
|
|
|
|
|
|
Use wget to retrieve various other files that GNU make relies on,
|
|
|
|
but does not keep in its own source tree.
|
|
|
|
|
2003-05-02 09:44:59 +08:00
|
|
|
NB: You may need GNU make to correctly perform this step; if you use
|
|
|
|
a platform-local make you may get problems with missing files in doc/.
|
|
|
|
|
2002-07-08 21:05:02 +08:00
|
|
|
|
2002-04-22 10:11:31 +08:00
|
|
|
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:
|
|
|
|
|
2002-07-08 21:05:02 +08:00
|
|
|
$ make && make check && make install
|
2002-04-22 10:11:31 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2002-04-22 12:35:19 +08:00
|
|
|
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!
|
|
|
|
|
|
|
|
|
2006-02-01 15:54:22 +08:00
|
|
|
Windows builds from CVS
|
|
|
|
-----------------------
|
|
|
|
|
2006-02-07 00:41:49 +08:00
|
|
|
If you have a UNIX emulation like CYGWIN you can opt to run the general
|
|
|
|
build procedure above; it will work. Be sure to read
|
|
|
|
README.W32.template for information on options you might want to use
|
|
|
|
when running ./configure.
|
2006-02-01 15:54:22 +08:00
|
|
|
|
2006-02-07 00:41:49 +08:00
|
|
|
If you can't or don't want to do that, then rename the file
|
|
|
|
README.W32.template to README.W32 and follow those instructions.
|
2006-02-01 15:54:22 +08:00
|
|
|
|
|
|
|
|
2002-04-22 12:35:19 +08:00
|
|
|
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).
|
|
|
|
|
2002-08-10 09:27:16 +08:00
|
|
|
This list is eminently suitable for a quick swipe o' the mouse and a
|
|
|
|
swift click o' mouse-2 into an xterm. Go for it!
|
2002-04-22 12:35:19 +08:00
|
|
|
|
2002-04-22 10:11:31 +08:00
|
|
|
|
2003-03-25 08:15:25 +08:00
|
|
|
autoreconf -i -s
|
2002-04-22 12:35:19 +08:00
|
|
|
./configure
|
2002-07-08 21:05:02 +08:00
|
|
|
make update
|
2002-04-22 12:35:19 +08:00
|
|
|
make
|
|
|
|
make check
|
|
|
|
make distcheck
|