Universal Binary な Perl モジュール 2

昨日の続き。Config.pm の設定をオーバーライドするひとつの方法。
MinGW 上で Perl モジュールをビルドするために ExtUtil::FakeConfig というモジュールを使ったことがある。このモジュールは、Config.pm の設定をオーバーライドするための簡単な方法を提供してくれる。これを利用して、CCFLAGS、LDFLAGS、LDDLFLAGS の設定を変更するモジュールを作成してみた。


package Config_ub;

require ExtUtils::FakeConfig;

my $SDK = '/Developer/SDKs/MacOSX10.4u.sdk';

my %params = (
  ccflags => "-g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -arch i686 -arch ppc -nostdinc -B$SDK/usr/include/gcc -B$SDK/usr/lib/gcc -isystem$SDK/usr/include -F$SDK/System/Library/Frameworks -fno-strict-aliasing -I/usr/local/include",
  ldflags => "-arch i686 -arch ppc -Wl,-syslibroot,$SDK -L/usr/local/lib",
  lddlflags => "-bundle -undefined dynamic_lookup -arch i686 -arch ppc -Wl,-syslibroot,$SDK -L/usr/local/lib"
);

eval 'use ExtUtils::FakeConfig %params';

1;

もっときれいにする余地はありそうだが、とりあえずなので。
そして、Makefile.PL から Makefile を作成するときに、「perl -MConfig_ub Makefile.PL」とする。これでかなり楽になった。
この方法で作成したモジュールを使ったテストインストーラを近いうちに作ってみようと思う。