makefile.texi revision 1.1.1.1
1@c Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
2@c This is part of the GCC manual.
3@c For copying conditions, see the file gcc.texi.
4
5@node Makefile
6@subsection Makefile Targets
7@cindex makefile targets
8@cindex targets, makefile
9
10@table @code
11@item all
12This is the default target.  Depending on what your build/host/target
13configuration is, it coordinates all the things that need to be built.
14
15@item doc
16Produce info-formatted documentation and man pages.  Essentially it
17calls @samp{make man} and @samp{make info}.
18
19@item dvi
20Produce DVI-formatted documentation.
21
22@item html
23Produce HTML-formatted documentation.
24
25@item man
26Generate man pages.
27
28@item info
29Generate info-formatted pages.
30
31@item mostlyclean
32Delete the files made while building the compiler.
33
34@item clean
35That, and all the other files built by @samp{make all}.
36
37@item distclean
38That, and all the files created by @command{configure}.
39
40@item maintainer-clean
41Distclean plus any file that can be generated from other files.  Note
42that additional tools may be required beyond what is normally needed to
43build gcc.
44
45@item srcextra
46Generates files in the source directory that do not exist in CVS but
47should go into a release tarball.  One example is @file{gcc/java/parse.c}
48which is generated from the CVS source file @file{gcc/java/parse.y}.
49
50@item srcinfo
51@itemx srcman
52Copies the info-formatted and manpage documentation into the source
53directory usually for the purpose of generating a release tarball.
54
55@item install
56Installs gcc.
57
58@item uninstall
59Deletes installed files.
60
61@item check
62Run the testsuite.  This creates a @file{testsuite} subdirectory that
63has various @file{.sum} and @file{.log} files containing the results of
64the testing.  You can run subsets with, for example, @samp{make check-gcc}.
65You can specify specific tests by setting RUNTESTFLAGS to be the name
66of the @file{.exp} file, optionally followed by (for some tests) an equals
67and a file wildcard, like:
68
69@smallexample
70make check-gcc RUNTESTFLAGS="execute.exp=19980413-*"
71@end smallexample
72
73Note that running the testsuite may require additional tools be
74installed, such as TCL or dejagnu.
75
76@item bootstrap
77Builds GCC three times---once with the native compiler, once with the
78native-built compiler it just built, and once with the compiler it built
79the second time.  In theory, the last two should produce the same
80results, which @samp{make compare} can check.  Each step of this process
81is called a ``stage'', and the results of each stage @var{N}
82(@var{N} = 1@dots{}3) are copied to a subdirectory @file{stage@var{N}/}.
83
84@item bootstrap-lean
85Like @code{bootstrap}, except that the various stages are removed once
86they're no longer needed.  This saves disk space.
87
88@item bubblestrap
89This incrementally rebuilds each of the three stages, one at a time.
90It does this by ``bubbling'' the stages up from their subdirectories
91(if they had been built previously), rebuilding them, and copying them
92back to their subdirectories.  This will allow you to, for example,
93continue a bootstrap after fixing a bug which causes the stage2 build
94to crash.
95
96@item quickstrap
97Rebuilds the most recently built stage.  Since each stage requires
98special invocation, using this target means you don't have to keep
99track of which stage you're on or what invocation that stage needs.
100
101@item cleanstrap
102Removed everything (@samp{make clean}) and rebuilds (@samp{make bootstrap}).
103
104@item restrap
105Like @code{cleanstrap}, except that the process starts from the first
106stage build, not from scratch.
107
108@item stage@var{N} (@var{N} = 1@dots{}4)
109For each stage, moves the appropriate files to the @file{stage@var{N}}
110subdirectory.
111
112@item unstage@var{N} (@var{N} = 1@dots{}4)
113Undoes the corresponding @code{stage@var{N}}.
114
115@item restage@var{N} (@var{N} = 1@dots{}4)
116Undoes the corresponding @code{stage@var{N}} and rebuilds it with the
117appropriate flags.
118
119@item compare
120Compares the results of stages 2 and 3.  This ensures that the compiler
121is running properly, since it should produce the same object files
122regardless of how it itself was compiled.
123
124@item profiledbootstrap
125Builds a compiler with profiling feedback information.  For more
126information, see
127@ref{Building,,Building with profile feedback,gccinstall,Installing GCC}.
128This is actually a target in the top-level directory, which then
129recurses into the @file{gcc} subdirectory multiple times.
130
131@end table
132