123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- Const
- GraphDir = 'inc/graph/';
- SysUtilsDir = 'objpas/sysutils/';
- Unixes = [darwin,dragonfly,freebsd,linux,netbsd,openbsd];
- Function CurrentOS : String;
- begin
- Result:=OSToString(Defaults.OS);
- end;
- Function CurrentCPU : String;
- begin
- Result:=CPUToString(Defaults.CPU);
- end;
- Function OSDir(CorrectUnix : Boolean = True) : String;
- begin
- If CorrectUnix and (Defaults.OS in Unixes) then
- Result:='unix/'
- else
- Result:=IncludeTrailingPathDelimiter(CurrentOS);
- end;
- Function CPUDir : String;
- begin
- Result:=IncludeTrailingPathDelimiter(CurrentCPU);
- end;
- Procedure InitRTL(Installer : TInstaller);
- Var
- O : String;
- begin
- With Installer Do
- begin
- StartPackage('rtl');
- Version:={$i %FPCVERSION%};
- Author:='The FPC team';
- O:='-Fi'+OSDir(false)+' -Fiinc -Fi'+CurrentCPU;
- If Defaults.OS in Unixes then
- O:=O+' -Fiunix';
- DefaultPackage.Options:=O;
- end;
- end;
- Procedure AddSystemDependencies(Targets : TTargets);
- Var
- I : Integer;
- begin
- With Targets do
- For I:=0 to Count-1 do
- if (TargetItems[i].Name<>'system') then
- TargetItems[i].Dependencies.Add('system');
- end;
- Procedure AddCurrentOS(T : TTarget = Nil);
- Var
- I : Integer;
- O : TOSes;
- begin
- If (T<>Nil) then
- begin
- O:=T.OS;
- If (O<>[]) then
- Include(O,Defaults.OS)
- else
- // Don't do anything. If empty, all will be compiled.
- T.OS:=O;
- end
- else
- With Installer.Targets do
- For I:=0 to Count-1 do
- AddCurrentOS(TargetItems[i]);
- end;
- Procedure ExcludeCurrentOS(T : TTarget = Nil);
- Var
- I : Integer;
- O : TOSes;
- begin
- If (T<>Nil) then
- begin
- O:=T.OS;
- If (O=[]) then
- O:=AllOSs;
- Exclude(O,Defaults.OS);
- T.OS:=O;
- end
- else
- With Installer.Targets do
- For I:=0 to Count-1 do
- AddCurrentOS(TargetItems[i]);
- end;
- Procedure AddDefaultTargets(Installer : TInstaller);
- Var
- T : TTarget;
- begin
- With Installer.Targets do
- begin
- { Turbo Pascal RTL units }
- T:=AddUnit(OSDir+'dos.pp');
- T.Dependencies.Add('inc/dosh.inc');
- T:=AddUnit(OSDir+'crt.pp');
- T.Directory:=OSDir;
- T.Dependencies.Add('inc/crth.inc');
- T:=AddUnit(OSDir+'graph.pp');
- T.IncludePath.Add(GraphDir);
- With T.Dependencies do
- begin
- Add(GraphDir+'clip.inc');
- Add(GraphDir+'fontdata.inc');
- Add(GraphDir+'graph.inc');
- Add(GraphDir+'gtext.inc');
- Add(GraphDir+'modes.inc');
- Add(GraphDir+'fills.inc');
- Add(GraphDir+'graphh.inc');
- Add(GraphDir+'palette.inc');
- end;
- T:=AddUnit('inc/strings.pp');
- With T.Dependencies do
- begin
- Add(CPUDir+'strings.inc');
- Add(CPUDir+'stringss.inc');
- Add('inc/genstr.inc');
- Add('inc/genstrs.inc');
- Add('inc/stringsi.inc');
- end;
- { Delphi RTL units }
- T:=AddUnit('objpas/rtlconsts.pp');
- T.Resourcestrings:=True;
- T.Dependencies.Add('objpas/rtlconst.inc');
- T:=AddUnit(OSDir+'sysutils.pp');
- T.IncludePath.Add(SysUtilsDir);
- With T.Dependencies do
- begin
- Add(SysUtilsDir+'datih.inc');
- Add(SysUtilsDir+'finah.inc');
- Add(SysUtilsDir+'osutilsh.inc');
- Add(SysUtilsDir+'sysansi.inc');
- Add(SysUtilsDir+'syspchh.inc');
- Add(SysUtilsDir+'systhrdh.inc');
- Add(SysUtilsDir+'syswideh.inc');
- Add(SysUtilsDir+'sysunih.inc');
- Add(SysUtilsDir+'dati.inc');
- Add(SysUtilsDir+'fina.inc');
- Add(SysUtilsDir+'stre.inc');
- Add(SysUtilsDir+'sysformt.inc');
- Add(SysUtilsDir+'syspch.inc');
- Add(SysUtilsDir+'sysuintf.inc');
- Add(SysUtilsDir+'syswide.inc');
- Add(SysUtilsDir+'sysuni.inc');
- Add(SysUtilsDir+'diskh.inc');
- Add(SysUtilsDir+'intfh.inc');
- Add(SysUtilsDir+'strg.inc');
- Add(SysUtilsDir+'sysinth.inc');
- Add(SysUtilsDir+'sysstrh.inc');
- Add(SysUtilsDir+'sysutilh.inc');
- Add(SysUtilsDir+'filutilh.inc');
- Add(SysUtilsDir+'osutil.inc');
- Add(SysUtilsDir+'sysansih.inc');
- Add(SysUtilsDir+'sysint.inc');
- Add(SysUtilsDir+'sysstr.inc');
- Add(SysUtilsDir+'sysutils.inc');
- end;
- T:=AddUnit(OSDIR+'varutils.pp');
- T.ResourceStrings:=True;
- T.IncludePath.Add('objpas');
- T:=AddUnit('inc/variants.pp');
- With T.Dependencies do
- begin
- Add('math');
- Add('varutils');
- end;
- T.ResourceStrings:=True;
- T:=AddUnit('objpas/convutils.pp');
- T.Dependencies.Add('objpas/convutil.inc');
- T.ResourceStrings:=True;
- T:=AddUnit('objpas/dateutils.pp');
- T.Dependencies.Add('objpas/dateutil.inc');
- T:=AddUnit('objpas/strutils.pp');
- T.Dependencies.Add('sysutils');
- T:=AddUnit('objpas/math.pp');
- T.Dependencies.Add('sysutils');
- T.Dependencies.Add(CPUDir+'mathu.inc');
- T.ResourceStrings:=True;
- T:=AddUnit('objpas/sysconst.pp');
- T.Resourcestrings:=true;
- T:=AddUnit('objpas/types.pp');
- T:=AddUnit('objpas/typinfo.pp');
- T.Dependencies.Add('sysutils');
- T.Dependencies.Add('rtlconsts');
- T:=AddUnit('objpas/utf8bidi.pp');
- T:=AddUnit('objpas/character.pas');
- { Free Pascal additions}
- T:=AddUnit(OSDir+'keyboard.pp');
- With T.Dependencies do
- begin
- Add('inc/keybrdh.inc');
- Add('inc/keyboard.inc');
- Add('inc/keyscan.inc');
- end;
- T:=AddUnit(OSDir+'mouse.pp');
- With T.Dependencies do
- begin
- Add('inc/mouseh.inc');
- Add('inc/mouse.inc');
- end;
- T:=AddUnit(OSDir+'video.pp');
- With T.Dependencies do
- begin
- Add('inc/video.inc');
- Add('inc/videoh.inc');
- end;
- T:=AddUnit('inc/matrix.pp');
- T.Dependencies.Add('inc/mmatimp.inc');
- T:=AddUnit('inc/dynlibs.pp');
- T.Dependencies.Add(OSDir+'dynlibs.inc');
- T:=AddUnit('inc/getopts.pp');
- T:=AddUnit('inc/cmem.pp');
- T:=AddUnit('inc/ctypes.pp');
- T:=AddUnit('inc/softfpu.pp');
- T:=AddUnit('inc/ucomplex.pp');
- T:=AddUnit('inc/heaptrc.pp');
- T:=AddUnit('inc/lineinfo.pp');
- T:=AddUnit('inc/lnfodwrf.pp');
- T:=AddUnit('inc/charset.pp');
- // T:=AddUnit('inc/pagemem.pp');
- end;
- AddSystemDependencies(Installer.Targets);
- end;
|