summaryrefslogtreecommitdiff
path: root/README.cvs
blob: 7a63b042192aa17242f10477e744a5a74b57b260 (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
                                                                     -*-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@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.1 (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) $ gettextize --no-changelog
    $ mv config/Makefile.am{~,}
    $ mv Makefile.am{~,}
    $ mv configure.in{~,}

    This will instantiate various m4 macros files, etc. in the config
    and po directories.

    The mv commands are necessary because gettextize doesn't realize
    that the things it's adding to those files already exist in it.



 2) $ aclocal -I config

    Generate the proper aclocal.m4 file.


 3) $ 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


 4) $ autoconf

    Generate a "configure" script from configure.in and acinclude.m4.


 5) $ autoheader

    Generate a "config.h.in" file from the contents of configure.in,
    etc.


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

After you do this you should be sure to run "make distcheck" to be sure
that the package file is correct.

That's it!