From 951ace9dc27fda6586b7a96bddda8f85c8e0da6a Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 27 Oct 2004 07:23:13 +0000 Subject: [PATCH] + Patch from Joost Van der Sluis to fix transactions --- fcl/db/bufdataset.inc | 2 +- fcl/db/database.inc | 95 ++++++++++++++++++- fcl/db/dataset.inc | 27 ++++-- fcl/db/db.pp | 42 ++++++--- fcl/db/dbconst.pp | 6 +- fcl/db/sqldb/interbase/ibconnection.pp | 4 +- fcl/db/sqldb/mysql/mysql4conn.pas | 4 +- fcl/db/sqldb/postgres/pqconnection.pp | 6 +- fcl/db/sqldb/sqldb.pp | 126 ++++++++++++++----------- fcl/db/sqlite/Makefile | 36 +------ fcl/db/sqlite/Makefile.fpc | 2 +- 11 files changed, 225 insertions(+), 125 deletions(-) diff --git a/fcl/db/bufdataset.inc b/fcl/db/bufdataset.inc index 49e442edbb..08c70b526b 100644 --- a/fcl/db/bufdataset.inc +++ b/fcl/db/bufdataset.inc @@ -65,7 +65,7 @@ var i : integer; begin for i := 0 to FBRecordCount-1 do FreeRecord(FBBuffers[i]); - freemem(FBBuffers); + If FBRecordCount > 0 then freemem(FBBuffers); FBRecordcount := 0; FBBuffercount := 0; FBCurrentrecord := -1; diff --git a/fcl/db/database.inc b/fcl/db/database.inc index 11f547bee8..ed91d1acc4 100644 --- a/fcl/db/database.inc +++ b/fcl/db/database.inc @@ -47,7 +47,7 @@ begin begin If Value then begin - if csLoading in ComponentState then + if csReading in ComponentState then begin FOpenAfterRead := true; exit; @@ -255,6 +255,20 @@ begin end; end; +Procedure TDBDataset.SetTransaction (Value : TDBTransaction); + +begin + CheckInactive; + If Value<>FTransaction then + begin + If Assigned(FTransaction) then + FTransaction.UnregisterDataset(Self); + If Value<>Nil Then + Value.RegisterDataset(Self); + FTransaction:=Value; + end; +end; + Procedure TDBDataset.CheckDatabase; begin @@ -266,13 +280,13 @@ Destructor TDBDataset.Destroy; begin Database:=Nil; + Transaction:=Nil; Inherited; end; { --------------------------------------------------------------------- TDBTransaction ---------------------------------------------------------------------} - Procedure TDBTransaction.SetDatabase (Value : TDatabase); begin @@ -287,6 +301,13 @@ begin end; end; +constructor TDBTransaction.create(AOwner : TComponent); + +begin + inherited create(AOwner); + FDatasets:=TList.Create; +end; + Procedure TDBTransaction.CheckDatabase; begin @@ -294,17 +315,85 @@ begin DatabaseError(SErrNoDatabaseAvailable,Self) end; +procedure TDBTransaction.CloseDataSets; + +Var I : longint; + +begin + If Assigned(FDatasets) then + begin + For I:=FDatasets.Count-1 downto 0 do + TDBDataset(FDatasets[i]).Close; + end; +end; + Destructor TDBTransaction.Destroy; begin Database:=Nil; + RemoveDatasets; + FDatasets.Free; Inherited; end; +procedure TDBTransaction.RemoveDataSets; + +Var I : longint; + +begin + If Assigned(FDatasets) then + For I:=FDataSets.Count-1 downto 0 do + TDBDataset(FDataSets[i]).Transaction:=Nil; +end; + +Function TDBTransaction.GetDataSetCount : Longint; + +begin + If Assigned(FDatasets) Then + Result:=FDatasets.Count + else + Result:=0; +end; + +procedure TDBTransaction.UnRegisterDataset (DS : TDBDataset); + +Var I : longint; + +begin + I:=FDatasets.IndexOf(DS); + If I<>-1 then + FDatasets.Delete(I) + else + DatabaseErrorFmt(SNoDatasetRegistered,[DS.Name]); +end; + +procedure TDBTransaction.RegisterDataset (DS : TDBDataset); + +Var I : longint; + +begin + I:=FDatasets.IndexOf(DS); + If I=-1 then + FDatasets.Add(DS) + else + DatabaseErrorFmt(SDatasetRegistered,[DS.Name]); +end; + +Function TDBTransaction.GetDataset(Index : longint) : TDBDataset; + +begin + If Assigned(FDatasets) then + Result:=TDBDataset(FDatasets[Index]) + else + DatabaseError(SNoDatasets); +end; { $Log$ - Revision 1.6 2004-09-26 16:55:24 michael + Revision 1.7 2004-10-27 07:23:13 michael + + Patch from Joost Van der Sluis to fix transactions + + Revision 1.6 2004/09/26 16:55:24 michael * big patch from Joost van der Sluis bufdataset.inc: fix getrecord (prior) diff --git a/fcl/db/dataset.inc b/fcl/db/dataset.inc index 827cae8831..45405843dc 100644 --- a/fcl/db/dataset.inc +++ b/fcl/db/dataset.inc @@ -625,12 +625,6 @@ begin //!! To be implemented end; -Procedure TDataset.Loaded; - -begin - //!! To be implemented -end; - Procedure TDataset.OpenCursor(InfoQuery: Boolean); begin @@ -663,12 +657,26 @@ Procedure TDataset.SetActive (Value : Boolean); begin If Value<>Factive then If Value then - DoInternalOpen + if csLoading in ComponentState then + begin + FOpenAfterRead := true; + exit; + end + else + DoInternalOpen else DoInternalClose(True); FActive:=Value; end; +procedure TDataset.Loaded; + +begin + inherited; + if FOpenAfterRead then SetActive(true); +end; + + procedure TDataSet.RecalcBufListSize; var @@ -1725,7 +1733,10 @@ end; { $Log$ - Revision 1.26 2004-10-16 09:27:23 michael + Revision 1.27 2004-10-27 07:23:13 michael + + Patch from Joost Van der Sluis to fix transactions + + Revision 1.26 2004/10/16 09:27:23 michael + Fixed GotoBookMark (as suggested by Americo Luiz) Revision 1.25 2004/10/10 14:25:21 michael diff --git a/fcl/db/db.pp b/fcl/db/db.pp index bd217e68d2..73dd755857 100644 --- a/fcl/db/db.pp +++ b/fcl/db/db.pp @@ -67,6 +67,7 @@ type TDataBase = Class; TDatasource = Class; TDatalink = Class; + TDBTransaction = Class; { Exception classes } @@ -773,6 +774,7 @@ type TDataSet = class(TComponent) Private FActive: Boolean; + FOpenAfterRead : boolean; FActiveRecord: Longint; FAfterCancel: TDataSetNotifyEvent; FAfterClose: TDataSetNotifyEvent; @@ -849,6 +851,7 @@ type procedure CalculateFields(Buffer: PChar); virtual; procedure CheckActive; virtual; procedure CheckInactive; virtual; + procedure Loaded; override; procedure ClearBuffers; virtual; procedure ClearCalcFields(Buffer: PChar); virtual; procedure CloseBlob(Field: TField); virtual; @@ -896,7 +899,6 @@ type procedure InternalCancel; virtual; procedure InternalEdit; virtual; procedure InternalRefresh; virtual; - procedure Loaded; override; procedure OpenCursor(InfoQuery: Boolean); virtual; procedure RefreshInternalCalcFields(Buffer: PChar); virtual; procedure RestoreState(const Value: TDataSetState); @@ -1177,36 +1179,45 @@ type property OnUpdateData: TNotifyEvent read FOnUpdateData write FOnUpdateData; end; - { TDBDataset } TDBDatasetClass = Class of TDBDataset; TDBDataset = Class(TDataset) Private FDatabase : TDatabase; + FTransaction : TDBTransaction; Protected Procedure SetDatabase (Value : TDatabase); virtual; + Procedure SetTransaction(Value : TDBTransaction); virtual; Procedure CheckDatabase; Public Destructor destroy; override; Property DataBase : TDatabase Read FDatabase Write SetDatabase; + Property Transaction : TDBTransaction Read FTransaction Write SetTransaction; end; { TDBTransaction } TDBTransactionClass = Class of TDBTransaction; TDBTransaction = Class(TComponent) - Private - FDatabase : TDatabase; - Procedure SetDatabase (Value : TDatabase); - Protected - Procedure CheckDatabase; - Public - procedure EndTransaction; virtual; abstract; - Destructor destroy; override; - Property DataBase : TDatabase Read FDatabase Write SetDatabase; - end; - + Private + FDatabase : TDatabase; + FDataSets : TList; + Procedure SetDatabase (Value : TDatabase); + Function GetDataSetCount : Longint; + Function GetDataset(Index : longint) : TDBDataset; + procedure RegisterDataset (DS : TDBDataset); + procedure UnRegisterDataset (DS : TDBDataset); + procedure RemoveDataSets; + Protected + Procedure CheckDatabase; + procedure EndTransaction; virtual; abstract; + Public + constructor Create(AOwner: TComponent); override; + Destructor destroy; override; + procedure CloseDataSets; + Property DataBase : TDatabase Read FDatabase Write SetDatabase; + end; { TDatabase } @@ -1572,7 +1583,10 @@ end. { $Log$ - Revision 1.26 2004-10-10 14:45:51 michael + Revision 1.27 2004-10-27 07:23:13 michael + + Patch from Joost Van der Sluis to fix transactions + + Revision 1.26 2004/10/10 14:45:51 michael + Use of dbconst for resource strings Revision 1.25 2004/10/10 14:25:21 michael diff --git a/fcl/db/dbconst.pp b/fcl/db/dbconst.pp index 82faaffc3e..6a7bc840b3 100644 --- a/fcl/db/dbconst.pp +++ b/fcl/db/dbconst.pp @@ -32,6 +32,7 @@ Const SErrNoDatabaseAvailable = 'Invalid operation: Not attached to database'; SErrNoSelectStatement = 'Cannot open a non-select statement'; SErrNoStatement = 'SQL statement not set'; + SErrTransAlreadyActive = 'Transaction already active'; SErrTransactionnSet = 'Transaction not set'; SFieldNotFound = 'Field not found : "%s"'; SInactiveDataset = 'Operation cannot be performed on an inactive dataset'; @@ -65,7 +66,10 @@ end. { $Log$ - Revision 1.2 2004-10-16 09:20:25 michael + Revision 1.3 2004-10-27 07:23:13 michael + + Patch from Joost Van der Sluis to fix transactions + + Revision 1.2 2004/10/16 09:20:25 michael + Moved resourcestrings to dbconst Revision 1.1 2004/10/10 14:45:51 michael diff --git a/fcl/db/sqldb/interbase/ibconnection.pp b/fcl/db/sqldb/interbase/ibconnection.pp index 6b936afa70..e044e58f1d 100644 --- a/fcl/db/sqldb/interbase/ibconnection.pp +++ b/fcl/db/sqldb/interbase/ibconnection.pp @@ -69,7 +69,7 @@ type function GetTransactionHandle(trans : TSQLHandle): pointer; override; function Commit(trans : TSQLHandle) : boolean; override; function RollBack(trans : TSQLHandle) : boolean; override; - function StartTransaction(trans : TSQLHandle) : boolean; override; + function StartdbTransaction(trans : TSQLHandle) : boolean; override; procedure CommitRetaining(trans : TSQLHandle); override; procedure RollBackRetaining(trans : TSQLHandle); override; @@ -177,7 +177,7 @@ begin else result := true; end; -function TIBConnection.StartTransaction(trans : TSQLHandle) : boolean; +function TIBConnection.StartDBTransaction(trans : TSQLHandle) : boolean; var DBHandle : pointer; tr : TIBTrans; diff --git a/fcl/db/sqldb/mysql/mysql4conn.pas b/fcl/db/sqldb/mysql/mysql4conn.pas index 23bd0c19fd..c4d1262b5b 100644 --- a/fcl/db/sqldb/mysql/mysql4conn.pas +++ b/fcl/db/sqldb/mysql/mysql4conn.pas @@ -56,7 +56,7 @@ Type function GetTransactionHandle(trans : TSQLHandle): pointer; override; function Commit(trans : TSQLHandle) : boolean; override; function RollBack(trans : TSQLHandle) : boolean; override; - function StartTransaction(trans : TSQLHandle) : boolean; override; + function StartdbTransaction(trans : TSQLHandle) : boolean; override; procedure CommitRetaining(trans : TSQLHandle); override; procedure RollBackRetaining(trans : TSQLHandle); override; Public @@ -670,7 +670,7 @@ begin // Do nothing end; -function TMySQLConnection.StartTransaction(trans: TSQLHandle): boolean; +function TMySQLConnection.StartdbTransaction(trans: TSQLHandle): boolean; begin // Do nothing end; diff --git a/fcl/db/sqldb/postgres/pqconnection.pp b/fcl/db/sqldb/postgres/pqconnection.pp index 49d4ab2281..913412f466 100644 --- a/fcl/db/sqldb/postgres/pqconnection.pp +++ b/fcl/db/sqldb/postgres/pqconnection.pp @@ -48,7 +48,7 @@ type function RollBack(trans : TSQLHandle) : boolean; override; function Commit(trans : TSQLHandle) : boolean; override; procedure CommitRetaining(trans : TSQLHandle); override; - function StartTransaction(trans : TSQLHandle) : boolean; override; + function StartdbTransaction(trans : TSQLHandle) : boolean; override; procedure RollBackRetaining(trans : TSQLHandle); override; published property DatabaseName; @@ -133,8 +133,7 @@ begin end; end; - -function TPQConnection.StartTransaction(trans : TSQLHandle) : boolean; +function TPQConnection.StartdbTransaction(trans : TSQLHandle) : boolean; var res : PPGresult; tr : TPQTrans; @@ -425,7 +424,6 @@ begin {$R-} with cursor as TPQCursor do for x := 0 to PQnfields(res)-1 do begin -// writeln('Getdata:' + pqgetvalue(res,0,x)); i := PQfsize(res, x); buffer[0] := chr(pqgetisnull(res,0,x)); inc(buffer); diff --git a/fcl/db/sqldb/sqldb.pp b/fcl/db/sqldb/sqldb.pp index c2180c7c91..c10ae487fa 100644 --- a/fcl/db/sqldb/sqldb.pp +++ b/fcl/db/sqldb/sqldb.pp @@ -79,7 +79,7 @@ type function GetTransactionHandle(trans : TSQLHandle): pointer; virtual; abstract; function Commit(trans : TSQLHandle) : boolean; virtual; abstract; function RollBack(trans : TSQLHandle) : boolean; virtual; abstract; - function StartTransaction(trans : TSQLHandle) : boolean; virtual; abstract; + function StartdbTransaction(trans : TSQLHandle) : boolean; virtual; abstract; procedure CommitRetaining(trans : TSQLHandle); virtual; abstract; procedure RollBackRetaining(trans : TSQLHandle); virtual; abstract; public @@ -112,23 +112,25 @@ type FTrans : TSQLHandle; FAction : TCommitRollbackAction; FActive : boolean; + FOpenAfterRead : boolean; procedure SetActive(Value : boolean); protected function GetHandle : Pointer; virtual; + procedure Loaded; override; public - procedure EndTransaction; override; procedure Commit; virtual; procedure CommitRetaining; virtual; procedure Rollback; virtual; procedure RollbackRetaining; virtual; - procedure StartTransaction; + procedure StartTransaction; virtual; constructor Create(AOwner : TComponent); override; destructor Destroy; override; property Handle: Pointer read GetHandle; + procedure EndTransaction; override; published property Action : TCommitRollbackAction read FAction write FAction; - property Active : boolean read FActive write SetActive; + property Active : boolean read FActive write setactive; property Database; end; @@ -138,13 +140,11 @@ type private FCursor : TSQLHandle; FOpen : Boolean; - FTransaction : TSQLTransaction; FSQL : TStrings; FIsEOF : boolean; FLoadingFieldDefs : boolean; FRecordSize : Integer; - procedure SetTransaction(Value : TSQLTransaction); procedure FreeStatement; procedure PrepareStatement; procedure FreeFldBuffers; @@ -209,7 +209,7 @@ type property AutoCalcFields; property Database; - property Transaction : TSQLTransaction read FTransaction write SetTransaction; + property Transaction; property SQL : TStrings read FSQL write FSQL; end; @@ -241,8 +241,9 @@ end; procedure TSQLConnection.DoInternalConnect; begin - if Connected then - Close; +// Where is this for?!?! +// if Connected then +// Close; end; procedure TSQLConnection.DoInternalDisconnect; @@ -251,11 +252,6 @@ end; destructor TSQLConnection.Destroy; begin - if FTransaction <> nil then - begin - FTransaction.Active := False; - FTransaction.Database := nil; - end; inherited Destroy; end; @@ -283,9 +279,28 @@ end; procedure TSQLTransaction.SetActive(Value : boolean); begin if FActive and (not Value) then - Rollback + EndTransaction else if (not FActive) and Value then - StartTransaction; + if csLoading in ComponentState then + begin + FOpenAfterRead := true; + exit; + end + else + StartTransaction; +end; + +procedure TSQLTransaction.Loaded; + +begin + inherited; + if FOpenAfterRead then SetActive(true); +end; + +procedure TSQLTransaction.EndTransaction; + +begin + rollback; end; function TSQLTransaction.GetHandle: pointer; @@ -296,8 +311,12 @@ end; procedure TSQLTransaction.Commit; begin if not FActive then Exit; - if (Database as tsqlconnection).commit(FTrans) then FActive := false; - FTrans.free; + closedatasets; + if (Database as tsqlconnection).commit(FTrans) then + begin + FActive := false; + FTrans.free; + end; end; procedure TSQLTransaction.CommitRetaining; @@ -309,13 +328,12 @@ end; procedure TSQLTransaction.Rollback; begin if not FActive then Exit; - if (Database as tsqlconnection).RollBack(FTrans) then FActive := false; - FTrans.free; -end; - -procedure TSQLTransaction.EndTransaction; -begin - Rollback; + closedatasets; + if (Database as tsqlconnection).RollBack(FTrans) then + begin + FActive := false; + FTrans.free; + end; end; procedure TSQLTransaction.RollbackRetaining; @@ -329,7 +347,8 @@ procedure TSQLTransaction.StartTransaction; var db : TSQLConnection; begin - if Active then Active := False; + if Active then + DatabaseError(SErrTransAlreadyActive); db := (Database as tsqlconnection); @@ -340,7 +359,7 @@ begin Db.Open; if not assigned(FTrans) then FTrans := Db.AllocateTransactionHandle; - if Db.StartTransaction(FTrans) then FActive := true; + if Db.StartdbTransaction(FTrans) then FActive := true; end; constructor TSQLTransaction.Create(AOwner : TComponent); @@ -350,23 +369,11 @@ end; destructor TSQLTransaction.Destroy; begin - // This will also do a Rollback, if the transaction is currently active - Active := False; - -// Database.Transaction := nil; - + Rollback; inherited Destroy; end; { TSQLQuery } - -procedure TSQLQuery.SetTransaction(Value : TSQLTransaction); -begin - CheckInactive; - if (FTransaction <> Value) then - FTransaction := Value; -end; - procedure TSQLQuery.SetDatabase(Value : TDatabase); var db : tsqlconnection; @@ -376,32 +383,37 @@ begin begin db := value as tsqlconnection; inherited setdatabase(value); - if (FTransaction = nil) and (Assigned(Db.Transaction)) then - SetTransaction(Db.Transaction); + if assigned(value) and (Transaction = nil) and (Assigned(db.Transaction)) then + transaction := Db.Transaction; end; end; procedure TSQLQuery.FreeStatement; begin - (Database as tsqlconnection).FreeStatement(FCursor); + if assigned(FCursor) then + begin + (Database as tsqlconnection).FreeStatement(FCursor); + FCursor.free; + end; end; procedure TSQLQuery.PrepareStatement; var - Buf : string; - x : integer; - db : tsqlconnection; + Buf : string; + x : integer; + db : tsqlconnection; + sqltr : tsqltransaction; begin db := (Database as tsqlconnection); if Db = nil then DatabaseError(SErrDatabasenAssigned); if not Db.Connected then db.Open; - if FTransaction = nil then + if Transaction = nil then DatabaseError(SErrTransactionnSet); - - if not FTransaction.Active then - FTransaction.StartTransaction; + + sqltr := (transaction as tsqltransaction); + if not sqltr.Active then sqltr.StartTransaction; if assigned(fcursor) then FCursor.free; FCursor := Db.AllocateCursorHandle; @@ -414,15 +426,13 @@ begin DatabaseError(SErrNoStatement); exit; end; - FCursor.StatementType := GetSQLStatementType(buf); - - Db.PrepareStatement(Fcursor,FTransaction,buf); + Db.PrepareStatement(Fcursor,sqltr,buf); end; procedure TSQLQuery.FreeFldBuffers; begin - (Database as tsqlconnection).FreeFldBuffers(FCursor); + if assigned(FCursor) then (Database as tsqlconnection).FreeFldBuffers(FCursor); end; procedure TSQLQuery.Fetch; @@ -452,7 +462,7 @@ end; procedure TSQLQuery.Execute; begin - (Database as tsqlconnection).execute(Fcursor,FTransaction); + (Database as tsqlconnection).execute(Fcursor,Transaction as tsqltransaction); end; function TSQLQuery.AllocRecord(ExtraSize : integer): PChar; @@ -493,7 +503,6 @@ begin FIsEOF := False; FRecordSize := 0; FOpen:=False; - FCursor.free; inherited internalclose; end; @@ -649,7 +658,10 @@ end. { $Log$ - Revision 1.5 2004-10-10 14:45:52 michael + Revision 1.6 2004-10-27 07:23:13 michael + + Patch from Joost Van der Sluis to fix transactions + + Revision 1.5 2004/10/10 14:45:52 michael + Use of dbconst for resource strings Revision 1.4 2004/10/10 14:24:22 michael diff --git a/fcl/db/sqlite/Makefile b/fcl/db/sqlite/Makefile index 6affca49d8..45ef0d1a0b 100644 --- a/fcl/db/sqlite/Makefile +++ b/fcl/db/sqlite/Makefile @@ -1,8 +1,8 @@ # -# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04] +# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/12] # default: all -MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc +MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos BSDs = freebsd netbsd openbsd darwin UNIXs = linux $(BSDs) sunos qnx FORCE: @@ -214,7 +214,7 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) endif PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra) override PACKAGE_NAME=fcl -override TARGET_UNITS+=sqlitedataset +override TARGET_UNITS+=sqliteds override INSTALL_FPCPACKAGE=y override COMPILER_TARGETDIR+=../../$(OS_TARGET) ifdef REQUIRE_UNITSDIR @@ -525,12 +525,6 @@ STATICLIBPREFIX= FPCMADE=fpcmade.nw ZIPSUFFIX=nw endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -FPCMADE=fpcmade.nwl -ZIPSUFFIX=nwl -endif ifeq ($(OS_TARGET),macos) BATCHEXT= EXEEXT= @@ -683,18 +677,6 @@ FPCMADE=fpcmade.nw ZIPSUFFIX=nw EXEEXT=.nlm endif -ifeq ($(OS_TARGET),netwlibc) -STATICLIBPREFIX= -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.nlm -FPCMADE=fpcmade.nwl -ZIPSUFFIX=nwl -EXEEXT=.nlm -endif ifeq ($(OS_TARGET),macos) BATCHEXT= PPUEXT=.ppu @@ -1129,12 +1111,6 @@ REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_SQLITE=1 endif endif -ifeq ($(OS_TARGET),netwlibc) -ifeq ($(CPU_TARGET),i386) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -endif ifdef REQUIRE_PACKAGES_RTL PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_RTL),) @@ -1339,7 +1315,7 @@ fpc_debug: $(MAKE) all DEBUG=1 fpc_release: $(MAKE) all RELEASE=1 -.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res +.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res %$(PPUEXT): %.pp $(COMPILER) $< $(EXECPPAS) @@ -1352,9 +1328,6 @@ fpc_release: %$(EXEEXT): %.pas $(COMPILER) $< $(EXECPPAS) -%$(EXEEXT): %.lpr - $(COMPILER) $< - $(EXECPPAS) %$(EXEEXT): %.dpr $(COMPILER) $< $(EXECPPAS) @@ -1362,7 +1335,6 @@ fpc_release: 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 %$(PPUEXT) $(COMPILER_UNITTARGETDIR) .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall diff --git a/fcl/db/sqlite/Makefile.fpc b/fcl/db/sqlite/Makefile.fpc index dad39ecdde..7a762841ba 100644 --- a/fcl/db/sqlite/Makefile.fpc +++ b/fcl/db/sqlite/Makefile.fpc @@ -6,7 +6,7 @@ main=fcl [target] -units=sqlitedataset +units=sqliteds [require] packages=sqlite