The most recent version copied. Do not modify this instance (RW in ./org.glite.lb).
authorZdeněk Šustr <sustr4@cesnet.cz>
Fri, 22 May 2009 13:46:48 +0000 (13:46 +0000)
committerZdeněk Šustr <sustr4@cesnet.cz>
Fri, 22 May 2009 13:46:48 +0000 (13:46 +0000)
org.glite.jobid.api-cpp/configure

index a72805e..455145c 100755 (executable)
@@ -11,6 +11,7 @@ use Getopt::Long;
 
 my $pwd = `pwd`; chomp $pwd;
 my $prefix = $pwd.'/stage';
+my $stagedir;
 my $staged;
 my $module;
 my $thrflavour = 'gcc64dbgpthr';
@@ -20,8 +21,13 @@ my $help = 0;
 my $listmodules;
 my $version;
 my $output;
+my $lb_tag = '';
+my $lbjp_tag = '';
+my $jp_tag = '';
+my $sec_tag = '';
+my $jobid_tag = '';
 
-my @nodes = qw/client server logger utils client-java doc ws-test/;
+my @nodes = qw/client server logger utils doc ws-test db jpprimary jpindex jpclient/;
 my %enable_nodes;
 my %disable_nodes;
 
@@ -31,11 +37,16 @@ my %extern_prefix = (
        cppunit => '/usr',
        expat => '/usr',
        globus => '/opt/globus',
+       jglobus => '/opt/globus',
        gsoap => '/usr',
        mysql => '/usr',
+       'mysql-devel' => '',
        voms => '/opt/glite',
        gridsite => '/opt/glite',
        lcas => '/opt/glite',
+       ant => '/usr',
+       jdk => '/usr',
+       libtar => '/usr',
 );
 
 my %jar = (
@@ -54,10 +65,11 @@ my %deps_type;
 my %topbuild;
 
 my %lbmodules = (
-       'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], 
+       'lb' => [ qw/client common doc logger server state-machine types utils ws-interface ws-test/], 
        'security' => [qw/gss gsoap-plugin/],
-       'lbjp-common' => [qw/db maildir server-bones trio/],
-       'jobid' => [qw/api-c api-cpp api-java/],
+       'lbjp-common' => [qw/db maildir server-bones trio jp-interface/],
+       'jobid' => [qw/api-c api-cpp/],
+       'jp' => [ qw/client doc index primary server-common ws-interface/ ],
        );
 
 
@@ -71,6 +83,12 @@ my @opts = (
        'listmodules=s' => \$listmodules,
        'version=s' => \$version,
        'output=s' => \$output,
+       'stage=s' => \$stagedir,
+       'lb-tag=s' => \$lb_tag,
+       'lbjp-common-tag=s' => \$lbjp_tag,
+       'jp-tag=s' => \$jp_tag,
+       'security-tag=s' => \$sec_tag,
+       'jobid-tag=s' => \$jobid_tag,
        'help' => \$help,
 );
 
@@ -89,6 +107,8 @@ my @keeparg = @ARGV;
 
 GetOptions @opts or die "Errors parsing command line\n";
 
+$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq '';
+
 if ($help) { usage(); exit 0; }
 
 if ($listmodules) {
@@ -112,7 +132,7 @@ die "--enable-* and --disable-* are mutually exclusive\n"
 die "--module cannot be used with --enable-* or --disable-*\n"
        if $module && ($en || $dis);
 
-die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}};
+die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}},{$lbmodules{jp}};
 
 if ($dis) {
        for (@nodes) {
@@ -124,6 +144,8 @@ if (!$en && !$dis) { $enable_nodes{$_} = 1 for (@nodes) } ;
 
 for (keys %enable_nodes) { delete $enable_nodes{$_} unless $enable_nodes{$_}; }
 
+$stagedir = $prefix unless $stagedir;
+
 if ($mode eq 'build') {
        print "Writing config.status\n";
        open CONF,">config.status" or die "config.status: $!\n";
@@ -136,10 +158,11 @@ my @modules;
 my %aux;
 
 if ($module) {
+#      push @modules,split(/[,.]+/,$module);
        push @modules,$module;
 }
 else {
-       @modules = map 'lb.'.($extranodmod{$_} ? $extranodmod{$_} : $_),keys %enable_nodes;
+       @modules = map(($extranodmod{$_} ? $extranodmod{$_} : 'lb.'.$_),(keys %enable_nodes));
        
        my $n;
 
@@ -205,7 +228,7 @@ sub mode_build {
                my %ldeps; undef %ldeps;  
                @ldeps{@{$deps{$_}}} = 1;
                for my $x (split /,/,$staged) { delete $ldeps{$x}; }
-               my @dnames = keys %ldeps;
+               my @dnames = $module ? () : keys %ldeps;
        
                my $full = full($_);
                my $build = $topbuild{$_} ? '': '/build';
@@ -218,33 +241,81 @@ sub mode_build {
        
 sub mode_checkout() {
        for (@modules) {
+               my $module = $_;
+               my $tag = "";
+               if ($lb_tag){
+                       for (@{$lbmodules{lb}}){
+                               if ("lb.".$_ eq $module){
+                                       $tag = '-r '.$lb_tag;
+                               }
+                       }       
+               }
+               if ($lbjp_tag){
+                       for (@{$lbmodules{'lbjp-common'}}){
+                               if ("lbjp-common.".$_ eq $module){
+                                        $tag = '-r '.$lbjp_tag;
+                                }
+                       }
+               }
+               if ($jp_tag){
+                       for (@{$lbmodules{'jp'}}){
+                               if ("jp.".$_ eq $module){
+                                        $tag = '-r '.$jp_tag;
+                               }
+                        }
+               }
+               if ($sec_tag){
+                       for (@{$lbmodules{security}}){
+                               if ("security.".$_ eq $module){
+                                        $tag = '-r '.$sec_tag;
+                                }
+                       }
+               }
+               if ($jobid_tag){
+                       for (@{$lbmodules{jobid}}){
+                               if ("jobid.".$_ eq $module){
+                                        $tag = '-r '.$jobid_tag;
+                                }
+                       }
+               }
+               #if (grep {"lb.".$_ eq $module} @{$lbmodules{lb}}){
+               #       print "found";
+               #}
                $_ = full($_);
                print "\n*** Checking out $_\n";
-               system("cvs checkout $_") == 0 or die "cvs checkout $_: $?\n";
+               system("cvs checkout  $tag $_") == 0 or die "cvs checkout $tag $_: $?\n";
        }
 }
 
 BEGIN{
 %need_externs_aux = (
        'lb.client' => [ qw/cppunit:B classads/ ],
+       'lb.client-java' => [ qw/ant:B jglobus jdk:B/ ],
        'lb.common' => [ qw/expat cppunit:B classads/ ],
        'lb.doc' => [],
        'lb.logger' => [ qw/cppunit:B/ ],
-       'lb.server' => [ qw/globus expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ],
        'lb.state-machine' => [ qw/classads/ ],
        'lb.utils' => [ qw/cppunit:B/ ],
        'lb.ws-interface' => [],
        'lb.ws-test' => [ qw/gsoap:B/ ],
        'lb.types' => [ qw// ],
-       'lbjp-common.db' => [ qw/mysql/ ],
+       'lbjp-common.db' => [ qw/mysql:R mysql-devel:B/ ],
        'lbjp-common.maildir' => [ qw// ],
        'lbjp-common.server-bones' => [ qw// ],
-       'lbjp-common.trio' => [ qw// ],
-       'security.gss' =>  [ qw/globus cares cppunit:B/ ],
-       'security.gsoap-plugin' =>  [ qw/cppunit:B globus cares gsoap:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B/ ],
+       'security.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B/ ],
+       'security.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares gsoap:B/ ],
        'jobid.api-c' =>  [ qw/cppunit:B/ ],
        'jobid.api-cpp' =>  [ qw/cppunit:B/ ],
-       'jobid.api-java' =>  [ qw// ],
+       'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+        'jp.doc' => [],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ],
+        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ],
+        'jp.server-common' => [],
+        'jp.ws-interface' => [],
 );
 
 for my $ext (keys %need_externs_aux) {
@@ -294,9 +365,9 @@ for my $jar (keys %need_jars) {
                jobid.api-c
                security.gsoap-plugin security.gss
        / ],
-       'lb.state-machine' => [ qw/lb.common jp.common security.gss/ ],
+       'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ],
        'lb.utils' => [ qw/
-               jp.common
+               lbjp-common.jp-interface
                jobid.api-c
                lbjp-common.trio lbjp-common.maildir
                lb.client lb.state-machine
@@ -314,7 +385,31 @@ for my $jar (keys %need_jars) {
        'jobid.api-cpp' =>  [ qw/jobid.api-c/ ],
        'jobid.api-java' =>  [ qw// ],
 
-       'jp.common' => [ qw/lbjp-common.db/ ],
+       'lbjp-common.jp-interface' => [ qw/lbjp-common.db jobid.api-c/ ],
+
+       'jp.client' => [ qw/
+                jp.ws-interface
+                lbjp-common.jp-interface lbjp-common.maildir
+                jobid.api-c
+                security.gsoap-plugin
+        / ],
+       'jp.doc' => [ qw// ],
+       'jp.index' => [ qw/
+                jp.server-common jp.ws-interface
+                lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones
+                security.gsoap-plugin
+        / ],
+       'jp.primary' => [ qw/
+                jobid.api-c
+                jp.server-common jp.ws-interface
+                lb.state-machine
+                lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones
+                security.gsoap-plugin
+        / ],
+       'jp.server-common' => [ qw/ 
+                lbjp-common.jp-interface lbjp-common.db
+        / ],
+       'jp.ws-interface' => [ qw// ],
 );
 
 for my $ext (keys %deps_aux) {
@@ -329,7 +424,13 @@ for my $ext (keys %deps_aux) {
 
 %extrafull = ( gridsite=>'org.gridsite.core');
 
-# %extranodmod = ( java => 'client-java' );
+#( java => 'client-java' );
+%extranodmod = (
+       db => 'lbjp-common.db',
+       jpprimary => 'jp.primary',
+       jpindex => 'jp.index',
+       jpclient => 'jp.client',
+);
 
 my @t = qw/lb.client-java jobid.api-java lb.types/;
 @topbuild{@t} = (1) x ($#t+1);
@@ -349,8 +450,9 @@ sub mkinc
 lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java
 security.gss security.gsoap-plugin
 jobid.api-c jobid.api-cpp jobid.api-java
-lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio
-jp.common/;
+lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface
+jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface
+/;
        @aux{@m} = (1) x ($#m+1);
 
        my $short = shift;
@@ -379,7 +481,7 @@ jp.common/;
 
        print MKINC qq{
 PREFIX = $prefix
-stagedir = $prefix
+stagedir = $stagedir
 thrflavour = $thrflavour
 nothrflavour = $nothrflavour
 };
@@ -404,14 +506,15 @@ my %etics_externs;
 my %etics_projects;
 BEGIN{
        %etics_externs = (
-               globus=>'vdt_globus_essentials',
+               globus_essentials=>'vdt_globus_essentials',
+               globus=>'globus',
                cares=>'c-ares',
-               voms=>'org.glite.security.voms-api-c',
+               voms=>'org.glite.security.voms-api-cpp',
                gridsite=>'org.gridsite.shared',
                lcas=>'org.glite.security.lcas',
        );
        %etics_projects = (
-               vdt=>[qw/globus/],
+               vdt=>[qw/globus globus_essentials/],
                'org.glite'=>[qw/voms gridsite lcas/],
        );
 };
@@ -446,14 +549,16 @@ sub mode_etics {
        @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1);
 
        for (@{$need_externs{"$subsys.$module"}}) {
+           if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) {
                my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_;
                push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}";
+           }
        }
 
        for (@{$need_jars{"$subsys.$module"}}) {
                my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_;
 
-               push @copts,"--with-$_=\${$_.location}/$_-`echo \${$_.version} | sed 's/\\([0-9]*\\.[0-9]*\\)\\.[0-9]*/\\1/'`.jar";
+               push @copts,"--with-$_ \${$eext.location}/$_*.jar";
        }
 
 
@@ -500,7 +605,7 @@ init = None
 install = make install
 clean = make clean
 test = make check
-configure = cd $confdir && \${moduleName}/configure --prefix=\${prefix} --module $subsys.$module @copts
+configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts
 checkstyle = None
 
 [Platform-default:Property]
@@ -558,7 +663,7 @@ General options (defaults in []):
   --staged=module,module,...   what is already in PREFIX (specify without org.glite.)
   --thrflavour=flavour
   --nothrflavour=flavour       threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg]
-  --listmodules=subsys         list modules of a subsystem
+  --listmodules=subsys          list modules of a subsystem
   
 Mode of operation:
   --mode={checkout|build|etics}        what to do [build]
@@ -568,6 +673,11 @@ What to build:
   --enable-NODE                        build this "node" (set of modules) only. Available nodes are
                                        @{$lbmodules{lb}},@{$lbmodules{security}}
   --disable-NODE               don't build this node
+  --lb-tag=tag                 checkout LB modules with specific tag
+  --jp-tag=tag                 checkout JP modules with specific tag
+  --lbjp-common-tag=tag         checkout lbjp-common modules with specific tag
+  --security-tag=tag           checkout security modules with specific tag
+  --jobid-tag=tag              checkout jobid modules with specific tag
 
 Dependencies:
   --with-EXTERNAL=PATH         where to look for an external. Required externals