svn commit: r50619 - in head/en_US.ISO8859-1/books/porters-handbook: . order porting-samplem
Mathieu Arnold
mat at FreeBSD.org
Wed Aug 2 12:19:42 UTC 2017
Author: mat
Date: Wed Aug 2 12:19:40 2017
New Revision: 50619
URL: https://svnweb.freebsd.org/changeset/doc/50619
Log:
Extract the "Order of Variables in Port Makefiles" into its own chapter.
Translators, the only changed things are the xml:id's.
Sponsored by: Absolight, The FreeBSD Foundation
Added:
head/en_US.ISO8859-1/books/porters-handbook/order/
head/en_US.ISO8859-1/books/porters-handbook/order/Makefile (contents, props changed)
head/en_US.ISO8859-1/books/porters-handbook/order/chapter.xml (contents, props changed)
Modified:
head/en_US.ISO8859-1/books/porters-handbook/Makefile
head/en_US.ISO8859-1/books/porters-handbook/book.xml
head/en_US.ISO8859-1/books/porters-handbook/chapters.ent
head/en_US.ISO8859-1/books/porters-handbook/porting-samplem/chapter.xml
Modified: head/en_US.ISO8859-1/books/porters-handbook/Makefile
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/Makefile Wed Aug 2 09:55:07 2017 (r50618)
+++ head/en_US.ISO8859-1/books/porters-handbook/Makefile Wed Aug 2 12:19:40 2017 (r50619)
@@ -33,6 +33,7 @@ SRCS+= upgrading/chapter.xml
SRCS+= security/chapter.xml
SRCS+= porting-dads/chapter.xml
SRCS+= porting-samplem/chapter.xml
+SRCS+= order/chapter.xml
SRCS+= keeping-up/chapter.xml
SRCS+= uses/chapter.xml
SRCS+= versions/chapter.xml
Modified: head/en_US.ISO8859-1/books/porters-handbook/book.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/book.xml Wed Aug 2 09:55:07 2017 (r50618)
+++ head/en_US.ISO8859-1/books/porters-handbook/book.xml Wed Aug 2 12:19:40 2017 (r50619)
@@ -77,6 +77,7 @@
&chap.security;
&chap.porting-dads;
&chap.porting-samplem;
+ &chap.order;
&chap.keeping-up;
&chap.uses;
&chap.versions;
Modified: head/en_US.ISO8859-1/books/porters-handbook/chapters.ent
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/chapters.ent Wed Aug 2 09:55:07 2017 (r50618)
+++ head/en_US.ISO8859-1/books/porters-handbook/chapters.ent Wed Aug 2 12:19:40 2017 (r50619)
@@ -23,6 +23,7 @@
<!ENTITY chap.security SYSTEM "security/chapter.xml">
<!ENTITY chap.porting-dads SYSTEM "porting-dads/chapter.xml">
<!ENTITY chap.porting-samplem SYSTEM "porting-samplem/chapter.xml">
+<!ENTITY chap.order SYSTEM "order/chapter.xml">
<!ENTITY chap.keeping-up SYSTEM "keeping-up/chapter.xml">
<!ENTITY chap.uses SYSTEM "uses/chapter.xml">
<!ENTITY chap.versions SYSTEM "versions/chapter.xml">
Added: head/en_US.ISO8859-1/books/porters-handbook/order/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/en_US.ISO8859-1/books/porters-handbook/order/Makefile Wed Aug 2 12:19:40 2017 (r50619)
@@ -0,0 +1,15 @@
+#
+# Build the Porters Handbook with just the content from this chapter.
+#
+# $FreeBSD$
+#
+
+CHAPTERS= order/chapter.xml
+
+VPATH= ..
+
+MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
+
+DOC_PREFIX?= ${.CURDIR}/../../../..
+
+.include "../Makefile"
Added: head/en_US.ISO8859-1/books/porters-handbook/order/chapter.xml
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/en_US.ISO8859-1/books/porters-handbook/order/chapter.xml Wed Aug 2 12:19:40 2017 (r50619)
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!--
+ The FreeBSD Documentation Project
+
+ $FreeBSD$
+-->
+
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
+ xml:id="porting-order">
+
+ <title>Order of Variables in Port Makefiles</title>
+
+ <para>The first sections of the <filename>Makefile</filename>
+ must always come in the same order. This standard makes it so
+ everyone can easily read any port without having to search for
+ variables in a random order.</para>
+
+ <para>The first line of a <filename>Makefile</filename> is always
+ a comment containing the <application>Subversion</application>
+ version control ID, followed by an empty line. In new ports, it
+ looks like this:</para>
+
+ <programlisting># $FreeBSD$
+ </programlisting>
+
+ <para>In existing ports, <application>Subversion</application>
+ has expanded it to look like this:</para>
+
+ <programlisting># $FreeBSD: head/ports-mgmt/pkg/Makefile 437007 2017-03-26 21:25:47Z bapt $
+ </programlisting>
+
+ <note>
+ <para>The sections and variables described here are mandatory in
+ a ordinary port. In a slave port, many sections variables and
+ can be skipped.</para>
+ </note>
+
+ <important>
+ <para>Each following block must be separated from the previous
+ block by a single blank line.</para>
+
+ <para>In the following blocks, only set the variables that are
+ required by the port. Define these variables in the order
+ they are shown here.</para>
+ </important>
+
+ <sect1 xml:id="porting-order-portname">
+ <title><varname>PORTNAME</varname> Block</title>
+
+ <para>This block is the most important. It defines the port
+ name, version, distribution file location, and category. The
+ variables must be in this order:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link
+ linkend="makefile-portname"><varname>PORTNAME</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-portname"><varname>PORTVERSION</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-distversion"><varname>DISTVERSIONPREFIX</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-distversion"><varname>DISTVERSION</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-distversion"><varname>DISTVERSIONSUFFIX</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-portrevision"><varname>PORTREVISION</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-portepoch"><varname>PORTEPOCH</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-categories"><varname>CATEGORIES</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-master_sites"><varname>MASTER_SITES</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-master_sites-shorthand"><varname>MASTER_SITE_SUBDIR</varname></link>
+ (deprecated)</para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="porting-pkgnameprefix-suffix"><varname>PKGNAMEPREFIX</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="porting-pkgnameprefix-suffix"><varname>PKGNAMESUFFIX</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-distversion"><varname>DISTNAME</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-extract_sufx"><varname>EXTRACT_SUFX</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-distfiles-definition"><varname>DISTFILES</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-dist_subdir"><varname>DIST_SUBDIR</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-extract_only"><varname>EXTRACT_ONLY</varname></link></para>
+ </listitem>
+ </itemizedlist>
+
+ <important>
+ <para>Only one of <varname>PORTVERSION</varname> and
+ <varname>DISTVERSION</varname> can be used.</para>
+ </important>
+ </sect1>
+
+ <sect1 xml:id="porting-order-patch">
+ <title><varname>PATCHFILES</varname> Block</title>
+
+ <para>This block is optional. The variables are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link
+ linkend="porting-patchfiles"><varname>PATCH_SITES</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="porting-patchfiles"><varname>PATCHFILES</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="porting-patchfiles"><varname>PATCH_DIST_STRIP</varname></link></para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="porting-order-maintainer">
+ <title><varname>MAINTAINER</varname> Block</title>
+
+ <para>This block is mandatory. The variables are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link
+ linkend="makefile-maintainer"><varname>MAINTAINER</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-comment"><varname>COMMENT</varname></link></para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="porting-order-license">
+ <title><varname>LICENSE</varname> Block</title>
+
+ <para>This block is optional, although it is highly recommended.
+ The variables are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link
+ linkend="licenses-license"><varname>LICENSE</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="licenses-license_comb"><varname>LICENSE_COMB</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="licenses-license_groups"><varname>LICENSE_GROUPS</varname></link>
+ or
+ <varname>LICENSE_GROUPS_<replaceable>NAME</replaceable></varname></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="licenses-license_name"><varname>LICENSE_NAME</varname></link>
+ or
+ <varname>LICENSE_NAME_<replaceable>NAME</replaceable></varname></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="licenses-license_text"><varname>LICENSE_TEXT</varname></link>
+ or
+ <varname>LICENSE_TEXT_<replaceable>NAME</replaceable></varname></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="licenses-license_file"><varname>LICENSE_FILE</varname></link>
+ or
+ <varname>LICENSE_FILE_<replaceable>NAME</replaceable></varname></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="licenses-license_perms"><varname>LICENSE_PERMS</varname></link>
+ or
+ <varname>LICENSE_PERMS_<replaceable>NAME</replaceable></varname></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="licenses-license_distfiles"><varname>LICENSE_DISTFILES</varname></link>
+ or
+ <varname>LICENSE_DISTFILES_<replaceable>NAME</replaceable></varname></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>If there are multiple licenses, sort the different
+ LICENSE_<replaceable>VAR</replaceable>_<replaceable>NAME</replaceable>
+ variables by license name.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-order-broken">
+ <title>Generic
+ <varname>BROKEN</varname>/<varname>IGNORE</varname>/<varname>DEPRECATED</varname>
+ Messages</title>
+
+ <para>This block is optional. The variables are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link
+ linkend="dads-deprecated">DEPRECATED</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="dads-deprecated">EXPIRATION_DATE</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">FORBIDDEN</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">BROKEN</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">BROKEN_<replaceable>*</replaceable></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">IGNORE</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">IGNORE_<replaceable>*</replaceable></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">ONLY_FOR_ARCHS</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">ONLY_FOR_ARCHS_REASON<replaceable>*</replaceable></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">NOT_FOR_ARCHS</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="dads-noinstall">NOT_FOR_ARCHS_REASON<replaceable>*</replaceable></link></para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para><varname>BROKEN<replaceable>*</replaceable></varname>
+ and <varname>IGNORE<replaceable>*</replaceable></varname>
+ can be any generic variables, for example,
+ <varname>IGNORE_amd64</varname>,
+ <varname>BROKEN_FreeBSD_10</varname>,
+ <varname>BROKEN_SSL</varname>, etc.</para>
+
+ <para>If the port is marked BROKEN when some conditions are
+ met, and such conditions can only be tested after including
+ <filename>bsd.port.options.mk</filename> or
+ <filename>bsd.port.pre.mk</filename>, then those variables
+ should be set later, in <xref
+ linkend="porting-order-rest"/>.</para>
+ </note>
+ </sect1>
+
+ <sect1 xml:id="porting-order-depends">
+ <title>The Dependencies Block</title>
+
+ <para>This block is optional. The variables are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link
+ linkend="makefile-fetch_depends"><varname>FETCH_DEPENDS</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-extract_depends"><varname>EXTRACT_DEPENDS</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-patch_depends"><varname>PATCH_DEPENDS</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-build_depends"><varname>BUILD_DEPENDS</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-lib_depends"><varname>LIB_DEPENDS</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <para><link
+ linkend="makefile-run_depends"><varname>RUN_DEPENDS</varname></link></para>
+ </listitem>
+
+ <listitem>
+ <!-- FIXME: write a section about tests -->
+ <para><varname>TEST_DEPENDS</varname></para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 xml:id="porting-order-uses">
+ <title><varname>USES</varname> and
+ <varname>USE_<replaceable>x</replaceable></varname></title>
+
+ <para>Start this section with defining <varname>USES</varname>,
+ and then possible
+ <varname>USE_<replaceable>x</replaceable></varname>.</para>
+
+ <para>Keep related variables close together. For example, if
+ using <link
+ linkend="makefile-master_sites-github"><varname>USE_GITHUB</varname></link>,
+ always put the
+ <varname>GH_<replaceable>*</replaceable></varname> variables
+ right after it.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-order-variables">
+ <title>Standard <filename>bsd.port.mk</filename> Variables</title>
+
+ <para>This section block is for variables that can be defined in
+ <filename>bsd.port.mk</filename> that do not belong in any
+ of the previous section blocks.</para>
+
+ <para>Order is not important, however try to keep similar variables together.
+ For example uid and gid variables <varname>USERS</varname> and <varname>GROUPS</varname>.
+ Configuration variables <varname>CONFIGURE_<replaceable>*</replaceable></varname> and
+ <varname><replaceable>*</replaceable>_CONFIGURE</varname>. List of files, and directories
+ <varname>PORTDOCS</varname> and <varname>PORTEXAMPLES</varname>.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-order-options">
+ <title>Options</title>
+
+ <para>If the port uses the <link
+ linkend="makefile-options">options framework</link>, define
+ <varname>OPTIONS_DEFINE</varname> and
+ <varname>OPTIONS_DEFAULT</varname> first, then the other
+ <varname>OPTIONS_<replaceable>*</replaceable></varname>
+ variables first, then the
+ <varname><replaceable>*</replaceable>_DESC</varname>
+ descriptions, then the options helpers. Try and sort all of
+ those alphabetically.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-order-rest">
+ <title>The Rest of the Variables</title>
+
+ <para>And then, the rest of the variables that are not
+ mentioned in the previous blocks.</para>
+ </sect1>
+
+ <sect1 xml:id="porting-order-targets">
+ <title>The Targets</title>
+
+ <para>After all the variables are defined, the optional
+ &man.make.1; targets can be defined. Keep
+ <literal>pre-<replaceable>*</replaceable></literal> before
+ <literal>post-<replaceable>*</replaceable></literal> and in
+ the same order as the different stages run:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><varname>fetch</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>extract</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>patch</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>configure</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>build</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>install</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>test</varname></para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+</chapter>
Modified: head/en_US.ISO8859-1/books/porters-handbook/porting-samplem/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/porting-samplem/chapter.xml Wed Aug 2 09:55:07 2017 (r50618)
+++ head/en_US.ISO8859-1/books/porters-handbook/porting-samplem/chapter.xml Wed Aug 2 12:19:40 2017 (r50619)
@@ -112,455 +112,4 @@ pre-install:
[and then the epilogue]
.include <bsd.port.mk></programlisting>
-
- <sect1 xml:id="porting-samplem-order">
- <title>Order of Variables in Port Makefiles</title>
-
- <para>The first sections of the <filename>Makefile</filename>
- must always come in the same order. This standard makes it so
- everyone can easily read any port without having to search for
- variables in a random order.</para>
-
- <para>The first line of a <filename>Makefile</filename> is always
- a comment containing the <application>Subversion</application>
- version control ID, followed by an empty line. In new ports, it
- looks like this:</para>
-
- <programlisting># $FreeBSD$
- </programlisting>
-
- <para>In existing ports, <application>Subversion</application>
- has expanded it to look like this:</para>
-
- <programlisting># $FreeBSD: head/ports-mgmt/pkg/Makefile 437007 2017-03-26 21:25:47Z bapt $
- </programlisting>
-
- <note>
- <para>The sections and variables described here are mandatory in
- a ordinary port. In a slave port, many sections variables and
- can be skipped.</para>
- </note>
-
- <important>
- <para>Each following block must be separated from the previous
- block by a single blank line.</para>
-
- <para>In the following blocks, only set the variables that are
- required by the port. Define these variables in the order
- they are shown here.</para>
- </important>
-
- <sect2 xml:id="porting-samplem-portname">
- <title><varname>PORTNAME</varname> Block</title>
-
- <para>This block is the most important. It defines the port
- name, version, distribution file location, and category. The
- variables must be in this order:</para>
-
- <itemizedlist>
- <listitem>
- <para><link
- linkend="makefile-portname"><varname>PORTNAME</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-portname"><varname>PORTVERSION</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-distversion"><varname>DISTVERSIONPREFIX</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-distversion"><varname>DISTVERSION</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-distversion"><varname>DISTVERSIONSUFFIX</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-portrevision"><varname>PORTREVISION</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-portepoch"><varname>PORTEPOCH</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-categories"><varname>CATEGORIES</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-master_sites"><varname>MASTER_SITES</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-master_sites-shorthand"><varname>MASTER_SITE_SUBDIR</varname></link>
- (deprecated)</para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="porting-pkgnameprefix-suffix"><varname>PKGNAMEPREFIX</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="porting-pkgnameprefix-suffix"><varname>PKGNAMESUFFIX</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-distversion"><varname>DISTNAME</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-extract_sufx"><varname>EXTRACT_SUFX</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-distfiles-definition"><varname>DISTFILES</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-dist_subdir"><varname>DIST_SUBDIR</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-extract_only"><varname>EXTRACT_ONLY</varname></link></para>
- </listitem>
- </itemizedlist>
-
- <important>
- <para>Only one of <varname>PORTVERSION</varname> and
- <varname>DISTVERSION</varname> can be used.</para>
- </important>
- </sect2>
-
- <sect2 xml:id="porting-samplem-patch">
- <title><varname>PATCHFILES</varname> Block</title>
-
- <para>This block is optional. The variables are:</para>
-
- <itemizedlist>
- <listitem>
- <para><link
- linkend="porting-patchfiles"><varname>PATCH_SITES</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="porting-patchfiles"><varname>PATCHFILES</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="porting-patchfiles"><varname>PATCH_DIST_STRIP</varname></link></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="porting-samplem-maintainer">
- <title><varname>MAINTAINER</varname> Block</title>
-
- <para>This block is mandatory. The variables are:</para>
-
- <itemizedlist>
- <listitem>
- <para><link
- linkend="makefile-maintainer"><varname>MAINTAINER</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-comment"><varname>COMMENT</varname></link></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="porting-samplem-license">
- <title><varname>LICENSE</varname> Block</title>
-
- <para>This block is optional, although it is highly recommended.
- The variables are:</para>
-
- <itemizedlist>
- <listitem>
- <para><link
- linkend="licenses-license"><varname>LICENSE</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="licenses-license_comb"><varname>LICENSE_COMB</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="licenses-license_groups"><varname>LICENSE_GROUPS</varname></link>
- or
- <varname>LICENSE_GROUPS_<replaceable>NAME</replaceable></varname></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="licenses-license_name"><varname>LICENSE_NAME</varname></link>
- or
- <varname>LICENSE_NAME_<replaceable>NAME</replaceable></varname></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="licenses-license_text"><varname>LICENSE_TEXT</varname></link>
- or
- <varname>LICENSE_TEXT_<replaceable>NAME</replaceable></varname></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="licenses-license_file"><varname>LICENSE_FILE</varname></link>
- or
- <varname>LICENSE_FILE_<replaceable>NAME</replaceable></varname></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="licenses-license_perms"><varname>LICENSE_PERMS</varname></link>
- or
- <varname>LICENSE_PERMS_<replaceable>NAME</replaceable></varname></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="licenses-license_distfiles"><varname>LICENSE_DISTFILES</varname></link>
- or
- <varname>LICENSE_DISTFILES_<replaceable>NAME</replaceable></varname></para>
- </listitem>
- </itemizedlist>
-
- <para>If there are multiple licenses, sort the different
- LICENSE_<replaceable>VAR</replaceable>_<replaceable>NAME</replaceable>
- variables by license name.</para>
- </sect2>
-
- <sect2 xml:id="porting-samplem-broken">
- <title>Generic
- <varname>BROKEN</varname>/<varname>IGNORE</varname>/<varname>DEPRECATED</varname>
- Messages</title>
-
- <para>This block is optional. The variables are:</para>
-
- <itemizedlist>
- <listitem>
- <para><link
- linkend="dads-deprecated">DEPRECATED</link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="dads-deprecated">EXPIRATION_DATE</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">FORBIDDEN</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">BROKEN</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">BROKEN_<replaceable>*</replaceable></link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">IGNORE</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">IGNORE_<replaceable>*</replaceable></link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">ONLY_FOR_ARCHS</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">ONLY_FOR_ARCHS_REASON<replaceable>*</replaceable></link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">NOT_FOR_ARCHS</link></para>
- </listitem>
-
- <listitem>
- <para><link linkend="dads-noinstall">NOT_FOR_ARCHS_REASON<replaceable>*</replaceable></link></para>
- </listitem>
- </itemizedlist>
-
- <note>
- <para><varname>BROKEN<replaceable>*</replaceable></varname>
- and <varname>IGNORE<replaceable>*</replaceable></varname>
- can be any generic variables, for example,
- <varname>IGNORE_amd64</varname>,
- <varname>BROKEN_FreeBSD_10</varname>,
- <varname>BROKEN_SSL</varname>, etc.</para>
-
- <para>If the port is marked BROKEN when some conditions are
- met, and such conditions can only be tested after including
- <filename>bsd.port.options.mk</filename> or
- <filename>bsd.port.pre.mk</filename>, then those variables
- should be set later, in <xref
- linkend="porting-samplem-rest"/>.</para>
- </note>
- </sect2>
-
- <sect2 xml:id="porting-samplem-depends">
- <title>The Dependencies Block</title>
-
- <para>This block is optional. The variables are:</para>
-
- <itemizedlist>
- <listitem>
- <para><link
- linkend="makefile-fetch_depends"><varname>FETCH_DEPENDS</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-extract_depends"><varname>EXTRACT_DEPENDS</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-patch_depends"><varname>PATCH_DEPENDS</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-build_depends"><varname>BUILD_DEPENDS</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-lib_depends"><varname>LIB_DEPENDS</varname></link></para>
- </listitem>
-
- <listitem>
- <para><link
- linkend="makefile-run_depends"><varname>RUN_DEPENDS</varname></link></para>
- </listitem>
-
- <listitem>
- <!-- FIXME: write a section about tests -->
- <para><varname>TEST_DEPENDS</varname></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="porting-samplem-uses">
- <title><varname>USES</varname> and
- <varname>USE_<replaceable>x</replaceable></varname></title>
-
- <para>Start this section with defining <varname>USES</varname>,
- and then possible
- <varname>USE_<replaceable>x</replaceable></varname>.</para>
-
- <para>Keep related variables close together. For example, if
- using <link
- linkend="makefile-master_sites-github"><varname>USE_GITHUB</varname></link>,
- always put the
- <varname>GH_<replaceable>*</replaceable></varname> variables
- right after it.</para>
- </sect2>
-
- <sect2 xml:id="porting-samplem-variables">
- <title>Standard <filename>bsd.port.mk</filename> Variables</title>
-
- <para>This section block is for variables that can be defined in
- <filename>bsd.port.mk</filename> that do not belong in any
- of the previous section blocks.</para>
-
- <para>Order is not important, however try to keep similar variables together.
- For example uid and gid variables <varname>USERS</varname> and <varname>GROUPS</varname>.
- Configuration variables <varname>CONFIGURE_<replaceable>*</replaceable></varname> and
- <varname><replaceable>*</replaceable>_CONFIGURE</varname>. List of files, and directories
- <varname>PORTDOCS</varname> and <varname>PORTEXAMPLES</varname>.</para>
- </sect2>
-
- <sect2 xml:id="porting-samplem-options">
- <title>Options</title>
-
- <para>If the port uses the <link
- linkend="makefile-options">options framework</link>, define
- <varname>OPTIONS_DEFINE</varname> and
- <varname>OPTIONS_DEFAULT</varname> first, then the other
- <varname>OPTIONS_<replaceable>*</replaceable></varname>
- variables first, then the
- <varname><replaceable>*</replaceable>_DESC</varname>
- descriptions, then the options helpers. Try and sort all of
- those alphabetically.</para>
- </sect2>
-
- <sect2 xml:id="porting-samplem-rest">
- <title>The Rest of the Variables</title>
-
- <para>And then, the rest of the variables that are not
- mentioned in the previous blocks.</para>
- </sect2>
-
- <sect2 xml:id="porting-samplem-targets">
- <title>The Targets</title>
-
- <para>After all the variables are defined, the optional
- &man.make.1; targets can be defined. Keep
- <literal>pre-<replaceable>*</replaceable></literal> before
- <literal>post-<replaceable>*</replaceable></literal> and in
- the same order as the different stages run:</para>
-
- <itemizedlist>
- <listitem>
- <para><varname>fetch</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>extract</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>patch</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>configure</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>build</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>install</varname></para>
- </listitem>
-
- <listitem>
- <para><varname>test</varname></para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
</chapter>
More information about the svn-doc-head
mailing list