> On 2022-04-13 00:34, denisgolovan via fpc-pascal wrote:
> Your comment about conditional defines goes in the right direction -
> basically:
>
> 1) Separate your changes into parts affecting the compiler behaviour
> (e.g. the changes impacting the compiled structures and code, etc.) from
> changes needed because of the changed behaviour (i.e. use of your new
> features within the RTL and/or the compiler, modified versions of code
> working with the newly / differently compiled structures, etc.).
>
> 2) Create a conditional define for your new changes - this new define
> would be enabled within the compiler behaviour affecting changes.
>
> 3) Make your changes resulting from the changed behaviour (either in the
> RTL, or in the compiler) enabled only when the new conditional define is
> enabled.
>
> If you do this, you should be able to use the standard makefiles without
> any changes (e.g. "make compiler_cycle", etc.).
>
> Tomas
Ok. It's good then.
I'd like to know about the actual CYCLELEVEL logic implementation details.
So far I haven't found any explicit conditional define related to cycle levels.
I assume something like:
{$IF not defined(FPC_CYCLELEVEL1) and not defined(FPC_CYCLELEVEL2) and not
defined(FPC_CYCLELEVEL3)}
// previous version compiler builds our sources
def_system_macro('FPC_CYCLELEVEL1');
{$ENDIF}
{$IFDEF FPC_CYCLELEVEL1}
// CYCLELEVEL1 compiler builds our sources
def_system_macro('FPC_CYCLELEVEL2');
{$ENDIF}
{$IFDEF FPC_CYCLELEVEL2}
// CYCLELEVEL2 compiler builds our sources
def_system_macro('FPC_CYCLELEVEL3');
{$ENDIF}
{$IFDEF FPC_CYCLELEVEL3}
// CYCLELEVEL3 compiler builds our sources
def_system_macro('FPC_CYCLELEVEL4');
{$ENDIF}
... somewhere in options.pas should be enough.
Or maybe there is already some existing / more reliable way?
-- Regards,
Denis Golovan
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal