mirror of https://github.com/tLDP/LDP
Lots of minor changes, add about section
This commit is contained in:
parent
08d5bdb061
commit
2169bf68a0
|
@ -3,7 +3,7 @@
|
|||
<!--
|
||||
|
||||
The version history of this document, along with the comments are at the
|
||||
end of the file. Last modification history is ...
|
||||
end of the file. Last modification history is ...
|
||||
|
||||
$Id$
|
||||
|
||||
|
@ -94,11 +94,11 @@ $Id$
|
|||
<para>
|
||||
|
||||
This HOWTO aims to help beginning developers to leverage the power
|
||||
the the GNU Build System (GBS); The GBS is composed of well-known
|
||||
the the GNU Build System (GBS). The GBS is composed of well-known
|
||||
tools such as &make; and of less-used utilities such as
|
||||
&autoconf;, &automake; or &libtool;. The primary goal of the HOWTO
|
||||
is to ring developers up to speed with each of these tools, and,
|
||||
at another level to explain some of their inner workings.
|
||||
&autoconf;, &automake; or &libtool;. The primary goal of the
|
||||
HOWTO is to ring developers up to speed with each of these tools,
|
||||
and, at another level to explain some of their inner workings.
|
||||
|
||||
</para>
|
||||
|
||||
|
@ -121,7 +121,41 @@ $Id$
|
|||
|
||||
<title>About this HOWTO</title>
|
||||
|
||||
<para>About this HOWTO.</para>
|
||||
<para>
|
||||
|
||||
This HOWTO is a resource for first time users of the GNU build
|
||||
tools. It is intended to be an introductory guide, to help you
|
||||
with GNU &make;, &autoconf;, &automake; etc. It also tries to
|
||||
provide an explanation as to to how these tools work.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
If you have installed packages from source on a Unix environment,
|
||||
you will have encountered &makefile;s that are used to compile the
|
||||
package. When there was no &automake; or &autoconf;, it was a non
|
||||
trivial task to get big source packages to compile, leave alone
|
||||
getting them to work for you. It often involved tweaking of the
|
||||
&makefile;s and making changes to source. Another difficult task
|
||||
was to find out what were the necessary things that you need (like
|
||||
libraries, the right version of the library needed) before you
|
||||
could compile a particular package.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
Another major problem that many software developers face is that
|
||||
of maintaining portability and achieving platform independence.
|
||||
This is important if the code written needs to run on a variety of
|
||||
platforms. Finding the specifics of a machine and the operating
|
||||
system to configure the source of a package for successful
|
||||
compilation and working is the problem of interest here.
|
||||
|
||||
</para>
|
||||
|
||||
<para>The GNU Autotools address these issues. </para>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
@ -132,11 +166,11 @@ $Id$
|
|||
<para>
|
||||
|
||||
New versions of this document that are released would be available
|
||||
from The LDP website and its mirrors. Since a few mirrors are
|
||||
from The LDP website and its mirrors. Since a few mirrors are
|
||||
broken or not up-to-date, it is highly recommended that the latest
|
||||
released version be accessed from <ulink
|
||||
url="&howto;GNU-Build-System-HOWTO/">
|
||||
http://www.tldp.org/HOWTO/GNU-Build-System-HOWTO/</ulink>. The
|
||||
http://www.tldp.org/HOWTO/GNU-Build-System-HOWTO/</ulink>. The
|
||||
latest in-progress version of this document is available at the
|
||||
<ulink
|
||||
url="http://www.pratapgarh.com/appaji/interests/freedom-sw/gbsh.html">
|
||||
|
@ -151,12 +185,12 @@ $Id$
|
|||
|
||||
<title>Document license</title>
|
||||
|
||||
<!-- The LDP recommends, but doesn't require, the GFDL -->
|
||||
<!-- The LDP recommends, but doesn't require, the GFDL -->
|
||||
<para>
|
||||
|
||||
This document, the <emphasis>GNU-Build-System HOWTO</emphasis>, is
|
||||
distributed under the terms of the <citetitle>GNU General Public
|
||||
License</citetitle>. The word <emphasis>program</emphasis> in the
|
||||
License</citetitle>. The word <emphasis>Program</emphasis> in the
|
||||
license is to be interpreted as <emphasis>document</emphasis>.
|
||||
|
||||
</para>
|
||||
|
@ -167,7 +201,7 @@ $Id$
|
|||
modify it under the terms of the <link linkend="gnu-gpl">
|
||||
<citetitle>GNU General Public License</citetitle></link> as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version. A copy of the
|
||||
License, or (at your option) any later version. A copy of the
|
||||
license is available at <ulink
|
||||
url="http://www.gnu.org/licenses/gpl.txt">
|
||||
http://www.gnu.org/licenses/gpl.txt</ulink> and can be found in
|
||||
|
@ -194,7 +228,7 @@ $Id$
|
|||
|
||||
This program 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
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
</para>
|
||||
|
@ -217,15 +251,15 @@ $Id$
|
|||
|
||||
<title>The GBS-HOWTO at a glance</title>
|
||||
<para>
|
||||
|
||||
|
||||
The GNU Build System encompasses a vast number of components
|
||||
assisting the developer in every stage of the
|
||||
compile/configure/distribute process. Projects using the whole suite
|
||||
of the GBS are recognizable by the ease with which they are
|
||||
installed. Basically the ubiquitous "<command>./configure && make &&
|
||||
make install</command>" triplet does the trick. This HOWTO aims to
|
||||
take the reader step by step through the stages turning a set of
|
||||
source files into a "project" conforming to this GBS mantra. To be
|
||||
compile/configure/distribute process. Projects using the whole
|
||||
suite of the GBS are recognizable by the ease with which they are
|
||||
installed. Basically the ubiquitous "<command>./configure && make
|
||||
&& make install</command>" triplet does the trick. This HOWTO aims
|
||||
to take the reader step by step through the stages turning a set of
|
||||
source files into a "project" conforming to this GBS mantra. To be
|
||||
able to follow the explanations given in this HOWTO, the reader is
|
||||
expected to be familiar with the basics of using a compiler to build
|
||||
executables from source files.
|
||||
|
@ -238,31 +272,32 @@ $Id$
|
|||
through each of these components in turn using a toy example. This
|
||||
will acquaint the reader with the basic usage patterns of building
|
||||
&makefile;s to automate most if not all of a project's source code
|
||||
compilation thanks to the &make; command. This will also highlight
|
||||
compilation thanks to the &make; command. This will also highlight
|
||||
the need to rely on other tools to ensure that compilation will
|
||||
perform correctly on most flavors of Unix (including Linux of
|
||||
course). Hence, the first step is to let &autoconf; take care of
|
||||
course). Hence, the first step is to let &autoconf; take care of
|
||||
platform-specific parameters by building an appropriate
|
||||
&configure_file; script by the &autoconf; command. We'll also
|
||||
transform our &makefile; into a &makefile_in; which abstracts away
|
||||
the platform related compilation issues. Though greatly automated,
|
||||
the platform related compilation issues. Though greatly automated,
|
||||
this step still requires some tweaking, but that's what this HOWTO's
|
||||
been made for after all. The final step to build a well-behaved and
|
||||
been made for after all. The final step to build a well-behaved and
|
||||
distributable software project is to supply &make; with a set of
|
||||
standard targets and to use a set of thoroughly tested recipes to
|
||||
build them. This is where &automake; comes into play. Starting from
|
||||
a high-level description of the project's components (source files,
|
||||
binaries to be built, documentation, additional data files) found in
|
||||
a &makefile_am;, &automake; is capable of generating a suitable
|
||||
&makefile_in;. So that's it? Now we've got our GBS compliant project
|
||||
architecture, isn't it? Indeed, but our toolkit would be incomplete
|
||||
if we omitted to mention &libtool;. This last component favors the
|
||||
use of program libraries (sets of related object files grouped into
|
||||
a single archive). These libraries can the be used by all
|
||||
executables of a project, and in some cases, without being copied in
|
||||
every single executable. Ways of building these libraries vary much
|
||||
from platform to platform, but luckily, &libtool; now greatly
|
||||
simplifies this process, lifting this burden from the programmer.
|
||||
build them. This is where &automake; comes into play. Starting
|
||||
from a high-level description of the project's components (source
|
||||
files, binaries to be built, documentation, additional data files)
|
||||
found in a &makefile_am;, &automake; is capable of generating a
|
||||
suitable &makefile_in;. So that's it? Now we've got our GBS
|
||||
compliant project architecture, isn't it? Indeed, but our toolkit
|
||||
would be incomplete if we omitted to mention &libtool;. This last
|
||||
component favors the use of program libraries (sets of related
|
||||
object files grouped into a single archive). These libraries can
|
||||
the be used by all executables of a project, and in some cases,
|
||||
without being copied in every single executable. Ways of building
|
||||
these libraries vary much from platform to platform, but luckily,
|
||||
&libtool; now greatly simplifies this process, lifting this burden
|
||||
from the programmer.
|
||||
|
||||
</para>
|
||||
|
||||
|
@ -280,13 +315,13 @@ $Id$
|
|||
|
||||
To the survivors of the former section, we recommend the more
|
||||
in-depth look at the inner workings of all the GBS components
|
||||
provided in <xref linkend="inside-look"/>. Just for starters, it
|
||||
provided in <xref linkend="inside-look"/>. Just for starters, it
|
||||
describes the innards of the &make; before covering a rather
|
||||
ill-known macro programming language, <command>m4</command> upon
|
||||
which several of the GBS tools are built. It then scrutinizes
|
||||
which several of the GBS tools are built. It then scrutinizes
|
||||
&autoconf;, &automake; and &libtool; to explain their what's and
|
||||
how's.
|
||||
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -307,7 +342,7 @@ $Id$
|
|||
<para>
|
||||
|
||||
This section of the document introduces the build tools and explains
|
||||
how to use them. Though the treatment would not be in depth, it
|
||||
how to use them. Though the treatment would not be in depth, it
|
||||
should help you understand the files that these tools operate on.
|
||||
After going though this section of the HOWTO, you would be able to
|
||||
read the documents provided here as references and experiment with
|
||||
|
@ -322,26 +357,29 @@ $Id$
|
|||
<para>
|
||||
|
||||
If you are reading this document, it is possible that you already
|
||||
have prior experience with the &make; utility. However, any
|
||||
have prior experience with the &make; utility. However, any
|
||||
discussion of the build system would be incomplete without a
|
||||
mention of &make;.
|
||||
|
||||
</para>
|
||||
|
||||
<sect3 id="make-whatis">
|
||||
|
||||
<title>What is &make;</title>
|
||||
|
||||
<para>
|
||||
|
||||
&make; is a utility for automatic compilation of programs. It is
|
||||
usually used in projects to find out if the files that a certain
|
||||
<quote>target</quote> depends on have changed, and re-generates
|
||||
the target.
|
||||
|
||||
&make; is a utility for automatic compilation of programs. It
|
||||
is usually used in projects to find out if the files that a
|
||||
certain <quote>target</quote> depends on have changed, and
|
||||
re-generates the target.
|
||||
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3 id="make-example">
|
||||
|
||||
<title>&make; in action</title>
|
||||
|
||||
<para>
|
||||
|
@ -362,7 +400,7 @@ foo: foo.c
|
|||
<para>
|
||||
|
||||
The target in this &makefile; is <filename>foo</filename> and it
|
||||
depends on the <filename>foo.c</filename> dependency. The
|
||||
depends on the <filename>foo.c</filename> dependency. The
|
||||
second line tells make how to build the target in case the
|
||||
dependency changes.
|
||||
|
||||
|
@ -412,8 +450,7 @@ clean:
|
|||
<para>
|
||||
|
||||
The other target <literal>clean</literal> can be invoked
|
||||
explicitly to remove the target files that have been
|
||||
generated.
|
||||
explicitly to remove the target files that have been generated.
|
||||
|
||||
</para>
|
||||
|
||||
|
@ -427,7 +464,7 @@ rm -f hw hello.o world.o
|
|||
<para>
|
||||
|
||||
A &makefile; can also be written using variables and wild-cards
|
||||
making it easy to modify and maintain. For example, the above
|
||||
making it easy to modify and maintain. For example, the above
|
||||
&makefile; can be re-written as:
|
||||
|
||||
</para>
|
||||
|
@ -457,26 +494,24 @@ clean:
|
|||
|
||||
<para>
|
||||
|
||||
Every <literal>$(VARIABLE)</literal> in the
|
||||
&makefile; is replaced with its value. The
|
||||
generic rule <literal>%.o: %.c %.h</literal> <footnote> <para>
|
||||
In general, one source file would depend on more than one
|
||||
header file and the dependency rule is not as simple as this.
|
||||
It is infact difficult to keep track of dependencies on header
|
||||
files and their dependencies with nested includes. There are
|
||||
ways of handling this (see the manual page of
|
||||
<command>makedepend</command> on
|
||||
your Linux machine and the <option>-M</option> option to <command>gcc</command>), but using
|
||||
&automake; makes this a cake-walk. </para> </footnote> says that
|
||||
each <filename>.o</filename> file is dependent on the
|
||||
corresponding <filename>.c</filename> and the
|
||||
<filename>.h</filename> files. <literal>$@</literal> refers to
|
||||
the current target and <literal>$<</literal> refers to the
|
||||
first one among the list of dependencies of the current
|
||||
target. Note that this version of the
|
||||
&makefile; does not need a lot of
|
||||
modifications if a single source file and the corresponding
|
||||
header files are added.
|
||||
Every <literal>$(VARIABLE)</literal> in the &makefile; is
|
||||
replaced with its value. The generic rule <literal>%.o: %.c
|
||||
%.h</literal> <footnote> <para> In general, one source file
|
||||
would depend on more than one header file and the dependency
|
||||
rule is not as simple as this. It is infact difficult to keep
|
||||
track of dependencies on header files and their dependencies
|
||||
with nested includes. There are ways of handling this (see the
|
||||
manual page of <command>makedepend</command> on your Linux
|
||||
machine and the <option>-M</option> option to
|
||||
<command>gcc</command>), but using &automake; makes this a
|
||||
cake-walk. </para> </footnote> says that each
|
||||
<filename>.o</filename> file is dependent on the corresponding
|
||||
<filename>.c</filename> and the <filename>.h</filename> files.
|
||||
<literal>$@</literal> refers to the current target and
|
||||
<literal>$<</literal> refers to the first one among the list
|
||||
of dependencies of the current target. Note that this version
|
||||
of the &makefile; does not need a lot of modifications if a
|
||||
single source file and the corresponding header files are added.
|
||||
|
||||
</para>
|
||||
|
||||
|
@ -494,6 +529,7 @@ clean:
|
|||
</sect3>
|
||||
|
||||
<sect3 id="make-gnumakefile">
|
||||
|
||||
<title>A GNU &makefile;</title>
|
||||
|
||||
<para>
|
||||
|
@ -507,7 +543,9 @@ clean:
|
|||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
|
||||
<literal>all</literal>: to build the package
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -566,7 +604,7 @@ clean:
|
|||
<para>
|
||||
|
||||
Writing the dependencies and rules for these targets is a
|
||||
non-trivial task and involves some effort. &automake; solves
|
||||
non-trivial task and involves some effort. &automake; solves
|
||||
this problem by generating all the standard targets.
|
||||
|
||||
</para>
|
||||
|
@ -642,7 +680,7 @@ clean:
|
|||
<title>Accompanying tools</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
A note on <command>makedepend</command>,
|
||||
<command>autoheader</command>, <command>autoscan</command>,
|
||||
<command>ifnames</command>, <command>aclocal</command>,
|
||||
|
@ -767,7 +805,7 @@ clean:
|
|||
|
||||
Comments and suggestions regarding this document may be sent to
|
||||
<email>mark{dot}hoebeke{at}orange{dot}fr</email> and
|
||||
<email>yganag{at}users{dot}sf{dot}net</email>. Please point out
|
||||
<email>yganag{at}users{dot}sf{dot}net</email>. Please point out
|
||||
any mistakes, omissions, broken links and possible improvements so
|
||||
that they can be incorporated in future revisions of the document.
|
||||
In case you have additions and improvements that would change
|
||||
|
@ -784,7 +822,7 @@ clean:
|
|||
<title>Acknowledgements</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
The authors of this document have the pleasure of acknowledging
|
||||
the following people who have contributed to this document by
|
||||
sending in comments and suggestions for improvements.
|
||||
|
@ -792,10 +830,10 @@ clean:
|
|||
<!-- Please scramble addresses; help prevent spam/email harvesting -->
|
||||
<!--
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<listitem>
|
||||
<para>Individual 1 <email>someone1 (at) somewhere.org</email></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<listitem>
|
||||
<para>Individual 2 <email>someone2 (at) somewhere.org</email></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -816,11 +854,11 @@ clean:
|
|||
<listitem>
|
||||
<para>
|
||||
|
||||
<ulink url="http://www.st-andrews.ac.uk/~iam/docs/tutorial.html">
|
||||
<ulink
|
||||
url="http://www.st-andrews.ac.uk/~iam/docs/tutorial.html">
|
||||
Learning the GNU Development Tools</ulink> by Eleftherios
|
||||
Gkioulekas is a good tutorial to understand the GNU build
|
||||
system and the documentation files associated with GNU style
|
||||
packages.
|
||||
Gkioulekas is a good tutorial to understand the GNU build system
|
||||
and the documentation files associated with GNU style packages.
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -831,9 +869,9 @@ clean:
|
|||
The <quote>autotools</quote> referred to in the above tutorial
|
||||
can be downloaded from <ulink
|
||||
url="ftp://ftp.ugcs.caltech.edu/pub/elef/autotools">
|
||||
ftp://ftp.ugcs.caltech.edu/pub/elef/autotools</ulink>. Though
|
||||
the author seems to be planning a rewrite, it is worth taking
|
||||
a look at.
|
||||
ftp://ftp.ugcs.caltech.edu/pub/elef/autotools</ulink>. Though
|
||||
the author seems to be planning a rewrite, it is worth taking a
|
||||
look at.
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -932,10 +970,10 @@ clean:
|
|||
<para>
|
||||
|
||||
<address>
|
||||
Free Software Foundation, Inc.
|
||||
<street>59 Temple Place, Suite 330</street>,
|
||||
<city>Boston</city>,
|
||||
<state>MA</state>
|
||||
Free Software Foundation, Inc.
|
||||
<street>59 Temple Place, Suite 330</street>,
|
||||
<city>Boston</city>,
|
||||
<state>MA</state>
|
||||
<postcode>02111-1307</postcode>
|
||||
<country>USA</country>
|
||||
</address>.
|
||||
|
@ -963,21 +1001,21 @@ clean:
|
|||
<title>Preamble</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General
|
||||
freedom to share and change it. By contrast, the GNU General
|
||||
Public License is intended to guarantee your freedom to share and
|
||||
change free software - to make sure the software is free for all
|
||||
its users. This General Public License applies to most of the
|
||||
Free Software Foundation's software and to any other program whose
|
||||
authors commit to using it. (Some other Free Software Foundation
|
||||
authors commit to using it. (Some other Free Software Foundation
|
||||
software is covered by the GNU Library General Public License
|
||||
instead.) You can apply it to your programs, too.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and
|
||||
|
@ -989,21 +1027,21 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the
|
||||
rights. These restrictions translate to certain responsibilities
|
||||
rights. These restrictions translate to certain responsibilities
|
||||
for you if you distribute copies of the software, or if you modify
|
||||
it.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights
|
||||
that you have. You must make sure that they, too, receive or can
|
||||
get the source code. And you must show them these terms so they
|
||||
that you have. You must make sure that they, too, receive or can
|
||||
get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
</para>
|
||||
|
@ -1023,10 +1061,10 @@ clean:
|
|||
<listitem>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
offer you this license which gives you legal permission to
|
||||
copy, distribute and/or modify the software.
|
||||
|
||||
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
|
@ -1036,10 +1074,10 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Also, for each author's protection and ours, we want to make
|
||||
certain that everyone understands that there is no warranty for
|
||||
this free software. If the software is modified by someone else
|
||||
this free software. If the software is modified by someone else
|
||||
and passed on, we want its recipients to know that what they have
|
||||
is not the original, so that any problems introduced by others
|
||||
will not reflect on the original authors' reputations.
|
||||
|
@ -1047,18 +1085,18 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a
|
||||
free program will individually obtain patent licenses, in effect
|
||||
making the program proprietary. To prevent this, we have made it
|
||||
making the program proprietary. To prevent this, we have made it
|
||||
clear that any patent must be licensed for everyone's free use or
|
||||
not licensed at all.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
|
@ -1068,13 +1106,15 @@ clean:
|
|||
|
||||
<sect1 id="gpl-terms">
|
||||
|
||||
<title>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</title>
|
||||
<title>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
|
||||
MODIFICATION</title>
|
||||
|
||||
<sect2>
|
||||
|
||||
<title>Section 0</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be
|
||||
distributed under the terms of this General Public License. The
|
||||
|
@ -1083,20 +1123,20 @@ clean:
|
|||
Program or any derivative work under copyright law: that is to
|
||||
say, a work containing the Program or a portion of it, either
|
||||
verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without
|
||||
language. (Hereinafter, translation is included without
|
||||
limitation in the term <quote>modification </quote>.) Each
|
||||
licensee is addressed as <quote>you</quote>.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Activities other than copying, distribution and modification are
|
||||
not covered by this License; they are outside its scope. The
|
||||
act of running the Program is not restricted, and the output
|
||||
from the Program is covered only if its contents constitute a
|
||||
work based on the Program (independent of having been made by
|
||||
running the Program). Whether that is true depends on what the
|
||||
running the Program). Whether that is true depends on what the
|
||||
Program does.
|
||||
|
||||
</para>
|
||||
|
@ -1108,7 +1148,7 @@ clean:
|
|||
<title>Section 1</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an
|
||||
|
@ -1120,7 +1160,7 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You may charge a fee for the physical act of transferring a
|
||||
copy, and you may at your option offer warranty protection in
|
||||
exchange for a fee.
|
||||
|
@ -1134,7 +1174,7 @@ clean:
|
|||
<title>Section 2</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of <link
|
||||
|
@ -1146,7 +1186,7 @@ clean:
|
|||
<listitem>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You must cause the modified files to carry prominent
|
||||
notices stating that you changed the files and the date of
|
||||
any change.
|
||||
|
@ -1158,7 +1198,7 @@ clean:
|
|||
<listitem>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You must cause any work that you distribute or publish,
|
||||
that in whole or in part contains or is derived from the
|
||||
Program or any part thereof, to be licensed as a whole at
|
||||
|
@ -1172,7 +1212,7 @@ clean:
|
|||
<listitem>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
If the modified program normally reads commands
|
||||
interactively when run, you must cause it, when started
|
||||
running for such interactive use in the most ordinary way,
|
||||
|
@ -1180,7 +1220,7 @@ clean:
|
|||
copyright notice and a notice that there is no warranty (or
|
||||
else, saying that you provide a warranty) and that users may
|
||||
redistribute the program under these conditions, and telling
|
||||
the user how to view a copy of this License.
|
||||
the user how to view a copy of this License.
|
||||
|
||||
<note>
|
||||
|
||||
|
@ -1191,7 +1231,7 @@ clean:
|
|||
If the Program itself is interactive but does not
|
||||
normally print such an announcement, your work based
|
||||
on the Program is not required to print an
|
||||
announcement.)
|
||||
announcement.
|
||||
|
||||
</para>
|
||||
|
||||
|
@ -1200,18 +1240,19 @@ clean:
|
|||
</para>
|
||||
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the
|
||||
Program, and can be reasonably considered independent and
|
||||
separate works in themselves, then this License, and its terms,
|
||||
do not apply to those sections when you distribute them as
|
||||
separate works. But when you distribute the same sections as
|
||||
separate works. But when you distribute the same sections as
|
||||
part of a whole which is a work based on the Program, the
|
||||
distribution of the whole must be on the terms of this License,
|
||||
whose permissions for other licensees extend to the entire
|
||||
|
@ -1221,7 +1262,7 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or
|
||||
contest your rights to work written entirely by you; rather, the
|
||||
intent is to exercise the right to control the distribution of
|
||||
|
@ -1230,7 +1271,7 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
In addition, mere aggregation of another work not based on the
|
||||
Program with the Program (or with a work based on the Program)
|
||||
on a volume of a storage or distribution medium does not bring
|
||||
|
@ -1245,7 +1286,7 @@ clean:
|
|||
<title>Section 3</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You may copy and distribute the Program (or a work based on it,
|
||||
under <link linkend="gpl-section2">Section 2 </link> in object
|
||||
code or executable form under the terms of <link
|
||||
|
@ -1258,7 +1299,7 @@ clean:
|
|||
<listitem>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Accompany it with the complete corresponding
|
||||
machine-readable source code, which must be distributed
|
||||
under the terms of Sections 1 and 2 above on a medium
|
||||
|
@ -1271,7 +1312,7 @@ clean:
|
|||
<listitem>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Accompany it with a written offer, valid for at least
|
||||
three years, to give any third party, for a charge no more
|
||||
than your cost of physically performing source
|
||||
|
@ -1287,9 +1328,9 @@ clean:
|
|||
<listitem>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Accompany it with the information you received as to the
|
||||
offer to distribute corresponding source code. (This
|
||||
offer to distribute corresponding source code. (This
|
||||
alternative is allowed only for noncommercial distribution
|
||||
and only if you received the program in object code or
|
||||
executable form with such an offer, in accord with
|
||||
|
@ -1304,14 +1345,14 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
The source code for a work means the preferred form of the work
|
||||
for making modifications to it. For an executable work, complete
|
||||
source code means all the source code for all modules it
|
||||
contains, plus any associated interface definition files, plus
|
||||
the scripts used to control compilation and installation of the
|
||||
executable. However, as a special exception, the source code
|
||||
distributed need not include anything that is normally
|
||||
for making modifications to it. For an executable work,
|
||||
complete source code means all the source code for all modules
|
||||
it contains, plus any associated interface definition files,
|
||||
plus the scripts used to control compilation and installation of
|
||||
the executable. However, as a special exception, the source
|
||||
code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system
|
||||
on which the executable runs, unless that component itself
|
||||
|
@ -1320,7 +1361,7 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
|
@ -1336,12 +1377,12 @@ clean:
|
|||
<title>Section 4</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program
|
||||
is void, and will automatically terminate your rights under this
|
||||
License. However, parties who have received copies, or rights,
|
||||
License. However, parties who have received copies, or rights,
|
||||
from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
|
@ -1354,10 +1395,10 @@ clean:
|
|||
<title>Section 5</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify
|
||||
or distribute the Program or its derivative works. These
|
||||
signed it. However, nothing else grants you permission to
|
||||
modify or distribute the Program or its derivative works. These
|
||||
actions are prohibited by law if you do not accept this License.
|
||||
Therefore, by modifying or distributing the Program (or any work
|
||||
based on the Program), you indicate your acceptance of this
|
||||
|
@ -1373,14 +1414,14 @@ clean:
|
|||
<title>Section 6</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from
|
||||
the original licensor to copy, distribute or modify the Program
|
||||
subject to these terms and conditions. You may not impose any
|
||||
subject to these terms and conditions. You may not impose any
|
||||
further restrictions on the recipients' exercise of the rights
|
||||
granted herein. You are not responsible for enforcing compliance
|
||||
by third parties to this License.
|
||||
granted herein. You are not responsible for enforcing
|
||||
compliance by third parties to this License.
|
||||
|
||||
</para>
|
||||
|
||||
|
@ -1391,16 +1432,16 @@ clean:
|
|||
<title>Section 7</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent
|
||||
issues), conditions are imposed on you (whether by court order,
|
||||
agreement or otherwise) that contradict the conditions of this
|
||||
License, they do not excuse you from the conditions of this
|
||||
License. If you cannot distribute so as to satisfy
|
||||
License. If you cannot distribute so as to satisfy
|
||||
simultaneously your obligations under this License and any other
|
||||
pertinent obligations, then as a consequence you may not
|
||||
distribute the Program at all. For example, if a patent license
|
||||
distribute the Program at all. For example, if a patent license
|
||||
would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you,
|
||||
then the only way you could satisfy both it and this License
|
||||
|
@ -1409,7 +1450,7 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
If any portion of this section is held invalid or unenforceable
|
||||
under any particular circumstance, the balance of the section is
|
||||
intended to apply and the section as a whole is intended to
|
||||
|
@ -1418,12 +1459,12 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
It is not the purpose of this section to induce you to infringe
|
||||
any patents or other property right claims or to contest
|
||||
validity of any such claims; this section has the sole purpose
|
||||
of protecting the integrity of the free software distribution
|
||||
system, which is implemented by public license practices. Many
|
||||
system, which is implemented by public license practices. Many
|
||||
people have made generous contributions to the wide range of
|
||||
software distributed through that system in reliance on
|
||||
consistent application of that system; it is up to the
|
||||
|
@ -1434,7 +1475,7 @@ clean:
|
|||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
This section is intended to make thoroughly clear what is
|
||||
believed to be a consequence of the rest of this License.
|
||||
|
||||
|
@ -1447,13 +1488,13 @@ clean:
|
|||
<title>Section 8</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted
|
||||
interfaces, the original copyright holder who places the Program
|
||||
under this License may add an explicit geographical distribution
|
||||
limitation excluding those countries, so that distribution is
|
||||
permitted only in or among countries not thus excluded. In such
|
||||
permitted only in or among countries not thus excluded. In such
|
||||
case, this License incorporates the limitation as if written in
|
||||
the body of this License.
|
||||
|
||||
|
@ -1466,21 +1507,21 @@ clean:
|
|||
<title>Section 9</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
The Free Software Foundation may publish revised and/or new
|
||||
versions of the General Public License from time to time. Such
|
||||
versions of the General Public License from time to time. Such
|
||||
new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies a version number of this License which applies
|
||||
to it and "any later version", you have the option of following
|
||||
the terms and conditions either of that version or of any later
|
||||
version published by the Free Software Foundation. If the
|
||||
version published by the Free Software Foundation. If the
|
||||
Program does not specify a version number of this License, you
|
||||
may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
@ -1494,12 +1535,12 @@ clean:
|
|||
<title>Section 10</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to
|
||||
the author to ask for permission. For software which is
|
||||
the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free
|
||||
status of all derivatives of our free software and of promoting
|
||||
the sharing and reuse of software generally.
|
||||
|
@ -1513,15 +1554,15 @@ clean:
|
|||
<title>NO WARRANTY Section 11</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
|
||||
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
|
||||
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
|
||||
QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
|
||||
QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
|
||||
SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
|
@ -1534,7 +1575,7 @@ clean:
|
|||
<title>Section 12</title>
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
|
||||
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
|
||||
|
@ -1545,7 +1586,7 @@ clean:
|
|||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH
|
||||
ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
|
||||
</para>
|
||||
|
||||
<para>END OF TERMS AND CONDITIONS</para>
|
||||
|
@ -1580,7 +1621,7 @@ clean:
|
|||
<para>
|
||||
|
||||
<one line to give the program's name and a brief idea of what
|
||||
it does.> Copyright (C) <year> <name of author>
|
||||
it does.> Copyright © <year> <name of author>
|
||||
|
||||
</para>
|
||||
|
||||
|
@ -1688,6 +1729,9 @@ clean:
|
|||
<!--
|
||||
|
||||
$Log$
|
||||
Revision 1.9 2003/11/20 16:20:01 appaji
|
||||
Add the hello make section
|
||||
|
||||
Revision 1.8 2003/11/20 14:20:30 appaji
|
||||
Major structure re-org, Change titles of a few sections
|
||||
|
||||
|
|
Loading…
Reference in New Issue