my $jp_tag = '';
my $jobid_tag = '';
my $libdir = getlibdir();
-my $projectname;
-my $project = '';
+my $project = 'glite';
+my (%projects, %project);
my @nodes = qw/client server logger logger-msg utils client-java doc ws-test db jpprimary jpindex jpclient harvester glite-LB glite-PX/;
trustmanager => {
prefix => '/opt/glite'
},
+ trustmanager_axis => {
+ prefix => '/opt/glite'
+ },
utiljava => {
prefix=> '/opt/glite'
},
prefix=> '/usr'
},
jdk => {
- prefix=> '/usr'
+ prefix=> '/usr/java/latest'
},
libtar => {
prefix=> '/usr'
my %deps;
my %deps_type;
my %buildroot;
-my (%etics_externs, %etics_projects, %etics_projects_emi, %etics_externs_emi);
+my (%etics_externs, %etics_projects);
my %lbmodules = (
'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester yaim glite-LB logger-msg/],
'jobid-tag=s' => \$jobid_tag,
'help' => \$help,
'libdir=s' => \$libdir,
- 'emi' => \$emi,
'project=s' => \$project,
);
$sysconfdir=~s/\/$//;
$localstatedir=~s/\/$//;
-$externs{'mysql-devel'}{prefix}=$externs{mysql}{prefix} if $externs{'mysql-devel'}{prefix} eq '';
$externs{'mysql-server'}{prefix}=$externs{mysql}{prefix} if $externs{'mysql-server'}{prefix} eq '';
-if (!$project) { $project = $emi ? 'emi' : 'glite'; }
-$projectname = ($project eq 'emi') ? 'emi' : 'org.glite';
-if ($emi) {
- for $_ (keys %etics_externs_emi) {
- $etics_externs{$_} = $etics_externs_emi{$_};
+$externs{'mysql-devel'}{prefix}=$externs{mysql}{prefix} if $externs{'mysql-devel'}{prefix} eq '';
+
+%project = %{$projects{$project}};
+for $_ (keys %{$project{etics_externs}}) {
+ $etics_externs{$_} = $project{etics_externs}{$_};
+}
+for $_ (keys %{$project{etics_projects}}) {
+ $etics_projects{$_} = $project{etics_projects}{$_};
+}
+for $_ (keys %{$project{need_externs_aux}}) {
+ $need_externs_aux{$_} = $project{need_externs_aux}{$_};
+}
+for my $ext (keys %need_externs_aux) {
+ for (@{$need_externs_aux{$ext}}) {
+ my ($pkg, $type) =/([^:]*)(?::(.*))?/;
+ $type = 'BR' unless ($type);
+
+ push @{$need_externs{$ext}},$pkg;
+ $need_externs_type{$ext}->{$pkg} = $type;
}
}
+
if ($help) { usage(); exit 0; }
if ($listmodules) {
- my @m = map "$projectname.$listmodules.$_",@{$lbmodules{$listmodules}};
+ my @m = map "$project{etics_name}.$listmodules.$_",@{$lbmodules{$listmodules}};
print "@m\n";
exit 0;
}
print "(using default $externs{$ext}{prefix})\n";
}
}
+ elsif ($ext eq 'jdk') {
+ my $jdk_prefix;
+
+ print "Looking for some caffein ... ";
+ if (defined $ENV{'JDK_HOME'}) {
+ $jdk_prefix = $ENV{'JDK_HOME'};
+ print "JDK_HOME=$jdk_prefix\n";
+ } elsif (defined $ENV{'JAVA_HOME'}) {
+ $jdk_prefix = $ENV{'JAVA_HOME'};
+ print "JAVA_HOME=$jdk_prefix\n";
+ } else {
+ print "(using default $externs{$ext}{prefix}))\n"
+ }
+ $externs{$ext}{prefix} = $jdk_prefix if ($jdk_prefix);
+ }
} }
if ($dis) {
if ($mode eq 'build') {
print "Writing config.status\n";
open CONF,">config.status" or die "config.status: $!\n";
- print CONF "PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH} $0 @keeparg\n";
+ for ('JDK_HOME', 'JAVA_HOME', 'PKG_CONFIG_PATH') {
+ print CONF "$_=$ENV{$_} " if (defined $ENV{$_});
+ }
+ print CONF "$0 @keeparg\n";
close CONF;
}
}
BEGIN{
+%etics_externs = (
+ 'myproxy-devel'=>'myproxy-devel',
+ 'myproxy-libs'=>'myproxy-libs',
+ 'myproxy-server'=>'myproxy-server',
+ 'myproxy-admin'=>'myproxy-admin',
+ cares=>'c-ares',
+ voms=>'org.glite.security.voms-api-cpp',
+ utiljava=>'org.glite.security.util-java',
+ gpt=>'gpt',
+ fetchcrl=>'fetch-crl',
+ activemq=>'activemq-cpp-library',
+ apr=>'apr-dev',
+ aprutil=>'aprutil-dev',
+);
+
+%etics_projects = (
+);
+
%need_externs_aux = (
- 'lb.client' => [ qw/cppunit:B classads/ ],
- 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager utiljava/ ],
- 'lb.common' => [ qw/expat cares:B cppunit:B classads/ ],
- 'lb.doc' => [],
- 'lb.logger' => [ qw/cppunit:B/ ],
- 'lb.logger-msg' => [ qw/cppunit:B activemq/ ],
- 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite/ ],
- 'lb.state-machine' => [ qw/classads/ ],
- 'lb.utils' => [ qw/cppunit:B/ ],
+ 'lb.client' => [ qw/cppunit:B classads libtool:B/ ],
+ 'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B/ ],
+ 'lb.doc' => [ qw/tetex-latex:B/ ],
+ 'lb.logger' => [ qw/cppunit:B libtool:B/ ],
+ 'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B/ ],
+ 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite bison:B libtool:B/ ],
+ 'lb.state-machine' => [ qw/classads libtool:B/ ],
+ 'lb.utils' => [ qw/cppunit:B libtool:B/ ],
'lb.ws-interface' => [],
- 'lb.ws-test' => [ qw/gsoap:B/ ],
+ 'lb.ws-test' => [ qw/gsoap:B libtool:B/ ],
'lb.types' => [ qw// ],
- 'lb.harvester' => [ qw// ],
- 'lb.yaim' => [ qw/yaim_core:R/ ],
- 'lb.glite-LB' => [ qw/fetchcrl:R gpt:R gip_release:R gip_service:R bdii:R glite_version:R glite_info_templates:R glue_schema:R/ ],
- 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B cppunit:B log4c:B/ ],
- 'lbjp-common.log' => [ qw/log4c/ ],
- 'lbjp-common.maildir' => [ qw// ],
- 'lbjp-common.server-bones' => [ qw// ],
- 'lbjp-common.trio' => [ qw/cppunit:B/ ],
- 'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B/ ],
- 'lbjp-common.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B/ ],
- 'lbjp-common.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap:B/ ],
- 'jobid.api-c' => [ qw/cppunit:B/ ],
+ 'lb.harvester' => [ qw/docbook-utils:B libtool:B/ ],
+ 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+ 'lbjp-common.log' => [ qw/log4c libtool:B/ ],
+ 'lbjp-common.maildir' => [ qw/libtool:B/ ],
+ 'lbjp-common.server-bones' => [ qw/libtool:B/ ],
+ 'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
+ 'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
+ 'lbjp-common.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
+ 'lbjp-common.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap:B libtool:B/ ],
+ 'jobid.api-c' => [ qw/cppunit:B libtool:B/ ],
'jobid.api-cpp' => [ qw/cppunit:B/ ],
'jobid.api-java' => [ qw/ant:B jdk:B/ ],
'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ],
'jp.server-common' => [],
'jp.ws-interface' => [],
- 'gridsite.core' => [qw/httpd-devel:B gsoap:B globus:B/ ],
- 'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B myproxy-libs:R voms/ ],
- 'px.glite-PX' => [qw/myproxy-server:R myproxy-admin:R fetchcrl:R gip_service:R bdii:R glite_version:R gpt:R glue_schema:R/],
- 'px.myproxy-yaim' => [ qw/yaim_core:R/ ],
+ 'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse:B libxml2:B openssl:B/ ],
+ 'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B myproxy-libs:R voms libtool:R/ ],
'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
);
-for my $ext (keys %need_externs_aux) {
- for (@{$need_externs_aux{$ext}}) {
- /([^:]*)(?::(.*))?/;
- push @{$need_externs{$ext}},$1;
- my $type = $2 ? $2 : 'BR';
- $need_externs_type{$ext}->{$1} = $type;
- }
-}
-
%need_jars = (
'jobid.api-java' => [ qw/jakarta-commons-codec/ ],
'lb.client-java' => [ qw/jakarta-commons-lang/ ],
'px' => 'org.glite',
);
-%conf_prefix = (
+%cvs_tag_prefix = (
'lb' => 'glite-',
'jp' => 'glite-',
'jobid' => 'glite-',
'px' => 'glite-',
);
-%emi_conf_prefix = (
- 'lb' => 'emi-',
- 'jp' => 'emi-',
- 'jobid' => 'emi-',
- 'lbjp-common' => 'emi-',
- 'gridsite' => '',
- 'px' => 'emi-',
+# ==== projects specification ====
+# etics_name ........... ETICS project name
+# conf_prefix .......... ETICS configurations name prefix
+# tag_prefix ........... VCS tag prefix
+# local_prefix ......... prefix (relative to stage)
+# etics_externs ........ ETICS modules names of externals
+# etics_projects ....... ETICS project names of externals
+# etics_externs_devel .. ETICS modules names of devel versions of externals
+# need_externs_aux ..... project-specific external dependencies
+%projects = (
+ glite => {
+ etics_name => 'org.glite',
+ conf_prefix => { %cvs_tag_prefix },
+ tag_prefix => { %cvs_tag_prefix },
+ flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
+ local_prefix => '',
+ etics_externs => {
+ globus_essentials=>'vdt_globus_essentials',
+ globus=>'globus',
+ gridsite=>'org.gridsite.shared',
+ yaim_core=>'org.glite.yaim.core',
+ gip_release=>'glite-info-provider-release',
+ gip_service=>'glite-info-provider-service',
+ bdii=>'bdii',
+ glite_version=>'glite-version',
+ glite_info_templates=>'glite-info-templates',
+ glue_schema=>'glue-schema',
+ trustmanager=>'org.glite.security.trustmanager',
+ axis=>'axis',
+ lcas=>'org.glite.security.lcas',
+ },
+ etics_externs_devel => {
+ },
+ etics_projects => {
+ vdt=>[qw/globus globus_essentials gpt/],
+ 'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+ },
+ need_externs_aux => {
+ 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager utiljava libtool:B/ ],
+ 'lb.glite-LB' => [ qw/fetchcrl:R gpt:R gip_release:R gip_service:R bdii:R glite_version:R glite_info_templates:R glue_schema:R/ ],
+ 'lb.yaim' => [ qw/yaim_core:R/ ],
+ 'px.glite-PX' => [qw/myproxy-server:R myproxy-admin:R fetchcrl:R gip_service:R bdii:R glite_version:R gpt:R glue_schema:R/],
+ 'px.myproxy-yaim' => [ qw/yaim_core:R/ ],
+ },
+ },
+
+ emi => {
+ etics_name => 'emi',
+ conf_prefix => {
+ 'lb' => 'emi-',
+ 'jp' => 'emi-',
+ 'jobid' => 'emi-',
+ 'lbjp-common' => 'emi-',
+ 'gridsite' => '',
+ 'px' => 'emi-',
+ },
+ tag_prefix => { %cvs_tag_prefix },
+ flavours => '--thrflavour= --nothrflavour=',
+ local_prefix => '/usr',
+ etics_externs => {
+ globus_essentials=>'globus-gssapi-gsi',
+ globus=>'globus-gssapi-gsi-devel',
+ gridsite=>'emi.gridsite.shared',
+ yaim_core=>'emi.yaim.yaim-core',
+ yaim_bdii=>'emi.bdii.yaim-bdii',
+ gip_release=>'emi.bdii.glite-info-provider-release',
+ gip_service=>'emi.bdii.glite-info-provider-service',
+ bdii=>'emi.bdii.bdii-core',
+ glite_version=>'emi.misc.glite-version',
+ glite_info_templates=>'emi.misc.glite-info-templates',
+ glue_schema=>'emi.bdii.glue-schema',
+ trustmanager=>'emi.java-security.trustmanager',
+ trustmanager_axis=>'emi.java-security.trustmanager-axis',
+ axis=>'axis1.4',
+ lcas=>'emi.sac.lcas',
+ },
+ etics_externs_devel => {
+ cares => 'c-ares-devel',
+ classads => 'classads-devel',
+ cppunit => 'cppunit-devel',
+ expat => 'expat-devel',
+ gsoap => 'gsoap-devel',
+ voms => 'org.glite.security.voms-api',
+ libtar => 'libtar-devel',
+ log4c => 'log4c-devel',
+ postgresql => 'postgresql-devel',
+ curl => 'curl-devel',
+ fuse => 'fuse-devel',
+ libxml2 => 'libxml2-devel',
+ openssl => 'openssl-devel',
+ },
+ etics_projects => {
+ 'emi'=>[qw/voms voms-devel gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+ },
+ need_externs_aux => {
+ 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager trustmanager_axis libtool:B/ ],
+ 'lb.glite-LB' => [ qw/fetchcrl:R gip_release:R gip_service:R bdii:R glite_version:R glite_info_templates:R glue_schema:R/ ],
+ 'lb.yaim' => [ qw/yaim_core:R yaim_bdii:R/ ],
+ 'px.glite-PX' => [qw/myproxy-server:R myproxy-admin:R fetchcrl:R gip_service:R bdii:R glite_version:R glue_schema:R/],
+ 'px.myproxy-yaim' => [ qw/yaim_core:R yaim_bdii:R/ ],
+ },
+ },
+);
+
+%platform_properties = (
+ 'gridsite.core' => {
+ sl5_x86_64_gcc412 => { aprSuffix => '1' },
+ sl5_ia32_gcc412 => { aprSuffix => '1' },
+ deb5_x86_64_gcc432 => { aprSuffix => '1.0' },
+ deb5_ia32_gcc432 => { aprSuffix => '1.0' },
+ slc4_x86_64_gcc346 => { aprSuffix => '0' },
+ slc4_ia32_gcc346 => { aprSuffix => '0' },
+ default => {
+ }
+ },
+ 'jobid.api-java' => {
+ default => { 'package.buildarch' => 'noarch' },
+ },
+ 'lb.types' => {
+ default => { 'package.buildarch' => 'noarch' },
+ },
+ 'lb.doc' => {
+ default => { 'package.buildarch' => 'noarch' },
+ },
+ 'lb.ws-interface' => {
+ default => { 'package.buildarch' => 'noarch' },
+ },
+ 'lb.yaim' => {
+ default => { 'package.buildarch' => 'noarch' },
+ },
+ 'px.yaim' => {
+ default => { 'package.buildarch' => 'noarch' },
+ },
+ 'px.myproxy-config' => {
+ default => { 'package.buildarch' => 'noarch' },
+ },
);
my @k = keys %deps_aux;
}
BEGIN{
- %etics_externs = (
- globus_essentials=>'vdt_globus_essentials',
- globus=>'globus',
- 'myproxy-devel'=>'myproxy-devel',
- 'myproxy-libs'=>'myproxy-libs',
- 'myproxy-server'=>'myproxy-server',
- 'myproxy-admin'=>'myproxy-admin',
- cares=>'c-ares',
- voms=>'org.glite.security.voms-api-cpp',
- gridsite=>'org.gridsite.shared',
- lcas=>'org.glite.security.lcas',
- trustmanager=>'org.glite.security.trustmanager',
- utiljava=>'org.glite.security.util-java',
- gpt=>'gpt',
- fetchcrl=>'fetch-crl',
- gip_release=>'glite-info-provider-release',
- gip_service=>'glite-info-provider-service',
- bdii=>'bdii',
- glite_version=>'glite-version',
- glite_info_templates=>'glite-info-templates',
- glue_schema=>'glue-schema',
- yaim_core=>'org.glite.yaim.core',
- activemq=>'activemq-cpp-library',
- apr=>'apr-dev',
- aprutil=>'aprutil-dev',
- );
- %etics_externs_emi = (
- globus_essentials=>'globus-gssapi-gsi',
- globus=>'globus-gssapi-gsi-devel',
- gridsite=>'emi.gridsite.shared',
- yaim_core=>'emi.yaim.yaim-core'
- );
- %etics_projects = (
- vdt=>[qw/globus globus_essentials gpt/],
- 'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
- );
- %etics_projects_emi = (
- vdt=>'externs',
- 'org.glite'=>'emi',
- );
-
- %platform_properties = (
- 'gridsite.core' => {
- sl5_x86_64_gcc412 => { aprSuffix => '1' },
- sl5_ia32_gcc412 => { aprSuffix => '1' },
- deb5_x86_64_gcc432 => { aprSuffix => '1.0' },
- deb5_ia32_gcc432 => { aprSuffix => '1.0' },
- slc4_x86_64_gcc346 => { aprSuffix => '0' },
- slc4_ia32_gcc346 => { aprSuffix => '0' },
- default => {
- }
- },
- );
};
sub mode_etics {
my @copts = ();
my %ge;
- @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1);
+ @ge{@{$etics_projects{$project{etics_name}}}} = (1) x ($#{$etics_projects{$project{etics_name}}}+1);
for (@{$need_externs{"$subsys.$module"}}) {
- if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) {
+ if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/ and (defined $externs{$_} or defined $jar{$_})) {
my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_;
- if ($emi) {
+ if ($project ne 'glite') {
if ($ge{$_} and not defined $externs{$_}{pkg}) {
push @copts, "--with-$_=\${stageDir}";
}
for (@{$need_jars{"$subsys.$module"}}) {
my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_;
- push @copts,"--with-$_ \${$eext.location}$jar{$_}" if (not $emi);
+ push @copts,"--with-$_ \${$eext.location}$jar{$_}" if ($project eq 'glite');
}
my $conf;
$dwpath = "path = \${projectName}/\${moduleName}/\${version}/\${platformName}/\${packageName}-\${version}-\${age}.tar.gz\n";
- $confprefix = $emi ? $emi_conf_prefix{$subsys} : $conf_prefix{$subsys};
+ $confprefix = $project{conf_prefix}{$subsys};
$nameprefix = $confprefix;
$nameprefix =~ s/-$//;
$nameprefix =~ s/-/\./g;
$conf = "$confprefix$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
# XXX: gridsite hack
- $conftag = $subsys eq 'gridsite' ? "$conf_prefix{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}" :
- "$conf_prefix{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}"; }
+ $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}" :
+ "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}"; }
my $file = $output ? $output : "$conf.ini";
open C,">$file" or die "$file: $!\n";
- my $buildroot = $buildroot{"$subsys.$module"} eq '' ? '#no build.root' : "build.root = " . $buildroot{"$subsys.$module"};
+ my $buildroot = "build.root = $cvs_prefix{$subsys}.$subsys.$module";
+ $buildroot .= '/'.$buildroot{"$subsys.$module"} unless ($buildroot{"$subsys.$module"} eq '');
my $confdir = $buildroot{"$subsys.$module"} eq '' ? '..' : '../..';
if ($module eq 'core') {
my $flags;
- if ($emi) {
+ if ($project ne 'glite') {
$flags = 'RELEASE_VERSION=${age}.${platformFamily} prefix=${prefix}/usr libdir=${libdir} GSOAPDIR=`pkg-config gsoap --variable=prefix` OPENSSL_GLOBUS_FLAGS=`pkg-config globus-openssl --cflags` OPENSSL_GLOBUS_LIBS=`pkg-config globus-openssl --libs` FLAVOR_GLOBUS_EXT= HTTPD_FLAGS="-I/usr/include/httpd -I/usr/include/apache2 -I/usr/include/apr-${aprSuffix} -I/usr/include/pcre"';
} else {
$flags = 'RELEASE_VERSION=${age}.${platformFamily} prefix=${prefix} libdir=${libdir} GSOAPDIR=${gsoap.location} OPENSSL_GLOBUS_FLAGS=-I${globus.location}/include/${globus.dbg.nothr.flavor} OPENSSL_GLOBUS_LIBS=-L${globus.location}/${libdir}/ FLAVOR_GLOBUS_EXT=_${globus.dbg.nothr.flavor} HTTPD_FLAGS="-I${httpd-devel.location}/include/httpd -I${httpd-devel.location}/include/apache2 -I${httpd-devel.location}/include/apr-${aprSuffix} -I${httpd-devel.location}/include/pcre"';
}
}
elsif ($subsys eq 'px' and $module eq 'myproxy-config') {
- $cmd{configure} = "cd $confdir && /usr/bin/perl \${moduleName}/configure --root=\${prefix} --prefix= --stage=\${stageDir} --libdir=\${libdir} --project=\${projectName} --module $subsys.$module @copts";
+ $cmd{configure} = "cd $confdir && /usr/bin/perl $cvs_prefix{$subsys}.$subsys.$module/configure --root=\${prefix} --prefix= --stage=\${stageDir} --libdir=\${libdir} --project=\${projectName} --module $subsys.$module @copts";
$cmd{packaging} = "make rpm package=".$confprefix."$subsys-myproxy-config";
}
else {
- my $flavours = $emi ? "--thrflavour= --nothrflavour=" : "--thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor}";
- my $local_prefix = $emi ? '/usr' : '';
- $cmd{configure} = "cd $confdir && /usr/bin/perl \${moduleName}/configure $flavours --root=\${prefix} --prefix=$local_prefix --stage=\${stageDir} --sysroot=\${package.prefix} --libdir=\${libdir} --project=\${projectName} --module $subsys.$module @copts";
+ $cmd{configure} = "cd $confdir && /usr/bin/perl $cvs_prefix{$subsys}.$subsys.$module/configure $project{flavours} --root=\${prefix} --prefix=$project{local_prefix} --stage=\${stageDir} --sysroot=\${package.prefix} --libdir=\${libdir} --project=\${projectName} --module $subsys.$module @copts";
$cmd{compile} = 'make';
$cmd{test} = 'make check';
$cmd{install} = 'make install';
$defprops .= $p . ' = ' . $platform_properties{"$subsys.$module"}->{default}->{$p} . "\n";
}
- my $checkoutcmd = "cvs -d \${vcsroot} co -d \${moduleName} ".($conftag eq 'HEAD' ? '-A' : '-r ${tag}')." $cvs_prefix{$subsys}.$subsys.$module";
- $checkoutcmd .= "; test -e $cvs_prefix{$subsys}.$subsys.$module || ln -s \${moduleName} $cvs_prefix{$subsys}.$subsys.$module 2>/dev/null" if ($emi);
+ my $checkoutcmd = "mkdir -v \${moduleName}; cd \${moduleName} && cvs -d \${vcsroot} co ".($conftag eq 'HEAD' ? '-A' : '-r ${tag}')." $cvs_prefix{$subsys}.$subsys.$module";
print STDERR "Writing $file\n";
print C qq{
[Configuration-$conf]
profile = None
-moduleName = $projectname.$subsys.$module
+moduleName = $project{etics_name}.$subsys.$module
displayName = $conf
description = $cvs_prefix{$subsys}.$subsys.$module
-projectName = $projectname
+projectName = $project{etics_name}
age = $age
deploymentType = None
vcsroot = :pserver:anonymous\@glite.cvs.cern.ch:/cvs/glite
[Platform-default:VcsCommand]
displayName = None
description = None
-tag = cvs -d \${vcsroot} tag -R \${tag} \${moduleName}
+tag = cd \${moduleName} && cvs -d \${vcsroot} tag -R \${tag} $cvs_prefix{$subsys}.$subsys.$module
branch = None
commit = None
checkout = $checkoutcmd
};
for (@{$need_externs{"$subsys.$module"}},@{$need_jars{"$subsys.$module"}}) {
my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_;
+ my $edev = $project{etics_externs_devel}{$_};
my $proj = 'externals';
for my $p (keys %etics_projects) {
- if ($emi and defined $etics_projects_emi{$p}) {
- $p = $etics_projects_emi{$p};
- }
for $m (@{$etics_projects{$p}}) {
$proj = $p if $m eq $_;
}
}
my $type = $need_externs_type{"$subsys.$module"}->{$_};
+
+ if ($edev) {
+ if ($type eq 'B') {
+ $eext = $edev; # no runtime - change to devel pkg
+ } elsif ($type eq 'BR' or $type eq 'RB') {
+ print C "$proj|$edev = B\n"; # additional devel pkg
+ }
+ }
print C "$proj|$eext = $type\n";
}
for (@{$deps{"$subsys.$module"}}) {
my $type = $deps_type{"$subsys.$module"}->{$_};
- print C "$projectname|$projectname.$_ = $type\n";
+ print C "$project{etics_name}|$project{etics_name}.$_ = $type\n";
}
close C;
--version=maj.min.rev-age specify version here instead of reading version.properties
--branch=branch CVS branch/etics name suffix (HEAD, branch_2_1, ...)
--libdir=libdir typically [lib,lib64] postfix
- --emi generate configurations with emi flavor in mode 'etics'
+ --project=PROJECT build or generate etics for a project (glite/emi) [emi]
Mode of operation:
--mode=\{checkout|build|etics\} what to do [build]