[Box Backup-dev] COMMIT r238 - box/chris/boxi/infrastructure

boxbackup-dev@fluffy.co.uk boxbackup-dev@fluffy.co.uk
Thu, 15 Dec 2005 00:47:19 +0000 (GMT)


Author: chris
Date: 2005-12-15 00:47:17 +0000 (Thu, 15 Dec 2005)
New Revision: 238

Modified:
   box/chris/boxi/infrastructure/makeparcels.pl
Log:
* makeparcels.pl
- Experimental changes to add a real "clean" target and suppress unnecessary
  rebuilds of the parcel files


Modified: box/chris/boxi/infrastructure/makeparcels.pl
===================================================================
--- box/chris/boxi/infrastructure/makeparcels.pl	2005-12-15 00:42:11 UTC (rev 237)
+++ box/chris/boxi/infrastructure/makeparcels.pl	2005-12-15 00:47:17 UTC (rev 238)
@@ -86,13 +86,18 @@
 
 print MAKE "all:\t",join(' ',map {parcel_target($_)} @parcels),"\n\n";
 
-print MAKE "clean:\n";
+print MAKE "clean-parcels:\n";
 for my $parcel (@parcels)
 {
 	print MAKE "\trm -rf ",parcel_dir($parcel),"\n";
 	print MAKE "\trm -f ",parcel_target($parcel),"\n";
 }
+
 print MAKE "\n";
+print MAKE "clean:\tclean-parcels\n";
+print MAKE "\tfind . -name '*.o' | xargs -r rm\n";
+print MAKE "\tfind . -name '*.a' | xargs -r rm\n";
+print MAKE "\n";
 
 print MAKE "test:\trelease/common/test\n\nrelease/common/test:\n\t./runtest.pl ALL release\n\n";
 
@@ -100,13 +105,32 @@
 
 for my $parcel (@parcels)
 {
+ 	my @parcel_deps;
+ 
+ 	for (@{$parcel_contents{$parcel}})
+ 	{
+ 		my ($type,$name) = split /\s+/;
+ 		if($type eq 'bin')
+ 		{
+ 			push @parcel_deps, $name.$platform_exe_ext;
+ 			print MAKE "$name:\n" .
+ 				"\t(cd bin/$name; $make_command $release_flag)\n\n";
+ 		}
+ 		elsif ($type eq 'script')
+ 		{
+ 			push @parcel_deps, $name;
+ 		}
+ 	}
+ 
 	my $target = parcel_target($parcel);
-	print MAKE $target,":\n";
-	
+	print MAKE $target,": @parcel_deps\n";
+  		
 	my $dir = parcel_dir($parcel);
-	print MAKE "\tmkdir $dir\n";
+	print MAKE "\tmkdir -p $dir\n";
 	
-	open SCRIPT,">parcels/scripts/install-$parcel" or die "Can't open installer script for $parcel for writing";
+	open SCRIPT,">parcels/scripts/install-$parcel" 
+		or die "Can't open installer script for $parcel for writing";
+
 	print SCRIPT "#!/bin/sh\n\n";
 	
 	for(@{$parcel_contents{$parcel}})
@@ -118,16 +142,19 @@
 			my $exeext = $platform_exe_ext;
 			print MAKE "\t(cd bin/$name; \$(MAKE) $release_flag)\n";
 			print MAKE "\tcp release/bin/$name/$name$exeext $dir\n";
+			$name .= $exeext; # for install
 		}
 		elsif ($type eq 'script')
 		{
 			print MAKE "\tcp $name $dir\n";
-			# remove path from script name
-			$name =~ m~/([^/]+)\Z~;
-			$name = $1;
 		}
 
-		print SCRIPT "install $name $install_into_dir\n";
+		# remove path from file name, for install
+		$name =~ m~/([^/]+)\Z~;
+		$name = $1;
+
+		print SCRIPT "install $name ".
+			"\$DESTDIR\${PREFIX:-$install_into_dir}\n";
 	}
 	
 	close SCRIPT;
@@ -141,7 +168,7 @@
 	print MAKE "\n";
 	
 	print MAKE "install-$parcel:\n";
-	print MAKE "\t(cd $dir; ./install-$parcel)\n\n";
+	print MAKE "\t(cd $dir; ./install-$parcel \$(DESTDIR))\n\n";
 }
 
 print MAKE <<__E;