Build configurations & boost

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Build configurations & boost

Fabrice_CBA
Hi all,
 
I have a question regarding all the different build configurations available when building quantlib under visual studio 2008. This is not really "Quantlib" related, and I apologise in advance for that.
 
I see that 4 different build configurations are available: Debug, Debug CRTDLL, Release and Release CRTDLL. Although I am familiar with the differences between a Debug build and a Release build, the Debug CRTDLL and the Release CRTDLL configurations puzzle me a bit. I guess the real question is: "What are they and what is the difference between them and a normal Debug/Release config?".
 

 
Regarding the boost dependencies it appears that each one of those configurations requires a different type of librairy to link with (for the test-suite project only I think):
Debug -> Multi-thread Debug, static runtime (mt-sgd)
Debug CRTDLL -> Multi-thread Debug (mt-gd)
Release -> Multi-thread, static runtime (mt-s)
Release CRTDLL -> Multi-thread (mt)
 
I would have expected the CRTDLL configurations to require the Multi-thread DLL librairies, and the non-CRTDLL to need the Multi-thread librairies. Anyone can shed some light on this?
 

 
Also when building under Release or Release CRTDLL, the test suite is automatically run at the end of the process. This is a cool thing, but how is it done?
 
I apologise again for the fact that those questions are a little bit outside of the scope of this mailing list, but would appreciate any precision you could give me.
 
Cordialement,
Fabrice
************** IMPORTANT MESSAGE *****************************       
This e-mail message is intended only for the addressee(s) and contains information which may be
confidential. 
If you are not the intended recipient please advise the sender by return email, do not use or
disclose the contents, and delete the message and any attachments from your system. Unless
specifically indicated, this email does not constitute formal advice or commitment by the sender
or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. 
We can be contacted through our web site: commbank.com.au. 
If you no longer wish to receive commercial electronic messages from us, please reply to this
e-mail by typing Unsubscribe in the subject line. 
**************************************************************



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Build configurations & boost

Luigi Ballabio

Fabrice,
        apologies for the delay. Vacations disrupted my email queue...

On Aug 7, 2008, at 3:18 AM, Lecuyer, Fabrice wrote:
> I see that 4 different build configurations are available: Debug,  
> Debug CRTDLL, Release and Release CRTDLL. Although I am familiar  
> with the differences between a Debug build and a Release build, the  
> Debug CRTDLL and the Release CRTDLL configurations puzzle me a bit.  
> I guess the real question is: "What are they and what is the  
> difference between them and a normal Debug/Release config?".

The "normal" Debug/Release configurations cause the library to link to  
the static C++ runtime, so that applications using it are self-
contained. The cryptic CRTDLL configurations link to the DLL runtime,  
so that the applications are somewhat smaller but require the runtime  
to be installed on the machines where they're deployed.  We might have  
to clarify this in future releases...


> Regarding the boost dependencies it appears that each one of those  
> configurations requires a different type of librairy to link with  
> (for the test-suite project only I think):
> Debug -> Multi-thread Debug, static runtime (mt-sgd)
> Debug CRTDLL -> Multi-thread Debug (mt-gd)
> Release -> Multi-thread, static runtime (mt-s)
> Release CRTDLL -> Multi-thread (mt)
>
> I would have expected the CRTDLL configurations to require the Multi-
> thread DLL librairies, and the non-CRTDLL to need the Multi-thread  
> librairies. Anyone can shed some light on this?

The Boost people mean something different when they say "DLL"---they  
refer to the libraries, not the runtime. In the above, where static  
runtime is not specified, imagine a "dll runtime" and you'll have a  
match with our convention.


> Also when building under Release or Release CRTDLL, the test suite  
> is automatically run at the end of the process. This is a cool  
> thing, but how is it done?

It's a post-build action.  I don't remember how you enable it right  
now (I'm writing this from my MacBook at home) but if you open the  
project settings and look around, you'll find it somewhere.

Luigi


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Build configurations & boost

Ferdinando M. Ametrano-3
On Wed, Sep 3, 2008 at 11:06 PM, Luigi Ballabio
<[hidden email]> wrote:
> The cryptic CRTDLL configurations link to the DLL runtime

crtdll.dll is a module containing standard C library functions such as
printf, memcpy, etc

> so that the applications are somewhat smaller
as far as I've been told it's not just that. To use dynamic linking to
the c library it's mandatory if you want the same ObjectHandler xll to
be shared by multiple xlls.

ciao -- nando

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Build configurations & boost

Fabrice_CBA
In reply to this post by Luigi Ballabio
Hi Luigi,

Thanks for the answer. It wasn't a problem it took some time to come, as
I was on vacations too :-).

I'm happy it started a general discussion over the configurations.

For those interested, I found the way to run the test suite after the
build under the test suite project properties / Build Events /
Post-Build Events.

Merci,
Fabrice

-----Original Message-----
From: Luigi Ballabio [mailto:[hidden email]]
Sent: Thursday, 4 September 2008 7:07 AM
To: Lecuyer, Fabrice
Cc: [hidden email]
Subject: Re: [Quantlib-users] Build configurations & boost


Fabrice,
        apologies for the delay. Vacations disrupted my email queue...

On Aug 7, 2008, at 3:18 AM, Lecuyer, Fabrice wrote:
> I see that 4 different build configurations are available: Debug,
> Debug CRTDLL, Release and Release CRTDLL. Although I am familiar with
> the differences between a Debug build and a Release build, the Debug
> CRTDLL and the Release CRTDLL configurations puzzle me a bit.
> I guess the real question is: "What are they and what is the
> difference between them and a normal Debug/Release config?".

The "normal" Debug/Release configurations cause the library to link to
the static C++ runtime, so that applications using it are self-
contained. The cryptic CRTDLL configurations link to the DLL runtime, so
that the applications are somewhat smaller but require the runtime to be
installed on the machines where they're deployed.  We might have to
clarify this in future releases...


> Regarding the boost dependencies it appears that each one of those
> configurations requires a different type of librairy to link with (for

> the test-suite project only I think):
> Debug -> Multi-thread Debug, static runtime (mt-sgd) Debug CRTDLL ->
> Multi-thread Debug (mt-gd) Release -> Multi-thread, static runtime
> (mt-s) Release CRTDLL -> Multi-thread (mt)
>
> I would have expected the CRTDLL configurations to require the Multi-
> thread DLL librairies, and the non-CRTDLL to need the Multi-thread
> librairies. Anyone can shed some light on this?

The Boost people mean something different when they say "DLL"---they
refer to the libraries, not the runtime. In the above, where static
runtime is not specified, imagine a "dll runtime" and you'll have a
match with our convention.


> Also when building under Release or Release CRTDLL, the test suite is
> automatically run at the end of the process. This is a cool thing, but

> how is it done?

It's a post-build action.  I don't remember how you enable it right now
(I'm writing this from my MacBook at home) but if you open the project
settings and look around, you'll find it somewhere.

Luigi


************** IMPORTANT MESSAGE *****************************      
This e-mail message is intended only for the addressee(s) and contains information which may be
confidential.
If you are not the intended recipient please advise the sender by return email, do not use or
disclose the contents, and delete the message and any attachments from your system. Unless
specifically indicated, this email does not constitute formal advice or commitment by the sender
or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries.
We can be contacted through our web site: commbank.com.au.
If you no longer wish to receive commercial electronic messages from us, please reply to this
e-mail by typing Unsubscribe in the subject line.
**************************************************************




-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users