ossp-pkg/js/src/perlconnect/Makefile.PL
use ExtUtils::MakeMaker;
use strict;
use Getopt::Std;
my (%foo, $jsdir, $inc, $libpath);
#m - build under mozilla tree
#d - specifies js build directory (with include/ and lib/ directories)
#c - build under charlie tree
getopts('mcd:', \%foo);
$jsdir = $foo{d};
$foo{'m'} = 1 unless $foo{c} || $foo{d}; #mozilla tree is the default
if ($foo{c}) {
$inc = "-I$ENV{CHARLIE_HOME}/include";
$libpath = "-L$ENV{CHARLIE_HOME}/lib";
}
if ($jsdir) {
$inc = "-I$jsdir/include";
$libpath = "-L$jsdir/lib -ljs";
}
my $tmpmk = <<'eof';
DEPTH=..
include ../config.mk
all:
@echo '$(OBJDIR)'
eof
if ($foo{'m'}) {
if ($^O eq "MSWin32") {
$inc = "-I.. -I../Debug"; #I'm not sure
$libpath = "-L../Debug";
} else { #suppose unix, never Mac, gmake
open FOO, ">tempmakefile";
print FOO $tmpmk;
close FOO;
my $objdir = `gmake -f tempmakefile`;
unlink "tempmakefile";
$inc = "-I.. -I../$objdir";
$libpath = "-L../$objdir";
}
}
my %extras = ();
my $define;
if ($^O eq "MSWin32") {
$define = "-DXP_PC";
$extras{OBJECT} = '$(BASEEXT)$(OBJ_EXT) jsperl.obj';
} else {
$define = '-DXP_UNIX';
}
WriteMakefile(NAME => 'JS',
DEFINE => $define,
INC => $inc,
LIBS => "$libpath -ljs",
VERSION_FROM => 'JS.pm',
%extras,);
__END__