[Bf-committers] Tinderbox with autotools hack

LarstiQ bf-committers@blender.org
Tue, 14 Jan 2003 22:55:46 +0100


--zYM0uCDKw75PZbzx
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hello all,

attached is a diff that makes use of the autotoolized build system.

Current problems: uncoditionally runs bootstrap and configure.
Possible solutions: timestamping, stamping, bonsai (wee, overkill)

It also introduces some not-so-nice extra syntax to deal with the
autotools/regular cases.

Hope this is of use to anyone.

LarstiQ

--zYM0uCDKw75PZbzx
Content-Type: text/plain; charset=utf-8
Content-Disposition: attachment; filename="tinderbox-autotools.diff"

--- develop/blender/intern/tools/tinderbox/tinderbox-blender.pl	2003-01-07 02:26:30.000000000 +0100
+++ tinderbox-blender-autotools.pl	2003-01-08 04:02:07.000000000 +0100
@@ -85,6 +85,7 @@
     $ReportStatus = 1;  # Send results to server or not
     $BuildOnce = 0;     # Build once, don't send results to server
     $BuildClassic = 0;  # Build classic source
+    $BuildAutotools = 1;# Build with the autotools
 
     #relative path to binary
 	if ($UNAME eq 'Darwin') {
@@ -106,6 +107,9 @@
 #		$BinaryName{'blenderplugin'} = 'npBlender3DPlugin.so';
 #		$BinaryName{'blenderpluginXPCOM'} = 'Blender3DPlugin.so';
 	}
+	if ($BuildAutotools) {
+		$BinaryName{'blendercreator'} = 'blender';
+	}
 
     # Set these to what makes sense for your system
 	if ($UNAME eq 'FreeBSD') {
@@ -297,7 +301,11 @@
 
 	# Set GuessConfig and ConfigGuess
 	print LOG "ConfigGuess = $ConfigGuess\n";
-	$BuildObjDir = "$ENV{'HOME'}/develop/blender/obj/";
+	if ($BuildAutotools) {
+		$BuildObjDir = "$ENV{'HOME'}/develop/";
+	} else {
+		$BuildObjDir = "$ENV{'HOME'}/develop/blender/obj/";
+	}
 	open (GETOBJ, "$ConfigGuess 2>&1 |") || die "$ConfigGuess: $!\n";
 	while (<GETOBJ>) {
 	    $GuessConfig = $_;
@@ -320,24 +328,35 @@
 		close(PULL);
 	}
 
-	chdir($Topinterndir) || die "chdir($Topinterndir): $!\n";
-	print `pwd` . " -> chdir($Topinterndir)\n";
-
-	my $MakeCmd = "$Make MAKE='$Make' all 2>&1";
-	print "$MakeCmd\n";
-	print LOG "$MakeCmd |\n";
-	open(BUILD, "$MakeCmd |\n");
-	while (<BUILD>) {
-	    print $_;
-	    print LOG $_;
-	}
-	close(BUILD);
+	if ($BuildAutotools) {
+		chdir("blender") || die "chdir(blender): $!\n";
+		print `pwd` . " -> chdir(blender)\n";
+		system("./bootstrap");
+		$Topsrcdir = $BuildObjName;
+		mkdir($Topsrcdir, 0777);
+		chdir($Topsrcdir) || die "chdir($Topsrcdir): $1\n";
+		print `pwd` . " -> chdir($Topsrcdir)\n";
+		system("../blender/configure");
+	} else {
+		chdir($Topinterndir) || die "chdir($Topinterndir): $!\n";
+		print `pwd` . " -> chdir($Topinterndir)\n";
+	
+		my $MakeCmd = "$Make MAKE='$Make' all 2>&1";
+		print "$MakeCmd\n";
+		print LOG "$MakeCmd |\n";
+		open(BUILD, "$MakeCmd |\n");
+		while (<BUILD>) {
+			print $_;
+			print LOG $_;
+		}
+		close(BUILD);
 
-	chdir("$StartDir") || die "Couldn't enter $StartDir";
-    	chdir("develop") || die "Couldn't enter develop";
+		chdir("$StartDir") || die "Couldn't enter $StartDir";
+    		chdir("develop") || die "Couldn't enter develop";
 
-	chdir($Topsrcdir) || die "chdir($Topsrcdir): $!\n";
-	print `pwd` . " -> chdir($Topsrcdir)\n";
+		chdir($Topsrcdir) || die "chdir($Topsrcdir): $!\n";
+		print `pwd` . " -> chdir($Topsrcdir)\n";
+	}
 
 	@felist = split(/,/, $FE);
 

--zYM0uCDKw75PZbzx--