Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Aug 2017 12:19:40 +0000 (UTC)
From:      Mathieu Arnold <mat@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r50619 - in head/en_US.ISO8859-1/books/porters-handbook: . order porting-samplem
Message-ID:  <201708021219.v72CJeOg010172@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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># &dollar;FreeBSD&dollar;
+&nbsp;</programlisting>
+
+  <para>In existing ports, <application>Subversion</application>
+    has expanded it to look like this:</para>
+
+  <programlisting># &dollar;FreeBSD: head/ports-mgmt/pkg/Makefile 437007 2017-03-26 21:25:47Z bapt &dollar;
+&nbsp;</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 &lt;bsd.port.mk&gt;</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># &dollar;FreeBSD&dollar;
-&nbsp;</programlisting>
-
-    <para>In existing ports, <application>Subversion</application>
-      has expanded it to look like this:</para>
-
-    <programlisting># &dollar;FreeBSD: head/ports-mgmt/pkg/Makefile 437007 2017-03-26 21:25:47Z bapt &dollar;
-&nbsp;</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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708021219.v72CJeOg010172>