[darwinbuild-changes] [243] trunk/darwinbuild/darwinbuild

source_changes at macosforge.org source_changes at macosforge.org
Wed Oct 4 02:01:55 PDT 2006


Revision: 243
          http://trac.macosforge.org/projects/darwinbuild/changeset/243
Author:   ssen
Date:     2006-10-04 02:01:54 -0700 (Wed, 04 Oct 2006)

Log Message:
-----------
In the build script prologue, prettify output by redirecting stderr to
/dev/null if a tool like head(1) isn't found.
Enable darwintrace early so that "xcodebuild -version" is logged,
but wrap that in a "sh -c" so that a subshell is used, so the execve(2)
is logged.

In this way, head(1), tail(1), hostname(1), etc., are "optional".
They get used if present in the build root, but don't cause
spew if not. And their dependency is never added to the database.
This is kind of fragile, but it also works.

Modified Paths:
--------------
    trunk/darwinbuild/darwinbuild

Modified: trunk/darwinbuild/darwinbuild
===================================================================
--- trunk/darwinbuild/darwinbuild	2005-09-14 02:23:38 UTC (rev 242)
+++ trunk/darwinbuild/darwinbuild	2006-10-04 09:01:54 UTC (rev 243)
@@ -594,18 +594,42 @@
 cat <<-EOF > $SCRIPT
 	#!/bin/sh
 	echo '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
-	echo "BUILDING $project~$build_version on \$(date)"
+	echo "BUILDING $project~$build_version on \$(date 2>/dev/null)"
 	echo '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
 	echo 'Build configuration:'
-	echo "    Build host:      \$(hostname)"
+	echo "    Build host:      \$(hostname 2>/dev/null)"
 	echo '    Build tool:      $buildtool'
 	echo '    Build action:    $action'
 	echo "    Build number:    $build"
-	echo "    cc version:      \$(gcc -v 2>&1 | tail -n 1)"
-	echo "    cctools version: \$(echo | as -v 2>&1 | cut -c 22-)"
+	echo "    cc version:      \$(gcc -v 2>&1 | tail -n 1 2>/dev/null)"
+	echo "    cctools version: \$(as -v -o /dev/null < /dev/null 2>&1 | cut -c 22- 2>/dev/null)"
+EOF
+if [ "$logdeps" == "YES" ]; then
+	if [ "$CHROOTED" == "YES" ]; then
+		if [ "$DARWINTRACE" -nt "$BuildRoot/usr/lib/darwintrace.dylib" ]; then
+			mkdir -p "$BuildRoot/usr/lib"
+			cp "$DARWINTRACE" \
+		   	"$BuildRoot/usr/lib/darwintrace.dylib"
+		fi
+		echo "export DARWINTRACE_LOG=\"${TRACELOG/$BuildRoot/}\"" >> $SCRIPT
+		echo "export DYLD_INSERT_LIBRARIES=/usr/lib/darwintrace.dylib" >> $SCRIPT
+	else
+		echo "export DARWINTRACE_LOG=\"${TRACELOG}\"" >> $SCRIPT
+		echo "export DYLD_INSERT_LIBRARIES=$DARWINTRACE" >> $SCRIPT
+	fi
+	echo "export DYLD_FORCE_FLAT_NAMESPACE=1" >> $SCRIPT
+fi
 if [ "$buildtool" == "xcodebuild" ]; then
-	echo "    xcode version:   \$($buildtool -version)"
+cat <<-EOF >> $SCRIPT
+	echo "    xcode version:   \$(sh -c \\\"$buildtool -version\\\")"
+EOF
+else
+cat <<-EOF >> $SCRIPT
+	echo "    make version:    \$(sh -c \\\"$buildtool -version\\\" | head -1 2>/dev/null)"
+EOF
 fi
+
+cat <<-EOF >> $SCRIPT
 	echo '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
 	echo 'Build parameters:'
 	echo SRCROOT: '$SRCROOT'
@@ -676,22 +700,7 @@
 	echo ''
 	cd '$SRCROOT'
 EOF
-if [ "$logdeps" == "YES" ]; then
-	if [ "$CHROOTED" == "YES" ]; then
-		if [ "$DARWINTRACE" -nt "$BuildRoot/usr/lib/darwintrace.dylib" ]; then
-			mkdir -p "$BuildRoot/usr/lib"
-			cp "$DARWINTRACE" \
-		   	"$BuildRoot/usr/lib/darwintrace.dylib"
-		fi
-		echo "export DARWINTRACE_LOG=\"${TRACELOG/$BuildRoot/}\"" >> $SCRIPT
-		echo "export DYLD_INSERT_LIBRARIES=/usr/lib/darwintrace.dylib" >> $SCRIPT
-	else
-		echo "export DARWINTRACE_LOG=\"${TRACELOG}\"" >> $SCRIPT
-	fi
-	echo "export DYLD_FORCE_FLAT_NAMESPACE=1" >> $SCRIPT
-fi
 cat <<-EOF >> $SCRIPT
-	sh -c "$buildtool -version < /dev/null > /dev/null"
 	$buildtool $action $build_string < /dev/null 
 	EXIT_STATUS="\$?"
 	echo '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
@@ -751,14 +760,6 @@
 
 else
 	###
-	### Not CHROOTED, but possibly logging dependencies
-	###
-	if [ "$logdeps" == "YES" ]; then
-		export DYLD_INSERT_LIBRARIES="$DARWINTRACE"
-		export DYLD_FORCE_FLAT_NAMESPACE=1
-		export DARWINTRACE_LOG="$TRACELOG"
-	fi
-	###
 	### Actually invoke the build tool here
 	###
 	$BuildRoot/$vartmp/$projnam/build-$project~$build_version.sh 2>&1 | tee -a "$LOG"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20061004/4dc0ad9f/attachment-0001.html


More information about the darwinbuild-changes mailing list