{$ifndef ALLPACKAGES} {$mode objfpc}{$H+} program fpmake; uses fpmkunit; Var T : TTarget; P : TPackage; begin With Installer do begin {$endif ALLPACKAGES} P:=AddPackage('rtl'); {$ifdef ALLPACKAGES} P.Directory:='rtl'; {$endif ALLPACKAGES} P.Version:='2.2.0'; // Where to find the sources using firstmatch P.SourcePath.Add('$(OS)'); P.SourcePath.Add('unix',AllUnixOSes); P.SourcePath.Add('win',AllWindowsOSes); P.SourcePath.Add('$(CPU)'); P.SourcePath.Add('inc'); P.SourcePath.Add('objpas'); // System unit T:=P.Targets.AddUnit('system.pp'); T.IncludePath.Add('inc'); T.IncludePath.Add('$(CPU)'); T.IncludePath.Add('$(OS)'); T.IncludePath.Add('$(OS)/$(CPU)',TOSes([Linux])); T.IncludePath.Add('unix',AllUnixOSes); T.IncludePath.Add('win',AllWindowsOSes); With T.Dependencies do begin // Headers AddInclude('setjumph.inc'); AddInclude('systemh.inc'); AddInclude('objpash.inc'); AddInclude('dynarrh.inc'); AddInclude('compproc.inc'); AddInclude('heaph.inc'); AddInclude('threadh.inc'); AddInclude('varianth.inc'); // Implementations AddInclude('$(CPU).inc'); AddInclude('set.inc'); AddInclude('math.inc'); AddInclude('int64p.inc'); AddInclude('setjump.inc'); AddInclude('systhrd.inc'); AddInclude('sysos.inc'); AddInclude('sysheap.inc'); AddInclude('sysdir.inc'); AddInclude('filerec.inc'); AddInclude('textrec.inc'); AddInclude('generic.inc'); AddInclude('genset.inc'); AddInclude('genmath.inc'); AddInclude('sstrings.inc'); AddInclude('int64.inc'); AddInclude('astrings.inc'); AddInclude('wstrings.inc'); AddInclude('aliases.inc'); AddInclude('dynarr.inc'); AddInclude('objpas.inc'); AddInclude('variant.inc'); AddInclude('rtti.inc'); AddInclude('heap.inc'); AddInclude('thread.inc'); AddInclude('text.inc'); AddInclude('file.inc'); AddInclude('typefile.inc'); end; // Compile mode units T:=P.Targets.AddUnit('objpas.pp'); T.Dependencies.AddUnit('system'); T:=P.Targets.AddUnit('macpas.pp'); T.Dependencies.AddUnit('system'); // Unix units T:=P.Targets.AddUnit('unixtype.pp',AllUnixOSes); T.IncludePath.Add('$(OS)/$(CPU)',TOSes([Linux])); T.IncludePath.Add('$(OS)'); T.IncludePath.Add('unix'); With T.Dependencies do begin AddUnit('system'); end; T:=P.Targets.AddUnit('baseunix.pp',AllUnixOSes); T.IncludePath.Add('$(OS)/$(CPU)',TOSes([Linux])); T.IncludePath.Add('$(OS)'); T.IncludePath.Add('unix'); T.IncludePath.Add('inc'); With T.Dependencies do begin AddUnit('unixtype'); end; // Turbo Pascal RTL units T:=P.Targets.AddUnit('dos.pp'); With T.Dependencies do begin AddUnit('baseunix',AllUnixOSes); AddInclude('inc/dosh.inc'); end; T:=P.Targets.AddUnit('crt.pp'); With T.Dependencies do begin AddUnit('baseunix',AllUnixOSes); AddInclude('inc/crth.inc'); end; T:=P.Targets.AddUnit('strings.pp'); T.IncludePath.Add('$(CPU)'); T.IncludePath.Add('inc'); With T.Dependencies do begin AddUnit('system'); AddInclude('strings.inc'); AddInclude('stringss.inc'); AddInclude('genstr.inc'); AddInclude('genstrs.inc'); AddInclude('stringsi.inc'); end; {$ifndef ALLPACKAGES} Run; end; end. {$endif ALLPACKAGES}