program Make; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} classes, sysUtils, custApp { you can add units after this }, lowlevelunit, dateiBeziehungen, systemunit; type { tMake } tMake = class(tCustomApplication) protected procedure doRun; override; public constructor create(theOwner: tComponent); override; end; { tMake } procedure tMake.doRun; var mach: tMach; errorMsg: string; lOpts,nonOpts: tStringList; begin lOpts:=tStringList.create; lOpts.add('Ausgabe:'); lOpts.add('Datei:'); lOpts.add('Prüfsummen:'); lOpts.add('alleSummenErneuern'); lOpts.add('leise'); lOpts.add('unsicher'); nonOpts:=tStringList.create; errorMsg:=checkOptions('A:D:P:alu',lOpts,nil,nonOpts,true); lOpts.free; while nonOpts.count>0 do begin if errorMsg<>'' then errorMsg:=errorMsg+#10; errorMsg:=errorMsg+'Überzähliges Argument '''+nonOpts[0]+'''!'; nonOpts.delete(0); end; nonOpts.free; if errorMsg<>'' then fehler(errorMsg+#10'Hilfe: man Make'); if hasOption('l','leise') then __ausgabenMaske:=3; mach:=tMach.create; if hasOption('D','Datei') then mach.machDatei:=getOptionValue('D','Datei') else mach.machDatei:=''; if hasOption('P','Prüfsummen') then mach.pruefsummenDatei:=getOptionValue('P','Prüfsummen') else mach.pruefsummenDatei:=''; gibAus('originale Regeln: '+inttostr(mach.anzOriAbh)+', originale Dateien: '+inttostr(mach.anzDats),3); mach.erzeugeRegeln; gibAus('Regeln: '+inttostr(mach.anzMglAbh)+', Dateien: '+inttostr(mach.anzDats),3); mach.findeWasZuTunIst; gibAus('anzuwendende Regeln: '+inttostr(mach.anzMglAbh),3); mach.tueWasZuTunIst(hasOption('a','alleSummenErneuern'),hasOption('u','unsicher'),getOptionValue('A','Ausgabe')); terminate; end; constructor tMake.create(theOwner: tComponent); begin inherited create(theOwner); stopOnException:=True; end; var application: tMake; begin __ausgabenMaske:=1; application:=tMake.create(nil); application.run; application.free; end.