From 71688e72efe39482a9bdae2d229f674d9f59ff1b Mon Sep 17 00:00:00 2001
From: peter <peter@freepascal.org>
Date: Sat, 26 Jan 2008 16:39:28 +0000
Subject: [PATCH]   * update convertmk to generate a valid fpmake.pp   * never
 overwrite existing fpmake.pp

git-svn-id: trunk@9938 -
---
 utils/fppkg/pkgmessages.pp |  1 +
 utils/fppkg/pkgmkconv.pp   | 25 ++++++++++++++-----------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/utils/fppkg/pkgmessages.pp b/utils/fppkg/pkgmessages.pp
index 926703f586..4658c762c3 100644
--- a/utils/fppkg/pkgmessages.pp
+++ b/utils/fppkg/pkgmessages.pp
@@ -39,6 +39,7 @@ Resourcestring
   SErrChangeDirFailed        = 'Could not change directory to "%s"';
   SErrCorruptPackagesFile    = 'Packages file "%s" is corrupt, delete file manual and retry';
   SErrPackageIsLocal         = 'Operation not supported for local packages';
+  SErrConvertFPMakeExists    = 'Found existing fpmake.pp, aborting conversion';
 
   SErrHTTPGetFailed          = 'HTTP Download failed.';
   SErrLoginFailed            = 'FTP LOGIN command failed.';
diff --git a/utils/fppkg/pkgmkconv.pp b/utils/fppkg/pkgmkconv.pp
index 18bc16aa44..bd5db38321 100644
--- a/utils/fppkg/pkgmkconv.pp
+++ b/utils/fppkg/pkgmkconv.pp
@@ -126,6 +126,7 @@ begin
     Add('uses fpmkunit;');
     Add('');
     Add('Var');
+    Add('  P : TPackage;');
     Add('  T : TTarget;');
     Add('');
     Add('begin');
@@ -204,21 +205,21 @@ begin
     Add('    { ');
     Add('      '+FPackageName);
     Add('    } ');
-    Add('    StartPackage('''+FPackageName+''');');
+    Add('    P:=AddPackage('''+FPackageName+''');');
     If (Dir<>'') then
-      Add('    Directory:='''+ExcludeTrailingPathDelimiter(Dir)+''';');
+      Add('    P.Directory:='''+ExcludeTrailingPathDelimiter(Dir)+''';');
     If (OS<>'') and (OS<>'all') then
-      Add('    OS:=['+OS+'];');
+      Add('    P.OS:=['+OS+'];');
     If (FPackageVersion<>'') then
-      Add('    Version:='''+FPackageVersion+''';');
+      Add('    P.Version:='''+FPackageVersion+''';');
     If (FPackageOptions<>'') then
-      Add('    Options:='''+FPackageOptions+''';');
+      Add('    P.Options:='''+FPackageOptions+''';');
     If (FPackageDeps<>'') then
       begin
       S:=GetWord(FPackageDeps);
       While S<>'' do
         begin
-        Add('    Dependencies.Add('''+S+''');');
+        Add('    P.Dependencies.Add('''+S+''');');
         S:=GetWord(FPackageDeps);
         end;
       end;
@@ -228,7 +229,6 @@ end;
 procedure TMakeFileConverter.EndPackage(Src : TStrings; Dir,OS : String);
 
 begin
-  Src.add('    EndPackage;');
   FPackageName:='';
   FPackageVersion:='';
   FPackageOptions:='';
@@ -502,7 +502,7 @@ begin
         Res:=R.IndexOfName(N)<>-1;
       GetOSCPU(V,OS,CPU);
       Pre[1]:=Upcase(Pre[1]);
-      Src.Add('    T:=Targets.Add'+Pre+'('''+Prefix+N+''');');
+      Src.Add('    T:=P.Targets.Add'+Pre+'('''+Prefix+N+''');');
       If (CPU<>'') then
         Src.Add('    T.CPU:=['+CPU+'];');
       If (OS<>'') then
@@ -553,7 +553,7 @@ begin
       IFL.GetNamevalue(I,N,V);
       GetOSCPU(V,OS,CPU);
       WriteOSCPUCheck(Src,OS,CPU);
-      Src.add('      InstallFiles.Add('''+N+''');');
+      Src.add('      P.InstallFiles.Add('''+N+''');');
       end;
 end;
 
@@ -571,7 +571,7 @@ begin
       CFL.GetNamevalue(I,N,V);
       GetOSCPU(V,OS,CPU);
       WriteOSCPUCheck(Src,OS,CPU);
-      Src.add('      CleanFiles.Add('''+N+''');');
+      Src.add('      P.CleanFiles.Add('''+N+''');');
       end;
 end;
 
@@ -698,7 +698,10 @@ end;
 
 function TMakeFileConverter.Execute(const Args:TActionArgs):boolean;
 begin
-  ConvertFile('Makefile.fpc','fpmake.pp');
+  if not FileExists('fpmake.pp') then
+    ConvertFile('Makefile.fpc','fpmake.pp')
+  else
+    Error(SErrConvertFPMakeExists);
   result:=true;
 end;