building 1.43 for iPhone

Hello, Few months ago I succesfully built 1.41 for iPhone, but it seems that the things changed since then. I'm trying to follow these recommendations (for 1.42): http://iphone.galloway.me.uk/2009/11/compiling-boost-for-the-iphone/ I define "iphone3.1.2" version in my user-config.jam, but bjam says: "feature.jam:485: in feature-validate-value-string from module feature error: 'iphone3.1.2' is not know value of feature <macosx-version>". Does it mean that the building system doesn't find user-config.jam? Thanks.

AMDG Igor R wrote:
Few months ago I succesfully built 1.41 for iPhone, but it seems that the things changed since then. I'm trying to follow these recommendations (for 1.42): http://iphone.galloway.me.uk/2009/11/compiling-boost-for-the-iphone/ I define "iphone3.1.2" version in my user-config.jam, but bjam says: "feature.jam:485: in feature-validate-value-string from module feature error: 'iphone3.1.2' is not know value of feature <macosx-version>". Does it mean that the building system doesn't find user-config.jam?
You can check with bjam --debug-configuration In Christ, Steven Watanabe

You can check with bjam --debug-configuration
It appears that it does find user-config, but then it says it doesn't see the relevant feature: $ bjam --debug-configuration notice: found boost-build.jam at /Users/me/Dev/company/projects/ThirdParty/boost/boost-build.jamnotice: loading Boost.Build from /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2 notice: Searching /etc /Users/me /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2 /usr/share/boost-build /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/kernel /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/util /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/tools /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/contrib /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/. for site-config configuration file site-config.jam . notice: Loading site-config configuration file site-config.jam from /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/site-config.jam . notice: Searching /Users/me /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2 /usr/share/boost-build /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/kernel /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/util /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/tools /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/contrib /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/. for user-config configuration file user-config.jam . notice: Loading user-config configuration file user-config.jam from /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/user-config.jam . notice: OSX version on this machine is 10.6.2 notice: will use '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2' for darwin, condition <toolset>darwin-4.2.1~iphone/<architecture>arm/<target-os>iphone/<macosx-version>iphone-3.1.2 notice: will use '-arch' for darwin, condition <toolset>darwin-4.2.1~iphone/<architecture>arm/<target-os>iphone/<macosx-version>iphone-3.1.2 notice: will use 'armv7' for darwin, condition <toolset>darwin-4.2.1~iphone/<architecture>arm/<target-os>iphone/<macosx-version>iphone-3.1.2 notice: will use '-mthumb' for darwin, condition <toolset>darwin-4.2.1~iphone/<architecture>arm/<target-os>iphone/<macosx-version>iphone-3.1.2 notice: will use '-fvisibility=hidden' for darwin, condition <toolset>darwin-4.2.1~iphone/<architecture>arm/<target-os>iphone/<macosx-version>iphone-3.1.2 notice: will use '-fvisibility-inlines-hidden' for darwin, condition <toolset>darwin-4.2.1~iphone/<architecture>arm/<target-os>iphone/<macosx-version>iphone-3.1.2 /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/feature.jam:485: in feature.validate-value-string from module feature error: "iphone-3.1.2" is not a known value of feature <macosx-version> error: legal values: /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/property.jam:276: in validate1 from module property /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/property.jam:301: in validate from module property /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/property.jam:310: in property.validate-property-sets from module property /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/toolset.jam:151: in toolset.flags from module toolset /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/tools/common.jam:430: in common.handle-options from module common /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/tools/darwin.jam:132: in darwin.init from module darwin /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/toolset.jam:38: in toolset.using from module toolset /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/project.jam:881: in using from module user-config /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/user-config.jam:40: in modules.load from module user-config /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build-system.jam:257: in load-config from module build-system /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build-system.jam:399: in load-configuration-files from module build-system /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build-system.jam:554: in load from module build-system /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/kernel/modules.jam:283: in import from module modules /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module /Users/me/Dev/company/projects/ThirdParty/boost/boost-build.jam:17: in module scope from module

error: "iphone-3.1.2" is not a known value of feature <macosx-version> error: legal values:
What I don't understand is why it doesn't even enumerate "legal values". I tried to add to darwin.jam the following: .macosx-versions = 10.6 10.5 10.4 10.3 10.2 10.1 iphone-3.1.2 iphonesim-3.1.2 iphone-3.1 iphonesim-3.1 iphone-3.0 iphonesim-3.0 iphone-2.2.1 iphonesim-2.2.1 iphone-2.2 iphonesim-2.2 iphone-2.1 iphonesim-2.1 iphone-2.0 iphonesim-2.0 iphone-1.x ; But it doesn't help.

AMDG Igor R wrote:
error: "iphone-3.1.2" is not a known value of feature <macosx-version> error: legal values:
What I don't understand is why it doesn't even enumerate "legal values". I tried to add to darwin.jam the following: .macosx-versions = 10.6 10.5 10.4 10.3 10.2 10.1 iphone-3.1.2 iphonesim-3.1.2 iphone-3.1 iphonesim-3.1 iphone-3.0 iphonesim-3.0 iphone-2.2.1 iphonesim-2.2.1 iphone-2.2 iphonesim-2.2 iphone-2.1 iphonesim-2.1 iphone-2.0 iphonesim-2.0 iphone-1.x ;
But it doesn't help.
Why do expect it to help? This just defines a variable that is never used. darwin.jam tries to deduce available versions. It searches /Developer/SDKs for MacOSX*.sdk iPhoneOS*.sdk iPhoneSimulator*.sdk If this is in a difference location, you need to pass <root> when initializing darwin. In Christ, Steven Watanabe

