[fpc-devel] (Re)compiling FPC or is there something like fpc.bpg?

Adem listmember at letterboxes.org
Fri Jul 23 18:32:05 CEST 2010


  On 2010-07-23 4:41 PM, Marco van de Voort wrote:
> In our previous episode, Joost van der Sluis said:
>> I think that fpmake.pp is exactly what you want. Only it doesn't work
>> fully yet.
>>
>> If fpmake works, we don't need make anymore.
> It is not, since it requires an installed RTL + fpmkunit to create the first
> fpmake. This is the bit handled by the still to be created bootstrap
> scripts.
What I am aiming is to, first, get the information in each 'fpmake.pp' 
file into one single 'Installer' object.

Then, from that object, I'll try to generate a project file to be 
compiled under Lazarus.

It looks doable, except that, each 'fpmake.pp' file is a project with 
information such as below.

program  fpmake;
   uses  fpmkunit;
   Var
     P: TPackage;
     T: TTarget;
   begin
     With Installerdo
     begin
       P := AddPackage('my-nice-program');
       P.OSes  :=[win32,openbsd,netbsd,freebsd,darwin,linux];
       T := P.Targets.AddUnit('myunit');
       T.ResourceStrings  :=True;
       T := P.Targets.AddUnit('myprogram');
       T.Dependencies.Add('myunit');
       Run;
     end;

   end.

This is, unfortunately, less than usable for my purposes.

What I would like is something like this:

With Installerdo
begin
   P := AddPackage('my-nice-program');
   P.OSes  :=[win32,openbsd,netbsd,freebsd,darwin,linux];
   T := P.Targets.AddUnit('myunit');
   T.ResourceStrings  :=True;
   T := P.Targets.AddUnit('myprogram');
   T.Dependencies.Add('myunit');
   Run;
end;

in a file called, say, 'fpmake.pp.inc'.

Then, I could simply combine them into a single unit.

Obviously, a little more work is involved but this is the gist of it.

Now, what I'd like to know is what generates those 'fpmake.pp' files, so 
that I might take a shot altering it to generate 'fpmake.pp.inc' files 
the way I wanted.



More information about the fpc-devel mailing list