#!/usr/bin/perl
use strict;
use Getopt::Long;
my $cflags;
my $libs;
my $include_path = $ENV{'MOZILLA_INCLUDE_PATH'};
my $lib_prefix;
my $util_prefix;
my $idlflags;
my $mozilla_config_bin;
GetOptions(
"cflags" => \$cflags,
"libs=s" => \$libs,
"lib-prefix" => \$lib_prefix,
"util-prefix" => \$util_prefix,
"idlflags" => \$idlflags,
"real-config=s" => \$mozilla_config_bin,
);
$mozilla_config_bin = "mozilla-config"
if (!$mozilla_config_bin);
my $mozilla_config_prefix = $ENV{'MOZILLA_CONFIG_PREFIX'};
my $mozilla_config =
$mozilla_config_prefix ?
"$mozilla_config_prefix/$mozilla_config_bin" :
$mozilla_config_bin;
if ($libs)
{
system("$mozilla_config", "--libs" => $libs);
}
if ($idlflags)
{
my $libs = `$mozilla_config --libs`;
chomp $libs;
$libs =~ m{.*/(.*)$};
my $PRODUCT_NAME = $1;
my $exec_prefix = `$mozilla_config --exec-prefix`;
chomp $exec_prefix;
$idlflags = `$mozilla_config --idlflags`;
chomp $idlflags;
$idlflags =~ s(%{idldir})(/usr/share/idl/$PRODUCT_NAME);
print $idlflags . " -I" . $exec_prefix . "/idl";
}
if ($cflags)
{
if (!$include_path)
{
$cflags = `$mozilla_config --cflags`;
chomp $cflags;
$cflags =~ /^-I(.*?)(\s|$)/
or die "Could not retrieve include path.\n";
$include_path = $1;
}
my @component_paths = glob("$include_path/*/");
push(@component_paths, $include_path);
print join(' ', map { s{/$}{}; "-I$_"; } @component_paths);
}
if ($util_prefix)
{
my $exec_prefix = `$mozilla_config --exec-prefix`;
chomp $exec_prefix;
$util_prefix = $exec_prefix."/bin";
if (-f "$util_prefix/xpidl")
{
print $util_prefix;
}
else
{
$libs = `$mozilla_config --libs`;
chomp $libs;
if ($libs =~ /^-L(.*?)(\s|$)/)
{
$util_prefix = $1;
print $util_prefix;
}
}
}
if ($lib_prefix)
{
$libs = `$mozilla_config --libs`;
chomp $libs;
if ($libs =~ /^-L(.*?)(\s|$)/)
{
print $1;
}
}
syntax highlighted by Code2HTML, v. 0.9.1