Boost logo

Boost Users :

Subject: Re: [Boost-users] It is possible to build a static version of boost for the MACOS
From: Rush Manbert (rush_at_[hidden])
Date: 2008-10-06 15:52:15


On Oct 6, 2008, at 12:07 PM, Mat Marcus wrote:

> On Mon, Oct 6, 2008 at 9:47 AM, Rush Manbert <rush_at_[hidden]> wrote:
>>
>> On Oct 4, 2008, at 3:08 PM, Sachin Garg wrote:
>>
>>> On Sat, Oct 4, 2008 at 1:11 AM, Rush Manbert <rush_at_[hidden]>
>>> wrote:
>>>>
>>>> On Oct 3, 2008, at 6:30 AM, kittymaguire wrote:
>>>>
>>>>>
>>>>> When I put -static into the linker options, I get a lot of linker
>>>>> errors.
>>>>> So
>>>>> I don't think a static version is possible on the MAC.
>>>>>
>>>>> How can I built each library that I need into a framework for
>>>>> the MAC?
>>>>>
>>>>>
>>>>> Vladimir Prus-3 wrote:
>>>>>>
>>>>>> kittymaguire wrote:
>>>>>>
>>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I have tried to build the boost libraries on the MacOS as a
>>>>>>> static
>>>>>>> library
>>>>>>> by giving bjam the --buid_type=static but it still built the
>>>>>>> dynamic
>>>>>>> version
>>>>>>> of the libraries.
>>>>>>
>>>>
>>>>
>>>>
>>>> Here is a bjam command line that builds the 32 bit libraries,
>>>> debug and
>>>> release versions, both static and dynamic, targeted to Os X 10.4,
>>>> with
>>>> 10.4
>>>> as the minimum supported rev. It also installs them. You will
>>>> need to
>>>> adjust
>>>> the path stuff to use it.
>>>>
>>>> bjam debug release toolset=darwin address-model=32
>>>> architecture=combined
>>>> threading=multi link=shared,static macosx-version=10.4
>>>> macosx-version-min=10.4 --layout=system
>>>> --prefix=/tmp/boostbuild_20081003_104356/32
>>>> --exec-prefix=/tmp/boostbuild_20081003_104356/32
>>>> --builddir=./../buildProductsMac/boost install
>>>>
>>>>
>>>> Here's the equivalent for 64 bit libaries.
>>>>
>>>> bjam debug release toolset=darwin address-model=64
>>>> architecture=combined
>>>> threading=multi link=shared,static macosx-version=10.4
>>>> macosx-version-min=10.4 --layout=system
>>>> --prefix=/tmp/boostbuild_20081003_104356/64
>>>> --exec-prefix=/tmp/boostbuild_20081003_104356/64
>>>> --builddir=./../buildProductsMac/boost install
>>>>
>>>
>>> Why the need to specify OsX version? (I am new to OsX development)
>>> _______________________________________________
>>
>> By default, you get targeted to the current version, which is 10.5.
>> If you
>> need to be compatible with previous versions, you need to specify. I
>> honestly don't quite know what the difference is between macosx-
>> version and
>> macosx-version-min, because I'm not the one who worked out what
>> command line
>> we needed. If you use Xcode, you will see that you can specify
>> which SDK
>> version you target there as well, to support backward compatibility.
>
> macosx-version: which version of the SDK to use
> macosx-version-min: oldest OS version on which executables will be
> deployed
>
> I'm not sure why the suggestion was made to set prefix and exec-prefix
>

Thanks, and sorry, I just threw out the entire command line that we
use, expecting interested parties to edit for their circumstances.
Note that this command line also builds dynamic and static libs, so
you need to change that too if static is all you want. You also might
not want --layout=system...

- Rush


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net