diff options
-rw-r--r-- | Make.8.in | 5 | ||||
-rw-r--r-- | Make.lpr | 27 | ||||
-rw-r--r-- | Make.lps | 126 | ||||
-rw-r--r-- | dateibeziehungen.pas | 18 | ||||
-rwxr-xr-x | ewemake.in | 16 |
5 files changed, 97 insertions, 95 deletions
@@ -13,7 +13,7 @@ If absent, commands are printed to stdout. .TP .B "\-D, \-\-Datei Machdatei" read rules from \fIMachdatei\fP. -If absent, use \fIMachdatei\fP in current directory. +If absent, use \fIMachdatei\fP in current directory or first parent containing \fIMachdatei\fP. .TP .B "\-P, \-\-Prüfsummen Prüfsummendatei" read/store checksums in \fIPrüfsummendatei\fP. @@ -22,6 +22,9 @@ If absent, use \fI.summen\fP in same directory as \fIMachdatei\fP. .B "\-a, \-\-alleSummenErneuern" refresh all checksums .TP +.B "\-l, \-\-leise" +print nothing but error messages and (if \fB-A\fP omitted) commands +.TP .B "\-u, \-\-unsicher" accept running jobs outside of directory of \fIAusgabedatei\fP or \fIPrüfsummendatei\fP .SH MACHDATEI SYNTAX @@ -25,10 +25,27 @@ type procedure tMake.doRun; var - mach: tMach; - errorMsg: string; + mach: tMach; + errorMsg: string; + lOpts,nonOpts: tStringList; begin - errorMsg:=checkOptions('A:D:P:alu','Ausgabe: Datei: Prüfsummen: alleSummenErneuern leise unsicher',true); + 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'); @@ -40,12 +57,12 @@ begin if hasOption('D','Datei') then mach.machDatei:=getOptionValue('D','Datei') else - mach.machDatei:=myReadLink('Machdatei'); + mach.machDatei:=''; if hasOption('P','Prüfsummen') then mach.pruefsummenDatei:=getOptionValue('P','Prüfsummen') else - mach.setzeGenerischePruefsummenDatei; + mach.pruefsummenDatei:=''; gibAus('originale Regeln: '+inttostr(mach.anzOriAbh)+', originale Dateien: '+inttostr(mach.anzDats),3); mach.erzeugeRegeln; @@ -3,28 +3,29 @@ <ProjectSession> <Version Value="9"/> <BuildModes Active="Default"/> - <Units Count="13"> + <Units Count="15"> <Unit0> <Filename Value="Make.lpr"/> <IsPartOfProject Value="True"/> - <TopLine Value="29"/> - <CursorPos X="84" Y="52"/> - <UsageCount Value="70"/> + <IsVisibleTab Value="True"/> + <TopLine Value="19"/> + <CursorPos Y="41"/> + <UsageCount Value="71"/> <Loaded Value="True"/> </Unit0> <Unit1> <Filename Value="Machdatei.txt"/> <IsPartOfProject Value="True"/> - <UsageCount Value="70"/> + <UsageCount Value="71"/> <DefaultSyntaxHighlighter Value="None"/> </Unit1> <Unit2> <Filename Value="tools.pas"/> <IsPartOfProject Value="True"/> - <EditorIndex Value="2"/> + <EditorIndex Value="3"/> <TopLine Value="35"/> <CursorPos X="19" Y="198"/> - <UsageCount Value="49"/> + <UsageCount Value="50"/> <Loaded Value="True"/> </Unit2> <Unit3> @@ -34,18 +35,17 @@ <TopLine Value="83"/> <CursorPos Y="221"/> <FoldState Value=" T3i803718 pialE0E116I"/> - <UsageCount Value="46"/> + <UsageCount Value="47"/> </Unit3> <Unit4> <Filename Value="dateibeziehungen.pas"/> <IsPartOfProject Value="True"/> <UnitName Value="dateiBeziehungen"/> - <IsVisibleTab Value="True"/> <EditorIndex Value="1"/> - <TopLine Value="803"/> - <CursorPos X="24" Y="827"/> - <FoldState Value=" T3j6036 pj3jM0B8 picjO0A432/"/> - <UsageCount Value="38"/> + <TopLine Value="212"/> + <CursorPos Y="77"/> + <FoldState Value=" T3j5036 pj3jM0B8 picjO0A512]Bgn20s[94Yk80o1]c4kF034M"/> + <UsageCount Value="39"/> <Loaded Value="True"/> </Unit4> <Unit5> @@ -100,108 +100,100 @@ <CursorPos X="15" Y="244"/> <UsageCount Value="10"/> </Unit12> + <Unit13> + <Filename Value="../units/systemunit.pas"/> + <EditorIndex Value="2"/> + <TopLine Value="228"/> + <CursorPos Y="252"/> + <UsageCount Value="10"/> + <Loaded Value="True"/> + </Unit13> + <Unit14> + <Filename Value="/usr/lib/fpc/src/packages/fcl-base/src/custapp.pp"/> + <UnitName Value="CustApp"/> + <EditorIndex Value="-1"/> + <TopLine Value="516"/> + <CursorPos X="61" Y="411"/> + <UsageCount Value="10"/> + </Unit14> </Units> - <JumpHistory Count="25" HistoryIndex="24"> + <JumpHistory Count="19" HistoryIndex="18"> <Position1> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="583" Column="32" TopLine="557"/> + <Caret Line="827" Column="12" TopLine="795"/> </Position1> <Position2> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="577" Column="31" TopLine="557"/> + <Caret Line="829" Column="14" TopLine="797"/> </Position2> <Position3> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="601" Column="54" TopLine="581"/> + <Caret Line="835" Column="14" TopLine="803"/> </Position3> <Position4> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="606" Column="74" TopLine="586"/> + <Caret Line="827" Column="12" TopLine="803"/> </Position4> <Position5> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="618" Column="46" TopLine="598"/> + <Caret Line="829" Column="14" TopLine="803"/> </Position5> <Position6> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="643" Column="68" TopLine="624"/> + <Caret Line="835" Column="14" TopLine="803"/> </Position6> <Position7> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="433" Column="16" TopLine="334"/> + <Filename Value="tools.pas"/> + <Caret Line="11" Column="44"/> </Position7> <Position8> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="455" Column="17" TopLine="421"/> + <Filename Value="tools.pas"/> + <Caret Line="166" Column="96" TopLine="134"/> </Position8> <Position9> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="466" Column="75" TopLine="434"/> + <Filename Value="tools.pas"/> + <Caret Line="43" Column="16" TopLine="21"/> </Position9> <Position10> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="481" Column="62" TopLine="448"/> + <Filename Value="tools.pas"/> + <Caret Line="184" Column="144" TopLine="152"/> </Position10> <Position11> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="491" Column="11" TopLine="485"/> + <Filename Value="Make.lpr"/> + <Caret Line="41" Column="92" TopLine="19"/> </Position11> <Position12> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="517" Column="146" TopLine="485"/> + <Caret Line="359" Column="24" TopLine="252"/> </Position12> <Position13> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="827" Column="12" TopLine="795"/> + <Caret Line="89" Column="45" TopLine="70"/> </Position13> <Position14> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="517" Column="147" TopLine="498"/> + <Filename Value="../units/systemunit.pas"/> + <Caret Line="21"/> </Position14> <Position15> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="827" Column="12" TopLine="795"/> + <Caret Line="374" TopLine="324"/> </Position15> <Position16> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="829" Column="14" TopLine="797"/> + <Filename Value="Make.lpr"/> + <Caret Line="48" Column="30" TopLine="19"/> </Position16> <Position17> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="835" Column="14" TopLine="803"/> + <Filename Value="Make.lpr"/> + <Caret Line="48" Column="30" TopLine="19"/> </Position17> <Position18> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="827" Column="12" TopLine="803"/> + <Filename Value="Make.lpr"/> + <Caret Line="32" Column="23" TopLine="19"/> </Position18> <Position19> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="829" Column="14" TopLine="803"/> - </Position19> - <Position20> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="835" Column="14" TopLine="803"/> - </Position20> - <Position21> - <Filename Value="tools.pas"/> - <Caret Line="11" Column="44"/> - </Position21> - <Position22> - <Filename Value="tools.pas"/> - <Caret Line="166" Column="96" TopLine="134"/> - </Position22> - <Position23> - <Filename Value="tools.pas"/> - <Caret Line="43" Column="16" TopLine="21"/> - </Position23> - <Position24> - <Filename Value="tools.pas"/> - <Caret Line="184" Column="144" TopLine="152"/> - </Position24> - <Position25> <Filename Value="Make.lpr"/> - <Caret Line="41" Column="92" TopLine="19"/> - </Position25> + <Caret Line="31" Column="26" TopLine="19"/> + </Position19> </JumpHistory> </ProjectSession> </CONFIG> diff --git a/dateibeziehungen.pas b/dateibeziehungen.pas index cfcfd45..135264f 100644 --- a/dateibeziehungen.pas +++ b/dateibeziehungen.pas @@ -74,7 +74,6 @@ type procedure erzeugeRegeln; procedure findeWasZuTunIst; procedure tueWasZuTunIst(allesNeu, unsicher: boolean; ausgabeDatei: string); - procedure setzeGenerischePruefsummenDatei; function anzOriAbh: longint; inline; function anzMglAbh: longint; inline; function anzZtAbh: longint; inline; @@ -86,7 +85,7 @@ function quellersetzung(var worin: string; quelle, inputfile: string): boolean; implementation uses - lowlevelunit, mystringlistunit; + lowlevelunit, mystringlistunit, systemunit; // tAbhaengigkeiten ************************************************************ @@ -352,6 +351,14 @@ end; procedure tMach.wMachDatei(md: string); begin + if md='' then begin + md:=pwd+'/'; + while (md<>'/') and not fileexists(md+'Machdatei') do begin + delete(md,length(md),1); + md:=extractfilepath(md); + end; + md:=md+'Machdatei'; + end; _machDatei:=md; if not fileexists(_machDatei) then fehler('Datei '''+_machDatei+''' existiert nicht!'); @@ -361,6 +368,8 @@ end; procedure tMach.wPruefsummenDatei(pd: string); begin + if pd='' then + pd:=extractfilepath(machDatei)+'.summen'; _pruefsummenDatei:=pd; if not liesPruefsummenfile then fehler('Datei '''+_pruefsummenDatei+''' ist fehlerhaft!'); @@ -839,11 +848,6 @@ begin geaenderteDateien.free; end; -procedure tMach.setzeGenerischePruefsummenDatei; -begin - pruefsummenDatei:=extractfilepath(machDatei)+'.summen'; -end; - function tMach.anzOriAbh: longint; begin result:=_oriAbh.count; @@ -2,22 +2,8 @@ # ewemake verision #VERSION# - a wrapper for Make -machDatei="$(pwd)" - -while [ ! -r "${machDatei}/Machdatei" ] && [ ! "${machDatei}" == "/" ] -do - machDatei="$(dirname "${machDatei}")" -done - -machDatei="${machDatei}/Machdatei" -if [ ! -r "${machDatei}" ] -then - >&2 echo 'Fehler: Kann keine Machdatei finden!' - exit 1 -fi - tmpDatei="$(mktemp)" -Make -D "${machDatei}" -A "${tmpDatei}" +Make -l -A "${tmpDatei}" chmod +x "${tmpDatei}" "${tmpDatei}" rm -f "${tmpDatei}" |