#!/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; } }