Source of: /manual/en/internals2.buildsys.configwin.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/internals2.buildsys.inc";
$setup = array (
'home' =>
array (
0 => 'index.php',
1 => 'PHP Manual',
),
'head' =>
array (
0 => 'UTF-8',
1 => 'en',
),
'this' =>
array (
0 => 'internals2.buildsys.configwin.php',
1 => 'Talking to the Windows build system: config.w32',
),
'up' =>
array (
0 => 'internals2.buildsys.php',
1 => 'The PHP 5 build system',
),
'prev' =>
array (
0 => 'internals2.buildsys.configunix.php',
1 => 'Talking to the UNIX build system: config.m4',
),
'next' =>
array (
0 => 'internals2.structure.php',
1 => 'Extension structure',
),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);
manual_header();
?>
<div id="internals2.buildsys.configwin" class="sect1">
<h2 class="title">Talking to the Windows build system: config.w32</h2>
<p class="para">
An extension's <var class="filename">config.w32</var> file is similar in usage to
the <var class="filename">config.m4</var> file, with two critical differences:
first, it is used for Windows builds, and second, it is written in
JavaScript. This section makes no attempt to cover JavaScript syntax. For
the moment, this section is incomplete in lieu of a Win32 testbed, and an
experimental-only port of the example <var class="filename">config.m4</var> is the
only example provided.
</p>
<div class="example">
<p><b>Example #1 An example config.w32 file</b></p>
<div class="example-contents programlisting"><br />
// $Id$<br />
// vim:ft=javascript<br />
<div class="javascriptcode"><pre class="javascriptcode">ARG_WITH("example", "for example support", "no");
ARG_ENABLE("example-debug", "for debugging support in example", "no")
ARG_WITH("example-extra", "for extra functionality in example", "no")
if (PHP_EXAMPLE != "no") {
if (CHECK_LIB("libexample.lib", "example", PHP_EXAMPLE) &&
CHECK_HEADER_ADD_INCLUDE("example.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + "\\include")) {
if (PHP_EXAMPLE_DEBUG != "no") {
AC_DEFINE('USE_EXAMPLE_DEBUG', 1, 'Debug support in example');
}
if (PHP_EXAMPLE_EXTRA != "no" &&
CHECK_LIB("libexample-extra.lib", "example", PHP_EXAMPLE) &&
CHECK_HEADER_ADD_INCLUDE("example-extra.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + ";" + PHP_PHP_BUILD + "\\include") {
AC_DEFINE('HAVE_EXAMPLEEXTRA', 1, 'Extra functionality in example');
HAVE_EXTRA = 1;
} else {
WARNING( "extra example functionality not enabled, lib not found" );
}
EXTENSION("example", "example.c");
if (HAVE_EXTRA == 1) {
ADD_SOURCES("example-extra.c");
}
} else {
WARNING( "example not enabled; libraries not found" );
}
}</pre>
</div>
</div>
</div>
<div id="internals2.buildsys.configwin.counter" class="sect2">
<h3 class="title">The counter extension's config.w32 file</h3>
<p class="para">
The counter extension previously documented has a much simpler
<var class="filename">config.w32</var> file than that described above, as it
doesn't make use of many buildsystem features.
</p>
<div class="example">
<p><b>Example #2 counter's config.w32 file</b></p>
<div class="example-contents programlisting"><br />
// $Id$<br />
// vim:ft=javascript<br />
<div class="autoconfcode"><pre class="autoconfcode">ARG_ENABLE("counter", "for counter support", "no");
if (PHP_COUNTER != "no") {
EXTENSION("counter", "counter.c");
ADD_SOURCE("counter-util.c");
}</pre>
</div>
</div>
</div>
</div>
</div><?php manual_footer(); ?>