[darwinbuild-changes] [520] trunk/darwinbuild/darwinbuild.in

source_changes at macosforge.org source_changes at macosforge.org
Fri May 22 15:28:48 PDT 2009


Revision: 520
          http://trac.macosforge.org/projects/darwinbuild/changeset/520
Author:   wsiegrist at apple.com
Date:     2009-05-22 15:28:48 -0700 (Fri, 22 May 2009)
Log Message:
-----------
Add support for -nosource option that preserves what is already in SourceCache. This keeps darwinbuild from overwriting changes you make to SourceCache during incremental debugging/building. (dmaclach)

Modified Paths:
--------------
    trunk/darwinbuild/darwinbuild.in

Modified: trunk/darwinbuild/darwinbuild.in
===================================================================
--- trunk/darwinbuild/darwinbuild.in	2009-05-22 22:26:58 UTC (rev 519)
+++ trunk/darwinbuild/darwinbuild.in	2009-05-22 22:28:48 UTC (rev 520)
@@ -104,6 +104,7 @@
 logdeps=""
 nopatch=""
 noload=""
+nosource=""
 loadonly=""
 projnam=""
 action="install"
@@ -201,11 +202,12 @@
 
 function PrintUsage() {
 	cat <<-EOF 1>&2
-	usage: $(basename $0) [flags] <project> [<version>]
-	usage: flags: [-headers] [-build=X] [-target=X] [-configuration=X]
-	              [-logdeps] [-nochroot] [-nopatch] [-noload | -loadonly]
-	              [-depsbuild=X [-depsbuild=Y]]
-	              [-fetch] [-source] [-load]
+	usage: $(basename $0) [action] [options] <project> [<version>]
+	actions: [-headers] [-fetch] [-source] [-load] [-loadonly] 
+	options: [-build=X] [-target=X] [-configuration=X]
+	         [-logdeps] [-nochroot] [-nopatch] [-noload]
+	         [-depsbuild=X [-depsbuild=Y]] [-nosource]
+	             
 EOF
 	exit 1
 }
@@ -264,21 +266,29 @@
 
 ###
 ### Interpret our arguments:
+###
+###  Actions:
 ###   -headers  Do the installhdrs phase, instead of install
-###   -fetch    Download necessary source and patch files
+###   -fetch    Only download necessary source and patch files
 ###   -source   Extract, patch, and stage source
-###   -nochroot Do not chroot into the BuildRoot when building
 ###   -load     Populate the BuildRoot with one project
+###   -loadonly Only load dependencies into the chroot, but
+###              don't build.
+###
+###  Options:
+###   -nosource Do not fetch or stage source. This assumes that the 
+###              source is already in place in the BuildRoot. 
+###   -logdeps  Do magic to log the build-time dependencies
 ###   -nopatch  Don't patch sources before building.
 ###   -noload   Don't load dependencies into the chroot.
-###				Has no effect if -nochroot is specified.
-###   -loadonly Only load dependencies into the chroot, but
-###                             don't build.
-###   -logdeps  Do magic to log the build-time dependencies
+###		 Has no effect if -nochroot is specified.
+###   -nochroot Do not chroot into the BuildRoot when building
 ###   -target=X The makefile or xcode target to build
-###   -configuration=X The build configuration to use
-###   -build=X  X is the darwin build number to buld, e.g. 8B15
-###   -depsbuild=X X is the darwin build number to populate the BuildRoot 
+###   -configuration=X Specify the build configuration to use
+###   -build=X  Specify the darwin build number to buld, e.g. 8B15
+###   -depsbuild=X Specify the darwin build number to populate the BuildRoot 
+###
+###  Parameters:
 ###   <project> The name of the project to build
 ###   <version> If specified, the version of the project to build
 ###             this will default to the version associated with the
@@ -324,6 +334,9 @@
 			loadonly="YES"
 		elif [ "$ARG" == "-logdeps" ]; then
 			logdeps="YES"
+		elif [ "$ARG" == "-nosource" ]; then
+			nosource="YES"
+			nopatch="YES"
 		elif [ "${ARG:0:1}" != "-" ]; then
 			projnam="$ARG"
 		else
@@ -414,31 +427,29 @@
 	exit 1
 fi
 
-
-
-
-
 ###
 ### Download the sources,
 ### and any applicable patches.
 ###
