fpmake.pp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. {$ifndef ALLPACKAGES}
  2. {$mode objfpc}{$H+}
  3. program fpmake;
  4. uses
  5. {$ifdef unix}
  6. cthreads,
  7. {$endif}
  8. fpmkunit;
  9. {$endif ALLPACKAGES}
  10. procedure add_h2pas(const ADirectory: string);
  11. Var
  12. P : TPackage;
  13. T : TTarget;
  14. begin
  15. With Installer do
  16. begin
  17. P:=AddPackage('utils-h2pas');
  18. P.ShortName:='h2pa';
  19. { java and jvm-android do not support
  20. fpc_get_output used in these sources }
  21. if Defaults.CPU=jvm then
  22. P.OSes := P.OSes - [java,android];
  23. { palmos does not support command line parameters }
  24. P.OSes := P.OSes - [palmos];
  25. { Program does not fit in 16-bit memory constraints }
  26. P.OSes := P.OSes - [msdos,win16,zxspectrum,msxdos,amstradcpc,sinclairql,human68k,ps1];
  27. { avr-embedded and i8086-embedded do not support all needed features by default }
  28. if Defaults.CPU in [avr,i8086,z80] then
  29. P.OSes := P.OSes - [embedded];
  30. { wasm32 CPU does not support
  31. goto used in these sources }
  32. if Defaults.CPU=wasm32 then
  33. P.OSes := P.OSes - [wasip1,wasip1threads,wasip2,embedded];
  34. P.Author := '<various>';
  35. P.License := 'LGPL with modification';
  36. P.HomepageURL := 'www.freepascal.org';
  37. P.Email := '';
  38. P.Description := 'A utility to create Pascal header files from c header files.';
  39. P.NeedLibC:= false;
  40. P.Directory:=ADirectory;
  41. P.Version:='3.3.1';
  42. P.Options.Add('-Sg');
  43. p.Commands.AddCommand(caBeforeCompile, AddProgramExtension('pyacc', Defaults.BuildOS), '$(SOURCE) $(DEST)','h2pparse.pp','h2pas.y');
  44. p.Commands.AddCommand(caBeforeCompile, AddProgramExtension('plex', Defaults.BuildOS), '$(SOURCE) $(DEST)','scan.pas','scan.l');
  45. T:=P.Targets.AddProgram('h2pas.pas');
  46. T.Dependencies.AddUnit('h2poptions');
  47. T.Dependencies.AddUnit('h2plexlib');
  48. T.Dependencies.AddUnit('scan');
  49. T.Dependencies.AddUnit('h2pyacclib');
  50. T.Dependencies.AddUnit('h2pparse');
  51. T:=P.Targets.AddUnit('scan.pas');
  52. T.Install:=false;
  53. T.Dependencies.AddUnit('h2pbase');
  54. T.Dependencies.AddUnit('scanbase');
  55. T.Dependencies.AddUnit('h2pconst');
  56. T:=P.Targets.AddUnit('h2ptypes.pas');
  57. T.install:=false;
  58. T:=P.Targets.AddUnit('h2pout.pp');
  59. T.install:=false;
  60. T.Dependencies.AddUnit('h2pconst');
  61. T.Dependencies.AddUnit('h2poptions');
  62. T.Dependencies.AddUnit('h2ptypes');
  63. T.Dependencies.AddUnit('h2plexlib');
  64. T.Dependencies.AddUnit('h2pyacclib');
  65. T:=P.Targets.AddUnit('scanbase.pp');
  66. T.install:=false;
  67. T.Dependencies.AddUnit('h2pconst');
  68. T.Dependencies.AddUnit('h2poptions');
  69. T.Dependencies.AddUnit('h2ptypes');
  70. T.Dependencies.AddUnit('h2plexlib');
  71. T:=P.Targets.AddUnit('h2pbase.pp');
  72. T.install:=false;
  73. T.Dependencies.AddUnit('h2pconst');
  74. T.Dependencies.AddUnit('h2poptions');
  75. T.Dependencies.AddUnit('h2ptypes');
  76. T.Dependencies.AddUnit('h2plexlib');
  77. T.Dependencies.AddUnit('h2pyacclib');
  78. T.Dependencies.AddUnit('scanbase');
  79. T.Dependencies.AddUnit('h2pout');
  80. T:=P.Targets.AddProgram('h2paspp.pas');
  81. T:=P.Targets.AddProgram('h2paschk.pas');
  82. P.Targets.AddUnit('h2poptions.pas').install:=false;
  83. P.Targets.AddUnit('h2plexlib.pas').install:=false;
  84. P.Targets.AddUnit('h2pyacclib.pas').install:=false;
  85. P.Targets.AddUnit('h2pconst.pas').install:=false;
  86. T:=P.Targets.AddUnit('h2pparse.pp');
  87. T.install:=false;
  88. T.Dependencies.AddUnit('scan');
  89. T.Dependencies.AddUnit('h2pconst');
  90. T.Dependencies.AddUnit('h2plexlib');
  91. T.Dependencies.AddUnit('h2pyacclib');
  92. T.Dependencies.AddUnit('scanbase');
  93. T.Dependencies.AddUnit('h2pbase');
  94. T.Dependencies.AddUnit('h2ptypes');
  95. T.Dependencies.AddUnit('h2pout');
  96. end;
  97. end;
  98. {$ifndef ALLPACKAGES}
  99. begin
  100. add_h2pas('');
  101. Installer.Run;
  102. end.
  103. {$endif ALLPACKAGES}