Date: Fri, 7 Mar 2014 18:48:03 +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: r44184 - head/en_US.ISO8859-1/books/porters-handbook/special Message-ID: <201403071848.s27Im3RV089992@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mat (ports committer) Date: Fri Mar 7 18:48:03 2014 New Revision: 44184 URL: http://svnweb.freebsd.org/changeset/doc/44184 Log: Update the autotools bits. Draft by: tijl Sponsored by: Absolight Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml Fri Mar 7 18:38:41 2014 (r44183) +++ head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml Fri Mar 7 18:48:03 2014 (r44184) @@ -649,67 +649,45 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subp Within the Ports Collection, an individual port can make use of these tools via a simple construct:</para> - <programlisting>USE_AUTOTOOLS= <replaceable>tool</replaceable>:<replaceable>version</replaceable>[:<replaceable>operation</replaceable>] ...</programlisting> + <programlisting>USE_AUTOTOOLS= <replaceable>tool</replaceable>[:env] ...</programlisting> <para>At the time of writing, <replaceable>tool</replaceable> - can be one of <literal>libtool</literal>, - <literal>libltdl</literal>, <literal>autoconf</literal>, - <literal>autoheader</literal>, <literal>automake</literal> - or <literal>aclocal</literal>.</para> - - <para><replaceable>version</replaceable> specifies the - particular tool revision to be used (see - <literal>devel/{automake,autoconf,libtool}[0-9]+</literal> - for valid versions).</para> - - <para><replaceable>operation</replaceable> is an optional - extension to modify how the tool is used.</para> + can be one of <literal>autoconf</literal>, + <literal>autoheader</literal>, <literal>automake</literal>, + <literal>aclocal</literal>, <literal>libtool</literal> + (deprecated), <literal>libtoolize</literal>, + <literal>libltdl</literal>. It can also be one the older + legacy of <literal>autoconf213</literal>, + <literal>autoheader213</literal>, + <literal>automake14</literal>, + <literal>aclocal14</literal>.</para> + + <para><replaceable>env</replaceable> is used to specify that the + environmental variables are needed. It also adds a build + dependency on the tool. The relevant tool is + <emphasis>not</emphasis> ran as part of the + <buildtarget>run-autotools</buildtarget> target.</para> <para>Multiple tools can be specified at once, either by including them all on a single line, or using the <literal>+=</literal> Makefile construct.</para> - - <para>Finally, there is the special tool, called - <literal>autotools</literal>, which is a convenience - function to bring in all available versions of the autotools - to allow for cross-development work. This can also be - accomplished by installing the - <literal>devel/autotools</literal> port.</para> </sect2> <sect2 xml:id="using-libtool"> <title><command>libtool</command></title> - <para>Shared libraries using the GNU building framework - usually use <command>libtool</command> to adjust the - compilation and installation of shared libraries to match - the specifics of the underlying operating system. The usual - practice is to use copy of <command>libtool</command> - bundled with the application. In case you need to use - external <command>libtool</command>, you can use the version - provided by The Ports Collection:</para> - - <programlisting>USE_AUTOTOOLS= libtool:<replaceable>version</replaceable>[:env]</programlisting> - - <para>With no additional operations, - <literal>libtool:version</literal> - tells the building framework to patch the configure script - with the system-installed copy of - <command>libtool</command>. The - <varname>GNU_CONFIGURE</varname> is implied. Further, a - number of make and shell variables will be assigned for - onward use by the port. See - <filename>bsd.autotools.mk</filename> for details.</para> - - <para>With the <literal>:env</literal> operation, only the - environment will be set up.</para> - - <para>Finally, <varname>LIBTOOLFLAGS</varname> and - <varname>LIBTOOLFILES</varname> can be optionally set to - override the most likely arguments to, and files patched by, - <command>libtool</command>. Most ports are unlikely to need - this. See <filename>bsd.autotools.mk</filename> for further - details.</para> + <para>The use of <literal>USE_AUTOTOOLS=libtool</literal> is + deprecated. Now all ports that ship with their own copy of + libtool (search for a file named ltmain.sh) need to have + <literal>USES=libtool</literal>. Also, if a port has + <literal>USE_AUTOTOOLS=libtoolize</literal> it probably also + needs <literal>USES=libtool</literal>.</para> + + <para>Some ports do not ship with their own copy of libtool and + expect libtool to be provided by the build system. In that + case simply add:</para> + + <programlisting>BUILD_DEPENDS= libtool:${PORTSDIR}/devel/libtool.</programlisting> </sect2> <sect2 xml:id="using-libltdl"> @@ -722,7 +700,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subp <command>libtool</command> itself, so a separate construct is provided.</para> - <programlisting>USE_AUTOTOOLS= libltdl:<replaceable>version</replaceable></programlisting> + <programlisting>USE_AUTOTOOLS= libltdl</programlisting> <para>Currently, all this does is to bring in a <varname>LIB_DEPENDS</varname> on the appropriate @@ -745,27 +723,22 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subp <command>autoheader</command> create template headers for use by the configure script.</para> - <programlisting>USE_AUTOTOOLS= autoconf:<replaceable>version</replaceable>[:env]</programlisting> + <programlisting>USE_AUTOTOOLS= autoconf[:env]</programlisting> <para>and</para> - <programlisting>USE_AUTOTOOLS= autoheader:<replaceable>version</replaceable></programlisting> + <programlisting>USE_AUTOTOOLS= autoheader</programlisting> <para>which also implies the use of - <literal>autoconf:version</literal>.</para> - - <para>Similarly to <command>libtool</command>, the inclusion - of the optional <literal>:env</literal> operation simply - sets up the environment for further use. Without it, - patching and reconfiguration of the port is carried - out.</para> + <literal>autoconf</literal>.</para> <para>The additional optional variables <varname>AUTOCONF_ARGS</varname> and <varname>AUTOHEADER_ARGS</varname> can be overridden by the port <filename>Makefile</filename> if specifically - requested. As with the <command>libtool</command> - equivalents, most ports are unlikely to need this.</para> + requested. Most ports are unlikely to need this. See + <filename>bsd.autotools.mk</filename> for further + details.</para> </sect2> <sect2 xml:id="using-automake"> @@ -792,20 +765,11 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subp previous section. <command>aclocal</command> implies the use of <command>automake</command>, thus we have:</para> - <programlisting>USE_AUTOTOOLS= automake:<replaceable>version</replaceable>[:<replaceable>env</replaceable>]</programlisting> + <programlisting>USE_AUTOTOOLS= automake[:<replaceable>env</replaceable>]</programlisting> <para>and</para> - <programlisting>USE_AUTOTOOLS= aclocal:<replaceable>version</replaceable></programlisting> - - <para>which also implies the use of - <literal>automake:version</literal>.</para> - - <para>Similarly to <command>libtool</command> and - <command>autoconf</command>, the inclusion of the optional - <literal>:env</literal> operation simply sets up the - environment for further use. Without it, reconfiguration of - the port is carried out.</para> + <programlisting>USE_AUTOTOOLS= aclocal</programlisting> <para>As with <command>autoconf</command> and <command>autoheader</command>, both
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403071848.s27Im3RV089992>