mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 23:21:57 +02:00
* linker stuff for symbian by Felipe Monteiro de Carvalho
* updated symbian rtl makefile by Felipe Monteiro de Carvalho git-svn-id: trunk@6361 -
This commit is contained in:
parent
a2127504a0
commit
e2633cb47d
@ -33,6 +33,13 @@ interface
|
||||
cpubase,
|
||||
import,export,link,cgobj,t_win, i_symbian;
|
||||
|
||||
type
|
||||
TInternalLinkerSymbian = class(TInternalLinker)
|
||||
constructor create; override;
|
||||
procedure DefaultLinkScript; override;
|
||||
procedure InitSysInitUnitName; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
@ -41,6 +48,139 @@ implementation
|
||||
cpuinfo,cgutils,dbgbase,
|
||||
owar,ogbase,ogcoff;
|
||||
|
||||
{****************************************************************************
|
||||
TInternalLinkerSymbian
|
||||
****************************************************************************}
|
||||
|
||||
constructor TInternalLinkerSymbian.Create;
|
||||
begin
|
||||
inherited Create;
|
||||
CExeoutput:=TPECoffexeoutput;
|
||||
CObjInput:=TPECoffObjInput;
|
||||
end;
|
||||
|
||||
|
||||
procedure TInternalLinkerSymbian.DefaultLinkScript;
|
||||
var
|
||||
s,s2,
|
||||
ibase : TCmdStr;
|
||||
begin
|
||||
with LinkScript do
|
||||
begin
|
||||
while not ObjectFiles.Empty do
|
||||
begin
|
||||
s:=ObjectFiles.GetFirst;
|
||||
if s<>'' then
|
||||
Concat('READOBJECT '+MaybeQuoted(s));
|
||||
end;
|
||||
while not StaticLibFiles.Empty do
|
||||
begin
|
||||
s:=StaticLibFiles.GetFirst;
|
||||
if s<>'' then
|
||||
Concat('READSTATICLIBRARY '+MaybeQuoted(s));
|
||||
end;
|
||||
While not SharedLibFiles.Empty do
|
||||
begin
|
||||
S:=SharedLibFiles.GetFirst;
|
||||
if FindLibraryFile(s,target_info.staticClibprefix,target_info.staticClibext,s2) then
|
||||
Concat('READSTATICLIBRARY '+MaybeQuoted(s2))
|
||||
else
|
||||
Comment(V_Error,'Import library not found for '+S);
|
||||
end;
|
||||
if IsSharedLibrary then
|
||||
begin
|
||||
Concat('ISSHAREDLIBRARY');
|
||||
Concat('ENTRYNAME _E32DLL');
|
||||
end
|
||||
else
|
||||
begin
|
||||
Concat('ENTRYNAME _E32Startup')
|
||||
end;
|
||||
ibase:='';
|
||||
if assigned(DLLImageBase) then
|
||||
ibase:=DLLImageBase^
|
||||
else
|
||||
begin
|
||||
if IsSharedLibrary then
|
||||
ibase:='10000000'
|
||||
else
|
||||
ibase:='400000';
|
||||
end;
|
||||
Concat('IMAGEBASE $' + ibase);
|
||||
Concat('HEADER');
|
||||
Concat('EXESECTION .text');
|
||||
Concat(' OBJSECTION .text*');
|
||||
Concat(' SYMBOL ___CTOR_LIST__');
|
||||
Concat(' SYMBOL __CTOR_LIST__');
|
||||
Concat(' LONG -1');
|
||||
Concat(' OBJSECTION .ctor*');
|
||||
Concat(' LONG 0');
|
||||
Concat(' SYMBOL ___DTOR_LIST__');
|
||||
Concat(' SYMBOL __DTOR_LIST__');
|
||||
Concat(' LONG -1');
|
||||
Concat(' OBJSECTION .dtor*');
|
||||
Concat(' LONG 0');
|
||||
Concat(' SYMBOL etext');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .data');
|
||||
Concat(' SYMBOL __data_start__');
|
||||
Concat(' OBJSECTION .data*');
|
||||
Concat(' OBJSECTION .fpc*');
|
||||
Concat(' SYMBOL edata');
|
||||
Concat(' SYMBOL __data_end__');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .rdata');
|
||||
Concat(' SYMBOL ___RUNTIME_PSEUDO_RELOC_LIST__');
|
||||
Concat(' SYMBOL __RUNTIME_PSEUDO_RELOC_LIST__');
|
||||
Concat(' OBJSECTION .rdata_runtime_pseudo_reloc');
|
||||
Concat(' SYMBOL ___RUNTIME_PSEUDO_RELOC_LIST_END__');
|
||||
Concat(' SYMBOL __RUNTIME_PSEUDO_RELOC_LIST_END__');
|
||||
Concat(' OBJSECTION .rdata*');
|
||||
Concat(' OBJSECTION .rodata*');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .pdata');
|
||||
Concat(' OBJSECTION .pdata');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .bss');
|
||||
Concat(' SYMBOL __bss_start__');
|
||||
Concat(' OBJSECTION .bss*');
|
||||
Concat(' SYMBOL __bss_end__');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .idata');
|
||||
Concat(' OBJSECTION .idata$2*');
|
||||
Concat(' OBJSECTION .idata$3*');
|
||||
Concat(' ZEROS 20');
|
||||
Concat(' OBJSECTION .idata$4*');
|
||||
Concat(' OBJSECTION .idata$5*');
|
||||
Concat(' OBJSECTION .idata$6*');
|
||||
Concat(' OBJSECTION .idata$7*');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .edata');
|
||||
Concat(' OBJSECTION .edata*');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .rsrc');
|
||||
Concat(' OBJSECTION .rsrc*');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .reloc');
|
||||
Concat(' OBJSECTION .reloc');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .stab');
|
||||
Concat(' OBJSECTION .stab');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('EXESECTION .stabstr');
|
||||
Concat(' OBJSECTION .stabstr');
|
||||
Concat('ENDEXESECTION');
|
||||
Concat('STABS');
|
||||
Concat('SYMBOLS');
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TInternalLinkerSymbian.InitSysInitUnitName;
|
||||
begin
|
||||
sysinitunit := 'sysinitpas';
|
||||
end;
|
||||
|
||||
{*****************************************************************************
|
||||
Initialize
|
||||
*****************************************************************************}
|
||||
@ -48,7 +188,7 @@ implementation
|
||||
initialization
|
||||
{$ifdef i386}
|
||||
RegisterExternalLinker(system_i386_symbian_info,TExternalLinkerWin);
|
||||
RegisterInternalLinker(system_i386_symbian_info,TInternalLinkerWin);
|
||||
RegisterInternalLinker(system_i386_symbian_info,TInternalLinkerSymbian);
|
||||
RegisterImport(system_i386_symbian,TImportLibWin);
|
||||
RegisterExport(system_i386_symbian,TExportLibWin);
|
||||
RegisterDLLScanner(system_i386_symbian,TDLLScannerWin);
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/01/25]
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/02/04]
|
||||
#
|
||||
default: all
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-embedded
|
||||
@ -92,6 +92,8 @@ endif
|
||||
endif
|
||||
export ECHO
|
||||
endif
|
||||
override OS_TARGET_DEFAULT=symbian
|
||||
override DEFAULT_FPCDIR=../..
|
||||
ifndef FPC
|
||||
ifdef PP
|
||||
FPC=$(PP)
|
||||
@ -231,6 +233,472 @@ endif
|
||||
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
|
||||
override PACKAGE_NAME=rtl
|
||||
PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
|
||||
RTL=..
|
||||
INC=$(RTL)/inc
|
||||
COMMON=$(RTL)/common
|
||||
PROCINC=$(RTL)/$(CPU_TARGET)
|
||||
OBJPASDIR=$(RTL)/objpas
|
||||
UNITPREFIX=rtl
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override TARGET_UNITS+=system
|
||||
endif
|
||||
override INSTALL_FPCPACKAGE=y
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
|
||||
endif
|
||||
ifdef REQUIRE_UNITSDIR
|
||||
override UNITSDIR+=$(REQUIRE_UNITSDIR)
|
||||
endif
|
||||
@ -1029,8 +1497,12 @@ ifeq ($(CPU_TARGET),powerpc)
|
||||
FPCCPUOPT:=-O1r
|
||||
endif
|
||||
else
|
||||
ifeq ($(CPU_TARGET),arm)
|
||||
FPCCPUOPT:=-O1
|
||||
else
|
||||
FPCCPUOPT:=-O2
|
||||
endif
|
||||
endif
|
||||
override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
|
||||
override FPCOPTDEF+=RELEASE
|
||||
endif
|
||||
@ -1127,10 +1599,92 @@ ifeq ($(FULL_SOURCE),$(FULL_TARGET))
|
||||
EXECPPAS:=@$(PPAS)
|
||||
endif
|
||||
endif
|
||||
.PHONY: fpc_units
|
||||
ifneq ($(TARGET_UNITS),)
|
||||
override ALLTARGET+=fpc_units
|
||||
override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
|
||||
override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
|
||||
override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
|
||||
override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
|
||||
endif
|
||||
fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
|
||||
ifdef TARGET_RSTS
|
||||
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
|
||||
override CLEANRSTFILES+=$(RSTFILES)
|
||||
endif
|
||||
.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
|
||||
$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
|
||||
@$(ECHOREDIR) Compiled > $(FPCMADE)
|
||||
fpc_all: $(FPCMADE)
|
||||
fpc_smart:
|
||||
$(MAKE) all LINKSMART=1 CREATESMART=1
|
||||
fpc_debug:
|
||||
$(MAKE) all DEBUG=1
|
||||
fpc_release:
|
||||
$(MAKE) all RELEASE=1
|
||||
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
|
||||
$(COMPILER_UNITTARGETDIR):
|
||||
$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
|
||||
$(COMPILER_TARGETDIR):
|
||||
$(MKDIRTREE) $(COMPILER_TARGETDIR)
|
||||
%$(PPUEXT): %.pp
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(PPUEXT): %.pas
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(EXEEXT): %.pp
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(EXEEXT): %.pas
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(EXEEXT): %.lpr
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(EXEEXT): %.dpr
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%.res: %.rc
|
||||
windres -i $< -o $@
|
||||
vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
|
||||
vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
|
||||
vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
|
||||
vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
|
||||
vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
|
||||
vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
|
||||
.PHONY: fpc_shared
|
||||
override INSTALLTARGET+=fpc_shared_install
|
||||
ifndef SHARED_LIBVERSION
|
||||
SHARED_LIBVERSION=$(FPC_VERSION)
|
||||
endif
|
||||
ifndef SHARED_LIBNAME
|
||||
SHARED_LIBNAME=$(PACKAGE_NAME)
|
||||
endif
|
||||
ifndef SHARED_FULLNAME
|
||||
SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
|
||||
endif
|
||||
ifndef SHARED_LIBUNITS
|
||||
SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
|
||||
override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
|
||||
endif
|
||||
fpc_shared:
|
||||
ifdef HASSHAREDLIB
|
||||
$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
|
||||
ifneq ($(SHARED_BUILD),n)
|
||||
$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
|
||||
endif
|
||||
else
|
||||
@$(ECHO) Shared Libraries not supported
|
||||
endif
|
||||
fpc_shared_install:
|
||||
ifneq ($(SHARED_BUILD),n)
|
||||
ifneq ($(SHARED_LIBUNITS),)
|
||||
ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
|
||||
$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
|
||||
ifdef INSTALL_UNITS
|
||||
override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
|
||||
@ -1374,13 +1928,13 @@ endif
|
||||
fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
|
||||
fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
|
||||
fpc_makefiles: fpc_makefile fpc_makefile_dirs
|
||||
all:
|
||||
debug:
|
||||
smart:
|
||||
release:
|
||||
units:
|
||||
all: fpc_all
|
||||
debug: fpc_debug
|
||||
smart: fpc_smart
|
||||
release: fpc_release
|
||||
units: fpc_units
|
||||
examples:
|
||||
shared:
|
||||
shared: fpc_shared
|
||||
install: fpc_install
|
||||
sourceinstall: fpc_sourceinstall
|
||||
exampleinstall: fpc_exampleinstall
|
||||
@ -1389,9 +1943,9 @@ zipinstall:
|
||||
zipsourceinstall:
|
||||
zipexampleinstall:
|
||||
zipdistinstall:
|
||||
clean:
|
||||
distclean:
|
||||
cleanall:
|
||||
clean: fpc_clean
|
||||
distclean: fpc_distclean
|
||||
cleanall: fpc_cleanall
|
||||
info: fpc_info
|
||||
makefiles: fpc_makefiles
|
||||
.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
|
||||
@ -1399,3 +1953,11 @@ ifneq ($(wildcard fpcmake.loc),)
|
||||
include fpcmake.loc
|
||||
endif
|
||||
.NOTPARALLEL:
|
||||
SYSTEMPPU=$(addsuffix $(PPUEXT),system)
|
||||
include $(INC)/makefile.inc
|
||||
SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
|
||||
include $(PROCINC)/makefile.cpu
|
||||
SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
|
||||
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
||||
system$(PPUEXT) : system.pp $(SYSDEPS)
|
||||
$(COMPILER) -Us -Sg system.pp
|
||||
|
@ -1,10 +1,58 @@
|
||||
#
|
||||
# Makefile.fpc for Free Pascal Symbian
|
||||
# Makefile.fpc for Free Pascal SymbianOS RTL
|
||||
#
|
||||
|
||||
[package]
|
||||
main=rtl
|
||||
|
||||
[target]
|
||||
units=system
|
||||
|
||||
[require]
|
||||
nortl=y
|
||||
|
||||
[install]
|
||||
fpcpackage=y
|
||||
|
||||
[default]
|
||||
fpcdir=../..
|
||||
target=symbian
|
||||
|
||||
[compiler]
|
||||
includedir=$(INC) $(PROCINC)
|
||||
sourcedir=$(INC) $(PROCINC) $(COMMON)
|
||||
|
||||
|
||||
[prerules]
|
||||
RTL=..
|
||||
INC=$(RTL)/inc
|
||||
COMMON=$(RTL)/common
|
||||
PROCINC=$(RTL)/$(CPU_TARGET)
|
||||
OBJPASDIR=$(RTL)/objpas
|
||||
UNITPREFIX=rtl
|
||||
|
||||
[rules]
|
||||
.NOTPARALLEL:
|
||||
SYSTEMPPU=$(addsuffix $(PPUEXT),system)
|
||||
|
||||
# Get the system independent include file names.
|
||||
# This will set the following variables :
|
||||
# SYSINCNAMES
|
||||
include $(INC)/makefile.inc
|
||||
SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
|
||||
|
||||
# Get the processor dependent include file names.
|
||||
# This will set the following variables :
|
||||
# CPUINCNAMES
|
||||
include $(PROCINC)/makefile.cpu
|
||||
SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
|
||||
|
||||
# Put system unit dependencies together.
|
||||
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
|
||||
|
||||
#
|
||||
# System Units (System, Objpas, Strings)
|
||||
#
|
||||
|
||||
system$(PPUEXT) : system.pp $(SYSDEPS)
|
||||
$(COMPILER) -Us -Sg system.pp
|
||||
|
Loading…
Reference in New Issue
Block a user