Initial import, synchronized with English 1.14

Obtained from: The FreeBSD Russian Documentation Project
This commit is contained in:
Andrey Zakhvatov 2005-05-05 10:43:09 +00:00
parent d241105fcf
commit 1efa689517
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=24458

View file

@ -0,0 +1,502 @@
<!--
The FreeBSD Russian Documentation Project
$FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/fdp-primer/doc-build/chapter.sgml,v 1.4 2004/03/22 01:47:32 phantom Exp $
Original revision: 1.14
-->
<!-- Copyright (c) 1999 Neil Blakey-Milner, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
(SGML HTML, PDF, PostScript, RTF and so forth) with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code (SGML DocBook) must retain the above
copyright notice, this list of conditions and the following
disclaimer as the first lines of this file unmodified.
2. Redistributions in compiled form (transformed to other DTDs,
converted to PDF, PostScript, RTF and other formats) must reproduce
the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-->
<chapter id="doc-build">
<title>ðÒÏÃÅÓÓ ÐÏÓÔÒÏÅÎÉÑ ÄÏËÕÍÅÎÔÁÃÉÉ</title>
<para>çÌÁ×ÎÁÑ ÃÅÌØ ÜÔÏÊ ÇÌÁ×Ù ÚÁËÌÀÞÁÅÔÓÑ × ÞÅÔËÏÍ ÏÐÉÓÁÎÉÉ ÔÏÇÏ,
<emphasis>ËÁË ÏÒÇÁÎÉÚÏ×ÁÎ ÐÒÏÃÅÓÓ ÐÏÓÔÒÏÅÎÉÑ ÄÏËÕÍÅÎÔÁÃÉÉ</emphasis>, Á
ÔÁËÖÅ <emphasis>ËÁË ×ÎÅÓÔÉ ÉÚÍÅÎÅÎÉÑ × ÜÔÏÔ ÐÒÏÃÅÓÓ</emphasis>.</para>
<para>ðÏÓÌÅ ÞÔÅÎÉÑ ÜÔÏÊ ÇÌÁ×Ù ×Ù ÄÏÌÖÎÙ:</para>
<itemizedlist>
<listitem>
<para>úÎÁÔØ, ÞÔÏ ÎÕÖÎÏ ÄÌÑ ÐÏÓÔÒÏÅÎÉÑ ÄÏËÕÍÅÎÔÁÃÉÉ FDP, ËÒÏÍÅ ÔÏÇÏ, ÞÔÏ
ÏÐÉÓÁÎÏ × <link linkend="tools">ÇÌÁ×Å Ï ÉÎÓÔÒÕÍÅÎÔÁÈ ÄÌÑ ÒÁÂÏÔÙ Ó
SGML</link>.</para>
</listitem>
<listitem>
<para>õÍÅÔØ ÞÉÔÁÔØ É ÐÏÎÉÍÁÔØ <application>make</application>-ÉÎÓÔÒÕËÃÉÉ,
ËÏÔÏÒÙÅ ÐÒÉÓÕÔÓÔ×ÕÀÔ × ÆÁÊÌÁÈ <filename>Makefile</filename> ËÁÖÄÏÇÏ
ÄÏËÕÍÅÎÔÁ, Á ÔÁËÖÅ ÉÍÅÔØ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ Ï ×ËÌÀÞÁÅÍÙÈ ÏÐÅÒÁÃÉÑÈ ÉÚ
<filename>doc.project.mk</filename>.</para>
</listitem>
<listitem>
<para>õÍÅÔØ ÎÁÓÔÒÁÉ×ÁÔØ ÐÒÏÃÅÓÓ ÐÏÓÔÒÏÅÎÉÑ ÐÒÉ ÐÏÍÏÝÉ
<application>make</application>-ÐÅÒÅÍÅÎÎÙÈ É ÃÅÌÅÊ
<application>make</application>.</para>
</listitem>
</itemizedlist>
<sect1 id="doc-build-toolset">
<title>îÁÂÏÒ ÉÎÓÔÒÕÍÅÎÔÏ× ÄÌÑ ÐÏÓÔÒÏÅÎÉÑ ÄÏËÕÍÅÎÔÁÃÉÉ FreeBSD</title>
<para>÷ÏÔ ×ÁÛÉ ÉÎÓÔÒÕÍÅÎÔÙ. éÓÐÏÌØÚÕÊÔÅ ÉÈ ÌÀÂÙÍ ÄÏÓÔÕÐÎÙÍ ×ÁÍ
ÓÐÏÓÏÂÏÍ.</para>
<itemizedlist>
<listitem>
<para>ïÓÎÏ×ÎÙÍ ÉÎÓÔÒÕÍÅÎÔÏÍ ÐÏÓÔÒÏÅÎÉÑ, ËÏÔÏÒÙÊ ×ÁÍ ÐÏÎÁÄÏÂÉÔÓÑ,
Ñ×ÌÑÅÔÓÑ <application>make</application>, É ËÏÎËÒÅÔÎÏ
<application>Berkeley Make</application>.</para>
</listitem>
<listitem>
<para>ðÏÓÔÒÏÅÎÉÅ ÐÁËÁÄÖÁ ×ÙÐÏÌÎÑÅÔÓÑ ÕÔÉÌÉÔÏÊ FreeBSD
<application>pkg_create</application>. åÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ
FreeBSD, ×Ù ÌÉÂÏ ÏÂÈÏÄÉÔÅÓØ ÂÅÚ ÐÁËÁÄÖÅÊ, ÌÉÂÏ ËÏÍÐÉÌÉÒÕÅÔÅ ÉÓÈÏÄÎÙÅ
ÔÅËÓÔÙ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ.</para>
</listitem>
<listitem>
<para><application>gzip</application> ÎÕÖÅÎ ÄÌÑ ÓÏÚÄÁÎÉÑ
ËÏÍÐÒÅÓÓÉÒÏ×ÁÎÎÙÈ ×ÅÒÓÉÊ ÄÏËÕÍÅÎÔÁ. ëÏÍÐÒÅÓÓÉÑ
<application>bzip2</application> É ÁÒÈÉ×Ù
<application>zip</application> ÔÁËÖÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ.
<application>tar</application> ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ, ÎÏ ÏÎ ÔÒÅÂÕÅÔÓÑ ÐÒÉ
ÐÏÓÔÒÏÅÎÉÉ ÐÁËÁÄÖÁ.</para>
</listitem>
<listitem>
<para><application>install</application> Ñ×ÌÑÅÔÓÑ ÍÅÔÏÄÏÍ, ÉÓÐÏÌØÚÕÅÍÙÍ
ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÄÏËÕÍÅÎÔÁÃÉÉ. ïÄÎÁËÏ ÅÓÔØ É
ÁÌØÔÅÒÎÁÔÉ×Ù.</para>
</listitem>
</itemizedlist>
<note>
<para>óÏÍÎÉÔÅÌØÎÏ, ÞÔÏ ×Ù ÎÅ ÓÍÏÖÅÔÅ ÎÁÊÔÉ ÐÏÓÌÅÄÎÉÅ ÕÔÉÌÉÔÙ, ÏÎÉ
ÏÔÍÅÞÅÎÙ ÄÌÑ ÐÏÌÎÏÔÙ.</para>
</note>
</sect1>
<sect1 id="doc-build-makefiles">
<title>ðÏÎÉÍÁÎÉÅ make-ÆÁÊÌÏ× × ÄÅÒÅ×Å ÄÏËÕÍÅÎÔÁÃÉÉ</title>
<para>÷ ÄÅÒÅ×Å ðÒÏÅËÔÁ äÏËÕÍÅÎÔÉÒÏ×ÁÎÉÑ FreeBSD ÉÍÅÅÔÓÑ ÔÒÉ ÏÓÎÏ×ÎÙÈ ÔÉÐÁ
ÆÁÊÌÏ× <filename>Makefile</filename>.</para>
<itemizedlist>
<listitem>
<para><link linkend="sub-make"><filename>Makefile</filename> ×
ÐÏÄËÁÔÁÌÏÇÅ</link> ÐÒÏÓÔÏ ÐÅÒÅÄÁÅÔ ËÏÍÁÎÄÙ ×Ï ×ÌÏÖÅÎÎÙÅ ËÁÔÁÌÏÇÉ.</para>
</listitem>
<listitem>
<para><link linkend="doc-make"><filename>Makefile</filename> ÄÌÑ
ÄÏËÕÍÅÎÔÁÃÉÉ</link> ÏÐÉÓÙ×ÁÅÔ ÄÏËÕÍÅÎÔ ÉÌÉ ÄÏËÕÍÅÎÔÙ, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÂÙÔØ
ÐÏÌÕÞÅÎÙ ÉÚ ÜÔÏÇÏ ËÁÔÁÌÏÇÁ.</para>
</listitem>
<listitem>
<para><link linkend="make-includes">÷ËÌÀÞÁÅÍÙÅ
<application>make</application>-ÆÁÊÌÙ</link> Ñ×ÌÑÀÔÓÑ ÔÅÍ ËÌÅÅÍ, ÞÔÏ
×ÙÐÏÌÎÑÅÔ ÐÏÓÔÒÏÅÎÉÅ ÄÏËÕÍÅÎÔÁÃÉÉ, É ÏÂÙÞÎÏ ÐÒÅÄÓÔÁ×ÌÅÎÙ × ×ÉÄÅ
ÆÁÊÌÏ×
<filename>doc.<replaceable>xxx</replaceable>.mk</filename>.</para>
</listitem>
</itemizedlist>
<sect2 id="sub-make">
<title>Make-ÆÁÊÌÙ × ÐÏÄËÁÔÁÌÏÇÅ</title>
<para>üÔÉ <filename>Makefile</filename> ÏÂÙÞÎÏ ÉÍÅÀÔ ÔÁËÏÊ ×ÉÄ:</para>
<programlisting>SUBDIR =articles
SUBDIR+=books
COMPAT_SYMLINK = en
DOC_PREFIX?= ${.CURDIR}/..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"</programlisting>
<para>ïÂÚÏÒÎÏ, ÐÅÒ×ÙÅ ÞÅÔÙÒÅ ÎÅÐÕÓÔÙÅ ÓÔÒÏÞËÉ ÚÁÄÁÀÔ
<application>make</application>-ÐÅÒÅÍÅÎÎÙÅ, <makevar>SUBDIR</makevar>,
<makevar>COMPAT_SYMLINK</makevar> É
<makevar>DOC_PREFIX</makevar>.</para>
<para>ðÅÒ×ÁÑ ÄÅËÌÁÒÁÃÉÑ <makevar>SUBDIR</makevar>, ËÁË É
<makevar>COMPAT_SYMLINK</makevar>, ÐÏËÁÚÙ×ÁÅÔ, ËÁË ÐÒÉÓ×ÁÉ×ÁÔØ ÚÎÁÞÅÎÉÅ
ÐÅÒÅÍÅÎÎÏÊ, ÐÅÒÅÏÐÒÅÄÅÌÑÑ ×ÓÅ ÒÁÎÅÅ ÏÐÒÅÄÅÌÅÎÎÙÅ ÚÎÁÞÅÎÉÑ.</para>
<para>÷ÔÏÒÁÑ ÉÎÓÔÒÕËÃÉÑ <makevar>SUBDIR</makevar> ÐÏËÁÚÙ×ÁÅÔ, ËÁË
ÚÎÁÞÅÎÉÅ ÄÏÂÁ×ÌÑÅÔÓÑ Ë ÔÅËÕÝÅÍÕ ÚÎÁÞÅÎÉÀ ÐÅÒÅÍÅÎÎÏÊ. úÎÁÞÅÎÉÅ
ÐÅÒÅÍÅÎÎÏÊ <makevar>SUBDIR</makevar> ÔÅÐÅÒØ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ
<literal>articles books</literal>.</para>
<para>ðÒÉÓ×ÏÅÎÉÅ <makevar>DOC_PREFIX</makevar> ÐÏËÁÚÙ×ÁÅÔ, ËÁË ÚÎÁÞÅÎÉÅ
ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÐÅÒÅÍÅÎÎÏÊ, ÎÏ ÔÏÌØËÏ ÅÓÌÉ ÏÎÏ ÅÝÅ ÎÅ ÏÐÒÅÄÅÌÅÎÏ. üÔÏ
ÐÏÌÅÚÎÏ, ÅÓÌÉ <makevar>DOC_PREFIX</makevar> ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÔÏÍÕ, ÞÔÏ
ÐÏÌÁÇÁÅÔ Ï ÜÔÏÍ <filename>Makefile</filename> - ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ
ÐÅÒÅÏÐÒÅÄÅÌÉÔØ ÜÔÏ ÚÎÁÞÅÎÉÅ É ÄÁÔØ ÐÒÁ×ÉÌØÎÏÅ ÚÎÁÞÅÎÉÅ.</para>
<para>ôÁË ÞÔÏ ×ÓÅ ÜÔÏ ÚÎÁÞÉÔ? <makevar>SUBDIR</makevar> ÏÐÒÅÄÅÌÑÅÔ,
× ËÁËÉÅ ×ÌÏÖÅÎÎÙÅ ÐÏÄËÁÔÁÌÏÇÉ ÄÏÌÖÎÁ ÂÙÔØ ÐÅÒÅÄÁÎÁ ÒÁÂÏÔÁ ÐÏ
ÐÏÓÔÒÏÅÎÉÀ.</para>
<para><makevar>COMPAT_SYMLINK</makevar> ËÁÓÁÅÔÓÑ ÉÓËÌÀÞÉÔÅÌØÎÏ
ÓÉÍ×ÏÌÉÞÅÓËÉÈ ÓÓÙÌÏË ÄÌÑ ÄÏÓÔÉÖÅÎÉÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ (ÄÏÓÔÁÔÏÞÎÏ
ÕÄÉ×ÉÔÅÌØÎÏ) ÑÚÙËÏ× Ó ÉÈ ÏÆÉÃÉÁÌØÎÏÊ ËÏÄÉÒÏ×ËÏÊ
(<filename>doc/en</filename> ÄÏÌÖÎÁ ÕËÁÚÙ×ÁÔØ ÎÁ
<filename>en_US.ISO-8859-1</filename>).</para>
<para><makevar>DOC_PREFIX</makevar> Ñ×ÌÑÅÔÓÑ ÍÁÒÛÒÕÔÏÍ Ë ËÏÒÎÀ ÄÅÒÅ×Á
ðÒÏÅËÔÁ äÏËÕÍÅÎÔÉÒÏ×ÁÎÉÑ FreeBSD. åÇÏ ÎÅ ×ÓÅÇÄÁ ÌÅÇËÏ ÎÁÊÔÉ É ÌÅÇËÏ
ÐÅÒÅÏÐÒÅÄÅÌÉÔØ ÄÌÑ ÄÏÓÔÉÖÅÎÉÑ ÇÉÂËÏÓÔÉ. <makevar>.CURDIR</makevar>
Ñ×ÌÑÅÔÓÑ ×ÓÔÒÏÅÎÎÏÊ <application>make</application>-ÐÅÒÅÍÅÎÎÏÊ,
ÈÒÁÎÑÝÅÊ ÐÕÔØ Ë ÔÅËÕÝÅÍÕ ËÁÔÁÌÏÇÕ.</para>
<para>÷ ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ ×ËÌÀÞÁÅÔÓÑ ÓÉÓÔÅÍÎÙÊ
<application>make</application>-ÆÁÊÌ
<filename>doc.project.mk</filename> ðÒÏÅËÔÁ äÏËÕÍÅÎÔÉÒÏ×ÁÎÉÑ FreeBSD,
ÄÏÓÔÕÐÎÙÊ ×ÓÅÍ ÐÒÏÅËÔÁÍ, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ Ó×ÑÚÕÀÝÉÍ Ú×ÅÎÏÍ,
ÐÒÅÏÂÒÁÚÕÀÝÉÍ ÜÔÉ ÐÅÒÅÍÅÎÎÙÅ ×Ï ×ÓÔÒÏÅÎÎÙÅ ÉÎÓÔÒÕËÃÉÉ.</para>
</sect2>
<sect2 id="doc-make">
<title>Make-ÆÁÊÌÙ ÄÌÑ ÄÏËÕÍÅÎÔÁÃÉÉ</title>
<para>üÔÉ <filename>make</filename>-ÆÁÊÌÙ ÚÁÄÁÀÔ ÎÁÂÏÒ
<application>make</application>-ÐÅÒÅÍÅÎÎÙÈ, ËÏÔÏÒÙÅ ÏÐÉÓÙ×ÁÀÔ, ËÁË
ÐÏÓÔÒÏÉÔØ ÄÏËÕÍÅÎÔÁÃÉÀ, ÒÁÓÐÏÌÏÖÅÎÎÕÀ × ÜÔÏÍ ËÁÔÁÌÏÇÅ.</para>
<para>÷ÏÔ ÐÒÉÍÅÒ:</para>
<programlisting>MAINTAINER=nik@FreeBSD.org
DOC?= book
FORMATS?= html-split html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS= book.sgml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk"</programlisting>
<para>ðÅÒÅÍÅÎÎÁÑ <makevar>MAINTAINER</makevar> ÏÞÅÎØ ×ÁÖÎÁ. üÔÁ
ÐÅÒÅÍÅÎÎÁÑ ÄÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ ÕËÁÚÁÔØ ×ÌÁÄÅÌØÃÁ ÄÏËÕÍÅÎÔÁ × ðÒÏÅËÔÅ
äÏËÕÍÅÎÔÉÒÏ×ÁÎÉÑ FreeBSD, ËÏÇÄÁ ×Ù ÓÔÁÎÏ×ÉÔÅÓØ ÏÔ×ÅÔÓÔ×ÅÎÎÙÍ ÚÁ ÅÇÏ
ÐÏÄÄÅÒÖËÕ.</para>
<para><makevar>DOC</makevar> Ñ×ÌÑÅÔÓÑ ÉÍÅÎÅÍ (ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ ÒÁÓÛÉÒÅÎÉÅ
<filename>.sgml</filename>) ÇÌÁ×ÎÏÇÏ ÄÏËÕÍÅÎÔÁ, ÓÏÚÄÁ×ÁÅÍÏÇÏ × ÜÔÏÍ
ËÁÔÁÌÏÇÅ. ÷ <makevar>SRCS</makevar> ÐÅÒÅÞÉÓÌÑÀÔÓÑ ×ÓÅ ÏÔÄÅÌØÎÙÅ ÆÁÊÌÙ,
ËÏÔÏÒÙÅ ÓÏÓÔÁ×ÌÑÀÔ ÄÏËÕÍÅÎÔ. óÀÄÁ ÔÁËÖÅ ÄÏÌÖÎÙ ÂÙÔØ ×ËÌÀÞÅÎÙ ×ÁÖÎÙÅ
ÆÁÊÌÙ, ÉÚÍÅÎÅÎÉÅ ËÏÔÏÒÙÈ ÄÏÌÖÎÏ ÐÒÉ×ÏÄÉÔØ Ë ÐÅÒÅÓÔÒÏÅÎÉÀ.</para>
<para><makevar>FORMATS</makevar> ÕËÁÚÙ×ÁÅÔ ÉÓÐÏÌØÚÕÅÍÙÅ ÐÏ ÕÍÏÌÞÁÎÉÀ
ÆÏÒÍÁÔÙ, ËÏÔÏÒÙÅ ÐÒÉÍÅÎÑÀÔÓÑ ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ ÜÔÏÇÏ ÄÏËÕÍÅÎÔÁ.
<makevar>INSTALL_COMPRESSED</makevar> Ñ×ÌÑÅÔÓÑ ÓÐÉÓËÏÍ ÍÅÔÏÄÏ×
ËÏÍÐÒÅÓÓÉÉ, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ ÄÏËÕÍÅÎÔÁ.
<makevar>INSTALL_ONLY_COMPRESS</makevar>, ÐÕÓÔÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÄÏÌÖÎÁ
ÂÙÔØ ÎÅÐÕÓÔÏÊ, ÅÓÌÉ ÔÒÅÂÕÅÔÓÑ ÐÏÓÔÒÏÉÔØ ÔÏÌØËÏ ÓËÏÍÐÒÅÓÓÉÒÏ×ÁÎÎÙÅ
ÄÏËÕÍÅÎÔÙ.</para>
<note>
<para>îÁÚÎÁÞÅÎÉÅ ÏÐÃÉÏÎÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ ÏÂÓÕÖÄÁÅÔÓÑ ×
<link linkend="sub-make">ÐÒÅÄÙÄÕÝÅÍ ÒÁÚÄÅÌÅ</link>.</para>
</note>
<para>ðÅÒÅÍÅÎÎÁÑ <makevar>DOC_PREFIX</makevar> Õ ×ËÌÀÞÁÀÝÉÅ ÄÉÒÅËÔÉ×Ù
ÄÏÌÖÎÙ ÂÙÔØ ×ÁÍ ÕÖÅ ÉÚ×ÅÓÔÎÙ.</para>
</sect2>
</sect1>
<sect1 id="make-includes">
<title>÷ËÌÀÞÁÅÍÙÅ make-ÆÁÊÌÙ ðÒÏÅËÔÁ äÏËÕÍÅÎÔÉÒÏ×ÁÎÉÑ FreeBSD</title>
<para>ìÕÞÛÅ ×ÓÅÇÏ ÜÔÏ ÏÐÉÓÙ×ÁÅÔÓÑ ÐÒÉ ÏÂÓÕÖÄÅÎÉÉ ËÏÄÁ. ÷ÏÔ ÓÉÓÔÅÍÎÙÅ
×ËÌÀÞÁÅÍÙÅ ÆÁÊÌÙ:</para>
<itemizedlist>
<listitem>
<para><filename>doc.project.mk</filename> Ñ×ÌÑÅÔÓÑ ÇÌÁ×ÎÙÍ ×ËÌÀÞÁÅÍÙÍ
ÆÁÊÌÏÍ ÐÒÏÅËÔÁ, ËÏÔÏÒÙÊ ×ËÌÀÞÁÅÔ ×ÓÅ ÏÓÔÁÌØÎÙÅ ×ËÌÀÞÁÅÍÙÅ ÆÁÊÌÙ, ÐÏ
ÍÅÒÅ ÎÅÏÂÈÏÄÉÍÏÓÔÉ.</para>
</listitem>
<listitem>
<para><filename>doc.subdir.mk</filename> ÏÂÒÁÂÁÔÙ×ÁÅÔ ÐÒÏÈÏÖÄÅÎÉÅ ÐÏ
ÄÅÒÅ×Õ ÄÏËÕÍÅÎÔÏ× × ÐÒÏÃÅÓÓÅ ÐÏÓÔÒÏÅÎÉÑ É ÕÓÔÁÎÏ×ËÉ.</para>
</listitem>
<listitem>
<para><filename>doc.install.mk</filename> ÓÏÄÅÒÖÉÔ ÐÅÒÅÍÅÎÎÙÅ, ËÏÔÏÒÙÅ
ÏÔÒÁÖÁÀÔÓÑ ÎÁ ÐÒÁ×ÁÈ ÄÏÓÔÕÐÁ É ÕÓÔÁÎÏ×ËÅ ÄÏËÕÍÅÎÔÏ×.</para>
</listitem>
<listitem>
<para><filename>doc.docbook.mk</filename> ×ËÌÀÞÁÅÔÓÑ, ÅÓÌÉ ÚÎÁÞÅÎÉÅÍ
ÐÅÒÅÍÅÎÎÏÊ <makevar>DOCFORMAT</makevar> Ñ×ÌÑÅÔÓÑ
<literal>docbook</literal> É ÕÓÔÁÎÏ×ÌÅÎÁ ÐÅÒÅÍÅÎÎÁÑ
<makevar>DOC</makevar>.</para>
</listitem>
</itemizedlist>
<sect2>
<title>doc.project.mk</title>
<para>òÁÓÓÍÏÔÒÉÍ ÐÒÉÍÅÒ:</para>
<programlisting>DOCFORMAT?= docbook
MAINTAINER?= doc@FreeBSD.org
PREFIX?= /usr/local
PRI_LANG?= en_US.ISO8859-1
.if defined(DOC)
.if ${DOCFORMAT} == "docbook"
.include "doc.docbook.mk"
.endif
.endif
.include "doc.subdir.mk"
.include "doc.install.mk"</programlisting>
<sect3>
<title>ðÅÒÅÍÅÎÎÙÅ</title>
<para>ðÅÒÅÍÅÎÎÙÍ <makevar>DOCFORMAT</makevar> É
<makevar>MAINTAINER</makevar> ÚÁÄÁÎÙ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÅÓÌÉ ÏÎÉ
ÎÅ ÕÓÔÁÎÏ×ÌÅÎÙ × make-ÆÁÊÌÅ ÄÏËÕÍÅÎÔÁ.</para>
<para><makevar>PREFIX</makevar> Ñ×ÌÑÅÔÓÑ ËÁÔÁÌÏÇÏÍ, ÐÏÄ ËÏÔÏÒÙÍ
ÕÓÔÁÎÏ×ÌÅÎÙ <link linkend="tools">ÉÎÓÔÒÕÍÅÎÔÙ ÄÌÑ ÐÏÓÔÒÏÅÎÉÑ
ÄÏËÕÍÅÎÔÁÃÉÉ</link>. ðÒÉ ÏÂÙÞÎÏÊ ÕÓÔÁÎÏ×ËÅ ÐÏÒÔÏ× É ÐÁËÁÄÖÅÊ ÜÔÏ
<filename>/usr/local</filename>.</para>
<para><makevar>PRI_LANG</makevar> ÄÏÌÖÎÁ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎÁ × ÚÎÁÞÅÎÉÅ,
ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÅ ÑÚÙËÕ É ËÏÄÉÒÏ×ËÅ, Ñ×ÌÑÀÝÅÊÓÑ ÅÓÔÅÓÔ×ÅÎÎÏÊ ÄÌÑ ÔÅÈ
ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ËÏÍÕ ÐÒÅÄÎÁÚÎÁÞÅÎÁ ÄÏËÕÍÅÎÔÁÃÉÑ. ðÏ ÕÍÏÌÞÁÎÉÀ ÜÔÏ
US English.</para>
<note>
<para><makevar>PRI_LANG</makevar> ÎÅ ×ÌÉÑÅÔ ÎÁ ÔÏ, ËÁËÉÅ ÄÏËÕÍÅÎÔÙ
ÍÏÇÕÔ ÉÌÉ ÂÕÄÕÔ ÓÔÒÏÉÔØÓÑ. åÅ ÏÓÎÏ×ÎÏÅ ÎÁÚÎÁÞÅÎÉÅ - ÓÏÚÄÁÎÉÅ
ÓÓÙÌÏË ÎÁ ÞÁÓÔÏ ÕÐÏÍÉÎÁÅÍÙÅ ÄÏËÕÍÅÎÔÙ × ËÏÒÎÅ ÕÓÔÁÎÏ×ËÉ
ÄÏËÕÍÅÎÔÁÃÉÉ FreeBSD.</para>
</note>
</sect3>
<sect3>
<title>õÓÌÏ×ÉÑ</title>
<para>óÔÒÏËÁ <literal>.if defined(DOC)</literal> Ñ×ÌÑÅÔÓÑ ÐÒÉÍÅÒÏÍ
<application>make</application>-ÕÓÌÏ×ÉÑ, ËÏÔÏÒÏÅ, ËÁË É × ÄÒÕÇÉÈ
ÐÒÏÇÒÁÍÍÁÈ, ÏÐÒÅÄÅÌÑÅÔ ÄÁÌØÎÅÊÛÉÅ ÄÅÊÓÔ×ÉÑ, ÅÓÌÉ ËÁËÏÅ-ÔÏ ÕÓÌÏ×ÉÅ
×ÙÐÏÌÎÑÅÔÓÑ ÉÌÉ ÎÅÔ. <literal>defined</literal> Ñ×ÌÑÅÔÓÑ ÆÕÎËÃÉÅÊ,
ËÏÔÏÒÁÑ ×ÏÚ×ÒÁÝÁÅÔ ÉÎÆÏÒÍÁÃÉÀ Ï ÔÏÍ, ÏÐÒÅÄÅÌÅÎÁ ÄÁÎÎÁÑ ÐÅÒÅÍÅÎÎÁÑ ÉÌÉ
ÎÅÔ.</para>
<para>úÁÔÅÍ <literal>.if ${DOCFORMAT} == "docbook"</literal> ÐÒÏ×ÅÒÑÅÔ,
Ñ×ÌÑÅÔÓÑ ÌÉ ÚÎÁÞÅÎÉÅÍ ÐÅÒÅÍÅÎÎÏÊ <makevar>DOCFORMAT</makevar>
<literal>"docbook"</literal>, É × ÜÔÏÍ ÓÌÕÞÁÅ ×ËÌÀÞÁÅÔÓÑ ÆÁÊÌ
<filename>doc.docbook.mk</filename>.</para>
<para>ä×Å ÓÔÒÏËÉ <literal>.endif</literal> ÚÁËÒÙ×ÁÀÔ Ä×Á ×ÙÛÅÓÔÏÑÝÉÈ
ÕÓÌÏ×ÉÑ, ÏÔÍÅÞÁÑ ËÏÎÅà ÉÈ ÄÅÊÓÔ×ÉÑ.</para>
</sect3>
</sect2>
<sect2>
<title>doc.subdir.mk</title>
<para>üÔÏÔ ÆÁÊÌ ÓÌÉÛËÏÍ ÄÏÌÇÏ ÏÐÉÓÙ×ÁÔØ ÎÁ ÐÒÉÍÅÒÁÈ, ×Ù ÓÍÏÖÅÔÅ
ÒÁÚÏÂÒÁÔØÓÑ Ó ÎÉÍ ÓÁÍÉ ÎÁ ÏÓÎÏ×Å ÚÎÁÎÉÊ, ÐÏÌÕÞÅÎÎÙÈ ÉÚ ÐÒÅÄÙÄÕÝÉÈ ÇÌÁ×
É ÎÅËÏÔÏÒÏÊ ×ÓÐÏÍÏÇÁÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ, ÄÁÀÝÅÊÓÑ ÚÄÅÓØ.</para>
<sect3>
<title>ðÅÒÅÍÅÎÎÙÅ</title>
<itemizedlist>
<listitem>
<para><makevar>SUBDIR</makevar> ÐÒÅÄÓÔÁ×ÌÑÅÔ ÉÚ ÓÅÂÑ ÓÐÉÓÏË
ÐÏÄËÁÔÁÌÏÇÏ×, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÂÙÔØ ÏÈ×ÁÞÅÎÙ ÐÒÏÃÅÓÓÏÍ
ÐÏÓÔÒÏÅÎÉÑ.</para>
</listitem>
<listitem>
<para><makevar>ROOT_SYMLINKS</makevar> Ñ×ÌÑÅÔÓÑ ÉÍÅÎÁÍÉ ËÁÔÁÌÏÇÏ×,
ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÕËÁÚÙ×ÁÔØ ÎÁ ËÏÒÅÎØ ÕÓÔÁÎÏ×ËÉ ÄÏËÕÍÅÎÔÁ
ÏÔ ÉÈ ÄÅÊÓÔ×ÉÔÅÌØÎÙÈ ÐÏÌÏÖÅÎÉÊ, ÅÓÌÉ ÔÅËÕÝÉÊ ÑÚÙË Ñ×ÌÑÅÔÓÑ
ÏÓÎÏ×ÎÙÍ (ÞÔÏ ÚÁÄÁÅÔÓÑ ÐÅÒÅÍÅÎÎÏÊ
<makevar>PRI_LANG</makevar>).</para>
</listitem>
<listitem>
<para><makevar>COMPAT_SYMLINK</makevar> ÏÐÉÓÁÎÏ × ÒÁÚÄÅÌÅ Ï
<link linkend="sub-make">make-ÆÁÊÌÅ ÐÏÄËÁÔÁÌÏÇÁ</link>.</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>ãÅÌÉ É ÍÁËÒÏÓÙ</title>
<para>úÁ×ÉÓÉÍÏÓÔÉ ÏÐÉÓÙ×ÁÀÔÓÑ ÐÁÒÁÍÉ
<literal><replaceable>target</replaceable>:
<replaceable>dependency1 dependency2 ...</replaceable></literal>, É
ËÏÇÄÁ ×ÁÍ ÎÕÖÎÏ ÐÏÓÔÒÏÉÔØ <literal>target</literal>, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ
ÓÎÁÞÁÌÁ ÐÏÓÔÒÏÉÔØ ÓÐÉÓÏË ÚÁ×ÉÓÉÍÏÓÔÅÊ.</para>
<para>ðÏÓÌÅ ÏÐÉÓÁÔÅÌØÎÏÊ ÐÁÒÙ ÍÏÇÕÔ ÓÌÅÄÏ×ÁÔØ ÉÎÓÔÒÕËÃÉÉ Ï ÔÏÍ, ËÁË
ÐÏÓÔÒÏÉÔØ ÃÅÌØ, ÅÓÌÉ ÐÒÏÃÅÓÓ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÃÅÌÉ Ë ÚÁ×ÉÓÉÍÏÓÔÑÍ ÒÁÎÅÅ
ÎÅ ÂÙÌ ÏÐÒÅÄÅÌÅÎ, ÉÌÉ ÅÓÌÉ ÜÔÏ ËÏÎËÒÅÔÎÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÎÅ ÓÏ×ÐÁÄÁÅÔ
Ó ÐÒÉÍÅÎÑÅÍÙÍ ÐÏ ÕÍÏÌÞÁÎÉÀ ÍÅÔÏÄÏÍ.</para>
<para>ïÓÏÂÁÑ ÚÁ×ÉÓÉÍÏÓÔØ <literal>.USE</literal> ÚÁÄÁÅÔ ÜË×É×ÁÌÅÎÔ
ÍÁËÒÏÓÁ.</para>
<programlisting>_SUBDIRUSE: .USE
.for entry in ${SUBDIR}
@${ECHO} "===> ${DIRPRFX}${entry}"
@(cd ${.CURDIR}/${entry} && \
${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ )
.endfor</programlisting>
<para>÷ ×ÙÛÅÐÒÉ×ÅÄÅÎÎÏÍ ÆÒÁÇÍÅÎÔÅ <maketarget>_SUBDIRUSE</maketarget>
ÔÅÐÅÒØ Ñ×ÌÑÅÔÓÑ ÍÁËÒÏÓÏÍ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ×ÙÐÏÌÎÑÔØ ÚÁÄÁÎÎÙÅ ËÏÍÁÎÄÙ,
ÅÓÌÉ ÚÁÄÁÎ × ÓÐÉÓËÅ ÚÁ×ÉÓÉÍÏÓÔÅÊ.</para>
<para>þÔÏ ÏÔÌÉÞÁÅÔ ÜÔÏÔ ÍÁËÒÏÓ ÏÔ ÄÒÕÇÉÈ ÃÅÌÅÊ? ÷ ÏÓÎÏ×ÎÏÍ ÔÏ, ÞÔÏ
ÏÎ ×ÙÐÏÌÎÑÅÔÓÑ <emphasis>ÐÏÓÌÅ</emphasis> ÉÎÓÔÒÕËÃÉÊ, ÄÁÎÎÙÈ ×
ÐÒÏÃÅÄÕÒÅ ÐÏÓÔÒÏÅÎÉÑ, × ËÁÞÅÓÔ×Å ÚÁ×ÉÓÉÍÏÓÔÉ ÄÌÑ ËÏÔÏÒÏÊ ÏÎ
ÐÅÒÅÞÉÓÌÅÎ, É ÜÔÏ ÎÅ ×ÌÉÑÅÔ ÎÁ <makevar>.TARGET</makevar>, ËÏÔÏÒÁÑ
Ñ×ÌÑÅÔÓÑ ÐÅÒÅÍÅÎÎÏÊ, ÓÏÄÅÒÖÁÝÅÊ ÎÁÚ×ÁÎÉÅ ÔÅËÕÝÅÊ ×ÙÐÏÌÎÑÅÍÏÊ
ÃÅÌÉ.</para>
<programlisting>clean: _SUBDIRUSE
rm -f ${CLEANFILES}</programlisting>
<para>÷ ×ÙÛÅÐÒÉ×ÅÄÅÎÎÏÍ ÆÒÁÇÍÅÎÔÅ <maketarget>clean</maketarget> ÂÕÄÅÔ
ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁËÒÏÓ <maketarget>_SUBDIRUSE</maketarget> ÐÏÓÌÅ ÔÏÇÏ,
ËÁË ×ÙÐÏÌÎÉÔ ÉÎÓÔÒÕËÃÉÀ <command>rm -f ${CLEANFILES}</command>. ÷
ÒÅÚÕÌØÔÁÔÅ ÜÔÏ ÐÒÉ×ÅÄÅÔ Ë ÔÏÍÕ, ÞÔÏ <maketarget>clean</maketarget>
ÂÕÄÅÔ ÕÇÌÕÂÌÑÔØÓÑ ÐÏ ÄÅÒÅ×Õ ËÁÔÁÌÏÇÏ×, ÕÄÁÌÑÑ ÆÁÊÌÙ ÐÏÓÌÅ ÐÅÒÅÈÏÄÁ
<emphasis>ÎÉÖÅ</emphasis>, Á ÎÅ ÎÁ ÐÕÔÉ ÎÁÚÁÄ.</para>
<sect4>
<title>ðÒÅÄÏÐÒÅÄÅÌÅÎÎÙÅ ÃÅÌÉ</title>
<itemizedlist>
<listitem>
<para>ãÅÌÉ <maketarget>install</maketarget> É
<maketarget>package</maketarget> ÏÂÅ ÐÅÒÅÈÏÄÑÔ ×ÎÉÚ ÐÏ ÄÅÒÅ×Õ
ËÁÔÁÌÏÇÏ×, ×ÙÚÙ×ÁÑ ÓÏÂÓÔ×ÅÎÎÙÅ ×ÙÐÏÌÎÑÀÝÉÅ ÒÅÁÌØÎÕÀ ÒÁÂÏÔÕ
×ÅÒÓÉÉ × ÐÏÄËÁÔÁÌÏÇÁÈ. (<maketarget>realinstall</maketarget>
É <maketarget>realpackage</maketarget> ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ)</para>
</listitem>
<listitem>
<para><maketarget>clean</maketarget> ÕÄÁÌÑÅÔ ÆÁÊÌÙ, ÓÏÚÄÁÎÎÙÅ ×
ÐÒÏÃÅÓÓÅ ÐÏÓÔÒÏÅÎÉÑ (É ÔÏÖÅ ÐÅÒÅÈÏÄÉÔ ×ÎÉÚ ÐÏ ÄÅÒÅ×Õ
ËÁÔÁÌÏÇÏ×). <maketarget>cleandir</maketarget> ÄÅÌÁÅÔ ÔÏ ÖÅ
ÓÁÍÏÅ É ÔÁËÖÅ ÕÄÁÌÑÅÔ ËÁÔÁÌÏÇ, ÅÓÌÉ ÏÎ ÅÓÔØ.</para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3>
<title>ðÏÄÒÏÂÎÏÓÔÉ Ï ÕÓÌÏ×ÉÑÈ</title>
<itemizedlist>
<listitem>
<para><literal>exists</literal> Ñ×ÌÑÅÔÓÑ ÅÝÅ ÏÄÎÏÊ ÆÕÎËÃÉÅÊ
ÕÓÌÏ×ÉÑ, ËÏÔÏÒÁÑ ×ÏÚ×ÒÁÝÁÅÔ ÉÓÔÉÎÕ, ÅÓÌÉ ÕËÁÚÁÎÎÙÊ ÆÁÊÌ
ÓÕÝÅÓÔ×ÕÅÔ.</para>
</listitem>
<listitem>
<para><literal>empty</literal> ×ÏÚ×ÒÁÝÁÅÔ ÉÓÔÉÎÕ, ÅÓÌÉ ÄÁÎÎÁÑ
ÐÅÒÅÍÅÎÎÁÑ ÉÍÅÅÔ ÐÕÓÔÏÅ ÚÎÁÞÅÎÉÅ.</para>
</listitem>
<listitem>
<para><literal>target</literal> ×ÏÚ×ÒÁÝÁÅÔ ÉÓÔÉÎÕ, ÅÓÌÉ ÕËÁÚÁÎÎÁÑ
ÃÅÌØ ÅÝÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ.</para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>ãÉËÌÙ × make (.for)</title>
<para><literal>.for</literal> ÄÁÅÔ ÓÐÏÓÏ ÐÏ×ÔÏÒÉÔØ ÎÁÂÏÒ ÉÎÓÔÒÕËÃÉÊ
ÄÌÑ ËÁÖÄÏÇÏ ÜÌÅÍÅÎÔÁ ÓÐÉÓËÁ, ÚÁÄÁÎÎÏÇÏ × ÐÅÒÅÍÅÎÎÏÊ ÞÅÒÅÚ ÐÒÏÂÅÌ. ïÎ
ÄÅÌÁÅÔ ÜÔÏ, ÐÒÉÓ×ÁÉ×ÁÑ ÐÅÒÅÍÅÎÎÏÊ ÚÎÁÞÅÎÉÅ ÔÅËÕÝÅÇÏ ÜÌÅÍÅÎÔÁ
ÐÅÒÅÂÉÒÁÅÍÏÇÏ ÓÐÉÓËÁ.</para>
<programlisting>_SUBDIRUSE: .USE
.for entry in ${SUBDIR}
@${ECHO} "===> ${DIRPRFX}${entry}"
@(cd ${.CURDIR}/${entry} && \
${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ )
.endfor</programlisting>
<para>÷ ÐÒÉÍÅÒÅ ×ÙÛÅ ÅÓÌÉ ÐÅÒÅÍÅÎÎÁÑ <makevar>SUBDIR</makevar> ÐÕÓÔÁ,
ÔÏ ÎÅ ÐÒÅÄÐÒÉÎÉÍÁÅÔÓÑ ÎÉËÁËÉÈ ÄÅÊÓÔ×ÉÊ; ÅÓÌÉ ÏÎÁ ÓÏÓÔÏÉÔ ÉÚ ÏÄÎÏÇÏ
ÉÌÉ ÂÏÌÅÅ ÜÌÅÍÅÎÔÏ×, ÔÏ ÉÎÓÔÒÕËÃÉÉ ÍÅÖÄÕ <literal>.for</literal> É
<literal>.endfor</literal> ÂÕÄÕÔ ÐÏ×ÔÏÒÅÎÙ ÄÌÑ ËÁÖÄÏÇÏ ÜÌÅÍÅÎÔÁ,
ÐÒÉÞÅÍ <makevar>entry</makevar> ÂÕÄÅÔ ÚÁÍÅÎÅÎÁ ÚÎÁÞÅÎÉÅÍ ÔÅËÕÝÅÇÏ
ÜÌÅÍÅÎÔÁ.</para>
</sect3>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->