summaryrefslogtreecommitdiff
path: root/README.cvs
blob: fe6c1ac3307dadeeb0a2307fceb52feb9ba24f4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
                                                                     -*-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 <http://savannah.gnu.org/projects/make/>:

  $ cvs -d:pserver:anoncvs@cvs.savannah.gnu.org:/sources/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, 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.

After checking out the code, you will need to perform these steps to get
to the point where you can run "make".


 1) $ autoreconf -i -s

    This rebuilds all the things that need rebuilding, installing
    missing files as symbolic links.

    You may get warnings here about missing files like README, etc.
    Ignore them, they are harmless.


 2) $ ./configure

    Generate a Makefile


 3) $ make update

    Use wget to retrieve various other files that GNU make relies on,
    but does not keep in its own source tree.

    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/.


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:

  $ 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!


Windows builds from CVS
-----------------------

IF you have managed to successfully perform the 1st two or three steps of
the general build procedure as explained above:

  $ autoreconf [-i] -s
  $ ./configure
 [$ make update]

THEN proceed with file README.W32.

ELSE ignore the general build procedure, instead execute the following
command lines at a Windows command prompt:

  if not exist README.W32 copy README.W32.template README.W32
  if not exist config.h.W32 copy config.h.W32.template config.h.W32
  if not exist NMakefile copy NMakefile.template NMakefile

Now proceed with file README.W32.


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 mouse and a
swift click o' mouse-2 into an xterm.  Go for it!


autoreconf -i -s
./configure
make update
make
make check
make distcheck