-echo "*** Fetching Sources ..."
-# project might be a build alias
-if [ "$alias" != "" ]; then
-	filename="$alias-$version.tar.gz"
-else
-	filename="$project.tar.gz"
-fi
-patchfilenames=$($DARWINXREF patchfiles $projnam)
-#echo "patchfiles are $patchfilenames"
-Download "$SourceCache" "$filename" "$($DARWINXREF source_sites $projnam)"
-for p in $patchfilenames; do
-    Download "$SourceCache" "$p" "$($DARWINXREF source_sites $projnam)"    
-done
+if [ "$nosource" != "YES" ]; then
+	echo "*** Fetching Sources ..."
+	# project might be a build alias
+	if [ "$alias" != "" ]; then
+		filename="$alias-$version.tar.gz"
+	else
+		filename="$project.tar.gz"
+	fi
+	patchfilenames=$($DARWINXREF patchfiles $projnam)
+	#echo "patchfiles are $patchfilenames"
+	Download "$SourceCache" "$filename" "$($DARWINXREF source_sites $projnam)"
+	for p in $patchfilenames; do
+	    Download "$SourceCache" "$p" "$($DARWINXREF source_sites $projnam)"    
+	done
 
-### If we are doing a -fetch, stop here.
-if [ "$action" == "fetch" ]; then
-	exit
+	### If we are doing a -fetch, stop here.
+	if [ "$action" == "fetch" ]; then
+		exit
+	fi
 fi
 
 ###
@@ -473,37 +484,39 @@
 export SYMROOT="${REAL_SYMROOT/$prefix/}"
 export DSTROOT="${REAL_DSTROOT/$prefix/}"
 
-###
-### Remove any pre-existing directories that might be in the way
-### and create new directories in their place.  Make sure the
-### directories have root:wheel ownership, otherwise things may
-### not build correctly.
-###
-rm -Rf "$REAL_SRCROOT" "$REAL_OBJROOT" "$REAL_SYMROOT" "$REAL_DSTROOT"
-mkdir -p "$REAL_SRCROOT" "$REAL_OBJROOT" "$REAL_SYMROOT" "$REAL_DSTROOT"
-chown root:wheel "$REAL_SRCROOT" "$REAL_OBJROOT" "$REAL_SYMROOT" "$REAL_DSTROOT"
-
-###
-### Install the sources and patches into the BuildRoot
-###
-cd "$REAL_SRCROOT/.."
-echo "*** Copying Sources ..."
-if [ -d "$SourceCache/$project" ]; then
-	tar c -C "$SourceCache" "$project" | tar xf - 
-elif [ "$alias" != "" -a -d "$SourceCache/$alias-$version" ]; then
-	tar c -C "$SourceCache" "$alias-$version" | tar xf -
-	rmdir "$REAL_SRCROOT"
-	ln -fhs "$alias-$version" "$project"
-elif [ "$alias" != "" ]; then
-	tar xzf "$SourceCache/$alias-$version.tar.gz"
-	rmdir "$REAL_SRCROOT"
-	ln -fhs "$alias-$version" "$project"
-else
-	tar xzf "$SourceCache/$filename"
+if [ "$nosource" != "YES" ]; then
+	###
+	### Remove any pre-existing directories that might be in the way
+	### and create new directories in their place.  Make sure the
+	### directories have root:wheel ownership, otherwise things may
+	### not build correctly.
+	###
+	rm -Rf "$REAL_SRCROOT" "$REAL_OBJROOT" "$REAL_SYMROOT" "$REAL_DSTROOT"
+	mkdir -p "$REAL_SRCROOT" "$REAL_OBJROOT" "$REAL_SYMROOT" "$REAL_DSTROOT"
+	chown root:wheel "$REAL_SRCROOT" "$REAL_OBJROOT" "$REAL_SYMROOT" "$REAL_DSTROOT"
+	
+	###
+	### Install the sources and patches into the BuildRoot
+	###
+	cd "$REAL_SRCROOT/.."
+	echo "*** Copying Sources ..."
+	if [ -d "$SourceCache/$project" ]; then
+		tar c -C "$SourceCache" "$project" | tar xf - 
+	elif [ "$alias" != "" -a -d "$SourceCache/$alias-$version" ]; then
+		tar c -C "$SourceCache" "$alias-$version" | tar xf -
+		rmdir "$REAL_SRCROOT"
+		ln -fhs "$alias-$version" "$project"
+	elif [ "$alias" != "" ]; then
+		tar xzf "$SourceCache/$alias-$version.tar.gz"
+		rmdir "$REAL_SRCROOT"
+		ln -fhs "$alias-$version" "$project"
+	else
+		tar xzf "$SourceCache/$filename"
+	fi
 fi
 
 # you can avoid registering patches in the DB by using "xnu-792--patches.tar.gz"
-if [ -r "$SourceCache/$project-patches.tar.gz" ]; then
+if [ -r "$SourceCache/$project-patches.tar.gz" -a "$nosource" != "YES" ]; then
 	tar xzf "$SourceCache/$project-patches.tar.gz"
 fi
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20090522/84a7d204/attachment-0001.html>


More information about the darwinbuild-changes mailing list