darwin.jam tries to deduce available versions. It searches /Developer/SDKs for MacOSX*.sdk iPhoneOS*.sdk iPhoneSimulator*.sdk
Ok, I see. The default location of iPhone SDKs is /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/...
If this is in a difference location, you need to pass <root> when initializing darwin.
How exactly? Can I do this without manually modifying darwin.jam? Thanks a lot!

AMDG Igor R wrote:
darwin.jam tries to deduce available versions. It searches /Developer/SDKs for MacOSX*.sdk iPhoneOS*.sdk iPhoneSimulator*.sdk
Ok, I see. The default location of iPhone SDKs is /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/...
If this is in a difference location, you need to pass <root> when initializing darwin.
How exactly? Can I do this without manually modifying darwin.jam?
I think this will work. (This is just a guess since I can't test it) using darwin : /version/ : /command/ : <root>/Developer/Platforms/iPhoneOS.platform/Developer ; Of course, it would be better to fix the search. Does it work if you modify init-available-sdk-versions and add /Developer/Platforms/iPhoneOS.platform/Developer to root? In Christ, Steven Watanabe

I think this will work. (This is just a guess since I can't test it) using darwin : /version/ : /command/ : <root>/Developer/Platforms/iPhoneOS.platform/Developer ;
It says now: sh: /version/: No such file or directory /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/property.jam:292: in validate1 from module property error: Invalid property '<root>/Developer/Platforms/iPhoneOS.platform/Developer': unknown feature 'root'.
Of course, it would be better to fix the search. Does it work if you modify init-available-sdk-versions and add /Developer/Platforms/iPhoneOS.platform/Developer to root?
I changed "root" variable like this: local rule init-available-sdk-versions ( condition * : root ? ) { root ?= /Developer/Platforms/iPhoneOS.platform/Developer ; //........... The output looks the same - it seems it doesn't affect the search at all. I also tried to change sdks-root: root ?= /Developer ; local sdks-root = $(root)/Platforms/iPhoneOS.platform/Developer/SDKs ; Same effect.

AMDG Igor R wrote:
I think this will work. (This is just a guess since I can't test it) using darwin : /version/ : /command/ : <root>/Developer/Platforms/iPhoneOS.platform/Developer ;
It says now: sh: /version/: No such file or directory /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/property.jam:292: in validate1 from module property error: Invalid property '<root>/Developer/Platforms/iPhoneOS.platform/Developer': unknown feature 'root'.
I meant /version/ and /command/ to be replaced by the actual version and compiler command. They can also be left blank.
Of course, it would be better to fix the search. Does it work if you modify init-available-sdk-versions and add /Developer/Platforms/iPhoneOS.platform/Developer to root?
I changed "root" variable like this:
local rule init-available-sdk-versions ( condition * : root ? ) { root ?= /Developer/Platforms/iPhoneOS.platform/Developer ; //...........
The output looks the same - it seems it doesn't affect the search at all. I also tried to change sdks-root: root ?= /Developer ; local sdks-root = $(root)/Platforms/iPhoneOS.platform/Developer/SDKs ; Same effect.
Okay. What does the directory /Developer/Platforms/iPhoneOS.platform/Developer/SDKs contain? In Christ, Steven Watanabe

On 6/12/2010 4:31 PM, Steven Watanabe wrote:
Igor R wrote:
I think this will work. (This is just a guess since I can't test it) using darwin : /version/ : /command/ : <root>/Developer/Platforms/iPhoneOS.platform/Developer ;
It says now: sh: /version/: No such file or directory /Users/me/Dev/company/projects/ThirdParty/boost/tools/build/v2/build/property.jam:292:
in validate1 from module property error: Invalid property '<root>/Developer/Platforms/iPhoneOS.platform/Developer': unknown feature 'root'.
I meant /version/ and /command/ to be replaced by the actual version and compiler command. They can also be left blank.
The following is close to what I use.. === using darwin : 4.2.1~iphone : /Developer/Xcode-3.2.2/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -arch armv6 : <striper> : <architecture>arm <target-os>iphone ; using darwin : 4.2.1~iphonesim : /Developer/Xcode-3.2.2/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ : <striper> : <architecture>x86 <target-os>iphone ; === The code in darwin.jam will automatically detect where the "root" is based on the "g++" command you give it. I install Xcode in a separate dir for each version as they will conflict with each other when you are dealing with betas and non-iPhone Xcode. Especially since you can't submit app to the AppStore with betas. Installing to a separate dir also lets you easily use multiple versions at once. And to "uninstall" by just deleting the dir. Replacing the full, correct, path to your iOS/Simulator specific location should work.
Of course, it would be better to fix the search. Does it work if you modify init-available-sdk-versions and add /Developer/Platforms/iPhoneOS.platform/Developer to root?
I changed "root" variable like this:
local rule init-available-sdk-versions ( condition * : root ? ) { root ?= /Developer/Platforms/iPhoneOS.platform/Developer ; //...........
The output looks the same - it seems it doesn't affect the search at all. I also tried to change sdks-root: root ?= /Developer ; local sdks-root = $(root)/Platforms/iPhoneOS.platform/Developer/SDKs ; Same effect.
That would be because it's first using the command to find the root. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

Ok, it works now. I've reverted darwin.jam to it original state and put in user.config.jam the following: using darwin : 4.2.1~iphone : /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -arch armv7 : <striper> : <architecture>arm <target-os>iphone ; using darwin : 4.2.1~iphonesim : /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ : <striper> : <architecture>x86 <target-os>iphone ; Steven, Rene -- thanks a lot!
participants (3)
-
Igor R
-
Rene Rivera
-
Steven Watanabe