Prepare build of modules for 3.0

This commit is contained in:
Laurent Destailleur 2011-03-03 19:35:16 +00:00
parent 6f11d1e28e
commit 86801c2e8a

View File

@ -78,23 +78,8 @@ for (0..@ARGV-1) {
} }
} }
print "Makepack module version $VERSION\n"; print "Makepack for modules version $VERSION\n";
print "Enter name for your module (mymodule, mywonderfulmondule, ...) : ";
$PROJECT=<STDIN>;
chomp($PROJECT);
print "Move to ".$DIR." directory.\n";
chdir($DIR);
if (! -f "makepack-".$PROJECT.".conf")
{
print "Error: can't open conf file makepack-".$PROJECT.".conf\n";
print "\n";
print "For help on building a module package, see web page\n";
print "http://wiki.dolibarr.org/index.php/Module_development#Create_a_package_to_distribute_and_install_your_module\n";
print "makepack-dolibarrmodule.pl aborted.\n";
sleep 2;
exit 2;
}
# Ask and set version $MAJOR and $MINOR # Ask and set version $MAJOR and $MINOR
print "Enter value for version: "; print "Enter value for version: ";
$PROJVERSION=<STDIN>; $PROJVERSION=<STDIN>;
@ -107,17 +92,12 @@ if ($MINOR eq '')
chomp($MINOR); chomp($MINOR);
} }
$FILENAME="$PROJECT"; # Ask module
$FILENAMETGZ="module_$PROJECT-$MAJOR.$MINOR"; print "Enter name for your module (mymodule, mywonderfulmondule, ...) : ";
$FILENAMEZIP="module_$PROJECT-$MAJOR.$MINOR"; $PROJECTINPUT=<STDIN>;
if (-d "/usr/src/redhat") { chomp($PROJECTINPUT);
# redhat print "Move to ".$DIR." directory.\n";
$RPMDIR="/usr/src/redhat"; chdir($DIR);
}
if (-d "/usr/src/RPM") {
# mandrake
$RPMDIR="/usr/src/RPM";
}
$SOURCE="$DIR/.."; $SOURCE="$DIR/..";
$DESTI="$SOURCE/build"; $DESTI="$SOURCE/build";
@ -125,16 +105,61 @@ $DESTI="$SOURCE/build";
print "Source directory: $SOURCE\n"; print "Source directory: $SOURCE\n";
print "Target directory: $DESTI\n"; print "Target directory: $DESTI\n";
my @PROJECTLIST=();
# Choose package targets if ($PROJECTINPUT eq "all")
#----------------------- {
$target="ZIP"; # Dolibarr modules are this format opendir(DIR, $DIR) || return;
$CHOOSEDTARGET{uc($target)}=1; local @rv = grep { /^makepack\-(.*)\.conf$/ } sort readdir(DIR);
closedir(DIR);
foreach my $xxx (0..@rv-1) {
if ($rv[$xxx] =~ /^makepack\-(.*)\.conf$/)
{
@PROJECTLIST[$xxx]=$1;
}
}
}
else
{
@PROJECTLIST=($PROJECTINPUT);
}
# Test if requirement is ok # Loop on each projects
#-------------------------- foreach my $PROJECT (@PROJECTLIST) {
foreach my $target (keys %CHOOSEDTARGET) {
if (! -f "makepack-".$PROJECT.".conf")
{
print "Error: can't open conf file makepack-".$PROJECT.".conf\n";
print "\n";
print "For help on building a module package, see web page\n";
print "http://wiki.dolibarr.org/index.php/Module_development#Create_a_package_to_distribute_and_install_your_module\n";
print "makepack-dolibarrmodule.pl aborted.\n";
sleep 2;
exit 2;
}
$FILENAME="$PROJECT";
$FILENAMETGZ="module_$PROJECT-$MAJOR.$MINOR";
$FILENAMEZIP="module_$PROJECT-$MAJOR.$MINOR";
if (-d "/usr/src/redhat") {
# redhat
$RPMDIR="/usr/src/redhat";
}
if (-d "/usr/src/RPM") {
# mandrake
$RPMDIR="/usr/src/RPM";
}
# Choose package targets
#-----------------------
$target="ZIP"; # Dolibarr modules are this format
$CHOOSEDTARGET{uc($target)}=1;
# Test if requirement is ok
#--------------------------
foreach my $target (keys %CHOOSEDTARGET) {
foreach my $req (split(/[,\s]/,$REQUIREMENTTARGET{$target})) { foreach my $req (split(/[,\s]/,$REQUIREMENTTARGET{$target})) {
# Test # Test
print "Test requirement for target $target: Search '$req'... "; print "Test requirement for target $target: Search '$req'... ";
@ -157,16 +182,16 @@ foreach my $target (keys %CHOOSEDTARGET) {
print " Found ".$REQUIREMENTTARGET{$target}."\n"; print " Found ".$REQUIREMENTTARGET{$target}."\n";
} }
} }
} }
print "\n"; print "\n";
# Check if there is at least on target to build # Check if there is at least on target to build
#---------------------------------------------- #----------------------------------------------
$nboftargetok=0; $nboftargetok=0;
$nboftargetneedbuildroot=0; $nboftargetneedbuildroot=0;
$nboftargetneedcvs=0; $nboftargetneedcvs=0;
foreach my $target (keys %CHOOSEDTARGET) { foreach my $target (keys %CHOOSEDTARGET) {
if ($CHOOSEDTARGET{$target} < 0) { next; } if ($CHOOSEDTARGET{$target} < 0) { next; }
if ($target ne 'EXE' && $target ne 'EXEDOLIWAMP') if ($target ne 'EXE' && $target ne 'EXEDOLIWAMP')
{ {
@ -177,9 +202,9 @@ foreach my $target (keys %CHOOSEDTARGET) {
$nboftargetneedcvs++; $nboftargetneedcvs++;
} }
$nboftargetok++; $nboftargetok++;
} }
if ($nboftargetok) { if ($nboftargetok) {
# Update CVS if required # Update CVS if required
#----------------------- #-----------------------
@ -214,9 +239,12 @@ if ($nboftargetok) {
$_ =~ /^(.*)\/[^\/]+/; $_ =~ /^(.*)\/[^\/]+/;
print "Create directory $BUILDROOT/$PROJECT/$1\n"; print "Create directory $BUILDROOT/$PROJECT/$1\n";
$ret=`mkdir -p "$BUILDROOT/$PROJECT/$1"`; $ret=`mkdir -p "$BUILDROOT/$PROJECT/$1"`;
if ($_ !~ /version\-/)
{
print "Copy $SOURCE/$_ into $BUILDROOT/$PROJECT/$_\n"; print "Copy $SOURCE/$_ into $BUILDROOT/$PROJECT/$_\n";
$ret=`cp -pr "$SOURCE/$_" "$BUILDROOT/$PROJECT/$_"`; $ret=`cp -pr "$SOURCE/$_" "$BUILDROOT/$PROJECT/$_"`;
} }
}
close IN; close IN;
@timearray=localtime(time()); @timearray=localtime(time());
@ -305,17 +333,21 @@ if ($nboftargetok) {
} }
} }
print "\n----- Summary -----\n"; print "\n----- Summary -----\n";
foreach my $target (keys %CHOOSEDTARGET) { foreach my $target (keys %CHOOSEDTARGET) {
if ($CHOOSEDTARGET{$target} < 0) { if ($CHOOSEDTARGET{$target} < 0) {
print "Package $target not built (bad requirement).\n"; print "Package $target not built (bad requirement).\n";
} else { } else {
print "Package $target built successfully in $DESTI\n"; print "Package $target built successfully in $DESTI\n";
} }
}
} }
if (! $batch) { if (! $batch) {
print "\nPress key to finish..."; print "\nPress key to finish...";
my $WAITKEY=<STDIN>; my $WAITKEY=<STDIN>;