On Wed, November 28, 2012 19:39, Jonas Maebe wrote:
> On 28 Nov 2012, at 19:22, waldo kitty wrote:
>
>> on OS/2 eCS2 i have fpc 2.6.0 release installed... i've been working
>> with a library and needed to create a define so that some code would be
>> compiled that otherwise is not... since i have to compile from the
>> command line with fpc, i compiled my project like this...
>>
>>  fpc -dOS2GCC testhttp
>>
>> and it did compile with the defined code block... later, i wanted to
>> test without that defined code block so i compiled again like this...
>>
>>  fpc testhttp
>>
>> but the library wasn't recompiled... i had to manually remove the *.O
>> and *.ppu files to get it recompiled without the defined code block...
>>
>> why?
>
> Changing defines does not cause recompilation of units because e.g. the
> defines required to compile the FPC RTL or packages are completely
> unrelated to any defines that may or may not be required for compiling
> your program. In general, requiring you to specify all defines used for
> every unit you use in a program would result in an unmaintainable
> situation.
>
> Additionally, there are some practical difficulties with adding hints for
> indicating such situations, see
> http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/compiler/fppu.pas?annotate=22452#l659

In other words - it is normal, but you can solve it without manually
deleting the created *.o and *.ppu files by using the -B parameter (which
asks fpc to rebuild all units for which it has sources with the new
command line parameters including conditional defines provided on the
command line).

Tomas


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to