my $libdir = getlibdir();
my $project = 'glite';
my (%projects, %project);
-
+my $debug = 0;
+my $pkg_config_env = (defined $ENV{PKG_CONFIG_PATH}) ? "$ENV{PKG_CONFIG_PATH}:" : '';
my @nodes = qw/client server logger logger-msg utils client-java doc ws-test db jpprimary jpindex jpclient harvester glite-LB glite-PX/;
my %enable_nodes;
'help' => \$help,
'libdir=s' => \$libdir,
'project=s' => \$project,
+ 'debug' => \$debug,
);
for (@nodes) {
GetOptions @opts or die "Errors parsing command line\n";
$prefix=~s/\/$//;
-$stage=~s/\/$//;
+$stagedir=~s/\/$// if ($stagedir);
$root=~s/\/$//;
$sysroot=~s/\/$//;
if (not $sysconfdir) { $sysconfdir = $prefix eq '/usr' ? '/etc' : "$prefix/etc"; }
die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},{$lbmodules{jp}};
+if ($dis) {
+ for (@nodes) {
+ $enable_nodes{$_} = 1 unless $disable_nodes{$_};
+ }
+}
+
+if (!$en && !$dis) { $enable_nodes{$_} = 1 for (@nodes) } ;
+
+for (keys %enable_nodes) { delete $enable_nodes{$_} unless $enable_nodes{$_}; }
+
+$stagedir = $root unless $stagedir;
+
if ($mode eq 'build') { for my $ext (keys %externs) {
- if (defined $externs{$ext}{withprefix}) { $externs{$ext}{prefix} = $externs{$ext}{withprefix}; }
+ if (defined $externs{$ext} and defined $externs{$ext}{withprefix}) { $externs{$ext}{prefix} = $externs{$ext}{withprefix}; }
elsif (defined $externs{$ext}{pkg}) {
- my ($prefix, $flag, $env);
+ my ($flag, $env, $cmd, $ret);
my $pkg = $externs{$ext}{pkg};
my $flagname = uc $externs{$ext}{pkg};
$flagname =~ s/-[0-9\.]*$//;
$flagname =~ s/-/_/g;
print "Checking $pkg ... ";
- $env = "PKG_CONFIG_PATH=$stagedir$prefix/$libdir/pkgconfig";
- `$env pkg-config $pkg --exists >/dev/null`;
- if ($? == 0) {
+ $env = "PKG_CONFIG_PATH=$pkg_config_env$stagedir$prefix/$libdir/pkgconfig";
+ $cmd = "$env pkg-config $pkg --exists >/dev/null";
+ `$cmd`; $ret = $?;
+ print "('$cmd' => $ret)\n" if ($debug);
+ if ($ret == 0) {
$externs{$ext}{prefix}=`$env pkg-config $pkg --variable=prefix`;
chomp $externs{$ext}{prefix};
print "$externs{$ext}{prefix}\n";
} else {
print "(using default $externs{$ext}{prefix})\n";
}
+ print "\n" if ($debug);
}
elsif ($ext eq 'jdk') {
my $jdk_prefix;
}
} }
-if ($dis) {
- for (@nodes) {
- $enable_nodes{$_} = 1 unless $disable_nodes{$_};
- }
-}
-
-if (!$en && !$dis) { $enable_nodes{$_} = 1 for (@nodes) } ;
-
-for (keys %enable_nodes) { delete $enable_nodes{$_} unless $enable_nodes{$_}; }
-
-$stagedir = $root unless $stagedir;
-
if ($mode eq 'build') {
print "Writing config.status\n";
open CONF,">config.status" or die "config.status: $!\n";
@myjars = keys %aux;
print "\nRequired externals:\n";
- print "\t$_: $externs{$_}{prefix}\n" for @ext;
+ print "\t$_: ".($externs{$_}{prefix}?$externs{$_}{prefix}:'-')."\n" for @ext;
print "\t$_: $jar{$_}\n" for @myjars;
for (@ext) { if (defined($externs{$_}{flags})) { print "$externs{$_}{flags}"; } };
print "\nThis is a poor-man configure, it's up to you to have sources and externals there\n\n";
};
for (@{$need_externs{$short}}) {
+ next unless defined $externs{$_} and defined $externs{$_}{prefix};
print MKINC "${_}_prefix = $externs{$_}{prefix}\n";
print MKINC "$externs{$_}{flags}" if defined $externs{$_}{flags};
}
chomp($kname);
close INP;
- if ( $kname == "Linux") {
+ if ( $kname eq "Linux") {
$arch = ("x86_64\npowerpc\nppc64\n");
open INP, "uname -p | "; # Check processor type
$libdir=$lib32; }
}
- if ( $kname == "SunOS") {
+ if ( $kname eq "SunOS") {
if (-e "/usr/lib/64") {
$libdir="lib/64"; }
}
--branch=branch CVS branch/etics name suffix (HEAD, branch_2_1, ...)
--libdir=libdir typically [lib,lib64] postfix
--project=PROJECT build or generate etics for a project (glite/emi) [emi]
+ --debug print more details
Mode of operation:
--mode=\{checkout|build|etics\} what to do [build]