Browse Source

* Added COMPILER_FPMAKE_UNITDIR to makefiles, with the path to the native
ppu's
* When no native ppu's are found, search for them in the units_bs dir. So
that it is possible to bootstrap fpmkunit

git-svn-id: trunk@17367 -

joost 14 years ago
parent
commit
b926c6984e
1 changed files with 20 additions and 1 deletions
  1. 20 1
      utils/fpcm/fpcmwr.pp

+ 20 - 1
utils/fpcm/fpcmwr.pp

@@ -521,13 +521,14 @@ implementation
 
         procedure AddPackage(const pack,prefix:string);
         var
-          packdirvar,unitdirvar : string;
+          packdirvar,unitdirvar,unitfpmakedirvar : string;
           fpcmadedirvar : string;
         begin
           FOutput.Add('ifdef '+Prefix+VarName(pack));
           { create needed variables }
           packdirvar:='PACKAGEDIR_'+VarName(pack);
           unitdirvar:='UNITDIR_'+VarName(pack);
+          unitfpmakedirvar:='UNITDIR_FPMAKE_'+VarName(pack);
           { Search packagedir by looking for Makefile.fpc }
           FOutput.Add(packdirvar+':=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /'+pack+'/Makefile.fpc,$(PACKAGESDIR))))))');
           FOutput.Add('ifneq ($('+packdirvar+'),)');
@@ -537,6 +538,19 @@ implementation
           FOutput.Add('else');
           FOutput.Add(unitdirvar+'=$('+packdirvar+')');
           FOutput.Add('endif');
+
+          FOutput.Add('ifneq ($(wildcard $('+packdirvar+')/units/$(SOURCESUFFIX)),)');
+          FOutput.Add(unitfpmakedirvar+'=$('+packdirvar+')/units/$(SOURCESUFFIX)');
+          FOutput.Add('else');
+
+          FOutput.Add('ifneq ($(wildcard $('+packdirvar+')/units_bs/$(SOURCESUFFIX)),)');
+          FOutput.Add(unitfpmakedirvar+'=$('+packdirvar+')/units_bs/$(SOURCESUFFIX)');
+          FOutput.Add('else');
+          FOutput.Add(unitfpmakedirvar+'=$('+packdirvar+')');
+          FOutput.Add('endif');
+
+          FOutput.Add('endif');
+
           FOutput.Add('ifdef CHECKDEPEND');
           { rtl needs special handling for FPCMADE }
           if pack='rtl' then
@@ -561,6 +575,11 @@ implementation
           FOutput.Add('ifdef '+unitdirvar);
           FOutput.Add('override COMPILER_UNITDIR+=$('+unitdirvar+')');
           FOutput.Add('endif');
+
+          FOutput.Add('ifdef '+unitfpmakedirvar);
+          FOutput.Add('override COMPILER_FPMAKE_UNITDIR+=$('+unitfpmakedirvar+')');
+          FOutput.Add('endif');
+
           { endif for package }
           FOutput.Add('endif');
         end;