summaryrefslogtreecommitdiff
path: root/source4/script/pkg-config
diff options
context:
space:
mode:
Diffstat (limited to 'source4/script/pkg-config')
-rwxr-xr-xsource4/script/pkg-config145
1 files changed, 0 insertions, 145 deletions
diff --git a/source4/script/pkg-config b/source4/script/pkg-config
deleted file mode 100755
index 458cac6be2..0000000000
--- a/source4/script/pkg-config
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/perl
-# Simple pkg-config implementation in perl
-# jelmer@samba.org, November 2006
-
-use strict;
-use Getopt::Long;
-
-my @dirs = split(/:/, $ENV{PKG_CONFIG_PATH});
-
-my $opt_help = 0;
-my $opt_libs = 0;
-my $opt_cflags = 0;
-my $opt_static = 0;
-
-my $result = GetOptions (
- 'help|h|?' => \$opt_help,
- 'static' => \$opt_static,
- 'libs' => \$opt_libs,
- 'cflags' => \$opt_cflags
- );
-
-if (not $result) {
- exit(1);
-}
-
-if ($opt_help) {
- print "pkg-config replacement in perl\n";
- print "Copyright (C) 2006 Jelmer Vernooij <jelmer\@samba.org>\n";
- print "\n";
- print "Usage: pkg-config [OPTIONS] PACKAGE...\n";
- print " --help Print this help message\n";
- print " --static Print flags for static libraries\n";
- print " --libs Print linker flags\n";
- print " --cflags Print C compiler flags\n";
- print "\n";
- exit(0);
-}
-
-sub find_path($)
-{
- my $name = shift;
- foreach my $dir (@dirs) {
- if (-f "$dir/$name-uninstalled.pc") {
- return "$dir/$name-uninstalled.pc";
- }
- }
- foreach my $dir (@dirs) {
- if (-f "$dir/$name.pc" ) {
- return "$dir/$name.pc";
- }
- }
- die("No such package `$name'");
-}
-
-sub ReplaceVars($$)
-{
- my ($expr, $vars) = @_;
-
- $_ = $expr;
-
- while (/(.*)\${([^}]+)}(.*)/) {
- $_ = "$1$vars->{$2}$3";
- }
-
- return $_;
-}
-
-sub Parse($)
-{
- my $name = shift;
- my $path = find_path($name);
- my %variables = ();
- my %fields = ();
- my $lineno = 0;
- open(IN, "<$path") or die("Unable to open $path: $!");
- foreach (<IN>) {
- $lineno+=1;
- next if (/^#.*/);
- if (/^([A-Za-z.]+): (.*)$/) {
- $fields{$1} = ReplaceVars($2, \%variables);
- } elsif (/^([A-Za-z_]+)=(.*)$/) {
- $variables{$1} = ReplaceVars($2, \%variables);
- } elsif (/^[ \t]*$/) {
- } else {
- warn("$path:$lineno: parse error");
- }
- }
- close(IN);
- return \%fields;
-}
-
-sub Cflags($)
-{
- my $name = shift;
- my $fields = Parse($name);
- my @cflags = split(/ /, $fields->{Cflags});
- foreach (split(/[, ]/, $fields->{Requires})) {
- push (@cflags, Cflags($_));
- }
- return @cflags;
-}
-
-sub Libs($)
-{
- my $name = shift;
- my $fields = Parse($name);
- my @libs = split(/ /, $fields->{Libs});
- foreach (split(/[, ]/, $fields->{Requires})) {
- push (@libs, Libs($_));
- }
- if ($opt_static) {
- foreach (split(/[ ,]/, $fields->{"Requires.private"})) {
- push (@libs, Libs($_));
- }
- }
- return @libs;
-}
-
-my @out = ();
-
-foreach my $pkg (@ARGV)
-{
- push (@out, Libs($pkg)) if ($opt_libs);
- push (@out, Cflags($pkg)) if ($opt_cflags);
-}
-
-sub nub
-{
- my @list = @_;
- my @ret = ();
- my %seen = ();
- foreach (@list) {
- next if (defined($seen{$_}));
- push (@ret, $_);
- $seen{$_} = 1;
- }
- return @ret;
-}
-
-if ($#out >= 0) {
- @out = nub(@out);
- print join(' ', @out) . "\n";
-}
-
-exit 0;