#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the XML::Sablotron module.
#
# The Initial Developer of the Original Code is Ginger Alliance Ltd.
# Portions created by Ginger Alliance are
# Copyright (C) 1999-2000 Ginger Alliance Ltd.
# All Rights Reserved.
#
# Contributor(s): o Matt Sergeant
# o Nicolas Trebst, science+computing ag
# n.trebst@science-computing.de
#
# Alternatively, the contents of this file may be used under the
# terms of the GNU General Public License Version 2 or later (the
# "GPL"), in which case the provisions of the GPL are applicable
# instead of those above. If you wish to allow use of your
# version of this file only under the terms of the GPL and not to
# allow others to use your version of this file under the MPL,
# indicate your decision by deleting the provisions above and
# replace them with the notice and other provisions required by
# the GPL. If you do not delete the provisions above, a recipient
# may use your version of this file under either the MPL or the
# GPL.
#
use ExtUtils::MakeMaker;
use English;
use Config;
use strict;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
my $expat_libpath = '';
my $expat_incpath = '';
my @replacement_args;
foreach (@ARGV) {
if (/^EXPAT(LIB|INC)PATH=(.+)/) {
if ($1 eq 'LIB') {
$expat_libpath = $2;
}
else {
$expat_incpath = $2;
}
}
else {
push(@replacement_args, $_);
}
}
@ARGV = @replacement_args;
unless ($expat_libpath) {
# Test for existence of libexpat
my $found = 0;
if ($] >= 5.008001) {
require ExtUtils::Liblist; # Buggy before this
my ($list) = ExtUtils::Liblist->ext('-lexpat');
$found = 1 if $list =~ /-lexpat\b/;
} else {
foreach (split(/\s+/, $Config{libpth})) {
if (-f "$_/libexpat." . $Config{so}) {
$found = 1;
last;
}
}
}
unless ($found) {
die <<'Expat_Not_Installed;';
Expat must be installed prior to building XML::Sablotron and I can't find #'
it in the standard library directories. You can download expat from:
http://sourceforge.net/projects/expat/
If expat is installed, but in a non-standard directory, then use the
following options to Makefile.PL:
EXPATLIBPATH=... To set the directory in which to find libexpat
For example:
perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include
Note that if you build against a shareable library in a non-standard location
you may (on some platforms) also have to set your LD_LIBRARY_PATH environment
variable at run time for perl to find the library.
Expat_Not_Installed;
}
}
#the same thing for sablotron
my $sablot_libpath = '';
my $sablot_incpath = '';
@replacement_args = ();
foreach (@ARGV) {
if (/^SABLOT(LIB|INC)PATH=(.+)/) {
if ($1 eq 'LIB') {
$sablot_libpath = $2;
}
else {
$sablot_incpath = $2;
}
}
else {
push(@replacement_args, $_);
}
}
@ARGV = @replacement_args;
unless ($sablot_libpath) {
# Test for existence of libexpat
my $found = 0;
if ($] >= 5.008001) {
require ExtUtils::Liblist; # Buggy before this
my ($list) = ExtUtils::Liblist->ext('-lsablot');
$found = 1 if $list =~ /-lsablot\b/;
} else {
foreach (split(/\s+/, $Config{libpth})) {
if (-f "$_/libsablot." . $Config{so}) {
$found = 1;
last;
}
}
}
unless ($found) {
die <<'Sablot_Not_Installed;';
Sablot must be installed prior to building XML::Sablotron and I can't find #'
it in the standard library directories. You can download Sablotron from:
http://www.gingerall.cz
If Sablotron is installed, but in a non-standard directory, then use the
following options to Makefile.PL:
SABLOTLIBPATH=... To set the directory in which to find libexpat
SABLOTINCPATH=... To set the directory in which to find expat.h
For example:
perl Makefile.PL SABLOTLIBPATH=/home/me/lib SABLOTINCPATH=/home/me/include
Note that if you build against a shareable library in a non-standard location
you may (on some platforms) also have to set your LD_LIBRARY_PATH environment
variable at run time for perl to find the library.
Sablot_Not_Installed;
}
}
#linking javascript
@replacement_args = ();
my ($js_libpath, $js_libname);
foreach (@ARGV) {
if (/^JSLIB(PATH|NAME)=(.+)/) {
if ($1 eq 'PATH') {
$js_libpath = $2;
} else {
$js_libname = $2;
}
} else {
push @replacement_args, $_;
}
}
@ARGV = @replacement_args;
$js_libname = 'js' unless $js_libname;
my $js_found = undef;
unless ($js_libpath) {
# Test for existence of libexpat
if ($] >= 5.008001) {
require ExtUtils::Liblist; # Buggy before this
my ($list) = ExtUtils::Liblist->ext("-l$js_libname");
$js_found = 1 if $list =~ /-l\Q$js_libname\E\b/;
} else {
foreach (split(/\s+/, $Config{libpth})) {
if (-f "$_/lib$js_libname." . $Config{so}) {
$js_found = 1;
last;
}
}
}
}
our $libs = ' ';
if ($js_found || $js_libpath) {
$libs = "-l$js_libname $libs" if $js_libname;
$libs = "-L$js_libpath $libs" if $js_libpath;
}
#sablot and expat libraries
$libs = "-lsablot -lexpat $libs";
unless ($^O eq 'MSWin32') {
$libs = "$libs -lm";
}
$libs = "-L$expat_libpath $libs"
if $expat_libpath;
$libs = "-L$sablot_libpath $libs"
if $sablot_libpath;
my $inc = "-I$expat_incpath"
if $expat_incpath;
$inc = "-I$sablot_incpath $inc"
if $sablot_incpath;
our @extras;
push(@extras, INC => $inc) if $inc;
push(@extras, CAPI => 'TRUE')
if ($PERL_VERSION >= 5.005 and $OSNAME eq 'MSWin32');
#analyze the ramining args
@replacement_args = ();
foreach (@ARGV) {
if (/^LIBS=(.*)/) {
$libs .= " $1";
} else {
push @replacement_args, $_;
}
}
@ARGV = @replacement_args;
my $O_FILES = "common$Config{obj_ext}";
WriteMakefile(
NAME => 'XML::Sablotron',
AUTHOR => 'Pavel Hlavnicka (pavel@gingerall.cz)',
ABSTRACT => 'Sablotron XSLT processor wrapper',
VERSION_FROM => 'Sablotron.pm',
DEFINE => '-DPERL_POLLUTE',
clean => {'FILES' => "log.xsl", },
dist => {COMPRESS => 'gzip', SUFFIX => 'tar.gz'},
DIR => [qw( DOM Situation SXP Processor )],
LIBS => $libs,
OBJECT => q( $(O_FILES) ),
# OPTIMIZE => ' ',
# CCFLAGS => '-g',
depend => { 'Sablotron.c' => q(DOM/DOM.h DOM/DOM.xsh Processor/Processor.h Processor/Processor.xsh Processor/Handler_stubs.h SXP/SXP.h SXP/SXP.xsh Situation/Situation.h Situation/Situation.xsh Situation/DOMhandler_stubs.h ) },
@extras,
);
__END__