/usr/bin/dpkg-buildflags is in dpkg-dev 1.16.1.2ubuntu7.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | #!/usr/bin/perl
#
# dpkg-buildflags
#
# Copyright © 2010-2011 Raphaël Hertzog <hertzog@debian.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use Dpkg;
use Dpkg::Gettext;
use Dpkg::ErrorHandling;
use Dpkg::BuildFlags;
textdomain("dpkg-dev");
sub version {
printf _g("Debian %s version %s.\n"), $progname, $version;
printf _g("
Copyright (C) 2010-2011 Raphael Hertzog <hertzog\@debian.org>.");
printf _g("
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
");
}
sub usage {
printf _g(
"Usage: %s [<action>]
Actions:
--get <flag> output the requested flag to stdout.
--origin <flag> output the origin of the flag to stdout:
value is one of vendor, system, user, env.
--list output a list of the flags supported by the current vendor.
--export=(sh|make|configure)
output something convenient to import the
compilation flags in a shell script, in make,
or on a ./configure command line.
--dump output all compilation flags with their values
--help show this help message.
--version show the version.
"), $progname;
}
my ($param, $action);
while (@ARGV) {
$_ = shift(@ARGV);
if (m/^--(get|origin)$/) {
usageerr(_g("two commands specified: --%s and --%s"), $1, $action)
if defined($action);
$action = $1;
$param = shift(@ARGV);
usageerr(_g("%s needs a parameter"), $_) unless defined $param;
} elsif (m/^--export(?:=(sh|make|configure))?$/) {
usageerr(_g("two commands specified: --%s and --%s"), "export", $action)
if defined($action);
my $type = $1 || "sh";
$action = "export-$type";
} elsif (m/^--dump$/) {
usageerr(_g("two commands specified: --%s and --%s"), "dump", $action)
if defined($action);
$action = "dump";
} elsif (m/^--list$/) {
usageerr(_g("two commands specified: --%s and --%s"), "list", $action)
if defined($action);
$action = "list";
} elsif (m/^-(h|-help)$/) {
usage();
exit 0;
} elsif (m/^--version$/) {
version();
exit 0;
} else {
usageerr(_g("unknown option \`%s'"), $_);
}
}
$action = "dump" unless defined($action);
my $build_flags = Dpkg::BuildFlags->new();
if ($action eq "list") {
foreach my $flag ($build_flags->list()) {
print "$flag\n";
}
exit(0);
}
$build_flags->load_config();
if ($action eq "get") {
if ($build_flags->has($param)) {
print $build_flags->get($param) . "\n";
exit(0);
}
} elsif ($action eq "origin") {
if ($build_flags->has($param)) {
print $build_flags->get_origin($param) . "\n";
exit(0);
}
} elsif ($action =~ m/^export-(.*)$/) {
my $export_type = $1;
foreach my $flag ($build_flags->list()) {
next unless $flag =~ /^[A-Z]/; # Skip flags starting with lowercase
my $value = $build_flags->get($flag);
if ($export_type eq "sh") {
$value =~ s/"/\"/g;
print "export $flag=\"$value\"\n";
} elsif ($export_type eq "make") {
$value =~ s/\$/\$\$/g;
print "export $flag := $value\n";
} elsif ($export_type eq "configure") {
print "$flag=\"$value\" ";
}
}
exit(0);
} elsif ($action eq "dump") {
foreach my $flag ($build_flags->list()) {
my $value = $build_flags->get($flag);
print "$flag=$value\n";
}
exit(0);
}
exit(1);
|