tokuhirom's Blog

create pure perl extlib/ with cpanm/local::lib

http://github.com/tokuhirom/cpanminus/compare/no-xs

local::lib を利用して extlib/ を構築する方法が最近流行りだ。cpanm とくみあわせれば、capnm -l extlib/ Plack などとすれば一発で構築できる。
しかし、こうして作成した extlib/ には XS モジュールもはいってしまってポータブルにならない。不特定多数にたいして配布したり、レンタルサーバー等にアップロードしようとおもっている場合には不適である。
(具体的には MENTA や mobirc など)

そこで、cpanm -l extlib --no-xs Plack などとすると、XS がはいらないようにするオプションをかんがえてみた。特定のモジュールの場合だけ Makefile.PL/Build.PL の @ARGV に細工するという仕組みで、たいへんうつくしくない。また、モジュール名が直接書かれており、miyagawa さんにマージされないことはこれ必然。

できることなら、$ENV{CPAN_NO_XS} などの環境変数を CPAN.pm が提供し、each modules がそれをみるという仕組みなどがあるといいのだが。