mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 20:09:25 +02:00
* Fixes win32 linking problems with import libraries
* LINKLIB Libraries are now looked for using C file extensions * get_exepath fix
This commit is contained in:
parent
d7f7d061a4
commit
f959a590fe
@ -246,18 +246,18 @@ Implementation
|
||||
begin
|
||||
{ the path exists, now we clean only all the .o and .s files }
|
||||
{ .o files }
|
||||
findfirst(s+dirsep+'*'+target_info.objext,anyfile,dir);
|
||||
findfirst(s+source_info.dirsep+'*'+target_info.objext,anyfile,dir);
|
||||
while (doserror=0) do
|
||||
begin
|
||||
RemoveFile(s+dirsep+dir.name);
|
||||
RemoveFile(s+source_info.dirsep+dir.name);
|
||||
findnext(dir);
|
||||
end;
|
||||
findclose(dir);
|
||||
{ .s files }
|
||||
findfirst(s+dirsep+'*'+target_info.asmext,anyfile,dir);
|
||||
findfirst(s+source_info.dirsep+'*'+target_info.asmext,anyfile,dir);
|
||||
while (doserror=0) do
|
||||
begin
|
||||
RemoveFile(s+dirsep+dir.name);
|
||||
RemoveFile(s+source_info.dirsep+dir.name);
|
||||
findnext(dir);
|
||||
end;
|
||||
findclose(dir);
|
||||
@ -1550,7 +1550,12 @@ Implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.27 2001-09-17 21:29:10 peter
|
||||
Revision 1.28 2001-09-18 11:30:47 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.27 2001/09/17 21:29:10 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.26 2001/08/30 20:57:09 peter
|
||||
|
@ -190,6 +190,9 @@ begin
|
||||
DoneCompiler;
|
||||
{ inits which need to be done before the arguments are parsed }
|
||||
InitSystems;
|
||||
{ globals depends on source_info so it must be after systems }
|
||||
InitGlobals;
|
||||
{ verbose depends on exe_path and must be after globals }
|
||||
InitVerbose;
|
||||
{$ifdef BrowserLog}
|
||||
InitBrowserLog;
|
||||
@ -197,7 +200,6 @@ begin
|
||||
{$ifdef BrowserCol}
|
||||
do_initSymbolInfo;
|
||||
{$endif BrowserCol}
|
||||
InitGlobals;
|
||||
inittokens;
|
||||
InitSymtable;
|
||||
CompilerInited:=true;
|
||||
@ -328,7 +330,12 @@ end;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.21 2001-05-06 14:49:16 peter
|
||||
Revision 1.22 2001-09-18 11:30:47 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.21 2001/05/06 14:49:16 peter
|
||||
* ppu object to class rewrite
|
||||
* move ppu read and write stuff to fppu
|
||||
|
||||
|
@ -51,16 +51,6 @@ interface
|
||||
globtype,version,systems;
|
||||
|
||||
const
|
||||
{$ifdef unix}
|
||||
DirSep = '/';
|
||||
{$else}
|
||||
{$ifdef amiga}
|
||||
DirSep = '/';
|
||||
{$else}
|
||||
DirSep = '\';
|
||||
{$endif}
|
||||
{$endif}
|
||||
|
||||
{$ifdef Splitheap}
|
||||
testsplit : boolean = false;
|
||||
{$endif Splitheap}
|
||||
@ -481,7 +471,7 @@ implementation
|
||||
|
||||
Function RemoveDir(d:string):boolean;
|
||||
begin
|
||||
if d[length(d)]=DirSep then
|
||||
if d[length(d)]=source_info.DirSep then
|
||||
Delete(d,length(d),1);
|
||||
{$I-}
|
||||
rmdir(d);
|
||||
@ -535,7 +525,7 @@ implementation
|
||||
j:=length(Hstr);
|
||||
while (j>0) and (Hstr[j]<>'.') do
|
||||
begin
|
||||
if hstr[j]=DirSep then
|
||||
if hstr[j]=source_info.DirSep then
|
||||
j:=0
|
||||
else
|
||||
dec(j);
|
||||
@ -756,17 +746,17 @@ implementation
|
||||
end;
|
||||
{ fix pathname }
|
||||
if CurrPath='' then
|
||||
CurrPath:='.'+DirSep
|
||||
CurrPath:='.'+source_info.DirSep
|
||||
else
|
||||
begin
|
||||
CurrPath:=FixPath(FExpand(CurrPath),false);
|
||||
if (CurrentDir<>'') and (Copy(CurrPath,1,length(CurrentDir))=CurrentDir) then
|
||||
CurrPath:='.'+DirSep+Copy(CurrPath,length(CurrentDir)+1,255);
|
||||
CurrPath:='.'+source_info.DirSep+Copy(CurrPath,length(CurrentDir)+1,255);
|
||||
end;
|
||||
{ wildcard adding ? }
|
||||
if pos('*',currpath)>0 then
|
||||
begin
|
||||
if currpath[length(currpath)]=dirsep then
|
||||
if currpath[length(currpath)]=source_info.dirsep then
|
||||
hs:=Copy(currpath,1,length(CurrPath)-1)
|
||||
else
|
||||
hs:=currpath;
|
||||
@ -778,7 +768,7 @@ implementation
|
||||
(dir.name<>'..') and
|
||||
((dir.attr and directory)<>0) then
|
||||
begin
|
||||
currpath:=hsd+dir.name+dirsep;
|
||||
currpath:=hsd+dir.name+source_info.dirsep;
|
||||
hp:=Find(currPath);
|
||||
if not assigned(hp) then
|
||||
AddCurrPath;
|
||||
@ -1318,6 +1308,8 @@ implementation
|
||||
|
||||
procedure InitGlobals;
|
||||
begin
|
||||
get_exepath;
|
||||
|
||||
{ set global switches }
|
||||
do_build:=false;
|
||||
do_release:=false;
|
||||
@ -1390,9 +1382,8 @@ implementation
|
||||
apptype:=app_cui;
|
||||
end;
|
||||
|
||||
begin
|
||||
get_exepath;
|
||||
{$ifdef EXTDEBUG}
|
||||
begin
|
||||
{$ifdef FPC}
|
||||
EntryMemUsed:=system.HeapSize-MemAvail;
|
||||
{$endif FPC}
|
||||
@ -1400,7 +1391,12 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.42 2001-09-17 21:29:11 peter
|
||||
Revision 1.43 2001-09-18 11:30:47 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.42 2001/09/17 21:29:11 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.41 2001/08/19 11:22:22 peter
|
||||
|
@ -57,11 +57,11 @@ Type
|
||||
Constructor Create;virtual;
|
||||
Destructor Destroy;override;
|
||||
procedure AddModuleFiles(hp:tmodule);
|
||||
function FindObjectFile(s : string;const unitpath:string) : string;
|
||||
function FindLibraryFile(s:string;const ext:string;var found : boolean) : string;
|
||||
Procedure AddObject(const S,unitpath : String);
|
||||
Procedure AddStaticLibrary(const S : String);
|
||||
Procedure AddSharedLibrary(S : String);
|
||||
Procedure AddStaticCLibrary(const S : String);
|
||||
Procedure AddSharedCLibrary(S : String);
|
||||
Function FindUtil(const s:string):String;
|
||||
Function DoExec(const command,para:string;showinfo,useshell:boolean):boolean;
|
||||
{ Virtuals }
|
||||
@ -77,6 +77,9 @@ var
|
||||
CLinker : array[tld] of TLinkerClass;
|
||||
Linker : TLinker;
|
||||
|
||||
function FindObjectFile(s : string;const unitpath:string) : string;
|
||||
function FindLibraryFile(s:string;const prefix,ext:string;var foundfile : string) : boolean;
|
||||
|
||||
procedure RegisterLinker(t:tld;c:TLinkerClass);
|
||||
procedure InitLinker;
|
||||
procedure DoneLinker;
|
||||
@ -94,6 +97,92 @@ uses
|
||||
script,globals,verbose,ppu;
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
Helpers
|
||||
*****************************************************************************}
|
||||
|
||||
{ searches an object file }
|
||||
function FindObjectFile(s:string;const unitpath:string) : string;
|
||||
var
|
||||
found : boolean;
|
||||
foundfile : string;
|
||||
s1 : string;
|
||||
begin
|
||||
findobjectfile:='';
|
||||
if s='' then
|
||||
exit;
|
||||
if pos('.',s)=0 then
|
||||
s:=s+target_info.objext;
|
||||
s1:=FixFileName(s);
|
||||
if FileExists(s1) then
|
||||
begin
|
||||
Findobjectfile:=ScriptFixFileName(s);
|
||||
exit;
|
||||
end;
|
||||
{ find object file
|
||||
1. specified unit path (if specified)
|
||||
2. cwd
|
||||
3. unit search path
|
||||
4. local object path
|
||||
5. global object path
|
||||
6. exepath }
|
||||
found:=false;
|
||||
if unitpath<>'' then
|
||||
found:=FindFile(s,unitpath,foundfile);
|
||||
if (not found) then
|
||||
found:=FindFile(s,'.'+source_info.DirSep,foundfile);
|
||||
if (not found) then
|
||||
found:=UnitSearchPath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=current_module.localobjectsearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=objectsearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=FindFile(s,exepath,foundfile);
|
||||
if not(cs_link_extern in aktglobalswitches) and (not found) then
|
||||
Message1(exec_w_objfile_not_found,s);
|
||||
findobjectfile:=ScriptFixFileName(foundfile);
|
||||
end;
|
||||
|
||||
|
||||
{ searches an library file }
|
||||
function FindLibraryFile(s:string;const prefix,ext:string;var foundfile : string) : boolean;
|
||||
var
|
||||
found : boolean;
|
||||
begin
|
||||
findlibraryfile:=false;
|
||||
foundfile:=s;
|
||||
if s='' then
|
||||
exit;
|
||||
{ add prefix 'lib' }
|
||||
if (prefix<>'') and (Copy(s,1,length(prefix))<>prefix) then
|
||||
s:=prefix+s;
|
||||
{ add extension }
|
||||
if (ext<>'') and (Copy(s,length(s)-length(ext)+1,length(ext))<>ext) then
|
||||
s:=s+ext;
|
||||
if FileExists(s) then
|
||||
begin
|
||||
foundfile:=ScriptFixFileName(s);
|
||||
FindLibraryFile:=true;
|
||||
exit;
|
||||
end;
|
||||
{ find libary
|
||||
1. cwd
|
||||
2. local libary dir
|
||||
3. global libary dir
|
||||
4. exe path of the compiler }
|
||||
found:=FindFile(s,'.'+source_info.DirSep,foundfile);
|
||||
if (not found) then
|
||||
found:=current_module.locallibrarysearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=librarysearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=FindFile(s,exepath,foundfile);
|
||||
foundfile:=ScriptFixFileName(foundfile);
|
||||
findlibraryfile:=found;
|
||||
end;
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
TLINKER
|
||||
*****************************************************************************}
|
||||
@ -208,9 +297,9 @@ begin
|
||||
while not linkotherofiles.empty do
|
||||
AddObject(linkotherofiles.Getusemask(mask),path^);
|
||||
while not linkotherstaticlibs.empty do
|
||||
AddStaticLibrary(linkotherstaticlibs.Getusemask(mask));
|
||||
AddStaticCLibrary(linkotherstaticlibs.Getusemask(mask));
|
||||
while not linkothersharedlibs.empty do
|
||||
AddSharedLibrary(linkothersharedlibs.Getusemask(mask));
|
||||
AddSharedCLibrary(linkothersharedlibs.Getusemask(mask));
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -245,83 +334,6 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
{ searches an object file }
|
||||
function TLinker.FindObjectFile(s:string;const unitpath:string) : string;
|
||||
var
|
||||
found : boolean;
|
||||
foundfile : string;
|
||||
s1 : string;
|
||||
begin
|
||||
findobjectfile:='';
|
||||
if s='' then
|
||||
exit;
|
||||
if pos('.',s)=0 then
|
||||
s:=s+target_info.objext;
|
||||
s1:=FixFileName(s);
|
||||
if FileExists(s1) then
|
||||
begin
|
||||
Findobjectfile:=ScriptFixFileName(s);
|
||||
exit;
|
||||
end;
|
||||
{ find object file
|
||||
1. specified unit path (if specified)
|
||||
2. cwd
|
||||
3. unit search path
|
||||
4. local object path
|
||||
5. global object path
|
||||
6. exepath }
|
||||
found:=false;
|
||||
if unitpath<>'' then
|
||||
found:=FindFile(s,unitpath,foundfile);
|
||||
if (not found) then
|
||||
found:=FindFile(s,'.'+DirSep,foundfile);
|
||||
if (not found) then
|
||||
found:=UnitSearchPath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=current_module.localobjectsearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=objectsearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=FindFile(s,exepath,foundfile);
|
||||
if not(cs_link_extern in aktglobalswitches) and (not found) then
|
||||
Message1(exec_w_objfile_not_found,s);
|
||||
findobjectfile:=ScriptFixFileName(foundfile);
|
||||
end;
|
||||
|
||||
|
||||
{ searches an library file }
|
||||
function TLinker.FindLibraryFile(s:string;const ext:string;var found : boolean) : string;
|
||||
var
|
||||
foundfile : string;
|
||||
begin
|
||||
found:=false;
|
||||
findlibraryfile:='';
|
||||
if s='' then
|
||||
exit;
|
||||
if pos('.',s)=0 then
|
||||
s:=s+ext;
|
||||
if FileExists(s) then
|
||||
begin
|
||||
found:=true;
|
||||
FindLibraryFile:=ScriptFixFileName(s);
|
||||
exit;
|
||||
end;
|
||||
{ find libary
|
||||
1. cwd
|
||||
2. local libary dir
|
||||
3. global libary dir
|
||||
4. exe path of the compiler }
|
||||
found:=FindFile(s,'.'+DirSep,foundfile);
|
||||
if (not found) then
|
||||
found:=current_module.locallibrarysearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=librarysearchpath.FindFile(s,foundfile);
|
||||
if (not found) then
|
||||
found:=FindFile(s,exepath,foundfile);
|
||||
findlibraryfile:=ScriptFixFileName(foundfile);
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddObject(const S,unitpath : String);
|
||||
begin
|
||||
ObjectFiles.Concat(FindObjectFile(s,unitpath));
|
||||
@ -350,7 +362,36 @@ var
|
||||
begin
|
||||
if s='' then
|
||||
exit;
|
||||
ns:=FindLibraryFile(s,target_info.staticlibext,found);
|
||||
found:=FindLibraryFile(s,target_info.staticlibprefix,target_info.staticlibext,ns);
|
||||
if not(cs_link_extern in aktglobalswitches) and (not found) then
|
||||
Message1(exec_w_libfile_not_found,s);
|
||||
StaticLibFiles.Concat(ns);
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddSharedCLibrary(S:String);
|
||||
begin
|
||||
if s='' then
|
||||
exit;
|
||||
{ remove prefix 'lib' }
|
||||
if Copy(s,1,length(target_info.sharedclibprefix))=target_info.sharedclibprefix then
|
||||
Delete(s,1,length(target_info.sharedclibprefix));
|
||||
{ remove extension if any }
|
||||
if Copy(s,length(s)-length(target_info.sharedclibext)+1,length(target_info.sharedclibext))=target_info.sharedclibext then
|
||||
Delete(s,length(s)-length(target_info.sharedclibext)+1,length(target_info.sharedclibext)+1);
|
||||
{ ready to be added }
|
||||
SharedLibFiles.Concat(S);
|
||||
end;
|
||||
|
||||
|
||||
Procedure TLinker.AddStaticCLibrary(const S:String);
|
||||
var
|
||||
ns : string;
|
||||
found : boolean;
|
||||
begin
|
||||
if s='' then
|
||||
exit;
|
||||
found:=FindLibraryFile(s,target_info.staticclibprefix,target_info.staticclibext,ns);
|
||||
if not(cs_link_extern in aktglobalswitches) and (not found) then
|
||||
Message1(exec_w_libfile_not_found,s);
|
||||
StaticLibFiles.Concat(ns);
|
||||
@ -492,7 +533,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.23 2001-09-17 21:29:11 peter
|
||||
Revision 1.24 2001-09-18 11:30:48 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.23 2001/09/17 21:29:11 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.22 2001/08/30 20:13:53 peter
|
||||
|
@ -69,7 +69,7 @@ implementation
|
||||
begin
|
||||
S:=current_module.linkOtherSharedLibs.Getusemask(link_allways);
|
||||
if not DLLScanner.scan(s) then
|
||||
KeepShared.Insert(s);
|
||||
KeepShared.Concat(s);
|
||||
end;
|
||||
DLLscanner.Free;
|
||||
{ Recreate import section }
|
||||
@ -1339,7 +1339,12 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.46 2001-09-13 14:47:47 michael
|
||||
Revision 1.47 2001-09-18 11:30:48 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.46 2001/09/13 14:47:47 michael
|
||||
+ Committed patch from peter
|
||||
|
||||
Revision 1.45 2001/08/26 13:36:46 florian
|
||||
|
@ -669,7 +669,7 @@ implementation
|
||||
end
|
||||
else
|
||||
path:=current_scanner.inputfile.path^;
|
||||
found:=FindFile(name+ext,path+';.'+DirSep,foundfile);
|
||||
found:=FindFile(name+ext,path+';.'+source_info.DirSep,foundfile);
|
||||
if (not found) then
|
||||
found:=current_module.localincludesearchpath.FindFile(name+ext,foundfile);
|
||||
if (not found) then
|
||||
@ -2602,7 +2602,12 @@ exit_label:
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.21 2001-07-30 20:59:27 peter
|
||||
Revision 1.22 2001-09-18 11:30:48 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.21 2001/07/30 20:59:27 peter
|
||||
* m68k updates from v10 merged
|
||||
|
||||
Revision 1.20 2001/07/15 11:56:21 peter
|
||||
|
@ -171,8 +171,6 @@ interface
|
||||
cpu : ttargetcpu;
|
||||
unit_env : string[12];
|
||||
extradefines : string[40];
|
||||
sharedlibext : string[10];
|
||||
staticlibext,
|
||||
sourceext,
|
||||
pasext,
|
||||
exeext,
|
||||
@ -185,8 +183,14 @@ interface
|
||||
objext,
|
||||
resext,
|
||||
resobjext : string[4];
|
||||
sharedlibext : string[10];
|
||||
staticlibext,
|
||||
staticlibprefix : string[4];
|
||||
sharedlibprefix : string[4];
|
||||
sharedClibext : string[10];
|
||||
staticClibext,
|
||||
staticClibprefix : string[4];
|
||||
sharedClibprefix : string[4];
|
||||
Cprefix : string[2];
|
||||
newline : string[2];
|
||||
dirsep : char;
|
||||
@ -647,7 +651,12 @@ finalization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.26 2001-09-17 21:29:13 peter
|
||||
Revision 1.27 2001-09-18 11:30:48 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.26 2001/09/17 21:29:13 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.25 2001/08/30 20:57:10 peter
|
||||
|
@ -448,8 +448,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'BEOSUNITS';
|
||||
extradefines : '';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -462,8 +460,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -513,7 +517,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.7 2001-09-17 21:29:15 peter
|
||||
Revision 1.8 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.7 2001/09/17 21:29:15 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.6 2001/08/12 17:57:07 peter
|
||||
|
@ -495,8 +495,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'BSDUNITS';
|
||||
extradefines : 'UNIX;BSD';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -509,8 +507,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -558,8 +562,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'BSDUNITS';
|
||||
extradefines : 'UNIX;BSD';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -572,8 +574,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '_';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -624,8 +632,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'BSDUNITS';
|
||||
extradefines : 'UNIX;BSD';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -638,8 +644,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -698,7 +710,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.11 2001-09-17 21:29:16 peter
|
||||
Revision 1.12 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.11 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.10 2001/08/12 17:57:07 peter
|
||||
|
@ -201,8 +201,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'GO32V1UNITS';
|
||||
extradefines : 'DPMI';
|
||||
sharedlibext : '.dll';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : ''; { No .exe, the linker only output a.out ! }
|
||||
@ -215,8 +213,14 @@ end;
|
||||
objext : '.o1';
|
||||
resext : '.res';
|
||||
resobjext : '.o1r';
|
||||
sharedlibext : '.dll';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : '';
|
||||
sharedlibprefix : '';
|
||||
sharedClibext : '.dll';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : '';
|
||||
sharedClibprefix : '';
|
||||
Cprefix : '_';
|
||||
newline : #13#10;
|
||||
dirsep : '\';
|
||||
@ -262,7 +266,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.10 2001-09-17 21:29:16 peter
|
||||
Revision 1.11 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.10 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.9 2001/08/19 11:22:24 peter
|
||||
|
@ -365,8 +365,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'GO32V2UNITS';
|
||||
extradefines : 'DPMI';
|
||||
sharedlibext : '.dll';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '.exe';
|
||||
@ -379,8 +377,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.dll';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : '';
|
||||
sharedlibprefix : '';
|
||||
sharedClibext : '.dll';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : '';
|
||||
sharedClibprefix : '';
|
||||
Cprefix : '_';
|
||||
newline : #13#10;
|
||||
dirsep : '\';
|
||||
@ -426,7 +430,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.13 2001-09-17 21:29:16 peter
|
||||
Revision 1.14 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.13 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.12 2001/08/30 20:08:23 peter
|
||||
|
@ -485,8 +485,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'LINUXUNITS';
|
||||
extradefines : 'UNIX';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -499,8 +497,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -551,8 +555,6 @@ end;
|
||||
short_name : 'LINUX';
|
||||
unit_env : 'LINUXUNITS';
|
||||
extradefines : 'UNIX';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -565,8 +567,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -603,8 +611,6 @@ end;
|
||||
short_name : 'LINUX';
|
||||
unit_env : '';
|
||||
extradefines : 'UNIX';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.s';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -617,8 +623,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.s';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -653,8 +665,6 @@ end;
|
||||
short_name : 'LINUX';
|
||||
unit_env : 'LINUXUNITS';
|
||||
extradefines : 'UNIX';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -667,8 +677,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -723,7 +739,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.12 2001-09-17 21:29:16 peter
|
||||
Revision 1.13 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.12 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.11 2001/08/07 18:47:15 peter
|
||||
|
@ -465,8 +465,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'NETWAREUNITS';
|
||||
extradefines : '';
|
||||
sharedlibext : '.nlm';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '.nlm';
|
||||
@ -479,8 +477,14 @@ end;
|
||||
objext : '.on';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.nlm';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : '';
|
||||
sharedlibprefix : '';
|
||||
sharedClibext : '.nlm';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : '';
|
||||
sharedClibprefix : '';
|
||||
Cprefix : '';
|
||||
newline : #13#10;
|
||||
dirsep : '\';
|
||||
@ -528,7 +532,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.10 2001-09-17 21:29:16 peter
|
||||
Revision 1.11 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.10 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.9 2001/08/07 18:47:15 peter
|
||||
|
@ -523,8 +523,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'OS2UNITS';
|
||||
extradefines : '';
|
||||
sharedlibext : '.ao2';
|
||||
staticlibext : '.ao2';
|
||||
sourceext : '.pas';
|
||||
pasext : '.pp';
|
||||
exeext : '.exe';
|
||||
@ -537,8 +535,14 @@ end;
|
||||
objext : '.oo2';
|
||||
resext : '.res';
|
||||
resobjext : '.oor';
|
||||
sharedlibext : '.ao2';
|
||||
staticlibext : '.ao2';
|
||||
staticlibprefix : '';
|
||||
sharedlibprefix : '';
|
||||
sharedClibext : 'dll';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : '';
|
||||
sharedClibprefix : '';
|
||||
Cprefix : '_';
|
||||
newline : #13#10;
|
||||
dirsep : '\';
|
||||
@ -586,7 +590,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.10 2001-09-17 21:29:16 peter
|
||||
Revision 1.11 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.10 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.9 2001/08/07 18:47:15 peter
|
||||
|
@ -488,8 +488,6 @@ end;
|
||||
cpu : i386;
|
||||
unit_env : 'SUNOSUNITS';
|
||||
extradefines : 'UNIX;SOLARIS;LIBC';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
@ -502,8 +500,14 @@ end;
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
@ -551,7 +555,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.11 2001-09-17 21:29:16 peter
|
||||
Revision 1.12 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.11 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.10 2001/08/12 17:57:07 peter
|
||||
|
@ -787,15 +787,7 @@ begin
|
||||
While not SharedLibFiles.Empty do
|
||||
begin
|
||||
S:=SharedLibFiles.GetFirst;
|
||||
if pos('.',s)=0 then
|
||||
{ we never directly link a DLL
|
||||
its allways through an import library PM }
|
||||
{ libraries created by C compilers have .a extensions }
|
||||
s2:=s+'.a'{ target_os.sharedlibext }
|
||||
else
|
||||
s2:=s;
|
||||
s2:=FindLibraryFile(s2,'',found);
|
||||
if found then
|
||||
if FindLibraryFile(s,target_info.staticClibprefix,target_info.staticClibext,s2) then
|
||||
begin
|
||||
LinkRes.Add(GetShortName(s2));
|
||||
continue;
|
||||
@ -1222,13 +1214,13 @@ end;
|
||||
1. Current dir
|
||||
2. Library Path
|
||||
3. windir,windir/system,windir/system32 }
|
||||
Found:=FindFile(s,'.'+DirSep,founddll);
|
||||
Found:=FindFile(s,'.'+source_info.DirSep,founddll);
|
||||
if (not found) then
|
||||
Found:=librarysearchpath.FindFile(s,founddll);
|
||||
if (not found) then
|
||||
begin
|
||||
sysdir:=FixPath(GetEnv('windir'),false);
|
||||
Found:=FindFile(s,sysdir+';'+sysdir+'system'+DirSep+';'+sysdir+'system32'+DirSep,founddll);
|
||||
Found:=FindFile(s,sysdir+';'+sysdir+'system'+source_info.DirSep+';'+sysdir+'system32'+source_info.DirSep,founddll);
|
||||
end;
|
||||
if (not found) then
|
||||
begin
|
||||
@ -1411,10 +1403,16 @@ function tDLLScannerWin32.GetEdata(HeaderEntry:cardinal):longbool;
|
||||
function tDLLScannerWin32.scan(const binname:string):longbool;
|
||||
var
|
||||
OldFileMode:longint;
|
||||
foundimp : string;
|
||||
begin
|
||||
Scan:=false;
|
||||
{ is there already an import library the we will use that one }
|
||||
if FindLibraryFile(binname,target_info.staticClibprefix,target_info.staticClibext,foundimp) then
|
||||
exit;
|
||||
{ check if we can find the dll }
|
||||
if not FindDll(DLLName(binname),impname) then
|
||||
exit;
|
||||
{ read the dll file }
|
||||
assign(f,impname);
|
||||
OldFileMode:=filemode;
|
||||
filemode:=0;
|
||||
@ -1459,8 +1457,6 @@ function tDLLScannerWin32.scan(const binname:string):longbool;
|
||||
cpu : i386;
|
||||
unit_env : 'WIN32UNITS';
|
||||
extradefines : 'MSWINDOWS';
|
||||
sharedlibext : '.dll';
|
||||
staticlibext : '.aw';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '.exe';
|
||||
@ -1473,8 +1469,14 @@ function tDLLScannerWin32.scan(const binname:string):longbool;
|
||||
objext : '.ow';
|
||||
resext : '.rc';
|
||||
resobjext : '.owr';
|
||||
sharedlibext : '.dll';
|
||||
staticlibext : '.aw';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : '';
|
||||
sharedClibext : '.dll';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : '';
|
||||
Cprefix : '_';
|
||||
newline : #13#10;
|
||||
dirsep : '\';
|
||||
@ -1525,7 +1527,12 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.17 2001-09-17 21:29:16 peter
|
||||
Revision 1.18 2001-09-18 11:32:00 michael
|
||||
* Fixes win32 linking problems with import libraries
|
||||
* LINKLIB Libraries are now looked for using C file extensions
|
||||
* get_exepath fix
|
||||
|
||||
Revision 1.17 2001/09/17 21:29:16 peter
|
||||
* merged netbsd, fpu-overflow from fixes branch
|
||||
|
||||
Revision 1.16 2001/09/13 14:47:19 michael
|
||||
|
Loading…
Reference in New Issue
Block a user