## Windows 用のビルドシステム: config.w32

拡張モジュールに含まれている config.w32 ファイルの使用法は config.m4 とほぼ同じですが、 決定的な違いがふたつあります。まず第一に、これは Windows 版のビルド用に使うものです。 次に、これは JavaScript で書かれています。 このセクションでは、JavaScript の文法については特に扱いません。 現時点では、このセクションは未完成です。とりあえずのたたき台として用意したものであり、 ごらんいただけるのは config.m4 のサンプルだけです。

例1 config.w32 ファイルのサンプル

    // $Id$
    // vim:ft=javascript

    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" );
        }
    }

### counter 拡張モジュールの config.w32 ファイル

先ほど説明した counter 拡張モジュールの config.w32 ファイルは、上で説明したよりずっとシンプルです。 これは、ビルドシステムのさまざまな機能を使用していないからです。

例2 counter の config.w32 ファイル

    // $Id$
    // vim:ft=javascript

    ARG_ENABLE("counter", "for counter support", "no");
    if (PHP_COUNTER != "no") {
        EXTENSION("counter", "counter.c");
        ADD_SOURCE("counter-util.c");
    }