[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