mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 20:29:18 +02:00
* Add PostGres Event notification component from Ludo Brands (22060)
git-svn-id: trunk@21324 -
This commit is contained in:
parent
137b21223b
commit
0efa458127
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -1880,6 +1880,7 @@ packages/fcl-db/Makefile.fpc svneol=native#text/plain
|
|||||||
packages/fcl-db/Makefile.fpc.fpcmake svneol=native#text/plain
|
packages/fcl-db/Makefile.fpc.fpcmake svneol=native#text/plain
|
||||||
packages/fcl-db/examples/fbadmindemo.pp svneol=native#text/plain
|
packages/fcl-db/examples/fbadmindemo.pp svneol=native#text/plain
|
||||||
packages/fcl-db/examples/fbeventstest.pp svneol=native#text/plain
|
packages/fcl-db/examples/fbeventstest.pp svneol=native#text/plain
|
||||||
|
packages/fcl-db/examples/pqeventstest.pp svneol=native#text/plain
|
||||||
packages/fcl-db/fpmake.pp svneol=native#text/plain
|
packages/fcl-db/fpmake.pp svneol=native#text/plain
|
||||||
packages/fcl-db/src/Dataset.txt svneol=native#text/plain
|
packages/fcl-db/src/Dataset.txt svneol=native#text/plain
|
||||||
packages/fcl-db/src/README.txt svneol=native#text/plain
|
packages/fcl-db/src/README.txt svneol=native#text/plain
|
||||||
@ -2059,6 +2060,7 @@ packages/fcl-db/src/sqldb/postgres/Makefile.fpc svneol=native#text/plain
|
|||||||
packages/fcl-db/src/sqldb/postgres/fpmake.inc svneol=native#text/plain
|
packages/fcl-db/src/sqldb/postgres/fpmake.inc svneol=native#text/plain
|
||||||
packages/fcl-db/src/sqldb/postgres/fpmake.pp svneol=native#text/plain
|
packages/fcl-db/src/sqldb/postgres/fpmake.pp svneol=native#text/plain
|
||||||
packages/fcl-db/src/sqldb/postgres/pqconnection.pp svneol=native#text/plain
|
packages/fcl-db/src/sqldb/postgres/pqconnection.pp svneol=native#text/plain
|
||||||
|
packages/fcl-db/src/sqldb/postgres/pqeventmonitor.pp svneol=native#text/plain
|
||||||
packages/fcl-db/src/sqldb/sqldb.pp svneol=native#text/plain
|
packages/fcl-db/src/sqldb/sqldb.pp svneol=native#text/plain
|
||||||
packages/fcl-db/src/sqldb/sqlite/Makefile svneol=native#text/plain
|
packages/fcl-db/src/sqldb/sqlite/Makefile svneol=native#text/plain
|
||||||
packages/fcl-db/src/sqldb/sqlite/Makefile.fpc svneol=native#text/plain
|
packages/fcl-db/src/sqldb/sqlite/Makefile.fpc svneol=native#text/plain
|
||||||
|
114
packages/fcl-db/examples/pqeventstest.pp
Normal file
114
packages/fcl-db/examples/pqeventstest.pp
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
program PQEventsTest;
|
||||||
|
|
||||||
|
{$mode delphi}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}
|
||||||
|
Classes,sysutils,
|
||||||
|
PQEventMonitor,pqconnection,sqldb;
|
||||||
|
|
||||||
|
const
|
||||||
|
MAXEVENTS=35;
|
||||||
|
NUMTESTS=100;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TMyEventAlert }
|
||||||
|
|
||||||
|
TMyEventAlert=class
|
||||||
|
class procedure OnPQEvent(Sender: TObject; EventName: string; EventCount: longint;
|
||||||
|
var CancelAlerts: boolean);
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
EvSent,EvReceived:Array [1..MAXEVENTS] of integer;
|
||||||
|
TotalRecieved:integer;
|
||||||
|
|
||||||
|
function testNEvents(PQConnection:TPQConnection;n:integer):boolean;
|
||||||
|
var
|
||||||
|
EventsM:TPQEventMonitor;
|
||||||
|
i,j,k:integer;
|
||||||
|
begin
|
||||||
|
for i:=1 to MAXEVENTS do
|
||||||
|
begin
|
||||||
|
EvSent[i]:=0;
|
||||||
|
EvReceived[i]:=0;
|
||||||
|
end;
|
||||||
|
EventsM:=TPQEventMonitor.create(nil);
|
||||||
|
EventsM.Connection:=PQConnection;
|
||||||
|
for i:=1 to n do
|
||||||
|
EventsM.Events.Add('E'+IntToStr(i));
|
||||||
|
EventsM.OnEventAlert:=TMyEventAlert.OnPQEvent;
|
||||||
|
EventsM.RegisterEvents;
|
||||||
|
i:=NUMTESTS;
|
||||||
|
TotalRecieved:=0;
|
||||||
|
Randomize;
|
||||||
|
while i>0 do
|
||||||
|
begin
|
||||||
|
k:=1+random(n);
|
||||||
|
PQConnection.ExecuteDirect('NOTIFY E'+IntTostr(k));
|
||||||
|
PQConnection.Transaction.Commit;
|
||||||
|
EvSent[k]:=EvSent[k]+1;
|
||||||
|
EventsM.Poll;
|
||||||
|
i:=i-1;
|
||||||
|
end;
|
||||||
|
for i:=1 to 300 do //3 secs max
|
||||||
|
begin
|
||||||
|
Sleep(10); //wait until everything received
|
||||||
|
EventsM.Poll;
|
||||||
|
if TotalRecieved=NUMTESTS then
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
result:=true;
|
||||||
|
for i:=1 to n do
|
||||||
|
begin
|
||||||
|
result:=result and (EvSent[i]=EvReceived[i]);
|
||||||
|
end;
|
||||||
|
EventsM.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TMyEventAlert }
|
||||||
|
|
||||||
|
class procedure TMyEventAlert.OnPQEvent(Sender: TObject; EventName: string;
|
||||||
|
EventCount: longint; var CancelAlerts: boolean);
|
||||||
|
var i:integer;
|
||||||
|
begin
|
||||||
|
i:=StrToInt(copy(EventName,2,2));
|
||||||
|
EvReceived[i]:=EvReceived[i]+EventCount;
|
||||||
|
TotalRecieved:=TotalRecieved+EventCount;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
PQConnection1:TPQConnection;
|
||||||
|
SQLTransaction1: TSQLTransaction;
|
||||||
|
i:integer;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if paramcount<4 then
|
||||||
|
begin
|
||||||
|
WriteLn('Usage:');
|
||||||
|
WriteLn(' '+Paramstr(0) +' database hostname username password');
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
PQConnection1:=TPQConnection.Create(nil);
|
||||||
|
SQLTransaction1:= TSQLTransaction.Create(nil);
|
||||||
|
PQConnection1.Transaction:=SQLTransaction1;
|
||||||
|
SQLTransaction1.DataBase:=PQConnection1;
|
||||||
|
PQConnection1.Password:=paramstr(4);
|
||||||
|
PQConnection1.UserName:=paramstr(3);
|
||||||
|
PQConnection1.HostName:=paramstr(2);
|
||||||
|
PQConnection1.DatabaseName:=paramstr(1);
|
||||||
|
for i:=1 to 16 do
|
||||||
|
begin
|
||||||
|
if testNEvents(PQConnection1,i) then
|
||||||
|
WriteLn(inttostr(i)+' succeeded')
|
||||||
|
else
|
||||||
|
WriteLn(inttostr(i)+' failed. Missed '+ IntToStr(NUMTESTS-TotalRecieved)+' Events');
|
||||||
|
end;
|
||||||
|
SQLTransaction1.Free;
|
||||||
|
PQConnection1.Free;
|
||||||
|
WriteLn('Tests finished.');
|
||||||
|
end.
|
||||||
|
|
@ -662,6 +662,16 @@ begin
|
|||||||
AddUnit('dbconst');
|
AddUnit('dbconst');
|
||||||
AddUnit('bufdataset');
|
AddUnit('bufdataset');
|
||||||
end;
|
end;
|
||||||
|
T:=P.Targets.AddUnit('pqeventmonitor.pp', SqldbConnectionOSes-SqldbWithoutPostgresOSes);
|
||||||
|
T.ResourceStrings:=true;
|
||||||
|
with T.Dependencies do
|
||||||
|
begin
|
||||||
|
AddUnit('sqldb');
|
||||||
|
AddUnit('db');
|
||||||
|
AddUnit('dbconst');
|
||||||
|
AddUnit('bufdataset');
|
||||||
|
AddUnit('pqconnection');
|
||||||
|
end;
|
||||||
T:=P.Targets.AddUnit('mssqlconn.pp', MSSQLOSes);
|
T:=P.Targets.AddUnit('mssqlconn.pp', MSSQLOSes);
|
||||||
with T.Dependencies do
|
with T.Dependencies do
|
||||||
begin
|
begin
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#
|
#
|
||||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
|
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/02/24]
|
||||||
#
|
#
|
||||||
default: all
|
default: all
|
||||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku 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 i386-nativent i386-iphonesim 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 powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
|
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku 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 i386-nativent i386-iphonesim 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-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
|
||||||
BSDs = freebsd netbsd openbsd darwin
|
BSDs = freebsd netbsd openbsd darwin
|
||||||
UNIXs = linux $(BSDs) solaris qnx haiku aix
|
UNIXs = linux $(BSDs) solaris qnx haiku
|
||||||
LIMIT83fs = go32v2 os2 emx watcom
|
LIMIT83fs = go32v2 os2 emx watcom
|
||||||
OSNeedsComspecToRunBatch = go32v2 watcom
|
OSNeedsComspecToRunBatch = go32v2 watcom
|
||||||
FORCE:
|
FORCE:
|
||||||
@ -153,6 +153,12 @@ ifdef OS_TARGET_DEFAULT
|
|||||||
OS_TARGET=$(OS_TARGET_DEFAULT)
|
OS_TARGET=$(OS_TARGET_DEFAULT)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(words $(FPC_COMPILERINFO)),5)
|
||||||
|
FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
|
||||||
|
FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
|
||||||
|
FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
|
||||||
|
FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
|
||||||
|
endif
|
||||||
ifndef CPU_SOURCE
|
ifndef CPU_SOURCE
|
||||||
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
|
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
|
||||||
endif
|
endif
|
||||||
@ -178,21 +184,11 @@ else
|
|||||||
ARCH=$(CPU_TARGET)
|
ARCH=$(CPU_TARGET)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-embedded)
|
|
||||||
ifeq ($(SUBARCH),)
|
|
||||||
$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
|
|
||||||
endif
|
|
||||||
override FPCOPT+=-Cp$(SUBARCH)
|
|
||||||
endif
|
|
||||||
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
|
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
|
||||||
TARGETSUFFIX=$(OS_TARGET)
|
TARGETSUFFIX=$(OS_TARGET)
|
||||||
SOURCESUFFIX=$(OS_SOURCE)
|
SOURCESUFFIX=$(OS_SOURCE)
|
||||||
else
|
else
|
||||||
ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),)
|
|
||||||
TARGETSUFFIX=$(OS_TARGET)
|
|
||||||
else
|
|
||||||
TARGETSUFFIX=$(FULL_TARGET)
|
TARGETSUFFIX=$(FULL_TARGET)
|
||||||
endif
|
|
||||||
SOURCESUFFIX=$(FULL_SOURCE)
|
SOURCESUFFIX=$(FULL_SOURCE)
|
||||||
endif
|
endif
|
||||||
ifneq ($(FULL_TARGET),$(FULL_SOURCE))
|
ifneq ($(FULL_TARGET),$(FULL_SOURCE))
|
||||||
@ -268,235 +264,193 @@ ifeq ($(UNITSDIR),)
|
|||||||
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
|
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
|
||||||
endif
|
endif
|
||||||
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
|
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
|
||||||
ifndef FPCFPMAKE
|
|
||||||
ifdef CROSSCOMPILE
|
|
||||||
ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
|
|
||||||
FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
|
|
||||||
ifneq ($(FPCPROG),)
|
|
||||||
FPCPROG:=$(firstword $(FPCPROG))
|
|
||||||
FPCFPMAKE:=$(shell $(FPCPROG) -PB)
|
|
||||||
ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
|
|
||||||
FPCFPMAKE:=$(firstword $(FPCPROG))
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
|
|
||||||
FPMAKE_SKIP_CONFIG=-n
|
|
||||||
export FPCFPMAKE
|
|
||||||
export FPMAKE_SKIP_CONFIG
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
FPMAKE_SKIP_CONFIG=-n
|
|
||||||
FPCFPMAKE=$(FPC)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
override PACKAGE_NAME=fcl-db
|
override PACKAGE_NAME=fcl-db
|
||||||
PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
|
PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-win32)
|
ifeq ($(FULL_TARGET),i386-win32)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-os2)
|
ifeq ($(FULL_TARGET),i386-os2)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-beos)
|
ifeq ($(FULL_TARGET),i386-beos)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-haiku)
|
ifeq ($(FULL_TARGET),i386-haiku)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-solaris)
|
ifeq ($(FULL_TARGET),i386-solaris)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-qnx)
|
ifeq ($(FULL_TARGET),i386-qnx)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netware)
|
ifeq ($(FULL_TARGET),i386-netware)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-darwin)
|
ifeq ($(FULL_TARGET),i386-darwin)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-emx)
|
ifeq ($(FULL_TARGET),i386-emx)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-watcom)
|
ifeq ($(FULL_TARGET),i386-watcom)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
ifeq ($(FULL_TARGET),i386-wince)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-embedded)
|
ifeq ($(FULL_TARGET),i386-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-symbian)
|
ifeq ($(FULL_TARGET),i386-symbian)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-nativent)
|
ifeq ($(FULL_TARGET),i386-nativent)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-iphonesim)
|
ifeq ($(FULL_TARGET),i386-iphonesim)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-linux)
|
ifeq ($(FULL_TARGET),m68k-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-atari)
|
ifeq ($(FULL_TARGET),m68k-atari)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),powerpc-wii)
|
|
||||||
override TARGET_UNITS+=pqconnection
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),powerpc-aix)
|
|
||||||
override TARGET_UNITS+=pqconnection
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-netbsd)
|
|
||||||
override TARGET_UNITS+=pqconnection
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-solaris)
|
ifeq ($(FULL_TARGET),x86_64-solaris)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-openbsd)
|
|
||||||
override TARGET_UNITS+=pqconnection
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-linux)
|
ifeq ($(FULL_TARGET),arm-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-palmos)
|
ifeq ($(FULL_TARGET),arm-palmos)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-darwin)
|
ifeq ($(FULL_TARGET),arm-darwin)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
ifeq ($(FULL_TARGET),arm-wince)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-gba)
|
ifeq ($(FULL_TARGET),arm-gba)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-nds)
|
ifeq ($(FULL_TARGET),arm-nds)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-embedded)
|
ifeq ($(FULL_TARGET),arm-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-symbian)
|
ifeq ($(FULL_TARGET),arm-symbian)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),powerpc64-aix)
|
|
||||||
override TARGET_UNITS+=pqconnection
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),avr-embedded)
|
ifeq ($(FULL_TARGET),avr-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),armeb-linux)
|
ifeq ($(FULL_TARGET),armeb-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),mips-linux)
|
|
||||||
override TARGET_UNITS+=pqconnection
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),mipsel-linux)
|
ifeq ($(FULL_TARGET),mipsel-linux)
|
||||||
override TARGET_UNITS+=pqconnection
|
override TARGET_UNITS+=pqconnection pqeventmonitor
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
@ -609,12 +563,6 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-wii)
|
|
||||||
override TARGET_RSTS+=pqconnection
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),powerpc-aix)
|
|
||||||
override TARGET_RSTS+=pqconnection
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
@ -633,15 +581,9 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-netbsd)
|
|
||||||
override TARGET_RSTS+=pqconnection
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-solaris)
|
ifeq ($(FULL_TARGET),x86_64-solaris)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-openbsd)
|
|
||||||
override TARGET_RSTS+=pqconnection
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
@ -684,9 +626,6 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-aix)
|
|
||||||
override TARGET_RSTS+=pqconnection
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),avr-embedded)
|
ifeq ($(FULL_TARGET),avr-embedded)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
@ -696,9 +635,6 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),mips-linux)
|
|
||||||
override TARGET_RSTS+=pqconnection
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),mipsel-linux)
|
ifeq ($(FULL_TARGET),mipsel-linux)
|
||||||
override TARGET_RSTS+=pqconnection
|
override TARGET_RSTS+=pqconnection
|
||||||
endif
|
endif
|
||||||
@ -814,12 +750,6 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-wii)
|
|
||||||
override COMPILER_OPTIONS+=-S2
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),powerpc-aix)
|
|
||||||
override COMPILER_OPTIONS+=-S2
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
@ -838,15 +768,9 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-netbsd)
|
|
||||||
override COMPILER_OPTIONS+=-S2
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-solaris)
|
ifeq ($(FULL_TARGET),x86_64-solaris)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-openbsd)
|
|
||||||
override COMPILER_OPTIONS+=-S2
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
@ -889,9 +813,6 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-aix)
|
|
||||||
override COMPILER_OPTIONS+=-S2
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),avr-embedded)
|
ifeq ($(FULL_TARGET),avr-embedded)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
@ -901,9 +822,6 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),mips-linux)
|
|
||||||
override COMPILER_OPTIONS+=-S2
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),mipsel-linux)
|
ifeq ($(FULL_TARGET),mipsel-linux)
|
||||||
override COMPILER_OPTIONS+=-S2
|
override COMPILER_OPTIONS+=-S2
|
||||||
endif
|
endif
|
||||||
@ -1117,7 +1035,7 @@ SHAREDLIBPREFIX=libfp
|
|||||||
STATICLIBPREFIX=libp
|
STATICLIBPREFIX=libp
|
||||||
IMPORTLIBPREFIX=libimp
|
IMPORTLIBPREFIX=libimp
|
||||||
RSTEXT=.rst
|
RSTEXT=.rst
|
||||||
EXEDBGEXT=.dbg
|
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
|
||||||
ifeq ($(OS_TARGET),go32v1)
|
ifeq ($(OS_TARGET),go32v1)
|
||||||
STATICLIBPREFIX=
|
STATICLIBPREFIX=
|
||||||
SHORTSUFFIX=v1
|
SHORTSUFFIX=v1
|
||||||
@ -1239,7 +1157,6 @@ BATCHEXT=.sh
|
|||||||
EXEEXT=
|
EXEEXT=
|
||||||
HASSHAREDLIB=1
|
HASSHAREDLIB=1
|
||||||
SHORTSUFFIX=dwn
|
SHORTSUFFIX=dwn
|
||||||
EXEDBGEXT=.dSYM
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(OS_TARGET),gba)
|
ifeq ($(OS_TARGET),gba)
|
||||||
EXEEXT=.gba
|
EXEEXT=.gba
|
||||||
@ -1254,15 +1171,160 @@ ifeq ($(OS_TARGET),NativeNT)
|
|||||||
SHAREDLIBEXT=.dll
|
SHAREDLIBEXT=.dll
|
||||||
SHORTSUFFIX=nativent
|
SHORTSUFFIX=nativent
|
||||||
endif
|
endif
|
||||||
ifeq ($(OS_TARGET),wii)
|
else
|
||||||
EXEEXT=.dol
|
ifeq ($(OS_TARGET),go32v1)
|
||||||
SHAREDLIBEXT=.so
|
PPUEXT=.pp1
|
||||||
SHORTSUFFIX=wii
|
OEXT=.o1
|
||||||
|
ASMEXT=.s1
|
||||||
|
SMARTEXT=.sl1
|
||||||
|
STATICLIBEXT=.a1
|
||||||
|
SHAREDLIBEXT=.so1
|
||||||
|
STATICLIBPREFIX=
|
||||||
|
SHORTSUFFIX=v1
|
||||||
|
IMPORTLIBPREFIX=
|
||||||
endif
|
endif
|
||||||
ifeq ($(OS_TARGET),aix)
|
ifeq ($(OS_TARGET),go32v2)
|
||||||
|
STATICLIBPREFIX=
|
||||||
|
SHORTSUFFIX=dos
|
||||||
|
IMPORTLIBPREFIX=
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),watcom)
|
||||||
|
STATICLIBPREFIX=
|
||||||
|
SHORTSUFFIX=wat
|
||||||
|
IMPORTLIBPREFIX=
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),linux)
|
||||||
BATCHEXT=.sh
|
BATCHEXT=.sh
|
||||||
EXEEXT=
|
EXEEXT=
|
||||||
SHORTSUFFIX=aix
|
HASSHAREDLIB=1
|
||||||
|
SHORTSUFFIX=lnx
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),freebsd)
|
||||||
|
BATCHEXT=.sh
|
||||||
|
EXEEXT=
|
||||||
|
HASSHAREDLIB=1
|
||||||
|
SHORTSUFFIX=fbs
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),netbsd)
|
||||||
|
BATCHEXT=.sh
|
||||||
|
EXEEXT=
|
||||||
|
HASSHAREDLIB=1
|
||||||
|
SHORTSUFFIX=nbs
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),openbsd)
|
||||||
|
BATCHEXT=.sh
|
||||||
|
EXEEXT=
|
||||||
|
HASSHAREDLIB=1
|
||||||
|
SHORTSUFFIX=obs
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),win32)
|
||||||
|
PPUEXT=.ppw
|
||||||
|
OEXT=.ow
|
||||||
|
ASMEXT=.sw
|
||||||
|
SMARTEXT=.slw
|
||||||
|
STATICLIBEXT=.aw
|
||||||
|
SHAREDLIBEXT=.dll
|
||||||
|
SHORTSUFFIX=w32
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),os2)
|
||||||
|
BATCHEXT=.cmd
|
||||||
|
PPUEXT=.ppo
|
||||||
|
ASMEXT=.so2
|
||||||
|
OEXT=.oo2
|
||||||
|
AOUTEXT=.out
|
||||||
|
SMARTEXT=.sl2
|
||||||
|
STATICLIBPREFIX=
|
||||||
|
STATICLIBEXT=.ao2
|
||||||
|
SHAREDLIBEXT=.dll
|
||||||
|
SHORTSUFFIX=os2
|
||||||
|
ECHO=echo
|
||||||
|
IMPORTLIBPREFIX=
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),amiga)
|
||||||
|
EXEEXT=
|
||||||
|
PPUEXT=.ppu
|
||||||
|
ASMEXT=.s
|
||||||
|
OEXT=.o
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
SHAREDLIBEXT=.library
|
||||||
|
SHORTSUFFIX=amg
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),atari)
|
||||||
|
PPUEXT=.ppu
|
||||||
|
ASMEXT=.s
|
||||||
|
OEXT=.o
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
EXEEXT=.ttp
|
||||||
|
SHORTSUFFIX=ata
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),beos)
|
||||||
|
BATCHEXT=.sh
|
||||||
|
PPUEXT=.ppu
|
||||||
|
ASMEXT=.s
|
||||||
|
OEXT=.o
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
EXEEXT=
|
||||||
|
SHORTSUFFIX=be
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),solaris)
|
||||||
|
BATCHEXT=.sh
|
||||||
|
PPUEXT=.ppu
|
||||||
|
ASMEXT=.s
|
||||||
|
OEXT=.o
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
EXEEXT=
|
||||||
|
SHORTSUFFIX=sun
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),qnx)
|
||||||
|
BATCHEXT=.sh
|
||||||
|
PPUEXT=.ppu
|
||||||
|
ASMEXT=.s
|
||||||
|
OEXT=.o
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
EXEEXT=
|
||||||
|
SHORTSUFFIX=qnx
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),netware)
|
||||||
|
STATICLIBPREFIX=
|
||||||
|
PPUEXT=.ppu
|
||||||
|
OEXT=.o
|
||||||
|
ASMEXT=.s
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
SHAREDLIBEXT=.nlm
|
||||||
|
EXEEXT=.nlm
|
||||||
|
SHORTSUFFIX=nw
|
||||||
|
IMPORTLIBPREFIX=imp
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),netwlibc)
|
||||||
|
STATICLIBPREFIX=
|
||||||
|
PPUEXT=.ppu
|
||||||
|
OEXT=.o
|
||||||
|
ASMEXT=.s
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
SHAREDLIBEXT=.nlm
|
||||||
|
EXEEXT=.nlm
|
||||||
|
SHORTSUFFIX=nwl
|
||||||
|
IMPORTLIBPREFIX=imp
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),macos)
|
||||||
|
BATCHEXT=
|
||||||
|
PPUEXT=.ppu
|
||||||
|
ASMEXT=.s
|
||||||
|
OEXT=.o
|
||||||
|
SMARTEXT=.sl
|
||||||
|
STATICLIBEXT=.a
|
||||||
|
EXEEXT=
|
||||||
|
DEBUGSYMEXT=.xcoff
|
||||||
|
SHORTSUFFIX=mac
|
||||||
|
IMPORTLIBPREFIX=imp
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
|
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
|
||||||
FPCMADE=fpcmade.$(SHORTSUFFIX)
|
FPCMADE=fpcmade.$(SHORTSUFFIX)
|
||||||
@ -1453,6 +1515,15 @@ ASNAME=$(BINUTILSPREFIX)as
|
|||||||
LDNAME=$(BINUTILSPREFIX)ld
|
LDNAME=$(BINUTILSPREFIX)ld
|
||||||
ARNAME=$(BINUTILSPREFIX)ar
|
ARNAME=$(BINUTILSPREFIX)ar
|
||||||
RCNAME=$(BINUTILSPREFIX)rc
|
RCNAME=$(BINUTILSPREFIX)rc
|
||||||
|
ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
|
||||||
|
ifeq ($(OS_TARGET),win32)
|
||||||
|
ifeq ($(CROSSBINDIR),)
|
||||||
|
ASNAME=asw
|
||||||
|
LDNAME=ldw
|
||||||
|
ARNAME=arw
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
ifndef ASPROG
|
ifndef ASPROG
|
||||||
ifdef CROSSBINDIR
|
ifdef CROSSBINDIR
|
||||||
ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
|
ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
|
||||||
@ -1496,6 +1567,25 @@ DATESTR:=$(shell $(DATE) +%Y%m%d)
|
|||||||
else
|
else
|
||||||
DATESTR=
|
DATESTR=
|
||||||
endif
|
endif
|
||||||
|
ifndef UPXPROG
|
||||||
|
ifeq ($(OS_TARGET),go32v2)
|
||||||
|
UPXPROG:=1
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_TARGET),win32)
|
||||||
|
UPXPROG:=1
|
||||||
|
endif
|
||||||
|
ifdef UPXPROG
|
||||||
|
UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
|
||||||
|
ifeq ($(UPXPROG),)
|
||||||
|
UPXPROG=
|
||||||
|
else
|
||||||
|
UPXPROG:=$(firstword $(UPXPROG))
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
UPXPROG=
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
export UPXPROG
|
||||||
ZIPOPT=-9
|
ZIPOPT=-9
|
||||||
ZIPEXT=.zip
|
ZIPEXT=.zip
|
||||||
ifeq ($(USETAR),bz2)
|
ifeq ($(USETAR),bz2)
|
||||||
@ -1839,24 +1929,6 @@ REQUIRE_PACKAGES_FPMKUNIT=1
|
|||||||
REQUIRE_PACKAGES_FCL-XML=1
|
REQUIRE_PACKAGES_FCL-XML=1
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
REQUIRE_PACKAGES_POSTGRES=1
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc-wii)
|
|
||||||
REQUIRE_PACKAGES_RTL=1
|
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
|
||||||
REQUIRE_PACKAGES_FCL-PROCESS=1
|
|
||||||
REQUIRE_PACKAGES_HASH=1
|
|
||||||
REQUIRE_PACKAGES_FPMKUNIT=1
|
|
||||||
REQUIRE_PACKAGES_FCL-XML=1
|
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),powerpc-aix)
|
|
||||||
REQUIRE_PACKAGES_RTL=1
|
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
|
||||||
REQUIRE_PACKAGES_FCL-PROCESS=1
|
|
||||||
REQUIRE_PACKAGES_HASH=1
|
|
||||||
REQUIRE_PACKAGES_FPMKUNIT=1
|
|
||||||
REQUIRE_PACKAGES_FCL-XML=1
|
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),sparc-linux)
|
ifeq ($(FULL_TARGET),sparc-linux)
|
||||||
REQUIRE_PACKAGES_RTL=1
|
REQUIRE_PACKAGES_RTL=1
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
REQUIRE_PACKAGES_PASZLIB=1
|
||||||
@ -1911,15 +1983,6 @@ REQUIRE_PACKAGES_FPMKUNIT=1
|
|||||||
REQUIRE_PACKAGES_FCL-XML=1
|
REQUIRE_PACKAGES_FCL-XML=1
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
REQUIRE_PACKAGES_POSTGRES=1
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-netbsd)
|
|
||||||
REQUIRE_PACKAGES_RTL=1
|
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
|
||||||
REQUIRE_PACKAGES_FCL-PROCESS=1
|
|
||||||
REQUIRE_PACKAGES_HASH=1
|
|
||||||
REQUIRE_PACKAGES_FPMKUNIT=1
|
|
||||||
REQUIRE_PACKAGES_FCL-XML=1
|
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-solaris)
|
ifeq ($(FULL_TARGET),x86_64-solaris)
|
||||||
REQUIRE_PACKAGES_RTL=1
|
REQUIRE_PACKAGES_RTL=1
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
REQUIRE_PACKAGES_PASZLIB=1
|
||||||
@ -1929,15 +1992,6 @@ REQUIRE_PACKAGES_FPMKUNIT=1
|
|||||||
REQUIRE_PACKAGES_FCL-XML=1
|
REQUIRE_PACKAGES_FCL-XML=1
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
REQUIRE_PACKAGES_POSTGRES=1
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),x86_64-openbsd)
|
|
||||||
REQUIRE_PACKAGES_RTL=1
|
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
|
||||||
REQUIRE_PACKAGES_FCL-PROCESS=1
|
|
||||||
REQUIRE_PACKAGES_HASH=1
|
|
||||||
REQUIRE_PACKAGES_FPMKUNIT=1
|
|
||||||
REQUIRE_PACKAGES_FCL-XML=1
|
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||||
REQUIRE_PACKAGES_RTL=1
|
REQUIRE_PACKAGES_RTL=1
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
REQUIRE_PACKAGES_PASZLIB=1
|
||||||
@ -2064,15 +2118,6 @@ REQUIRE_PACKAGES_FPMKUNIT=1
|
|||||||
REQUIRE_PACKAGES_FCL-XML=1
|
REQUIRE_PACKAGES_FCL-XML=1
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
REQUIRE_PACKAGES_POSTGRES=1
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),powerpc64-aix)
|
|
||||||
REQUIRE_PACKAGES_RTL=1
|
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
|
||||||
REQUIRE_PACKAGES_FCL-PROCESS=1
|
|
||||||
REQUIRE_PACKAGES_HASH=1
|
|
||||||
REQUIRE_PACKAGES_FPMKUNIT=1
|
|
||||||
REQUIRE_PACKAGES_FCL-XML=1
|
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),avr-embedded)
|
ifeq ($(FULL_TARGET),avr-embedded)
|
||||||
REQUIRE_PACKAGES_RTL=1
|
REQUIRE_PACKAGES_RTL=1
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
REQUIRE_PACKAGES_PASZLIB=1
|
||||||
@ -2100,15 +2145,6 @@ REQUIRE_PACKAGES_FPMKUNIT=1
|
|||||||
REQUIRE_PACKAGES_FCL-XML=1
|
REQUIRE_PACKAGES_FCL-XML=1
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
REQUIRE_PACKAGES_POSTGRES=1
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),mips-linux)
|
|
||||||
REQUIRE_PACKAGES_RTL=1
|
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
|
||||||
REQUIRE_PACKAGES_FCL-PROCESS=1
|
|
||||||
REQUIRE_PACKAGES_HASH=1
|
|
||||||
REQUIRE_PACKAGES_FPMKUNIT=1
|
|
||||||
REQUIRE_PACKAGES_FCL-XML=1
|
|
||||||
REQUIRE_PACKAGES_POSTGRES=1
|
|
||||||
endif
|
|
||||||
ifeq ($(FULL_TARGET),mipsel-linux)
|
ifeq ($(FULL_TARGET),mipsel-linux)
|
||||||
REQUIRE_PACKAGES_RTL=1
|
REQUIRE_PACKAGES_RTL=1
|
||||||
REQUIRE_PACKAGES_PASZLIB=1
|
REQUIRE_PACKAGES_PASZLIB=1
|
||||||
@ -2126,15 +2162,6 @@ UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
|
|||||||
else
|
else
|
||||||
UNITDIR_RTL=$(PACKAGEDIR_RTL)
|
UNITDIR_RTL=$(PACKAGEDIR_RTL)
|
||||||
endif
|
endif
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef CHECKDEPEND
|
ifdef CHECKDEPEND
|
||||||
$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
|
$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
|
||||||
$(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
|
$(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
|
||||||
@ -2152,9 +2179,6 @@ endif
|
|||||||
ifdef UNITDIR_RTL
|
ifdef UNITDIR_RTL
|
||||||
override COMPILER_UNITDIR+=$(UNITDIR_RTL)
|
override COMPILER_UNITDIR+=$(UNITDIR_RTL)
|
||||||
endif
|
endif
|
||||||
ifdef UNITDIR_FPMAKE_RTL
|
|
||||||
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef REQUIRE_PACKAGES_PASZLIB
|
ifdef REQUIRE_PACKAGES_PASZLIB
|
||||||
PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
|
PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
|
||||||
@ -2164,15 +2188,6 @@ UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)
|
|||||||
else
|
else
|
||||||
UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
|
UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
|
||||||
endif
|
endif
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units_bs/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)/units_bs/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef CHECKDEPEND
|
ifdef CHECKDEPEND
|
||||||
$(PACKAGEDIR_PASZLIB)/$(FPCMADE):
|
$(PACKAGEDIR_PASZLIB)/$(FPCMADE):
|
||||||
$(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE)
|
$(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE)
|
||||||
@ -2190,9 +2205,6 @@ endif
|
|||||||
ifdef UNITDIR_PASZLIB
|
ifdef UNITDIR_PASZLIB
|
||||||
override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
|
override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
|
||||||
endif
|
endif
|
||||||
ifdef UNITDIR_FPMAKE_PASZLIB
|
|
||||||
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_PASZLIB)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef REQUIRE_PACKAGES_FCL-PROCESS
|
ifdef REQUIRE_PACKAGES_FCL-PROCESS
|
||||||
PACKAGEDIR_FCL-PROCESS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Makefile.fpc,$(PACKAGESDIR))))))
|
PACKAGEDIR_FCL-PROCESS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Makefile.fpc,$(PACKAGESDIR))))))
|
||||||
@ -2202,15 +2214,6 @@ UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)
|
|||||||
else
|
else
|
||||||
UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
|
UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
|
||||||
endif
|
endif
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units_bs/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units_bs/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef CHECKDEPEND
|
ifdef CHECKDEPEND
|
||||||
$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE):
|
$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE):
|
||||||
$(MAKE) -C $(PACKAGEDIR_FCL-PROCESS) $(FPCMADE)
|
$(MAKE) -C $(PACKAGEDIR_FCL-PROCESS) $(FPCMADE)
|
||||||
@ -2228,9 +2231,6 @@ endif
|
|||||||
ifdef UNITDIR_FCL-PROCESS
|
ifdef UNITDIR_FCL-PROCESS
|
||||||
override COMPILER_UNITDIR+=$(UNITDIR_FCL-PROCESS)
|
override COMPILER_UNITDIR+=$(UNITDIR_FCL-PROCESS)
|
||||||
endif
|
endif
|
||||||
ifdef UNITDIR_FPMAKE_FCL-PROCESS
|
|
||||||
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-PROCESS)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef REQUIRE_PACKAGES_HASH
|
ifdef REQUIRE_PACKAGES_HASH
|
||||||
PACKAGEDIR_HASH:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /hash/Makefile.fpc,$(PACKAGESDIR))))))
|
PACKAGEDIR_HASH:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /hash/Makefile.fpc,$(PACKAGESDIR))))))
|
||||||
@ -2240,15 +2240,6 @@ UNITDIR_HASH=$(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)
|
|||||||
else
|
else
|
||||||
UNITDIR_HASH=$(PACKAGEDIR_HASH)
|
UNITDIR_HASH=$(PACKAGEDIR_HASH)
|
||||||
endif
|
endif
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)/units/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_HASH)/units_bs/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)/units_bs/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef CHECKDEPEND
|
ifdef CHECKDEPEND
|
||||||
$(PACKAGEDIR_HASH)/$(FPCMADE):
|
$(PACKAGEDIR_HASH)/$(FPCMADE):
|
||||||
$(MAKE) -C $(PACKAGEDIR_HASH) $(FPCMADE)
|
$(MAKE) -C $(PACKAGEDIR_HASH) $(FPCMADE)
|
||||||
@ -2266,9 +2257,6 @@ endif
|
|||||||
ifdef UNITDIR_HASH
|
ifdef UNITDIR_HASH
|
||||||
override COMPILER_UNITDIR+=$(UNITDIR_HASH)
|
override COMPILER_UNITDIR+=$(UNITDIR_HASH)
|
||||||
endif
|
endif
|
||||||
ifdef UNITDIR_FPMAKE_HASH
|
|
||||||
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_HASH)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef REQUIRE_PACKAGES_FPMKUNIT
|
ifdef REQUIRE_PACKAGES_FPMKUNIT
|
||||||
PACKAGEDIR_FPMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fpmkunit/Makefile.fpc,$(PACKAGESDIR))))))
|
PACKAGEDIR_FPMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fpmkunit/Makefile.fpc,$(PACKAGESDIR))))))
|
||||||
@ -2278,15 +2266,6 @@ UNITDIR_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units/$(TARGETSUFFIX)
|
|||||||
else
|
else
|
||||||
UNITDIR_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)
|
UNITDIR_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)
|
||||||
endif
|
endif
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef CHECKDEPEND
|
ifdef CHECKDEPEND
|
||||||
$(PACKAGEDIR_FPMKUNIT)/$(FPCMADE):
|
$(PACKAGEDIR_FPMKUNIT)/$(FPCMADE):
|
||||||
$(MAKE) -C $(PACKAGEDIR_FPMKUNIT) $(FPCMADE)
|
$(MAKE) -C $(PACKAGEDIR_FPMKUNIT) $(FPCMADE)
|
||||||
@ -2304,9 +2283,6 @@ endif
|
|||||||
ifdef UNITDIR_FPMKUNIT
|
ifdef UNITDIR_FPMKUNIT
|
||||||
override COMPILER_UNITDIR+=$(UNITDIR_FPMKUNIT)
|
override COMPILER_UNITDIR+=$(UNITDIR_FPMKUNIT)
|
||||||
endif
|
endif
|
||||||
ifdef UNITDIR_FPMAKE_FPMKUNIT
|
|
||||||
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FPMKUNIT)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef REQUIRE_PACKAGES_FCL-XML
|
ifdef REQUIRE_PACKAGES_FCL-XML
|
||||||
PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR))))))
|
PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR))))))
|
||||||
@ -2316,15 +2292,6 @@ UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)
|
|||||||
else
|
else
|
||||||
UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)
|
UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)
|
||||||
endif
|
endif
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units_bs/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)/units_bs/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef CHECKDEPEND
|
ifdef CHECKDEPEND
|
||||||
$(PACKAGEDIR_FCL-XML)/$(FPCMADE):
|
$(PACKAGEDIR_FCL-XML)/$(FPCMADE):
|
||||||
$(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE)
|
$(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE)
|
||||||
@ -2342,9 +2309,6 @@ endif
|
|||||||
ifdef UNITDIR_FCL-XML
|
ifdef UNITDIR_FCL-XML
|
||||||
override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML)
|
override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML)
|
||||||
endif
|
endif
|
||||||
ifdef UNITDIR_FPMAKE_FCL-XML
|
|
||||||
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifdef REQUIRE_PACKAGES_POSTGRES
|
ifdef REQUIRE_PACKAGES_POSTGRES
|
||||||
PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
|
PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
|
||||||
@ -2354,15 +2318,6 @@ UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(TARGETSUFFIX)
|
|||||||
else
|
else
|
||||||
UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
|
UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
|
||||||
endif
|
endif
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units_bs/$(SOURCESUFFIX)),)
|
|
||||||
UNITDIR_FPMAKE_POSTGRES=$(PACKAGEDIR_POSTGRES)/units_bs/$(SOURCESUFFIX)
|
|
||||||
else
|
|
||||||
UNITDIR_FPMAKE_POSTGRES=$(PACKAGEDIR_POSTGRES)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef CHECKDEPEND
|
ifdef CHECKDEPEND
|
||||||
$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
|
$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
|
||||||
$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
|
$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
|
||||||
@ -2380,9 +2335,6 @@ endif
|
|||||||
ifdef UNITDIR_POSTGRES
|
ifdef UNITDIR_POSTGRES
|
||||||
override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
|
override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
|
||||||
endif
|
endif
|
||||||
ifdef UNITDIR_FPMAKE_POSTGRES
|
|
||||||
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_POSTGRES)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifndef NOCPUDEF
|
ifndef NOCPUDEF
|
||||||
override FPCOPTDEF=$(ARCH)
|
override FPCOPTDEF=$(ARCH)
|
||||||
@ -2395,7 +2347,6 @@ override FPCOPT+=-P$(ARCH)
|
|||||||
endif
|
endif
|
||||||
ifeq ($(OS_SOURCE),openbsd)
|
ifeq ($(OS_SOURCE),openbsd)
|
||||||
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
|
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
|
||||||
override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
|
|
||||||
endif
|
endif
|
||||||
ifndef CROSSBOOTSTRAP
|
ifndef CROSSBOOTSTRAP
|
||||||
ifneq ($(BINUTILSPREFIX),)
|
ifneq ($(BINUTILSPREFIX),)
|
||||||
@ -2405,11 +2356,6 @@ ifneq ($(BINUTILSPREFIX),)
|
|||||||
override FPCOPT+=-Xr$(RLINKPATH)
|
override FPCOPT+=-Xr$(RLINKPATH)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifndef CROSSCOMPILE
|
|
||||||
ifneq ($(BINUTILSPREFIX),)
|
|
||||||
override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef UNITDIR
|
ifdef UNITDIR
|
||||||
override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
|
override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
|
||||||
endif
|
endif
|
||||||
@ -2501,7 +2447,7 @@ override FPCOPT+=-Aas
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
|
ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
|
||||||
ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
|
ifeq ($(OS_TARGET),linux)
|
||||||
ifeq ($(CPU_TARGET),x86_64)
|
ifeq ($(CPU_TARGET),x86_64)
|
||||||
override FPCOPT+=-Cg
|
override FPCOPT+=-Cg
|
||||||
endif
|
endif
|
||||||
@ -2653,6 +2599,9 @@ endif
|
|||||||
fpc_install: all $(INSTALLTARGET)
|
fpc_install: all $(INSTALLTARGET)
|
||||||
ifdef INSTALLEXEFILES
|
ifdef INSTALLEXEFILES
|
||||||
$(MKDIR) $(INSTALL_BINDIR)
|
$(MKDIR) $(INSTALL_BINDIR)
|
||||||
|
ifdef UPXPROG
|
||||||
|
-$(UPXPROG) $(INSTALLEXEFILES)
|
||||||
|
endif
|
||||||
$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
|
$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
|
||||||
endif
|
endif
|
||||||
ifdef INSTALL_CREATEPACKAGEFPC
|
ifdef INSTALL_CREATEPACKAGEFPC
|
||||||
@ -2700,11 +2649,9 @@ endif
|
|||||||
.PHONY: fpc_clean fpc_cleanall fpc_distclean
|
.PHONY: fpc_clean fpc_cleanall fpc_distclean
|
||||||
ifdef EXEFILES
|
ifdef EXEFILES
|
||||||
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
|
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
|
||||||
override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
|
|
||||||
endif
|
endif
|
||||||
ifdef CLEAN_PROGRAMS
|
ifdef CLEAN_PROGRAMS
|
||||||
override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
|
override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
|
||||||
override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
|
|
||||||
endif
|
endif
|
||||||
ifdef CLEAN_UNITS
|
ifdef CLEAN_UNITS
|
||||||
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
|
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
|
||||||
@ -2721,9 +2668,6 @@ fpc_clean: $(CLEANTARGET)
|
|||||||
ifdef CLEANEXEFILES
|
ifdef CLEANEXEFILES
|
||||||
-$(DEL) $(CLEANEXEFILES)
|
-$(DEL) $(CLEANEXEFILES)
|
||||||
endif
|
endif
|
||||||
ifdef CLEANEXEDBGFILES
|
|
||||||
-$(DELTREE) $(CLEANEXEDBGFILES)
|
|
||||||
endif
|
|
||||||
ifdef CLEANPPUFILES
|
ifdef CLEANPPUFILES
|
||||||
-$(DEL) $(CLEANPPUFILES)
|
-$(DEL) $(CLEANPPUFILES)
|
||||||
endif
|
endif
|
||||||
@ -2794,7 +2738,6 @@ fpc_baseinfo:
|
|||||||
@$(ECHO) Full Target.. $(FULL_TARGET)
|
@$(ECHO) Full Target.. $(FULL_TARGET)
|
||||||
@$(ECHO) SourceSuffix. $(SOURCESUFFIX)
|
@$(ECHO) SourceSuffix. $(SOURCESUFFIX)
|
||||||
@$(ECHO) TargetSuffix. $(TARGETSUFFIX)
|
@$(ECHO) TargetSuffix. $(TARGETSUFFIX)
|
||||||
@$(ECHO) FPC fpmake... $(FPCFPMAKE)
|
|
||||||
@$(ECHO)
|
@$(ECHO)
|
||||||
@$(ECHO) == Directory info ==
|
@$(ECHO) == Directory info ==
|
||||||
@$(ECHO)
|
@$(ECHO)
|
||||||
@ -2825,6 +2768,7 @@ fpc_baseinfo:
|
|||||||
@$(ECHO) Date...... $(DATE)
|
@$(ECHO) Date...... $(DATE)
|
||||||
@$(ECHO) FPCMake... $(FPCMAKE)
|
@$(ECHO) FPCMake... $(FPCMAKE)
|
||||||
@$(ECHO) PPUMove... $(PPUMOVE)
|
@$(ECHO) PPUMove... $(PPUMOVE)
|
||||||
|
@$(ECHO) Upx....... $(UPXPROG)
|
||||||
@$(ECHO) Zip....... $(ZIPPROG)
|
@$(ECHO) Zip....... $(ZIPPROG)
|
||||||
@$(ECHO)
|
@$(ECHO)
|
||||||
@$(ECHO) == Object info ==
|
@$(ECHO) == Object info ==
|
||||||
|
@ -7,7 +7,7 @@ main=fcl-db
|
|||||||
|
|
||||||
[target]
|
[target]
|
||||||
rsts=pqconnection
|
rsts=pqconnection
|
||||||
units=pqconnection
|
units=pqconnection pqeventmonitor
|
||||||
|
|
||||||
[require]
|
[require]
|
||||||
packages=fcl-xml postgres
|
packages=fcl-xml postgres
|
||||||
|
@ -9,3 +9,5 @@ Targets.DefaultDir:='db/sqldb/postgres';
|
|||||||
Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku];
|
Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku];
|
||||||
T:=Targets.AddUnit('pqconnection');
|
T:=Targets.AddUnit('pqconnection');
|
||||||
T.ResourceStrings:=True;
|
T.ResourceStrings:=True;
|
||||||
|
T:=Targets.AddUnit('pqeventmonitor');
|
||||||
|
T.Dependencies.Add('pqconnection');
|
||||||
|
251
packages/fcl-db/src/sqldb/postgres/pqeventmonitor.pp
Normal file
251
packages/fcl-db/src/sqldb/postgres/pqeventmonitor.pp
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
unit PQEventMonitor;
|
||||||
|
|
||||||
|
{ PostGresql notification monitor
|
||||||
|
|
||||||
|
Copyright (C) 2012 Ludo Brands
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU Library General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
option) any later version with the following modification:
|
||||||
|
|
||||||
|
As a special exception, the copyright holders of this library give you
|
||||||
|
permission to link this library with independent modules to produce an
|
||||||
|
executable, regardless of the license terms of these independent modules,and
|
||||||
|
to copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the terms
|
||||||
|
and conditions of the license of that module. An independent module is a
|
||||||
|
module which is not derived from or based on this library. If you modify
|
||||||
|
this library, you may extend this exception to your version of the library,
|
||||||
|
but you are not obligated to do so. If you do not wish to do so, delete this
|
||||||
|
exception statement from your version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public License
|
||||||
|
along with this library; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
}
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
{$Define LinkDynamically}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils,pqconnection,db,dbconst,
|
||||||
|
{$IfDef LinkDynamically}
|
||||||
|
postgres3dyn;
|
||||||
|
{$Else}
|
||||||
|
postgres3;
|
||||||
|
{$EndIf}
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
TEventAlert = procedure(Sender: TObject; EventName: string; EventCount: longint;
|
||||||
|
var CancelAlerts: boolean) of object;
|
||||||
|
TErrorEvent = procedure(Sender: TObject; ErrorCode: integer) of object;
|
||||||
|
|
||||||
|
{ TPQEventMonitor }
|
||||||
|
|
||||||
|
TPQEventMonitor=class (TComponent)
|
||||||
|
private
|
||||||
|
FConnection: TPQConnection;
|
||||||
|
FDBHandle: PPGconn;
|
||||||
|
FErrorMsg: string;
|
||||||
|
FEvents: TStrings;
|
||||||
|
FOnError: TErrorEvent;
|
||||||
|
FOnEventAlert: TEventAlert;
|
||||||
|
FRegistered: Boolean;
|
||||||
|
function GetNativeHandle: pointer;
|
||||||
|
procedure SetConnection(AValue: TPQConnection);
|
||||||
|
procedure SetEvents(AValue: TStrings);
|
||||||
|
procedure SetRegistered(AValue: Boolean);
|
||||||
|
public
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure Poll;
|
||||||
|
procedure RegisterEvents; virtual;
|
||||||
|
procedure UnRegisterEvents; virtual;
|
||||||
|
property ErrorMsg:string read FErrorMsg;
|
||||||
|
property NativeHandle: pointer read GetNativeHandle;
|
||||||
|
published
|
||||||
|
property Connection: TPQConnection read FConnection write SetConnection;
|
||||||
|
property Events: TStrings read FEvents write SetEvents;
|
||||||
|
property Registered: Boolean read FRegistered write SetRegistered;
|
||||||
|
property OnEventAlert: TEventAlert read FOnEventAlert write FOnEventAlert;
|
||||||
|
property OnError: TErrorEvent read FOnError write FOnError;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
ResourceString
|
||||||
|
SErrConnectionFailed = 'Connection to database failed';
|
||||||
|
SErrExecuteFailed = 'Execution of query failed';
|
||||||
|
|
||||||
|
{ TPQEventMonitor }
|
||||||
|
|
||||||
|
function TPQEventMonitor.GetNativeHandle: pointer;
|
||||||
|
begin
|
||||||
|
result:=FDBHandle;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TPQEventMonitor.SetConnection(AValue: TPQConnection);
|
||||||
|
begin
|
||||||
|
if FConnection=AValue then Exit;
|
||||||
|
If not (csDesigning in ComponentState) and FRegistered then
|
||||||
|
begin
|
||||||
|
if assigned(FConnection) then
|
||||||
|
FConnection.RemoveFreeNotification(self); // remove us from the old connection
|
||||||
|
UnRegisterEvents;
|
||||||
|
FConnection:=AValue;
|
||||||
|
if assigned(FConnection) then
|
||||||
|
begin
|
||||||
|
RegisterEvents;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
FConnection:=AValue;
|
||||||
|
if assigned(FConnection) then
|
||||||
|
FConnection.FreeNotification(Self); //in case Connection is destroyed before we are
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TPQEventMonitor.SetEvents(AValue: TStrings);
|
||||||
|
begin
|
||||||
|
FEvents.Assign(AValue);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TPQEventMonitor.SetRegistered(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
FRegistered := AValue;
|
||||||
|
if not (csDesigning in ComponentState) then
|
||||||
|
if AValue then
|
||||||
|
RegisterEvents
|
||||||
|
else
|
||||||
|
UnRegisterEvents;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TPQEventMonitor.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(AOwner);
|
||||||
|
FEvents:=TStringList.Create;
|
||||||
|
{$IfDef LinkDynamically}
|
||||||
|
InitialisePostgres3; // stick to library in case connection closes before us
|
||||||
|
{$EndIf}
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TPQEventMonitor.Destroy;
|
||||||
|
begin
|
||||||
|
if FRegistered then
|
||||||
|
UnRegisterEvents;
|
||||||
|
if assigned(FConnection) then
|
||||||
|
FConnection.RemoveFreeNotification(self);
|
||||||
|
FEvents.Free;
|
||||||
|
{$IfDef LinkDynamically}
|
||||||
|
ReleasePostgres3;
|
||||||
|
{$EndIf}
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TPQEventMonitor.Poll;
|
||||||
|
var
|
||||||
|
notify:PpgNotify;
|
||||||
|
CancelAlerts:boolean;
|
||||||
|
begin
|
||||||
|
if FConnection.Connected and FRegistered and (PQconsumeInput(FDBHandle)=1) then
|
||||||
|
begin
|
||||||
|
CancelAlerts:=false;
|
||||||
|
repeat
|
||||||
|
notify:=PQnotifies(FDBHandle);
|
||||||
|
if assigned(notify) then
|
||||||
|
begin
|
||||||
|
if assigned(OnEventAlert) then
|
||||||
|
OnEventAlert(Self,notify^.relname,1,CancelAlerts);
|
||||||
|
PQfreemem(notify);
|
||||||
|
end;
|
||||||
|
until not assigned(notify) or CancelAlerts;
|
||||||
|
if CancelAlerts then
|
||||||
|
UnRegisterEvents;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TPQEventMonitor.RegisterEvents;
|
||||||
|
var
|
||||||
|
i:Integer;
|
||||||
|
sConn: String;
|
||||||
|
res: PPGresult;
|
||||||
|
msg:string;
|
||||||
|
notify:PpgNotify;
|
||||||
|
CancelAlerts:boolean;
|
||||||
|
begin
|
||||||
|
If not assigned(FConnection) then
|
||||||
|
DatabaseError(SErrNoDatabaseAvailable,Self);
|
||||||
|
if not(csDesigning in ComponentState) and not FRegistered and (Events.Count>0) then
|
||||||
|
begin
|
||||||
|
sConn := '';
|
||||||
|
if (FConnection.UserName <> '') then sConn := sConn + ' user=''' + FConnection.UserName + '''';
|
||||||
|
if (FConnection.Password <> '') then sConn := sConn + ' password=''' + FConnection.Password + '''';
|
||||||
|
if (FConnection.HostName <> '') then sConn := sConn + ' host=''' + FConnection.HostName + '''';
|
||||||
|
if (FConnection.DatabaseName <> '') then sConn := sConn + ' dbname=''' + FConnection.DatabaseName + '''';
|
||||||
|
if (FConnection.Params.Text <> '') then sConn := sConn + ' '+FConnection.Params.Text;
|
||||||
|
|
||||||
|
FDBHandle := PQconnectdb(pchar(sConn));
|
||||||
|
if (PQstatus(FDBHandle) <> CONNECTION_OK) then
|
||||||
|
begin
|
||||||
|
msg := PQerrorMessage(FDBHandle);
|
||||||
|
PQFinish(FDBHandle);
|
||||||
|
DatabaseError(sErrConnectionFailed + ' (TPQEventMonitor: ' + Msg + ')',self);
|
||||||
|
end;
|
||||||
|
for i:=0 to Events.Count-1 do
|
||||||
|
begin
|
||||||
|
res := PQexec(FDBHandle,pchar('LISTEN '+ Events[i]));
|
||||||
|
if (PQresultStatus(res) <> PGRES_COMMAND_OK) then
|
||||||
|
begin
|
||||||
|
msg := PQerrorMessage(FDBHandle);
|
||||||
|
PQclear(res);
|
||||||
|
PQFinish(FDBHandle);
|
||||||
|
FDBHandle:=nil;
|
||||||
|
DatabaseError(SErrExecuteFailed + ' (TPQEventMonitor: ' + Msg + ')',self);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
PQclear(res);
|
||||||
|
end;
|
||||||
|
FRegistered :=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TPQEventMonitor.UnRegisterEvents;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
res: PPGresult;
|
||||||
|
msg:string;
|
||||||
|
begin
|
||||||
|
if not (csDesigning in ComponentState) and FRegistered then
|
||||||
|
begin
|
||||||
|
for i:=0 to Events.Count-1 do
|
||||||
|
begin
|
||||||
|
res := PQexec(FDBHandle,pchar('unlisten '+ Events[i]));
|
||||||
|
if (PQresultStatus(res) <> PGRES_COMMAND_OK) then
|
||||||
|
begin
|
||||||
|
msg := PQerrorMessage(FDBHandle);
|
||||||
|
PQclear(res);
|
||||||
|
PQFinish(FDBHandle);
|
||||||
|
FDBHandle:=nil;
|
||||||
|
DatabaseError(SErrExecuteFailed + ' (TPQEventMonitor: ' + Msg + ')',self);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
PQclear(res);
|
||||||
|
end;
|
||||||
|
PQFinish(FDBHandle);
|
||||||
|
FDBHandle:=nil;
|
||||||
|
FRegistered :=false;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user