[darwinbuild-dev] -arch ppc

William Siegrist wsiegrist at apple.com
Mon Aug 11 13:21:58 PDT 2008


On Aug 11, 2008, at 1:12 PM, Charles Darwin wrote:

>
> On 11-Aug-08, at 3:25 PM, William Siegrist wrote:
>
>> On Aug 9, 2008, at 12:48 PM, Charles Darwin wrote:
>>
>>>
>>> On 1-Aug-08, at 12:12 PM, William Siegrist wrote:
>>>
>>>>
>>>> On Aug 1, 2008, at 4:43 AM, Charles Darwin wrote:
>>>>
>>>>>
>>>>> On 1-Aug-08, at 12:35 AM, William Siegrist wrote:
>>>>>
>>>>>> On Jul 31, 2008, at 6:50 PM, Charles Darwin wrote:
>>>>>>
>>>>>>> How do I build for ppc only?
>>>>>>>
>>>>>>
>>>>>> The overall idea is to set the RC_ARCHS environment variable.  
>>>>>> But you cant just export it, because its specified in the build  
>>>>>> plists. So here's 2 ways to do it:
>>>>>>
>>>>>> 1. The maintainable/proper way.... Make a new plist that has an  
>>>>>> environment key and a RC_ARCHS value. See 9A581.plist for an  
>>>>>> example of the environment variables. You only need to specify  
>>>>>> what you need to override, so you dont need keys for projects,  
>>>>>> macosx, darwin, whatever.  You should just need the build,  
>>>>>> inherits, and environment keys. Use "darwinxref loadIndex path/ 
>>>>>> to/new.plist" to load it. Use "darwinbuild -build=<build>  
>>>>>> <project>" to build. You can see the value of RC_ARCHS scroll  
>>>>>> by during the build process.
>>>>>
>>>>> I am going with this one.
>>>>> Did this first:
>>>>> $ curl -O http://svn.macosforge.org/repository/darwinbuild/trunk/plists/9A581.plist
>>>>>
>>>>> Changed this line:
>>>>> RC_ARCHS=ppc # at the top (`grep i386 9A581.plist'  returns 132  
>>>>> results though but I pretend not to see, or should I? My  
>>>>> understanding is that's why we are doing it this way and not the  
>>>>> quick/dirty way(?))
>>>>>
>>>>> <http://svn.macosforge.org/repository/darwinbuild/trunk/README>  
>>>>> says something about RC_ppc but I can't find it.
>>>>>
>>>>> I found some other interesting stuff here too:
>>>>> What would happen if I removed individual projects from  
>>>>> 9A581.plist? Can I finally get rid of AppleTalk and Chess?  How  
>>>>> about AppleRAID? (and where is bluetooth?)
>>>>>
>>>>> What if I changed source_sites from
>>>>> 	http://src.macosforge.org/Projects/
>>>>> 		to
>>>>> 	http://www.opensource.apple.com/darwinsource/Current/
>>>>> Would then darwinbuild do what it's supposed to do but build  
>>>>> from Current source? How about binary_sites?
>>>>
>>>>
>>>> You dont need to get the plist manually. Try the following in a  
>>>> new directory:
>>>>
>>>> $ darwinbuild -init 9A581       # this makes some directories and  
>>>> downloads the plists
>>>> $ ls .build                                   # you should see a  
>>>> plist and the database here
>>>>
>>>> Then create a file at .build/ppc_only.plist  (dont forget the  
>>>> leading period) and put this in it:
>>>>
>>>> // !$*UTF8*$!
>>>> {
>>>>     build = ppc_only;
>>>>     darwin = "Darwin 9.0";
>>>>     inherits = 9A581;
>>>>     environment = {
>>>>             INSTALLED_PRODUCT_ASIDES = YES;
>>>>             MACOSX_DEPLOYMENT_TARGET = 10.5;
>>>>             NEXT_ROOT = "";
>>>>             RC_ARCHS = "ppc";
>>>>             RC_JASPER = YES;
>>>>             RC_NONARCH_CFLAGS = "-pipe -no-cpp-precomp";
>>>>             RC_OS = macos;
>>>>             RC_PRIVATE = /private;
>>>>             RC_RELEASE = Leopard;
>>>>             RC_XBS = YES;
>>>>             SEPARATE_STRIP = YES;
>>>>             UNAME_RELEASE = 9.0;
>>>>             UNAME_SYSNAME = Darwin;
>>>>     };
>>>>     macosx = "Mac OS X 10.5.0";
>>>> }
>>>>
>>>>
>>>> Then load the plist and build stuff....
>>>>
>>>> $ darwinxref loadIndex .build/ppc_only.plist          # populates  
>>>> db with your custom build
>>>> $ darwinbuild -build=ppc_only grep                        #  
>>>> builds grep for ppc only, for example
>>>>
>>>> You can make your plist inherit from whatever build you want. For  
>>>> example, lets say you want to build 9E17 projects with only  
>>>> ppc .  And lets say you want to build zlib, and that specifies 4  
>>>> architectures normally (see .build/5A581.plist), you would have a  
>>>> plist like this to override that:
>>>>
>>>> // !$*UTF8*$!
>>>> {
>>>>     build = ppc_only;
>>>>     darwin = "Darwin 9.4";
>>>>     inherits = 9E17;
>>>>     environment = {
>>>>             INSTALLED_PRODUCT_ASIDES = YES;
>>>>             MACOSX_DEPLOYMENT_TARGET = 10.5;
>>>>             NEXT_ROOT = "";
>>>>             RC_ARCHS = "ppc";
>>>>             RC_JASPER = YES;
>>>>             RC_NONARCH_CFLAGS = "-pipe -no-cpp-precomp";
>>>>             RC_OS = macos;
>>>>             RC_PRIVATE = /private;
>>>>             RC_RELEASE = Leopard;
>>>>             RC_XBS = YES;
>>>>             SEPARATE_STRIP = YES;
>>>>             UNAME_RELEASE = 9.0;
>>>>             UNAME_SYSNAME = Darwin;
>>>>     };
>>>>     macosx = "Mac OS X 10.5.4";
>>>> 	projects = {
>>>> 		zlib = {
>>>> 			environment =  {
>>>> 				RC_ARCHS = "ppc";
>>>> 			};
>>>> 		};
>>>> 	};
>>>> }
>>>>
>>>> Remember to reload your plist if you make changes to it with the  
>>>> loadIndex command above.  The RC_ppc variable is set  
>>>> automatically based on RC_ARCHS, so you shouldnt have to worry  
>>>> about it.  As for src.macosforge.org versus opensource.apple.com,  
>>>> I run both servers and put the source on both at the same time.  
>>>> If something is missing, let me know since its probably just an  
>>>> error on my part. The binary_sites URL is used for downloading  
>>>> Roots and BinaryDrivers. If you have a specially built root  
>>>> hosted somewhere, you could use those keys to "darwinbuild -load  
>>>> <project>" and populate your build tree with your root.
>>>>
>>>>
>>>> -Bill
>>>>
>>>>
>>>
>>> I did all of the above and whatever was in the README then ran this:
>>>
>>> ibook-g4:Build9E17 root# darwinbuild -build=ppc_only xnu	# but  
>>> `ctfconvert' seems to be missing.
>>
>>> /bin/sh: /usr/local/bin/ctfconvert: No such file or directory	# so  
>>> build fails. Then I tried this:
>>>
>>
>> I get the same error, but my build continues and succeeds, so I  
>> dont think this is your problem.
>>
>>
>>
>>
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
>>> +++++++++++++
>>> BUILD TIME: 0h 25m 49s
>>> EXIT STATUS: 2
>>>
>>> # Then I tried this:
>>> ibook-g4:Build9E17 root# darwinbuild -build=ppc_only dtrace
>>>
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
>>> +++++++++++++
>>> xcodebuild install  "SRCROOT=/SourceCache/dtrace/dtrace-48"  
>>> "OBJROOT=/private/var/tmp/dtrace/dtrace-48.obj" "SYMROOT=/private/ 
>>> var/tmp/dtrace/dtrace-48.sym" "DSTROOT=/private/var/tmp/dtrace/ 
>>> dtrace-48.root" "RC_ProjectName=dtrace"  
>>> "RC_ProjectSourceVersion=48"  
>>> "RC_ProjectNameAndSourceVersion=dtrace-48"  
>>> "RC_ProjectBuildVersion=1" "INSTALLED_PRODUCT_ASIDES=YES"  
>>> "MACOSX_DEPLOYMENT_TARGET=10.5" "NEXT_ROOT=" "RC_ARCHS=ppc ppc64  
>>> i386 x86_64" "RC_CFLAGS=-pipe -no-cpp-precomp -arch ppc -arch  
>>> ppc64 -arch i386 -arch x86_64" "RC_JASPER=YES" "RC_NONARCH_CFLAGS=- 
>>> pipe -no-cpp-precomp" "RC_OS=macos" "RC_PRIVATE=/private"  
>>> "RC_RELEASE=Leopard" "RC_XBS=YES" "RC_i386=YES" "RC_ppc=YES"  
>>> "RC_ppc64=YES" "RC_x86_64=YES" "SEPARATE_STRIP=YES"  
>>> "UNAME_RELEASE=9.0" "UNAME_SYSNAME=Darwin" < /dev/null
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
>>> +++++++++++++
>>>
>>> Build log begins here:
>>>
>>> Error: /usr/bin/xcode-select not found.
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
>>> +++++++++++++
>>> BUILD TIME: 0h 0m 0s
>>> EXIT STATUS: 1
>>> ibook-g4:Build9E17 root# which xcode-select	# but xcode-select is  
>>> there
>>> /usr/bin/xcode-select
>>>
>>
>>
>> DarwinBuild runs in a chroot, so you really need to look for ./ 
>> BuildRoot/usr/bin/xcode-select.
>
> root# ls ./BuildRoot/usr/bin/xcode-select
> ls: ./BuildRoot/usr/bin/xcode-select: No such file or directory
> root# pwd
> /Volumes/Builds/Build9E17
>
>> That file should be copied into your buildroot when DarwinBuild  
>> first tried to build an xcode project. Do you have Xcode installed  
>> on your host OS?
>
> Yes I do.
> root# cat /Developer/Applications/Xcode.app/Contents/version.plist
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd 
> ">
> <plist version="1.0">
> <dict>
> 	<key>BuildVersion</key>
> 	<string>1</string>
> 	<key>CFBundleShortVersionString</key>
> 	<string>3.1</string>
>

Xcode 3.1? I havnt had a chance to work on 3.1 compatibility, so all I  
can suggest is try copying xcode-select from your host's partition  
into your buildroot. You may need to copy supporting libraries and  
frameworks as well.  DarwinBuild should have ran the Xcode 3.0  
"install", which does include xcode-select, so something changed  
enough in 3.1 to break that.


>> DarwinBuild cannot build Xcode for you since its not open source.
>>
>> -Bill
>>
>
> Now I am confused. What is this then?
>
> http://www.opensource.apple.com/darwinsource/DevToolsMar2008/



Xcode contains some open source components (like gcc), so those are  
posted. Its not enough to generate the entire xcodebuild system.


-Bill


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2421 bytes
Desc: not available
Url : http://lists.macosforge.org/pipermail/darwinbuild-dev/attachments/20080811/969a1129/attachment.bin 


More information about the darwinbuild-dev mailing list