summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2016-05-11 09:25:28 +0200
committerErich Eckner <git@eckner.net>2016-05-11 09:25:28 +0200
commit4b56ce331b7c628236300e0cf4e880cb31f18665 (patch)
tree0fd65f6e4b6d107d14e46a3ba90fec9abf252732
parent39f5ad8323b1b5e1abce4afd8dfd2525f9eebd6d (diff)
downloadMake-4b56ce331b7c628236300e0cf4e880cb31f18665.tar.xz
etwas aufgeräumt, warnen bei überzähligen Optionen
-rw-r--r--Make.8.in5
-rw-r--r--Make.lpr27
-rw-r--r--Make.lps126
-rw-r--r--dateibeziehungen.pas18
-rwxr-xr-xewemake.in16
5 files changed, 97 insertions, 95 deletions
diff --git a/Make.8.in b/Make.8.in
index 58129b5..325ab40 100644
--- a/Make.8.in
+++ b/Make.8.in
@@ -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
diff --git a/Make.lpr b/Make.lpr
index 30a5956..0574565 100644
--- a/Make.lpr
+++ b/Make.lpr
@@ -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;
diff --git a/Make.lps b/Make.lps
index 39ed4a5..739c319 100644
--- a/Make.lps
+++ b/Make.lps
@@ -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;
diff --git a/ewemake.in b/ewemake.in
index 59d1b9a..985e3f9 100755
--- a/ewemake.in
+++ b/ewemake.in
@@ -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}"