[darwinbuild-dev] -arch ppc
Charles Darwin
darwinskernel at gmail.com
Mon Aug 11 13:12:15 PDT 2008
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>
<key>CFBundleVersion</key>
<string>1099</string>
<key>ProjectName</key>
<string>DevToolsIDE</string>
<key>SourceVersion</key>
<string>10990000</string>
</dict>
</plist>
> 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/
Charles
More information about the darwinbuild-dev
mailing list