From edf01e4460c98e9e2f67879920598bc0bdd9e1f4 Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 28 Oct 2006 14:06:55 +0000 Subject: [PATCH] + support for -Xp to path the compiler executables to fpc git-svn-id: trunk@5040 - --- compiler/options.pas | 1 + compiler/utils/fpc.pp | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/compiler/options.pas b/compiler/options.pas index fc0396ef44..83cb7cc597 100644 --- a/compiler/options.pas +++ b/compiler/options.pas @@ -1258,6 +1258,7 @@ begin else include(initglobalswitches,cs_link_map); end; + 'p' : ; { Ignore used by fpc.pp } 'r' : begin rlinkpath:=Copy(more,2,length(More)-1); diff --git a/compiler/utils/fpc.pp b/compiler/utils/fpc.pp index 7ff2280311..5964371034 100644 --- a/compiler/utils/fpc.pp +++ b/compiler/utils/fpc.pp @@ -71,6 +71,9 @@ program fpc; findclose(Info); end; + var + extrapath : ansistring; + function findexe(var ppcbin:string): boolean; var path : string; @@ -79,9 +82,16 @@ program fpc; findexe:=false; ppcbin:=ppcbin+exeext; + if (extrapath<>'') and (extrapath[length(extrapath)]<>DirectorySeparator) then + extrapath:=extrapath+DirectorySeparator; { get path of fpc.exe } path:=splitpath(paramstr(0)); - if FileExists(path+ppcbin) then + if FileExists(extrapath+ppcbin) then + begin + ppcbin:=extrapath+ppcbin; + findexe:=true; + end + else if FileExists(path+ppcbin) then begin ppcbin:=path+ppcbin; findexe:=true; @@ -111,6 +121,7 @@ program fpc; ppccommandline:=''; cpusuffix :=''; // if not empty, signals attempt at cross // compiler. + extrapath :=''; {$ifdef i386} ppcbin:='ppc386'; processorname:='i386'; @@ -204,8 +215,10 @@ program fpc; ppcbin:='ppcross'+cpusuffix; end; end - else - ppccommandline:=ppccommandline+s+' '; + else if pos('-Xp',s)=1 then + extrapath:=copy(s,4,length(s)-3) + else + ppccommandline:=ppccommandline+s+' '; end; end; @@ -233,4 +246,4 @@ program fpc; if errorvalue<>0 then error(ppcbin+' returned an error exitcode (normal if you did not specify a source file to be compiled)'); halt(errorvalue); - end. \ No newline at end of file + end.