Re: Ver 4.0 ifdef question

new topic     » goto parent     » topic index » view thread      » older message » newer message
bernie said...

I understand that ifdef is a great feature for writing the interpreter 
 
because you will always know what operating system it will run on and 
 
can set define for that operating system. 
 
 
 
 
But if ifdef does not operate at run-time and there is no longer a platform() 
 
then how does a cross platform library no what operating system it's 
 
running on ??????? 
 

It usually does.

ifdef in a library is processed when the library code is being parsed.

If the library is parsed on the machine that will execute its code, then it knows on which OS it is running.

If you translate the library, then you'll need to cross-compile for each target platform, and the translator takes care of the platform dependent ifdefs. Obviously, it doesn't know about ifdef tags that are not platform related, like SAFE, assuming their current status. You need to add command line -D switches for that.

If you bind your library, then something may go wrong. But, with the translator being free, why bind at all? You need a C compiler to translate, but you require your users to have the interpreter if you bind. bind? -shroud_only is still useful for debugging or performance fine tuning.

CChris

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu