From 5ab39e9b3a56ede3238ddabf7e4a8c1e43eb70d1 Mon Sep 17 00:00:00 2001 From: Abou Al Montacir Date: Tue, 18 Mar 2014 22:20:03 +0100 Subject: Imported Upstream version 2.6.4+dfsg --- fpcsrc/packages/fcl-db/src/Dataset.txt | 111 +- fpcsrc/packages/fcl-db/src/README.txt | 4 +- fpcsrc/packages/fcl-db/src/base/Makefile | 2766 -------------- fpcsrc/packages/fcl-db/src/base/Makefile.fpc | 2 +- fpcsrc/packages/fcl-db/src/base/bufdataset.pas | 936 ++--- fpcsrc/packages/fcl-db/src/base/database.inc | 9 +- fpcsrc/packages/fcl-db/src/base/dataset.inc | 122 +- fpcsrc/packages/fcl-db/src/base/datasource.inc | 4 +- fpcsrc/packages/fcl-db/src/base/db.pas | 137 +- fpcsrc/packages/fcl-db/src/base/dsparams.inc | 56 +- fpcsrc/packages/fcl-db/src/base/fields.inc | 406 ++- .../fcl-db/src/base/xmldatapacketreader.pp | 39 +- fpcsrc/packages/fcl-db/src/codegen/Makefile | 2372 ------------ fpcsrc/packages/fcl-db/src/codegen/fpcgtiopf.pp | 26 +- fpcsrc/packages/fcl-db/src/codegen/fpddcodegen.pp | 41 +- fpcsrc/packages/fcl-db/src/datadict/Makefile | 2974 --------------- fpcsrc/packages/fcl-db/src/dbase/Makefile | 2790 -------------- fpcsrc/packages/fcl-db/src/dbase/dbf.pas | 166 +- fpcsrc/packages/fcl-db/src/dbase/dbf_common.inc | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_common.pas | 24 +- fpcsrc/packages/fcl-db/src/dbase/dbf_dbffile.pas | 807 +++-- fpcsrc/packages/fcl-db/src/dbase/dbf_fields.pas | 285 +- fpcsrc/packages/fcl-db/src/dbase/dbf_idxfile.pas | 8 +- fpcsrc/packages/fcl-db/src/dbase/dbf_lang.pas | 225 +- fpcsrc/packages/fcl-db/src/dbase/dbf_memo.pas | 114 +- fpcsrc/packages/fcl-db/src/dbase/dbf_pgfile.pas | 16 +- fpcsrc/packages/fcl-db/src/dbase/dbf_str.inc | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_str.pas | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_str_es.pas | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_str_fr.pas | 2 + fpcsrc/packages/fcl-db/src/dbase/dbf_str_ita.pas | 2 + fpcsrc/packages/fcl-db/src/dbase/dbf_str_nl.pas | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_str_pl.pas | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_str_pt.pas | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_str_ru.pas | 1 + fpcsrc/packages/fcl-db/src/dbase/dbf_struct.inc | 53 +- fpcsrc/packages/fcl-db/src/dbase/dbf_wtil.pas | 10 +- fpcsrc/packages/fcl-db/src/dbase/history.txt | 10 + fpcsrc/packages/fcl-db/src/dbase/readme.txt | 62 +- fpcsrc/packages/fcl-db/src/export/Makefile | 2570 ------------- .../fcl-db/src/export/XMLXSDExportReadme.TXT | 8 +- fpcsrc/packages/fcl-db/src/export/fpdbexport.pp | 5 +- fpcsrc/packages/fcl-db/src/export/fpdbfexport.pp | 56 +- fpcsrc/packages/fcl-db/src/json/Makefile | 2085 ----------- fpcsrc/packages/fcl-db/src/memds/Makefile | 2392 ------------ fpcsrc/packages/fcl-db/src/memds/memds.pp | 276 +- fpcsrc/packages/fcl-db/src/paradox/Makefile | 2280 ------------ fpcsrc/packages/fcl-db/src/sdf/Makefile | 2197 ------------ fpcsrc/packages/fcl-db/src/sql/Makefile | 2567 ------------- fpcsrc/packages/fcl-db/src/sqldb/Makefile | 3792 -------------------- .../packages/fcl-db/src/sqldb/interbase/Makefile | 2478 ------------- .../packages/fcl-db/src/sqldb/interbase/fbadmin.pp | 4 +- .../fcl-db/src/sqldb/interbase/ibconnection.pp | 260 +- fpcsrc/packages/fcl-db/src/sqldb/mssql/Makefile | 2317 ------------ .../packages/fcl-db/src/sqldb/mssql/mssqlconn.pp | 340 +- fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile | 2673 -------------- .../packages/fcl-db/src/sqldb/mysql/Makefile.fpc | 4 +- .../fcl-db/src/sqldb/mysql/mysql50conn.pas | 2 +- .../fcl-db/src/sqldb/mysql/mysql51conn.pas | 1 - .../fcl-db/src/sqldb/mysql/mysql55conn.pas | 3 +- .../fcl-db/src/sqldb/mysql/mysql56conn.pas | 12 + .../packages/fcl-db/src/sqldb/mysql/mysqlconn.inc | 431 ++- fpcsrc/packages/fcl-db/src/sqldb/odbc/Makefile | 2478 ------------- fpcsrc/packages/fcl-db/src/sqldb/odbc/odbcconn.pas | 182 +- fpcsrc/packages/fcl-db/src/sqldb/oracle/Makefile | 2673 -------------- .../fcl-db/src/sqldb/oracle/oracleconnection.pp | 71 +- fpcsrc/packages/fcl-db/src/sqldb/postgres/Makefile | 2673 -------------- .../fcl-db/src/sqldb/postgres/pqconnection.pp | 698 ++-- fpcsrc/packages/fcl-db/src/sqldb/readme.txt | 105 +- fpcsrc/packages/fcl-db/src/sqldb/sqldb.pp | 1100 ++++-- fpcsrc/packages/fcl-db/src/sqldb/sqlite/Makefile | 2478 ------------- .../fcl-db/src/sqldb/sqlite/sqlite3conn.pp | 154 +- fpcsrc/packages/fcl-db/src/sqlite/Makefile | 2085 ----------- 73 files changed, 4998 insertions(+), 51039 deletions(-) delete mode 100644 fpcsrc/packages/fcl-db/src/base/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/codegen/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/datadict/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/dbase/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/export/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/json/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/memds/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/paradox/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sdf/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sql/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/interbase/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/mssql/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile create mode 100644 fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql56conn.pas delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/odbc/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/oracle/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/postgres/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqldb/sqlite/Makefile delete mode 100644 fpcsrc/packages/fcl-db/src/sqlite/Makefile (limited to 'fpcsrc/packages/fcl-db/src') diff --git a/fpcsrc/packages/fcl-db/src/Dataset.txt b/fpcsrc/packages/fcl-db/src/Dataset.txt index 2170b1d3..c6715e9b 100644 --- a/fpcsrc/packages/fcl-db/src/Dataset.txt +++ b/fpcsrc/packages/fcl-db/src/Dataset.txt @@ -1,16 +1,14 @@ Contents ======== - + General remarks + Fields system + The buffers + Dataset implementation -+ Scalable Datasets. ++ Switchable datasets =============== General remarks =============== - - All fields and descendents implemented. - No calculated fields. - No persistent fields; this must be added later. @@ -19,10 +17,9 @@ General remarks ============= Fields system ============= - Buffers are completely handled by the Dataset. Fields don't handle -their own buffers. Only during validation, the FValueBuffer of the -field is used. +their own buffers. The FValueBuffer of the field is only used during +validation. This allows the dataset to allocate a number of buffers for the current record and the N next records. (getnextrecords/getpriorrecords method) @@ -33,25 +30,24 @@ since FValueBuffer is only valid during validation. =========== The Buffers =========== - A buffer contains all the data for 1 record of the dataset, and also the bookmark information. (bookmarkinformation is REQUIRED) The dataset allocates by default 'DefaultBufferCount+1' records(buffers) -This constant can be changed, at the beginning of dataset.inc; +This constant can be changed, at the beginning of dataset.inc, e.g. if you know you'll be working with big datasets, you can increase this constant. The buffers are stored as pchars in the FBuffers array; The following constants are userd when handling this array: -FBuffercount : The number of buffers allocated, minus one. -FRecordCount : The number of buffers that is actually filled in. -FActiveBuffer : The index of the active record in TDataset +FBuffercount : The number of buffers allocated, minus one. +FRecordCount : The number of buffers that is actually filled in. +FActiveBuffer : The index of the active record in TDataset. FCurrentRecord : The index of the supposedly active record in the underlaying dataset (ie. the index in the last call to SetToInternalRecord) call CursopPosChanged to reset FCurrentRecord if the active - record in the underlaying dataset has changed + record in the underlaying dataset has changed). So the following picture follows from this: @@ -103,41 +99,35 @@ navigating/editing/adding/removing records of some source of data. There are, however, some methods that need to be filled in so that a real TDataset can be implemented. -In order to have a working Dataset, the following Methods need to be +In order to have a working Dataset, the following Methods need to be overridden in order to make a dataset descendant: function AllocRecordBuffer: PChar; virtual; abstract; ----------------------------------------------------- - Must allocate enough memory to store a complete record in the dataset. -Optionally, this buffer must contain enough memory to store bookmarkdata. +Optionally, this buffer must contain enough memory to store bookmark data. The descendent must be able to construct a bookmark from this buffer. procedure FreeRecordBuffer(var Buffer: PChar); virtual; abstract; ----------------------------------------------------------------- - Must free the memory allocated in the AllocRecordBuffer call. procedure GetBookmarkData(Buffer: PChar; Data: Pointer); virtual; abstract; --------------------------------------------------------------------------- - -Puts the bookmarkdata for Buffer into the area pointed to by Data. +Puts the bookmark data for Buffer into the area pointed to by Data. function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; virtual; abstract; -------------------------------------------------------------------------- - Returns the bookmarkflag associated with Buffer. function GetFieldData(Field: TField; Buffer: Pointer): Boolean; virtual; abstract; ---------------------------------------------------------------------------------- - Puts the data for field Field from the active buffer into Buffer. This is called whenever a field value is demanded, so it must be efficient. function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; virtual; abstract; ----------------------------------------------------------------------------------- - This method must do 3 things: 1) Get the record data for the next/current/previous record, depending on the GetMode value. It should return @@ -147,7 +137,7 @@ This method must do 3 things: grError if an error occurred. 2) If DoCheck is True, and the result is grError, then an exception must be - raised. + raised. 3) It should initialize bookmark data for this record with flag 'bfCurrent' This data can be stored in the bufer, if space was allocated for it with @@ -155,131 +145,111 @@ This method must do 3 things: function GetRecordSize: Word; virtual; abstract; ------------------------------------------------ - -Should return the record size; this includes ONLY the data portion -of teh buffer; it excludes any bookmark or housekeeping info you may +Should return the record size - this includes ONLY the data portion +of the buffer. It excludes any bookmark or housekeeping info you may have put in the buffer. procedure InternalAddRecord(Buffer: Pointer; Append: Boolean); virtual; abstract; --------------------------------------------------------------------------------- - Adds a record to the dataset. The record's data is in Buffer and Append indicates whether the record should be appended (True) or Inserted (False). Note that for SQL based datasets, this has no meaning. procedure InternalClose; virtual; abstract; ------------------------------------------- - Closes the dataset. Any resources allocated in InternalOpen should be freed here. procedure InternalDelete; virtual; abstract; -------------------------------------------- - Deletes the current Record. procedure InternalFirst; virtual; abstract; ------------------------------------------- - -This is called when 'First' is called; After this method, getrecord +This is called when 'First' is called. After this method, getrecord should return 'grBOF' if the previous record is requested, and it should return the next record if the next record is requested. procedure InternalGotoBookmark(ABookmark: Pointer); virtual; abstract; ---------------------------------------------------------------------- - Set the record position on the position that is associated with the ABookMark data. The ABookMark data is the data that is acquired through the GetBookMarkData call, and should be kept for each record. procedure InternalHandleException; virtual; abstract; ----------------------------------------------------- - Not needed yet. Just implement an empty call. procedure InternalInitFieldDefs; virtual; abstract; --------------------------------------------------- - This method should be called from InternalOpen, and should initialize FieldDef definitions for all fields in a record. It should add these definitions to the FFielddefs object. - procedure InternalInitRecord(Buffer: PChar); virtual; abstract; --------------------------------------------------------------- - This method is called to initialize a field buffer when the dataset -is put into edit or append mode. Mostly,you'll want to zero out the +is put into edit or append mode. Mostly, you'll want to zero out the buffer. procedure InternalLast; virtual; abstract; ------------------------------------------ - -This is called when 'Last' is called; After this method, getrecord +This is called when 'Last' is called. After this method, getrecord should return 'grEOF' if the next record is requested, and it should return the last record if the previous record is requested. procedure InternalOpen; virtual; abstract; ------------------------------------------ - -Open the dataset. You must call internalinitfielddefs; -if DefaultFields is True, then you must call CreateFields, +Open the dataset. You must call internalinitfielddefs. +If DefaultFields is True, then you must call CreateFields, which will create the necessary TFields from the fielddefs. procedure InternalPost; virtual; abstract; ------------------------------------------ - Post the data in the active buffer to the underlying dataset. procedure InternalSetToRecord(Buffer: PChar); virtual; abstract; ---------------------------------------------------------------- - Set the current record to the record in Buffer; if bookmark data is specified in this buffer, that data can be used to determine which record this should be. function IsCursorOpen: Boolean; virtual; abstract; -------------------------------------------------- - This function should return True if data is available, even if the dataset is not active. procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); virtual; abstract; ---------------------------------------------------------------------------------- - Set the bookmarkflag 'Value' on the data in Buffer. procedure SetBookmarkData(Buffer: PChar; Data: Pointer); virtual; abstract; --------------------------------------------------------------------------- - -Move the bookmarkdata in 'Data' to the bookmarkdata associated with Buffer +Move the bookmark data in 'Data' to the bookmark data associated with Buffer procedure SetFieldData(Field: TField; Buffer: Pointer); virtual; abstract; -------------------------------------------------------------------------- +Move the data in associated with Field from Buffer to the active buffer. -Move the data in associated with Field from Buffer to the activebuffer. - -================= -Scalable datasets -================= - -In order to have Scalable database access, the concept of TDatabase and +=================== +Switchable datasets +=================== +In order to have flexible database access, the concept of TDatabase and TDBDataset is introduced. The idea is that, in a visual IDE, the change from one database to another is achieved by simply removing one TDatabase descendent (Say, TMySqlDatabase) with another (Say, TPostGreSQLDatabase) and that the Datasets remain untouched. In order to make this possible, the following scheme is used: - when a TDBdataset descendant is put on Active, it requests a TRecordSet from the TDatabase. The TRecordSet is an abstract object that should be implemented together with each database. The TDBDataset then uses the TRecordSet to navigate through the records and edit/add/modify them. The TDBdataset implements the abstract methods of Tdataset in order to -achive this. +achieve this. There will be 2 descendants of TDBdataset: TTable and TQuery; both will -implement the last abstract methods of TDataset in order to achieve a +implement the final abstract methods of TDataset in order to achieve a complete TDataset implementation. TDBDataset implements most of the initialization of fields, so the @@ -287,14 +257,13 @@ implementation of TRecordSet will be as bare bones as possible. What is needed: --------------- - Some properties describing the data: -FieldCount : Number of fields in a record; +FieldCount : Number of fields in a record. FieldTypes[Index] : Types of the fields (TFieldType), zero based. FieldNames[Index] : Names of the fields. Zero based. -FieldSizes[index] : Size of the fields, zero based. -BookmarkSize : Size of a bookmark. +FieldSizes[index] : Size of the fields. zero based. +BookmarkSize : Size of a bookmark. Some properties with the data content: @@ -306,19 +275,17 @@ BookMarkBuffer : Buffer with the current bookmark. Some methods ------------ - - -OpenRecordSet : Opens the recordset; it should initialize the FieldCount - and FieldTypes, FieldNames, and FieldSizes array data. +OpenRecordSet : Opens the recordset. It should initialize the FieldCount + and FieldTypes, FieldNames, and FieldSizes array data. CloseRecordSet : Do whatever is needed to close the recordset. -GotoBookMark : go to the record described by the bookmark. Returns True - if successfull, false if not. +GotoBookMark : go to the record described by the bookmark. Returns True + if successful, false if not. -Next : Goto the next record. Returns true or false -Prior : Goto previous record. Returns true or false -First : Goto the first record. Returns True or false -Last : Goto the last record. Returns True or False +Next : Go to the next record. Returns true or false +Prior : Go to the previous record. Returns true or false +First : Go to the first record. Returns true or false +Last : Go to the last record. Returns true or False -AppendBuffer : Append a buffer to the records. +AppendBuffer : Append a buffer to the records. diff --git a/fpcsrc/packages/fcl-db/src/README.txt b/fpcsrc/packages/fcl-db/src/README.txt index ff6210e7..171e3f10 100644 --- a/fpcsrc/packages/fcl-db/src/README.txt +++ b/fpcsrc/packages/fcl-db/src/README.txt @@ -13,8 +13,8 @@ sqldb PostgreSQL, SQLite3 and Sybase ASE dbase - contains the tDbf components, to work with DBASE and FoxPro - file-based databases + contains the tDbf components, to work with DBASE, FoxPro and Visual + FoxPro file-based databases sdf contains a dataset class to use text files directly as a diff --git a/fpcsrc/packages/fcl-db/src/base/Makefile b/fpcsrc/packages/fcl-db/src/base/Makefile deleted file mode 100644 index ea3a2e7f..00000000 --- a/fpcsrc/packages/fcl-db/src/base/Makefile +++ /dev/null @@ -1,2766 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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_VERSION=2.6.2 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base fcl-xml -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/base/Makefile.fpc b/fpcsrc/packages/fcl-db/src/base/Makefile.fpc index 0bd4c3f3..7a695b96 100644 --- a/fpcsrc/packages/fcl-db/src/base/Makefile.fpc +++ b/fpcsrc/packages/fcl-db/src/base/Makefile.fpc @@ -4,7 +4,7 @@ [package] main=fcl-db -version=2.6.2 +version=2.6.4 [target] units=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader diff --git a/fpcsrc/packages/fcl-db/src/base/bufdataset.pas b/fpcsrc/packages/fcl-db/src/base/bufdataset.pas index c60aec78..21996b87 100644 --- a/fpcsrc/packages/fcl-db/src/base/bufdataset.pas +++ b/fpcsrc/packages/fcl-db/src/base/bufdataset.pas @@ -1,6 +1,6 @@ { This file is part of the Free Pascal run time library. - Copyright (c) 1999-2006 by Joost van der Sluis, member of the + Copyright (c) 1999-2013 by Joost van der Sluis and other members of the Free Pascal development team BufDataset implementation @@ -70,19 +70,19 @@ type TRecUpdateBuffer = record UpdateKind : TUpdateKind; { BookMarkData: - - Is -1 if the update has canceled out. For example: a appended record has been deleted again - - If UpdateKind is ukInsert it contains a bookmark to the new created record - - If UpdateKind is ukModify it contains a bookmark to the record with the new data - - If UpdateKind is ukDelete it contains a bookmark to the deleted record (ie: the record is still there) + - Is -1 if the update has canceled out. For example: an appended record has been deleted again + - If UpdateKind is ukInsert, it contains a bookmark to the newly created record + - If UpdateKind is ukModify, it contains a bookmark to the record with the new data + - If UpdateKind is ukDelete, it contains a bookmark to the deleted record (ie: the record is still there) } BookmarkData : TBufBookmark; { NextBookMarkData: - - If UpdateKind is ukDelete it contains a bookmark to the record just after the deleted record + - If UpdateKind is ukDelete, it contains a bookmark to the record just after the deleted record } NextBookmarkData : TBufBookmark; { OldValuesBuffer: - - If UpdateKind is ukModify it contains a record-buffer which contains the old data - - If UpdateKind is ukDelete it contains a record-buffer with the data of the deleted record + - If UpdateKind is ukModify, it contains a record buffer which contains the old data + - If UpdateKind is ukDelete, it contains a record buffer with the data of the deleted record } OldValuesBuffer : TRecordBuffer; end; @@ -90,7 +90,7 @@ type PBufBlobField = ^TBufBlobField; TBufBlobField = record - ConnBlobBuffer : array[0..11] of byte; // It's here where the db-specific data is stored + ConnBlobBuffer : array[0..11] of byte; // DB specific data is stored here BlobBuffer : PBlobBuffer; end; @@ -159,16 +159,15 @@ type // Normally only used in GetNextPacket procedure AddRecord; virtual; abstract; // Inserts a record before the current record, or if the record is sorted, - // insert it to the proper position + // inserts it in the proper position procedure InsertRecordBeforeCurrentRecord(Const ARecord : TRecordBuffer); virtual; abstract; - procedure EndUpdate; virtual; abstract; - procedure RemoveRecordFromIndex(const ABookmark : TBufBookmark); virtual; abstract; - + procedure OrderCurrentRecord; virtual; abstract; + procedure EndUpdate; virtual; abstract; + function CompareBookmarks(const ABookmark1, ABookmark2 : PBufBookmark) : boolean; virtual; Function GetRecNo(const ABookmark : PBufBookmark) : integer; virtual; abstract; - property SpareRecord : TRecordBuffer read GetSpareRecord; property SpareBuffer : TRecordBuffer read GetSpareBuffer; property CurrentRecord : TRecordBuffer read GetCurrentRecord; @@ -177,8 +176,6 @@ type property BookmarkSize : integer read GetBookmarkSize; end; - TDataPacketFormat = (dfBinary,dfXML,dfXMLUTF8,dfAny); - { TDoubleLinkedBufIndex } TDoubleLinkedBufIndex = class(TBufIndex) @@ -222,12 +219,13 @@ type procedure InitialiseSpareRecord(const ASpareRecord : TRecordBuffer); override; procedure ReleaseSpareRecord; override; - procedure RemoveRecordFromIndex(const ABookmark : TBufBookmark); override; Function GetRecNo(const ABookmark : PBufBookmark) : integer; override; procedure BeginUpdate; override; procedure AddRecord; override; procedure InsertRecordBeforeCurrentRecord(Const ARecord : TRecordBuffer); override; + procedure RemoveRecordFromIndex(const ABookmark : TBufBookmark); override; + procedure OrderCurrentRecord; override; procedure EndUpdate; override; end; @@ -267,12 +265,13 @@ type procedure InitialiseSpareRecord(const ASpareRecord : TRecordBuffer); override; procedure ReleaseSpareRecord; override; - procedure RemoveRecordFromIndex(const ABookmark : TBufBookmark); override; Function GetRecNo(const ABookmark : PBufBookmark) : integer; override; procedure BeginUpdate; override; procedure AddRecord; override; procedure InsertRecordBeforeCurrentRecord(Const ARecord : TRecordBuffer); override; + procedure RemoveRecordFromIndex(const ABookmark : TBufBookmark); override; + procedure OrderCurrentRecord; override; procedure EndUpdate; override; end; @@ -324,11 +323,11 @@ type procedure ReleaseSpareRecord; override; Function GetRecNo(const ABookmark : PBufBookmark) : integer; override; - procedure RemoveRecordFromIndex(const ABookmark : TBufBookmark); override; - procedure InsertRecordBeforeCurrentRecord(Const ARecord : TRecordBuffer); override; procedure BeginUpdate; override; procedure AddRecord; override; + procedure InsertRecordBeforeCurrentRecord(Const ARecord : TRecordBuffer); override; + procedure RemoveRecordFromIndex(const ABookmark : TBufBookmark); override; procedure EndUpdate; override; end; @@ -343,6 +342,8 @@ type { TDataPacketReader } + TDataPacketFormat = (dfBinary,dfXML,dfXMLUTF8,dfAny); + TDatapacketReaderClass = class of TDatapacketReader; TDataPacketReader = class(TObject) FStream : TStream; @@ -352,7 +353,7 @@ type public constructor create(AStream : TStream); virtual; // Load a dataset from stream: - // Load the field-definitions from a stream. + // Load the field definitions from a stream. procedure LoadFieldDefs(AFieldDefs : TFieldDefs; var AnAutoIncValue : integer); virtual; abstract; // Is called before the records are loaded procedure InitLoadRecords; virtual; abstract; @@ -360,15 +361,15 @@ type function GetRecordRowState(out AUpdOrder : Integer) : TRowState; virtual; abstract; // Returns if there is at least one more record available in the stream function GetCurrentRecord : boolean; virtual; abstract; - // Store a record from stream in the current record-buffer + // Store a record from stream in the current record buffer procedure RestoreRecord(ADataset : TCustomBufDataset); virtual; abstract; // Move the stream to the next record procedure GotoNextRecord; virtual; abstract; // Store a dataset to stream: - // Save the field-definitions to a stream. + // Save the field definitions to a stream. procedure StoreFieldDefs(AFieldDefs : TFieldDefs; AnAutoIncValue : integer); virtual; abstract; - // Save a record from the current record-buffer to the stream + // Save a record from the current record buffer to the stream procedure StoreRecord(ADataset : TCustomBufDataset; ARowState : TRowState; AUpdOrder : integer = 0); virtual; abstract; // Is called after all records are stored procedure FinalizeStoreRecords; virtual; abstract; @@ -399,9 +400,9 @@ type FReadFromFile : boolean; FFileStream : TFileStream; FDatasetReader : TDataPacketReader; + FIndexes : array of TBufIndex; FMaxIndexesCount: integer; - FIndexesCount : integer; FCurrentIndex : TBufIndex; @@ -432,7 +433,9 @@ type FUpdateBlobBuffers: array of PBlobBuffer; procedure FetchAll; - procedure BuildIndex(var AIndex : TBufIndex); + procedure ProcessFieldsToCompareStruct(const AFields, ADescFields, ACInsFields: TList; + const AIndexOptions: TIndexOptions; const ALocateOptions: TLocateOptions; out ACompareStruct: TDBCompareStruct); + function BufferOffset: integer; function GetIndexDefs : TIndexDefs; function GetCurrentBuffer: TRecordBuffer; procedure CalcRecordSize; @@ -445,7 +448,6 @@ type function GetRecordUpdateBuffer(const ABookmark : TBufBookmark; IncludePrior : boolean = false; AFindNext : boolean = false) : boolean; function GetRecordUpdateBufferCached(const ABookmark : TBufBookmark; IncludePrior : boolean = false) : boolean; function GetActiveRecordUpdateBuffer : boolean; - procedure ProcessFieldCompareStruct(AField: TField; var ACompareRec : TDBCompareRec); procedure SetIndexFieldNames(const AValue: String); procedure SetIndexName(AValue: String); procedure SetMaxIndexesCount(const AValue: Integer); @@ -457,10 +459,13 @@ type procedure CurrentRecordToBuffer(Buffer: TRecordBuffer); procedure SetBufUniDirectional(const AValue: boolean); procedure InitDefaultIndexes; + procedure BuildIndex(var AIndex : TBufIndex); + procedure BuildIndexes; + procedure RemoveRecordFromIndexes(const ABookmark : TBufBookmark); protected - procedure UpdateIndexDefs; override; function GetNewWriteBlobBuffer : PBlobBuffer; procedure FreeBlobBuffer(var ABlobBuffer: PBlobBuffer); + procedure UpdateIndexDefs; override; procedure SetRecNo(Value: Longint); override; function GetRecNo: Longint; override; function GetChangeCount: integer; virtual; @@ -491,7 +496,7 @@ type function IsCursorOpen: Boolean; override; function GetRecordCount: Longint; override; procedure ApplyRecUpdate(UpdateKind : TUpdateKind); virtual; - procedure SetOnUpdateError(const aValue: TResolverErrorEvent); + procedure SetOnUpdateError(const AValue: TResolverErrorEvent); procedure SetFilterText(const Value: String); override; {virtual;} procedure SetFiltered(Value: Boolean); override; {virtual;} procedure InternalRefresh; override; @@ -504,7 +509,6 @@ type function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; virtual; procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); virtual; abstract; function IsReadFromPacket : Boolean; - public constructor Create(AOwner: TComponent); override; function GetFieldData(Field: TField; Buffer: Pointer; @@ -518,7 +522,7 @@ type procedure MergeChangeLog; procedure CancelUpdates; virtual; destructor Destroy; override; - function Locate(const keyfields: string; const keyvalues: Variant; options: TLocateOptions) : boolean; override; + function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; override; function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; override; function UpdateStatus: TUpdateStatus; override; function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override; @@ -805,7 +809,7 @@ begin end; { -// Code to dump raw dataset data, including indexes information, usefull for debugging +// Code to dump raw dataset data, including indexes information, useful for debugging procedure DumpRawMem(const Data: pointer; ALength: PtrInt); var b: integer; @@ -886,9 +890,7 @@ var PCurRecLinkItem : PBufRecLinkItem; IndexFields : TList; DescIndexFields : TList; CInsIndexFields : TList; - FieldsAmount : Integer; - FieldNr : integer; - AField : TField; + Index0, DblLinkIndex : TDoubleLinkedBufIndex; @@ -911,8 +913,8 @@ var PCurRecLinkItem : PBufRecLinkItem; end; begin - // Build the DBCompareStructure - // One AS is enough, and makes debugging easier. + // Build the DBCompareStructure + // One AS is enough, and makes debugging easier. DblLinkIndex:=(AIndex as TDoubleLinkedBufIndex); Index0:=(FIndexes[0] as TDoubleLinkedBufIndex); with DblLinkIndex do @@ -922,24 +924,11 @@ begin CInsIndexFields := TList.Create; try GetFieldList(IndexFields,FieldsName); - FieldsAmount:=IndexFields.Count; GetFieldList(DescIndexFields,DescFields); GetFieldList(CInsIndexFields,CaseinsFields); - if FieldsAmount=0 then + if IndexFields.Count=0 then DatabaseError(SNoIndexFieldNameGiven); - SetLength(DBCompareStruct,FieldsAmount); - for FieldNr:=0 to FieldsAmount-1 do - begin - AField := TField(IndexFields[FieldNr]); - ProcessFieldCompareStruct(AField,DBCompareStruct[FieldNr]); - - DBCompareStruct[FieldNr].Desc := (DescIndexFields.IndexOf(AField)>-1) or (ixDescending in Options); - if (CInsIndexFields.IndexOf(AField)>-1) then - DBCompareStruct[FieldNr].Options := [loCaseInsensitive] - else - DBCompareStruct[FieldNr].Options := []; - - end; + ProcessFieldsToCompareStruct(IndexFields, DescIndexFields, CInsIndexFields, Options, [], DBCompareStruct); finally CInsIndexFields.Free; DescIndexFields.Free; @@ -947,7 +936,7 @@ begin end; end; -// This simply copies the index... + // This simply copies the index... PCurRecLinkItem:=Index0.FFirstRecBuf; PCurRecLinkItem[DblLinkIndex.IndNr].next := PCurRecLinkItem[0].next; PCurRecLinkItem[DblLinkIndex.IndNr].prior := PCurRecLinkItem[0].prior; @@ -966,46 +955,43 @@ begin // Empty dataset Exit; -// Set FirstRecBuf and FCurrentRecBuf + // Set FirstRecBuf and FCurrentRecBuf DblLinkIndex.FFirstRecBuf:=Index0.FFirstRecBuf; DblLinkIndex.FCurrentRecBuf:=DblLinkIndex.FFirstRecBuf; -// Link in the FLastRecBuf that belongs to this index + // Link in the FLastRecBuf that belongs to this index PCurRecLinkItem[DblLinkIndex.IndNr].next:=DblLinkIndex.FLastRecBuf; DblLinkIndex.FLastRecBuf[DblLinkIndex.IndNr].prior:=PCurRecLinkItem; -// Mergesort. Used the algorithm as described here by Simon Tatham -// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html -// The comments in the code are from this website. + // Mergesort. Used the algorithm as described here by Simon Tatham + // http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html + // The comments in the code are from this website. -// In each pass, we are merging lists of size K into lists of size 2K. -// (Initially K equals 1.) + // In each pass, we are merging lists of size K into lists of size 2K. + // (Initially K equals 1.) k:=1; repeat -// So we start by pointing a temporary pointer p at the head of the list, -// and also preparing an empty list L which we will add elements to the end -// of as we finish dealing with them. - + // So we start by pointing a temporary pointer p at the head of the list, + // and also preparing an empty list L which we will add elements to the end + // of as we finish dealing with them. p := DblLinkIndex.FFirstRecBuf; DblLinkIndex.FFirstRecBuf := nil; q := p; MergeAmount := 0; -// Then: -// * If p is null, terminate this pass. + // Then: + // * If p is null, terminate this pass. while p <> DblLinkIndex.FLastRecBuf do begin -// * Otherwise, there is at least one element in the next pair of length-K -// lists, so increment the number of merges performed in this pass. - + // * Otherwise, there is at least one element in the next pair of length-K + // lists, so increment the number of merges performed in this pass. inc(MergeAmount); -// * Point another temporary pointer, q, at the same place as p. Step q along -// the list by K places, or until the end of the list, whichever comes -// first. Let psize be the number of elements you managed to step q past. - + // * Point another temporary pointer, q, at the same place as p. Step q along + // the list by K places, or until the end of the list, whichever comes + // first. Let psize be the number of elements you managed to step q past. i:=0; while (iDblLinkIndex.FLastRecBuf) do begin @@ -1014,23 +1000,21 @@ begin end; psize :=i; -// * Let qsize equal K. Now we need to merge a list starting at p, of length -// psize, with a list starting at q of length at most qsize. - + // * Let qsize equal K. Now we need to merge a list starting at p, of length + // psize, with a list starting at q of length at most qsize. qsize:=k; -// * So, as long as either the p-list is non-empty (psize > 0) or the q-list -// is non-empty (qsize > 0 and q points to something non-null): - + // * So, as long as either the p-list is non-empty (psize > 0) or the q-list + // is non-empty (qsize > 0 and q points to something non-null): while (psize>0) or ((qsize>0) and (q <> DblLinkIndex.FLastRecBuf)) do begin -// o Choose which list to take the next element from. If either list -// is empty, we must choose from the other one. (By assumption, at -// least one is non-empty at this point.) If both lists are -// non-empty, compare the first element of each and choose the lower -// one. If the first elements compare equal, choose from the p-list. -// (This ensures that any two elements which compare equal are never -// swapped, so stability is guaranteed.) + // * Choose which list to take the next element from. If either list + // is empty, we must choose from the other one. (By assumption, at + // least one is non-empty at this point.) If both lists are + // non-empty, compare the first element of each and choose the lower + // one. If the first elements compare equal, choose from the p-list. + // (This ensures that any two elements which compare equal are never + // swapped, so stability is guaranteed.) if (psize=0) then PlaceQRec := true else if (qsize=0) or (q = DblLinkIndex.FLastRecBuf) then @@ -1040,23 +1024,24 @@ begin else PlaceQRec := True; -// o Remove that element, e, from the start of its list, by advancing -// p or q to the next element along, and decrementing psize or qsize. -// o Add e to the end of the list L we are building up. + // * Remove that element, e, from the start of its list, by advancing + // p or q to the next element along, and decrementing psize or qsize. + // * Add e to the end of the list L we are building up. if PlaceQRec then PlaceNewRec(q,qsize) else PlaceNewRec(p,psize); end; -// * Now we have advanced p until it is where q started out, and we have -// advanced q until it is pointing at the next pair of length-K lists to -// merge. So set p to the value of q, and go back to the start of this loop. + + // * Now we have advanced p until it is where q started out, and we have + // advanced q until it is pointing at the next pair of length-K lists to + // merge. So set p to the value of q, and go back to the start of this loop. p:=q; end; -// As soon as a pass like this is performed and only needs to do one merge, the -// algorithm terminates, and the output list L is sorted. Otherwise, double the -// value of K, and go back to the beginning. + // As soon as a pass like this is performed and only needs to do one merge, the + // algorithm terminates, and the output list L is sorted. Otherwise, double the + // value of K, and go back to the beginning. l[DblLinkIndex.IndNr].next:=DblLinkIndex.FLastRecBuf; @@ -1067,6 +1052,22 @@ begin DblLinkIndex.FLastRecBuf[DblLinkIndex.IndNr].prior:=l; end; +procedure TCustomBufDataset.BuildIndexes; +var i: integer; +begin + for i:=1 to FIndexesCount-1 do + if (i<>1) or (FIndexes[i]=FCurrentIndex) then + BuildIndex(FIndexes[i]); +end; + +procedure TCustomBufDataset.RemoveRecordFromIndexes(const ABookmark: TBufBookmark); +var i: integer; +begin + for i:=0 to FIndexesCount-1 do + if (i<>1) or (FIndexes[i]=FCurrentIndex) then + FIndexes[i].RemoveRecordFromIndex(ABookmark); +end; + function TCustomBufDataset.GetIndexDefs : TIndexDefs; begin @@ -1087,22 +1088,28 @@ begin end; end; -Function TCustomBufDataset.GetCanModify: Boolean; +function TCustomBufDataset.GetCanModify: Boolean; begin Result:=not (UniDirectional or ReadOnly); end; +function TCustomBufDataset.BufferOffset: integer; +begin + // Returns the offset of data buffer in bufdataset record + Result := sizeof(TBufRecLinkItem) * FMaxIndexesCount; +end; + function TCustomBufDataset.IntAllocRecordBuffer: TRecordBuffer; begin // Note: Only the internal buffers of TDataset provide bookmark information - result := AllocMem(FRecordsize+sizeof(TBufRecLinkItem)*FMaxIndexesCount); + result := AllocMem(FRecordSize+BufferOffset); end; function TCustomBufDataset.AllocRecordBuffer: TRecordBuffer; begin - result := AllocMem(FRecordsize + BookmarkSize + CalcfieldsSize); -// The records are initialised, or else the fields of an empty, just-opened dataset -// are not null + result := AllocMem(FRecordSize + BookmarkSize + CalcFieldsSize); + // The records are initialised, or else the fields of an empty, just-opened dataset + // are not null InitRecord(result); end; @@ -1128,30 +1135,35 @@ begin begin FFileStream := TFileStream.Create(FileName,fmOpenRead); FDatasetReader := GetPacketReader(dfAny, FFileStream); + end; + if assigned(FDatasetReader) then + begin FReadFromFile := True; + IntLoadFielddefsFromFile; end; - if assigned(FDatasetReader) then IntLoadFielddefsFromFile; // This is to check if the dataset is actually created (By calling CreateDataset, // reading from a stream in some other way implemented by a descendent) // If there are less fields then FieldDefs we know for sure that the dataset // is not (correctly) created. - // commented for now. If there are constant expressions in the select - // statement they are ftunknown, and not created. + // If there are constant expressions in the select statement (for PostgreSQL) + // they are of type ftUnknown (in FieldDefs), and are not created (in Fields). + // So Fields.Count < FieldDefs.Count in this case // See mantis #22030 // if Fields.Count-1) and (fields[i] is TAutoIncField) and not assigned(FAutoIncField) then - FAutoIncField := TAutoIncField(fields[i]); + else if (FAutoIncValue>-1) and (Fields[i] is TAutoIncField) and not assigned(FAutoIncField) then + FAutoIncField := TAutoIncField(Fields[i]); InitDefaultIndexes; CalcRecordSize; @@ -1166,12 +1178,7 @@ begin FOpen:=True; // parse filter expression - try - ParseFilter(Filter); - except - // oops, a problem with parsing, clear filter for now - on E: Exception do Filter := EmptyStr; - end; + ParseFilter(Filter); if assigned(FDatasetReader) then IntLoadRecordsFromFile; end; @@ -1233,11 +1240,9 @@ end; procedure TCustomBufDataset.InternalFirst; begin with FCurrentIndex do - begin -// if FCurrentRecBuf = FLastRecBuf then the dataset is just opened and empty -// in which case InternalFirst should do nothing (bug 7211) + // if FCurrentRecBuf = FLastRecBuf then the dataset is just opened and empty + // in which case InternalFirst should do nothing (bug 7211) SetToFirstRecord; - end; end; procedure TCustomBufDataset.InternalLast; @@ -1247,11 +1252,6 @@ begin SetToLastRecord; end; -function TDoubleLinkedBufIndex.GetCurrentRecord: TRecordBuffer; -begin - Result := TRecordBuffer(FCurrentRecBuf); -end; - function TDoubleLinkedBufIndex.GetBookmarkSize: integer; begin Result:=sizeof(TBufBookmark); @@ -1259,7 +1259,12 @@ end; function TDoubleLinkedBufIndex.GetCurrentBuffer: Pointer; begin - Result := pointer(FCurrentRecBuf)+(sizeof(TBufRecLinkItem)*FDataset.MaxIndexesCount); + Result := pointer(FCurrentRecBuf) + FDataset.BufferOffset; +end; + +function TDoubleLinkedBufIndex.GetCurrentRecord: TRecordBuffer; +begin + Result := TRecordBuffer(FCurrentRecBuf); end; function TDoubleLinkedBufIndex.GetIsInitialized: boolean; @@ -1269,7 +1274,7 @@ end; function TDoubleLinkedBufIndex.GetSpareBuffer: TRecordBuffer; begin - Result := pointer(FLastRecBuf)+(sizeof(TBufRecLinkItem)*FDataset.MaxIndexesCount); + Result := pointer(FLastRecBuf) + FDataset.BufferOffset; end; function TDoubleLinkedBufIndex.GetSpareRecord: TRecordBuffer; @@ -1388,7 +1393,7 @@ end; procedure TDoubleLinkedBufIndex.InitialiseIndex; begin -// Do nothing + // Do nothing end; function TDoubleLinkedBufIndex.CanScrollForward: Boolean; @@ -1413,21 +1418,6 @@ begin FFirstRecBuf:= nil; end; -procedure TDoubleLinkedBufIndex.RemoveRecordFromIndex(const ABookmark : TBufBookmark); -var ARecord : PBufRecLinkItem; -begin - ARecord := ABookmark.BookmarkData; - if ARecord = FCurrentRecBuf then DoScrollForward; - if ARecord <> FFirstRecBuf then - ARecord[IndNr].prior[IndNr].next := ARecord[IndNr].next - else - begin - FFirstRecBuf := ARecord[IndNr].next; - FLastRecBuf[IndNr].next := FFirstRecBuf; - end; - ARecord[IndNr].next[IndNr].prior := ARecord[IndNr].prior; -end; - function TDoubleLinkedBufIndex.GetRecNo(const ABookmark: PBufBookmark): integer; Var TmpRecBuffer : PBufRecLinkItem; recnr : integer; @@ -1477,6 +1467,52 @@ begin ANewRecord[IndNr].next[IndNr].prior:=ANewRecord; end; +procedure TDoubleLinkedBufIndex.RemoveRecordFromIndex(const ABookmark : TBufBookmark); +var ARecord : PBufRecLinkItem; +begin + ARecord := ABookmark.BookmarkData; + if ARecord = FCurrentRecBuf then DoScrollForward; + if ARecord <> FFirstRecBuf then + ARecord[IndNr].prior[IndNr].next := ARecord[IndNr].next + else + begin + FFirstRecBuf := ARecord[IndNr].next; + FLastRecBuf[IndNr].next := FFirstRecBuf; + end; + ARecord[IndNr].next[IndNr].prior := ARecord[IndNr].prior; +end; + +procedure TDoubleLinkedBufIndex.OrderCurrentRecord; +var ARecord: PBufRecLinkItem; + ABookmark: TBufBookmark; +begin + // all records except current are already sorted + // check prior records + ARecord := FCurrentRecBuf; + repeat + ARecord := ARecord[IndNr].prior; + until not assigned(ARecord) or (IndexCompareRecords(ARecord, FCurrentRecBuf, DBCompareStruct) <= 0); + if assigned(ARecord) then + ARecord := ARecord[IndNr].next + else + ARecord := FFirstRecBuf; + if ARecord = FCurrentRecBuf then + begin + // prior record is less equal than current + // check next records + repeat + ARecord := ARecord[IndNr].next; + until (ARecord=FLastRecBuf) or (IndexCompareRecords(ARecord, FCurrentRecBuf, DBCompareStruct) >= 0); + if ARecord = FCurrentRecBuf[IndNr].next then + Exit; // current record is on proper position + end; + StoreCurrentRecIntoBookmark(@ABookmark); + RemoveRecordFromIndex(ABookmark); + FCurrentRecBuf := ARecord; + InsertRecordBeforeCurrentRecord(TRecordBuffer(ABookmark.BookmarkData)); + GotoBookmark(@ABookmark); +end; + procedure TDoubleLinkedBufIndex.EndUpdate; begin FLastRecBuf[IndNr].next := FFirstRecBuf; @@ -1509,18 +1545,6 @@ begin end; end; -procedure TCustomBufDataset.InitDefaultIndexes; -begin - if FIndexesCount=0 then - begin - InternalAddIndex('DEFAULT_ORDER','',[],'',''); - FCurrentIndex:=FIndexes[0]; - if not IsUniDirectional then - InternalAddIndex('','',[],'',''); - BookmarkSize := FCurrentIndex.BookmarkSize; - end; -end; - procedure TCustomBufDataset.SetReadOnly(AValue: Boolean); begin FReadOnly:=AValue; @@ -1589,34 +1613,123 @@ begin result := GetRecordUpdateBufferCached(ABookmark); end; -procedure TCustomBufDataset.ProcessFieldCompareStruct(AField: TField; var ACompareRec : TDBCompareRec); -begin - case AField.DataType of - ftString, ftFixedChar : ACompareRec.Comparefunc := @DBCompareText; - ftWideString, ftFixedWideChar: ACompareRec.Comparefunc := @DBCompareWideText; - ftSmallint : ACompareRec.Comparefunc := @DBCompareSmallInt; - ftInteger, ftBCD, ftAutoInc : ACompareRec.Comparefunc := - @DBCompareInt; - ftWord : ACompareRec.Comparefunc := @DBCompareWord; - ftBoolean : ACompareRec.Comparefunc := @DBCompareByte; - ftFloat, ftCurrency : ACompareRec.Comparefunc := @DBCompareDouble; - ftDateTime, ftDate, ftTime : ACompareRec.Comparefunc := - @DBCompareDouble; - ftLargeint : ACompareRec.Comparefunc := @DBCompareLargeInt; - ftFmtBCD : ACompareRec.Comparefunc := @DBCompareBCD; +procedure TCustomBufDataset.ProcessFieldsToCompareStruct(const AFields, ADescFields, ACInsFields: TList; + const AIndexOptions: TIndexOptions; const ALocateOptions: TLocateOptions; out ACompareStruct: TDBCompareStruct); +var i: integer; + AField: TField; + ACompareRec: TDBCompareRec; +begin + SetLength(ACompareStruct, AFields.Count); + for i:=0 to high(ACompareStruct) do + begin + AField := TField(AFields[i]); + + case AField.DataType of + ftString, ftFixedChar : ACompareRec.Comparefunc := @DBCompareText; + ftWideString, ftFixedWideChar: ACompareRec.Comparefunc := @DBCompareWideText; + ftSmallint : ACompareRec.Comparefunc := @DBCompareSmallInt; + ftInteger, ftBCD, ftAutoInc : ACompareRec.Comparefunc := + @DBCompareInt; + ftWord : ACompareRec.Comparefunc := @DBCompareWord; + ftBoolean : ACompareRec.Comparefunc := @DBCompareByte; + ftFloat, ftCurrency : ACompareRec.Comparefunc := @DBCompareDouble; + ftDateTime, ftDate, ftTime : ACompareRec.Comparefunc := + @DBCompareDouble; + ftLargeint : ACompareRec.Comparefunc := @DBCompareLargeInt; + ftFmtBCD : ACompareRec.Comparefunc := @DBCompareBCD; + else + DatabaseErrorFmt(SErrIndexBasedOnInvField, [AField.FieldName,Fieldtypenames[AField.DataType]]); + end; + + ACompareRec.Off1:=BufferOffset + FFieldBufPositions[AField.FieldNo-1]; + ACompareRec.Off2:=ACompareRec.Off1; + + ACompareRec.FieldInd1:=AField.FieldNo-1; + ACompareRec.FieldInd2:=ACompareRec.FieldInd1; + + ACompareRec.NullBOff1:=BufferOffset; + ACompareRec.NullBOff2:=ACompareRec.NullBOff1; + + ACompareRec.Desc := ixDescending in AIndexOptions; + if assigned(ADescFields) then + ACompareRec.Desc := ACompareRec.Desc or (ADescFields.IndexOf(AField)>-1); + + ACompareRec.Options := ALocateOptions; + if assigned(ACInsFields) and (ACInsFields.IndexOf(AField)>-1) then + ACompareRec.Options := ACompareRec.Options + [loCaseInsensitive]; + + ACompareStruct[i] := ACompareRec; + end; +end; + +procedure TCustomBufDataset.InitDefaultIndexes; +begin + if FIndexesCount=0 then + begin + InternalAddIndex('DEFAULT_ORDER','',[],'',''); + FCurrentIndex:=FIndexes[0]; + if not IsUniDirectional then + InternalAddIndex('','',[],'',''); + BookmarkSize := FCurrentIndex.BookmarkSize; + end; +end; + +procedure TCustomBufDataset.AddIndex(const AName, AFields : string; AOptions : TIndexOptions; const ADescFields: string = ''; + const ACaseInsFields: string = ''); +begin + CheckBiDirectional; + if AFields='' then DatabaseError(SNoIndexFieldNameGiven); + + if FIndexesCount=0 then + InitDefaultIndexes; + + if Active and (FIndexesCount=FMaxIndexesCount) then + DatabaseError(SMaxIndexes); + + // If not all packets are fetched, you can not sort properly. + if not Active then + FPacketRecords:=-1; + InternalAddIndex(AName,AFields,AOptions,ADescFields,ACaseInsFields); +end; + +procedure TCustomBufDataset.InternalAddIndex(const AName, AFields : string; AOptions : TIndexOptions; const ADescFields: string; + const ACaseInsFields: string); +var StoreIndNr : Integer; +begin + if Active then FetchAll; + if FIndexesCount>0 then + StoreIndNr:=FCurrentIndex.IndNr else - DatabaseErrorFmt(SErrIndexBasedOnInvField, [AField.FieldName,Fieldtypenames[AField.DataType]]); - end; + StoreIndNr:=0; + inc(FIndexesCount); + setlength(FIndexes,FIndexesCount); // This invalidates the currentindex! -> not anymore + FCurrentIndex:=FIndexes[StoreIndNr]; - ACompareRec.Off1:=sizeof(TBufRecLinkItem)*FMaxIndexesCount+ - FFieldBufPositions[AField.FieldNo-1]; - ACompareRec.Off2:=ACompareRec.Off1; + if IsUniDirectional then + FIndexes[FIndexesCount-1] := TUniDirectionalBufIndex.Create(self) + else + FIndexes[FIndexesCount-1] := TDoubleLinkedBufIndex.Create(self); +// FIndexes[FIndexesCount-1] := TArrayBufIndex.Create(self); + with FIndexes[FIndexesCount-1] do + begin + InitialiseIndex; + IndNr:=FIndexesCount-1; + Name:=AName; + FieldsName:=AFields; + DescFields:=ADescFields; + CaseinsFields:=ACaseInsFields; + Options:=AOptions; + end; - ACompareRec.FieldInd1:=AField.FieldNo-1; - ACompareRec.FieldInd2:=ACompareRec.FieldInd1; + if Active then + begin + FIndexes[FIndexesCount-1].InitialiseSpareRecord(IntAllocRecordBuffer); + BuildIndex(FIndexes[FIndexesCount-1]); + end + else if FIndexesCount>FMaxIndexesCount then + FMaxIndexesCount := FIndexesCount; - ACompareRec.NullBOff1:=sizeof(TBufRecLinkItem)*MaxIndexesCount; - ACompareRec.NullBOff2:=ACompareRec.NullBOff1; + FIndexDefs.Updated:=false; end; procedure TCustomBufDataset.SetIndexFieldNames(const AValue: String); @@ -1627,12 +1740,13 @@ begin InitDefaultIndexes; FIndexes[1].FieldsName:=AValue; FCurrentIndex:=FIndexes[1]; - if active then + if Active then begin FetchAll; BuildIndex(FIndexes[1]); Resync([rmCenter]); end; + FIndexDefs.Updated:=false; end else SetIndexName(''); @@ -1647,7 +1761,7 @@ begin begin (FIndexes[i] as TDoubleLinkedBufIndex).FCurrentRecBuf:=(FCurrentIndex as TDoubleLinkedBufIndex).FCurrentRecBuf; FCurrentIndex:=FIndexes[i]; - if active then Resync([rmCenter]); + if Active then Resync([rmCenter]); exit; end; end; @@ -1709,7 +1823,7 @@ begin i := 0; pb := FIndexes[0].SpareBuffer; - while ((i < FPacketRecords) or (FPacketRecords = -1)) and (loadbuffer(pb) = grOk) do + while ((i < FPacketRecords) or (FPacketRecords = -1)) and (LoadBuffer(pb) = grOk) do begin with FIndexes[0] do begin @@ -1792,11 +1906,15 @@ end; function TCustomBufDataset.GetRecordUpdateBufferCached(const ABookmark: TBufBookmark; IncludePrior: boolean): boolean; begin - // if the current update buffer complies, immediately return true + // if the current update buffer matches, immediately return true if (FCurrentUpdateBuffer < length(FUpdateBuffer)) and ( FCurrentIndex.CompareBookmarks(@FUpdateBuffer[FCurrentUpdateBuffer].BookmarkData,@ABookmark) or - (IncludePrior and (FUpdateBuffer[FCurrentUpdateBuffer].UpdateKind=ukDelete) and FCurrentIndex.CompareBookmarks(@FUpdateBuffer[FCurrentUpdateBuffer].NextBookmarkData,@ABookmark))) then - Result := True + (IncludePrior + and (FUpdateBuffer[FCurrentUpdateBuffer].UpdateKind=ukDelete) + and FCurrentIndex.CompareBookmarks(@FUpdateBuffer[FCurrentUpdateBuffer].NextBookmarkData,@ABookmark))) then + begin + Result := True; + end else Result := GetRecordUpdateBuffer(ABookmark,IncludePrior); end; @@ -1805,7 +1923,7 @@ function TCustomBufDataset.LoadBuffer(Buffer : TRecordBuffer): TGetResult; var NullMask : pbyte; x : longint; - CreateblobField : boolean; + CreateBlobField : boolean; BufBlob : PBufBlobField; begin @@ -1815,11 +1933,7 @@ begin FAllPacketsFetched := True; // This code has to be placed elsewhere. At least it should also run when // the datapacket is loaded from file ... see IntLoadRecordsFromFile - if FIndexesCount>0 then for x := 1 to FIndexesCount-1 do - begin - if not ((x=1) and (FIndexes[1].FieldsName='')) then - BuildIndex(FIndexes[x]); - end; + BuildIndexes; Exit; end; @@ -1829,9 +1943,9 @@ begin for x := 0 to FieldDefs.count-1 do begin - if not LoadField(FieldDefs[x],buffer,CreateblobField) then + if not LoadField(FieldDefs[x],buffer,CreateBlobField) then SetFieldIsNull(NullMask,x) - else if CreateblobField then + else if CreateBlobField then begin BufBlob := PBufBlobField(Buffer); BufBlob^.BlobBuffer := GetNewBlobBuffer; @@ -1845,7 +1959,7 @@ end; function TCustomBufDataset.GetCurrentBuffer: TRecordBuffer; begin if State = dsFilter then Result := FFilterBuffer - else if state = dsCalcFields then Result := CalcBuffer + else if State = dsCalcFields then Result := CalcBuffer else Result := ActiveBuffer; end; @@ -1954,15 +2068,12 @@ begin // Remove the record from all active indexes FCurrentIndex.StoreCurrentRecIntoBookmark(@RemRecBookmrk); RemRec := FCurrentIndex.CurrentBuffer; - for i := 0 to FIndexesCount-1 do - if (i<>1) or (FIndexes[i]=FCurrentIndex) then - FIndexes[i].RemoveRecordFromIndex(RemRecBookmrk); + RemoveRecordFromIndexes(RemRecBookmrk); if not GetActiveRecordUpdateBuffer then begin FCurrentUpdateBuffer := length(FUpdateBuffer); SetLength(FUpdateBuffer,FCurrentUpdateBuffer+1); - FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := IntAllocRecordBuffer; move(RemRec^, FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer^,FRecordSize); end @@ -1971,11 +2082,11 @@ begin if FUpdateBuffer[FCurrentUpdateBuffer].UpdateKind <> ukModify then begin FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := nil; //this 'disables' the updatebuffer - // Do NOT release record buffer (pointed by RemRecBookmrk.BookmarkData) here - // - When record is inserted and deleted(and memory released) and again inserted then same memory block can be returned - // which leads to confusion, because we get same BookmarkData for distinct records - // - In CancelUpdates when records are restored it is expected, that deleted records still exists in memory - // There also could be record(s) in update-buffer, linked to this record. + // Do NOT release record buffer (pointed to by RemRecBookmrk.BookmarkData) here + // - When record is inserted and deleted (and memory released) and again inserted then the same memory block can be returned + // which leads to confusion, because we get the same BookmarkData for distinct records + // - In CancelUpdates when records are restored, it is expected that deleted records still exist in memory + // There also could be record(s) in the update buffer that is linked to this record. end; end; FCurrentIndex.StoreCurrentRecIntoBookmark(@FUpdateBuffer[FCurrentUpdateBuffer].NextBookmarkData); @@ -1999,39 +2110,44 @@ var StoreRecBM : TBufBookmark; StoreUpdBuf : integer; Bm : TBufBookmark; begin - with AUpdBuffer do if assigned(BookmarkData.BookmarkData) then // this is used to exclude buffers which are already handled + with AUpdBuffer do begin - if (UpdateKind = ukModify) then + if Not assigned(BookmarkData.BookmarkData) then + exit;// this is used to exclude buffers which are already handled + Case UpdateKind of + ukModify: begin FCurrentIndex.GotoBookmark(@BookmarkData); move(TRecordBuffer(OldValuesBuffer)^,TRecordBuffer(FCurrentIndex.CurrentBuffer)^,FRecordSize); FreeRecordBuffer(OldValuesBuffer); - end - else if (UpdateKind = ukDelete) and (assigned(OldValuesBuffer)) then - begin - FCurrentIndex.GotoBookmark(@NextBookmarkData); - FCurrentIndex.InsertRecordBeforeCurrentRecord(TRecordBuffer(BookmarkData.BookmarkData)); - FCurrentIndex.ScrollBackward; - move(TRecordBuffer(OldValuesBuffer)^,TRecordBuffer(FCurrentIndex.CurrentBuffer)^,FRecordSize); - -{ for x := length(FUpdateBuffer)-1 downto 0 do + end; + ukDelete: + if (assigned(OldValuesBuffer)) then begin - if (FUpdateBuffer[x].UpdateKind=ukDelete) and FCurrentIndex.CompareBookmarks(@FUpdateBuffer[x].NextBookmarkData,@BookmarkData) then - CancelUpdBuffer(FUpdateBuffer[x]); - end;} - FreeRecordBuffer(OldValuesBuffer); - inc(FBRecordCount); - end - else if (UpdateKind = ukInsert) then + FCurrentIndex.GotoBookmark(@NextBookmarkData); + FCurrentIndex.InsertRecordBeforeCurrentRecord(TRecordBuffer(BookmarkData.BookmarkData)); + FCurrentIndex.ScrollBackward; + move(TRecordBuffer(OldValuesBuffer)^,TRecordBuffer(FCurrentIndex.CurrentBuffer)^,FRecordSize); + + {for x := length(FUpdateBuffer)-1 downto 0 do + begin + if (FUpdateBuffer[x].UpdateKind=ukDelete) and FCurrentIndex.CompareBookmarks(@FUpdateBuffer[x].NextBookmarkData,@BookmarkData) then + CancelUpdBuffer(FUpdateBuffer[x]); + end;} + FreeRecordBuffer(OldValuesBuffer); + inc(FBRecordCount); + end ; + ukInsert: begin - // Process all upd-buffers linked to this record before this record is removed + // Process all update buffers linked to this record before this record is removed StoreUpdBuf:=FCurrentUpdateBuffer; Bm := BookmarkData; BookmarkData.BookmarkData:=nil; // Avoid infinite recursion... if GetRecordUpdateBuffer(Bm,True,False) then begin repeat - if (FCurrentUpdateBuffer<>StoreUpdBuf) then CancelUpdBuffer(FUpdateBuffer[FCurrentUpdateBuffer]); + if (FCurrentUpdateBuffer<>StoreUpdBuf) then + CancelUpdBuffer(FUpdateBuffer[FCurrentUpdateBuffer]); until not GetRecordUpdateBuffer(Bm,True,True); end; FCurrentUpdateBuffer:=StoreUpdBuf; @@ -2047,10 +2163,11 @@ var StoreRecBM : TBufBookmark; ScrollLast; // last record will be removed from index, so move to spare record StoreCurrentRecIntoBookmark(@StoreRecBM); end; - FCurrentIndex.RemoveRecordFromIndex(Bm); + RemoveRecordFromIndexes(Bm); FreeRecordBuffer(TmpBuf); dec(FBRecordCount); end; + end; BookmarkData.BookmarkData:=nil; end; end; @@ -2080,7 +2197,7 @@ begin FOnUpdateError := AValue; end; -procedure TCustomBufDataset.ApplyUpdates; // For backwards-compatibility +procedure TCustomBufDataset.ApplyUpdates; // For backward compatibility begin ApplyUpdates(0); @@ -2119,7 +2236,7 @@ begin on E: EDatabaseError do begin Inc(FailedCount); - if failedcount > word(MaxErrors) then Response := rrAbort + if FailedCount > word(MaxErrors) then Response := rrAbort else Response := rrSkip; if assigned(FOnUpdateError) then begin @@ -2146,7 +2263,7 @@ begin inc(r); end; finally - if failedcount = 0 then + if FailedCount = 0 then MergeChangeLog; InternalGotoBookmark(@StoreCurrRec); @@ -2160,25 +2277,27 @@ procedure TCustomBufDataset.MergeChangeLog; var r : Integer; begin + for r:=0 to length(FUpdateBuffer)-1 do + if assigned(FUpdateBuffer[r].OldValuesBuffer) then + FreeMem(FUpdateBuffer[r].OldValuesBuffer); SetLength(FUpdateBuffer,0); if assigned(FUpdateBlobBuffers) then for r:=0 to length(FUpdateBlobBuffers)-1 do - if assigned(FUpdateBlobBuffers[r]) then - begin - if FUpdateBlobBuffers[r]^.OrgBufID >= 0 then + if assigned(FUpdateBlobBuffers[r]) then begin - Freemem(FBlobBuffers[FUpdateBlobBuffers[r]^.OrgBufID]^.Buffer); - Dispose(FBlobBuffers[FUpdateBlobBuffers[r]^.OrgBufID]); - FBlobBuffers[FUpdateBlobBuffers[r]^.OrgBufID] :=FUpdateBlobBuffers[r]; - end - else - begin - setlength(FBlobBuffers,length(FBlobBuffers)+1); - FUpdateBlobBuffers[r]^.OrgBufID := high(FBlobBuffers); - FBlobBuffers[high(FBlobBuffers)] := FUpdateBlobBuffers[r]; - + // update blob buffer is already referenced from record buffer (see InternalPost) + if FUpdateBlobBuffers[r]^.OrgBufID >= 0 then + begin + FreeBlobBuffer(FBlobBuffers[FUpdateBlobBuffers[r]^.OrgBufID]); + FBlobBuffers[FUpdateBlobBuffers[r]^.OrgBufID] := FUpdateBlobBuffers[r]; + end + else + begin + setlength(FBlobBuffers,length(FBlobBuffers)+1); + FUpdateBlobBuffers[r]^.OrgBufID := high(FBlobBuffers); + FBlobBuffers[high(FBlobBuffers)] := FUpdateBlobBuffers[r]; + end; end; - end; SetLength(FUpdateBlobBuffers,0); end; @@ -2189,12 +2308,8 @@ Var i : integer; begin if assigned(FUpdateBlobBuffers) then for i:=0 to length(FUpdateBlobBuffers)-1 do - if assigned(FUpdateBlobBuffers[i]) and (FUpdateBlobBuffers[i]^.FieldNo>0) then - begin - Reallocmem(FUpdateBlobBuffers[i]^.Buffer,0); - Dispose(FUpdateBlobBuffers[i]); - FUpdateBlobBuffers[i] := nil; - end; + if assigned(FUpdateBlobBuffers[i]) and (FUpdateBlobBuffers[i]^.FieldNo>0) then + FreeBlobBuffer(FUpdateBlobBuffers[i]); end; procedure TCustomBufDataset.InternalPost; @@ -2203,8 +2318,6 @@ Var ABuff : TRecordBuffer; i : integer; blobbuf : tbufblobfield; NullMask : pbyte; - li : longint; - StoreReadOnly: boolean; ABookmark : PBufBookmark; begin @@ -2227,19 +2340,9 @@ begin begin if assigned(FAutoIncField) then begin - li := FAutoIncValue; - // In principle all TAutoIncfields are read-only, but in theory it is - // possible to set readonly to false. - StoreReadOnly:=FAutoIncField.ReadOnly; - FAutoIncField.ReadOnly:=false; - try - FAutoIncField.SetData(@li); - finally - FAutoIncField.ReadOnly:=FAutoIncField.ReadOnly; - end; + FAutoIncField.AsInteger := FAutoIncValue; inc(FAutoIncValue); end; - // The active buffer is the newly created TDataset record, // from which the bookmark is set to the record where the new record should be // inserted @@ -2259,23 +2362,19 @@ begin FIndexes[i].GotoBookmark(ABookmark); FIndexes[i].InsertRecordBeforeCurrentRecord(ABuff); - // new inserted record becomes current record + // newly inserted record becomes current record FIndexes[i].ScrollBackward; end; // Link the newly created record buffer to the newly created TDataset record - with ABookmark^ do - begin - FCurrentIndex.StoreCurrentRecIntoBookmark(@BookmarkData); - BookmarkFlag := bfInserted; - end; + FCurrentIndex.StoreCurrentRecIntoBookmark(ABookmark); + ABookmark^.BookmarkFlag := bfInserted; inc(FBRecordCount); end else InternalSetToRecord(ActiveBuffer); - // If there is no updatebuffer already, add one if not GetActiveRecordUpdateBuffer then begin @@ -2286,7 +2385,7 @@ begin // Store a bookmark of the current record into the updatebuffer's bookmark FCurrentIndex.StoreCurrentRecIntoBookmark(@FUpdateBuffer[FCurrentUpdateBuffer].BookmarkData); - if state = dsEdit then + if State = dsEdit then begin // Create an oldvalues buffer with the old values of the record FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := IntAllocRecordBuffer; @@ -2303,6 +2402,11 @@ begin end; move(ActiveBuffer^,FCurrentIndex.CurrentBuffer^,FRecordSize); + + // new data are now in current record so reorder current record if needed + for i := 1 to FIndexesCount-1 do + if (i<>1) or (FIndexes[i]=FCurrentIndex) then + FIndexes[i].OrderCurrentRecord; end; procedure TCustomBufDataset.CalcRecordSize; @@ -2390,7 +2494,7 @@ var TmpRecBuffer : PBufRecLinkItem; begin - checkbrowsemode; + CheckBrowseMode; if value > RecordCount then begin repeat until (getnextpacket < FPacketRecords) or (value <= RecordCount) or (FPacketRecords = -1); @@ -2413,7 +2517,7 @@ Var abuf : TRecordBuffer; begin abuf := GetCurrentBuffer; // If abuf isn't assigned, the recordset probably isn't opened. - if assigned(abuf) and (FBRecordCount>0) and (state <> dsInsert) then + if assigned(abuf) and (FBRecordCount>0) and (State <> dsInsert) then Result:=FCurrentIndex.GetRecNo(PBufBookmark(abuf+FRecordSize)) else result := 0; @@ -2425,13 +2529,13 @@ begin Result := FOpen; end; -Function TCustomBufDataset.GetRecordCount: Longint; +function TCustomBufDataset.GetRecordCount: Longint; begin Result := FBRecordCount; end; -Function TCustomBufDataset.UpdateStatus: TUpdateStatus; +function TCustomBufDataset.UpdateStatus: TUpdateStatus; begin Result:=usUnmodified; @@ -2451,7 +2555,7 @@ begin setlength(FBlobBuffers,length(FBlobBuffers)+1); new(ABlobBuffer); fillbyte(ABlobBuffer^,sizeof(ABlobBuffer^),0); - ABlobBuffer^.OrgBufID := high(FUpdateBlobBuffers); + ABlobBuffer^.OrgBufID := high(FBlobBuffers); FBlobBuffers[high(FBlobBuffers)] := ABlobBuffer; result := ABlobBuffer; end; @@ -2483,7 +2587,7 @@ begin Case Origin of soFromBeginning : FPosition:=Offset; soFromEnd : FPosition:=FBlobBuffer^.Size+Offset; - soFromCurrent : FpoSition:=FPosition+Offset; + soFromCurrent : FPosition:=FPosition+Offset; end; Result:=FPosition; end; @@ -2521,24 +2625,24 @@ var bufblob : TBufBlobField; begin FDataset := Field.DataSet as TCustomBufDataset; - if mode = bmread then + if Mode = bmRead then begin - if not field.getData(@bufblob) then + if not Field.GetData(@bufblob) then DatabaseError(SFieldIsNull); if not assigned(bufblob.BlobBuffer) then with FDataSet do begin FBlobBuffer := GetNewBlobBuffer; bufblob.BlobBuffer := FBlobBuffer; - LoadBlobIntoBuffer(FieldDefs[field.FieldNo-1],@bufblob); + LoadBlobIntoBuffer(FieldDefs[Field.FieldNo-1],@bufblob); end else FBlobBuffer := bufblob.BlobBuffer; end - else if mode=bmWrite then with FDataSet as TCustomBufDataset do + else if Mode=bmWrite then with FDataSet as TCustomBufDataset do begin FBlobBuffer := GetNewWriteBlobBuffer; FBlobBuffer^.FieldNo := Field.FieldNo; - if (field.getData(@bufblob)) and assigned(bufblob.BlobBuffer) then + if (Field.GetData(@bufblob)) and assigned(bufblob.BlobBuffer) then FBlobBuffer^.OrgBufID := bufblob.BlobBuffer^.OrgBufID else FBlobBuffer^.OrgBufID := -1; @@ -2551,59 +2655,25 @@ var bufblob : TBufBlobField; begin result := nil; - if mode=bmread then + if Mode = bmRead then begin - if not field.getData(@bufblob) then + if not Field.GetData(@bufblob) then exit; - result := TBufBlobStream.Create(Field as tblobfield,bmread); + result := TBufBlobStream.Create(Field as TBlobField, bmRead); end - else if mode=bmWrite then + else if Mode = bmWrite then begin - if not (state in [dsEdit, dsInsert, dsFilter, dsCalcFields]) then - begin + if not (State in [dsEdit, dsInsert, dsFilter, dsCalcFields]) then DatabaseErrorFmt(SNotEditing,[Name],self); - exit; - end; - result := TBufBlobStream.Create(Field as tblobfield,bmWrite); + result := TBufBlobStream.Create(Field as TBlobField, bmWrite); if not (State in [dsCalcFields, dsFilter, dsNewValue]) then DataEvent(deFieldChange, Ptrint(Field)); end; end; -procedure TCustomBufDataset.AddIndex(const AName, AFields : string; AOptions : TIndexOptions; const ADescFields: string = ''; - const ACaseInsFields: string = ''); -begin - CheckBiDirectional; - if AFields='' then DatabaseError(SNoIndexFieldNameGiven); - - if FIndexesCount=0 then - InitDefaultIndexes; - - if active and (FIndexesCount=FMaxIndexesCount) then - DatabaseError(SMaxIndexes); - - // If not all packets are fetched, you can not sort properly. - if not active then - FPacketRecords:=-1; - InternalAddIndex(AName,AFields,AOptions,ADescFields,ACaseInsFields); -end; - -procedure TCustomBufDataset.SaveToFile(AFileName: string; - Format: TDataPacketFormat); -var AFileStream : TFileStream; -begin - if AFileName='' then AFileName := FFileName; - AFileStream := TFileStream.Create(AFileName,fmCreate); - try - SaveToStream(AFileStream, Format); - finally - AFileStream.Free; - end; -end; - procedure TCustomBufDataset.SetDatasetPacket(AReader: TDataPacketReader); begin FDatasetReader := AReader; @@ -2642,7 +2712,7 @@ procedure TCustomBufDataset.GetDatasetPacket(AWriter: TDataPacketReader); ARowState := [rsvInserted]; FFilterBuffer:=AUpdBuffer.OldValuesBuffer; - // If the record is inserted or inserted and afterwards deleted then OldValuesBuffer is nil + // OldValuesBuffer is nil if the record is either inserted or inserted and then deleted if assigned(FFilterBuffer) then FDatasetReader.StoreRecord(Self,AThisRowState,FCurrentUpdateBuffer); end; @@ -2679,7 +2749,7 @@ var ScrollResult : TGetResult; begin FDatasetReader := AWriter; try - //CheckActive; + // CheckActive; ABookMark:=@ATBookmark; FDatasetReader.StoreFieldDefs(FieldDefs,FAutoIncValue); @@ -2703,7 +2773,7 @@ begin ScrollResult := FCurrentIndex.ScrollForward; end; end; - // There could be a update-buffer linked to the last (spare) record + // There could be an update buffer linked to the last (spare) record FCurrentIndex.StoreSpareRecIntoBookmark(ABookmark); HandleUpdateBuffersFromRecord(True,ABookmark^,RowState); @@ -2757,31 +2827,43 @@ begin end; end; -procedure TCustomBufDataset.CreateDataset; -var AStoreFilename: string; +procedure TCustomBufDataset.SaveToFile(AFileName: string; + Format: TDataPacketFormat); +var AFileStream : TFileStream; +begin + if AFileName='' then AFileName := FFileName; + AFileStream := TFileStream.Create(AFileName,fmCreate); + try + SaveToStream(AFileStream, Format); + finally + AFileStream.Free; + end; +end; +procedure TCustomBufDataset.CreateDataset; +var AStoreFileName: string; begin CheckInactive; if ((FieldCount=0) or (FieldDefs.Count=0)) then begin if (FieldDefs.Count>0) then CreateFields - else if (fields.Count>0) then + else if (Fields.Count>0) then begin - InitFieldDefsFromfields; + InitFieldDefsFromFields; BindFields(True); end else raise Exception.Create(SErrNoFieldsDefined); FAutoIncValue:=1; end; - // When a filename is set, do not read from this file - AStoreFilename:=FFileName; + // When a FileName is set, do not read from this file + AStoreFileName:=FFileName; FFileName := ''; try Open; finally - FFileName:=AStoreFilename; + FFileName:=AStoreFileName; end; end; @@ -2867,6 +2949,7 @@ begin FFilterBuffer:=IntAllocRecordBuffer; fillchar(FFilterBuffer^,FNullmaskSize,0); + FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := FFilterBuffer; FDatasetReader.RestoreRecord(self); @@ -2918,46 +3001,7 @@ begin end; // rebuild indexes - for x:=1 to FIndexesCount-1 do - if (x<>1) or (FIndexes[x]=FCurrentIndex) then - BuildIndex(FIndexes[x]); -end; - -procedure TCustomBufDataset.InternalAddIndex(const AName, AFields : string; AOptions : TIndexOptions; const ADescFields: string; - const ACaseInsFields: string); -var StoreIndNr : Integer; -begin - if Active then FetchAll; - if FIndexesCount>0 then - StoreIndNr:=FCurrentIndex.IndNr - else - StoreIndNr:=0; - inc(FIndexesCount); - setlength(FIndexes,FIndexesCount); // This invalidates the currentindex! -> not anymore - FCurrentIndex:=FIndexes[StoreIndNr]; - if IsUniDirectional then - FIndexes[FIndexesCount-1] := TUniDirectionalBufIndex.Create(self) - else - FIndexes[FIndexesCount-1] := TDoubleLinkedBufIndex.Create(self); -// FIndexes[FIndexesCount-1] := TArrayBufIndex.Create(self); - FIndexes[FIndexesCount-1].InitialiseIndex; - with (FIndexes[FIndexesCount-1] as TBufIndex) do - begin - Name:=AName; - FieldsName:=AFields; - DescFields:=ADescFields; - CaseinsFields:=ACaseInsFields; - Options:=AOptions; - IndNr:=FIndexesCount-1; - end; - - if Active then - begin - FIndexes[FIndexesCount-1].InitialiseSpareRecord(IntAllocRecordBuffer); - BuildIndex(FIndexes[FIndexesCount-1]); - end - else if FIndexesCount>FMaxIndexesCount then - FMaxIndexesCount := FIndexesCount; + BuildIndexes; end; procedure TCustomBufDataset.DoFilterRecord(out Acceptable: Boolean); @@ -3056,7 +3100,7 @@ begin begin FParser := TBufDatasetParser.Create(Self); end; - // have a parser now? + // is there a parser now? if FParser <> nil then begin // set options @@ -3068,46 +3112,14 @@ begin end; end; -function TArrayBufIndex.GetRecordFromBookmark(ABookMark: TBufBookmark) : integer; -begin - // ABookmark.BookMarkBuf is nil if SetRecNo calls GotoBookmark - if (ABookmark.BookmarkData<>nil) and (FRecordArray[ABookmark.BookmarkInt]<>ABookmark.BookmarkData) then - begin - // Start searching two records before the expected record - if ABookmark.BookmarkInt > 2 then - Result := ABookmark.BookmarkInt-2 - else - Result := 0; - - while (Result (FCurrentIndex as TDoubleLinkedBufIndex).FLastRecBuf) do begin - if (IndexCompareRecords(FilterBuffer,CurrLinkItem,DBCompareStruct) = 0) then + if (IndexCompareRecords(FilterRecord,CurrLinkItem,DBCompareStruct) = 0) then begin if Filtered then begin - FFilterBuffer:=pointer(CurrLinkItem)+(sizeof(TBufRecLinkItem)*MaxIndexesCount); - // The dataset-state is still dsFilter at this point, so we don't have to set it. + FFilterBuffer:=pointer(CurrLinkItem)+BufferOffset; + // The dataset state is still dsFilter at this point, so we don't have to set it. DoFilterRecord(FiltAcceptable); if FiltAcceptable then begin @@ -3169,7 +3174,7 @@ begin end; RestoreState(StoreDSState); - FreeRecordBuffer(FilterBuffer); + FreeRecordBuffer(FilterRecord); // If a match is found, jump to the found record if Result then @@ -3191,7 +3196,7 @@ begin try if Locate(KeyFields,KeyValues,[]) then begin -// CalculateFields(ActiveBuffer); // not needed, done by Locate more than once + // CalculateFields(ActiveBuffer); // not needed, done by Locate more than once result:=FieldValues[ResultFields]; end; GotoBookmark(bm); @@ -3293,8 +3298,8 @@ end; procedure TArrayBufIndex.SetToFirstRecord; begin -// if FCurrentRecBuf = FLastRecBuf then the dataset is just opened and empty -// in which case InternalFirst should do nothing (bug 7211) + // if FCurrentRecBuf = FLastRecBuf then the dataset is just opened and empty + // in which case InternalFirst should do nothing (bug 7211) if FCurrentRecInd <> FLastRecInd then FCurrentRecInd := -1; end; @@ -3343,6 +3348,36 @@ begin end; end; +function TArrayBufIndex.GetRecordFromBookmark(ABookMark: TBufBookmark) : integer; +begin + // ABookmark.BookMarkBuf is nil if SetRecNo calls GotoBookmark + if (ABookmark.BookmarkData<>nil) and (FRecordArray[ABookmark.BookmarkInt]<>ABookmark.BookmarkData) then + begin + // Start searching two records before the expected record + if ABookmark.BookmarkInt > 2 then + Result := ABookmark.BookmarkInt-2 + else + Result := 0; + + while (Result0 do - TDatasource(Items[Count - 1]).DataSet:=Nil; + TDataSource(Items[Count - 1]).DataSet:=Nil; Free; end; for i := 0 to FBufferCount do @@ -139,15 +139,16 @@ var OldState: TDatasetState; begin FCalcBuffer := Buffer; - if not IsUniDirectional and (FState <> dsInternalCalc) then + if FState <> dsInternalCalc then begin OldState := FState; FState := dsCalcFields; try ClearCalcFields(FCalcBuffer); - for i := 0 to FFieldList.Count - 1 do - if FFieldList[i].FieldKind = fkLookup then - FFieldList[i].CalcLookupValue; + if not IsUniDirectional then + for i := 0 to FFieldList.Count - 1 do + if FFieldList[i].FieldKind = fkLookup then + FFieldList[i].CalcLookupValue; finally DoOnCalcFields; FState := OldState; @@ -173,7 +174,7 @@ Procedure TDataset.ClearBuffers; begin FRecordCount:=0; - FactiveRecord:=0; + FActiveRecord:=0; FCurrentRecord:=-1; FBOF:=True; FEOF:=True; @@ -407,10 +408,10 @@ begin {$ifdef dsdebug} Writeln ('Calling RecalcBufListSize'); {$endif} - FRecordcount := 0; + FRecordCount := 0; RecalcBufListSize; - FBOF:=True; - FEOF := (FRecordcount = 0); + FBOF := True; + FEOF := (FRecordCount = 0); end; Procedure TDataset.DoOnCalcFields; @@ -758,18 +759,18 @@ begin Writeln ('Getting next record. Internal RecordCount : ',FRecordCount); {$endif} If FRecordCount>0 Then SetCurrentRecord(FRecordCount-1); - Result:=GetRecord(FBuffers[FBuffercount],gmNext,True)=grOK; + Result:=GetRecord(FBuffers[FBufferCount],gmNext,True)=grOK; if result then begin If FRecordCount=0 then ActivateBuffers; - if FRecordcount=FBuffercount then - shiftbuffersbackward + if FRecordCount=FBufferCount then + ShiftBuffersBackward else begin inc(FRecordCount); FCurrentRecord:=FRecordCount - 1; - ExchangeBuffers(Fbuffers[FCurrentRecord],FBuffers[FBuffercount]); + ExchangeBuffers(FBuffers[FCurrentRecord],FBuffers[FBufferCount]); end; end else @@ -801,13 +802,13 @@ begin {$endif} CheckBiDirectional; If FRecordCount>0 Then SetCurrentRecord(0); - Result:=GetRecord(FBuffers[FBuffercount],gmPrior,True)=grOK; + Result:=GetRecord(FBuffers[FBufferCount],gmPrior,True)=grOK; if result then begin If FRecordCount=0 then ActivateBuffers; - shiftbuffersforward; + ShiftBuffersForward; - if FRecordcount -1) and (FActiveRecord>Value-1) then begin for i := 0 to (FActiveRecord-Value) do - shiftbuffersbackward; - FActiverecord := Value -1; + ShiftBuffersBackward; + FActiveRecord := Value -1; end; If Assigned(FBuffers) then @@ -1237,7 +1242,7 @@ begin FBufferCount:=Value; If Value=-1 then Value:=0; - if FRecordcount > Value then FRecordcount := Value; + if FRecordCount > Value then FRecordCount := Value; {$ifdef dsdebug} Writeln (' SetBufListSize: Final FBufferCount=',FBufferCount); {$endif} @@ -1456,11 +1461,11 @@ begin UpdateCursorPos; InternalCancel; FreeFieldBuffers; - if (state = dsInsert) and (FRecordcount = 1) then + if (State = dsInsert) and (FRecordCount = 1) then begin FEOF := true; FBOF := true; - FRecordcount := 0; + FRecordCount := 0; InitRecord(ActiveBuffer); SetState(dsBrowse); DataEvent(deDatasetChange,0); @@ -1468,7 +1473,7 @@ begin else begin SetState(dsBrowse); - SetCurrentRecord(FActiverecord); + SetCurrentRecord(FActiveRecord); resync([]); end; DoAfterCancel; @@ -1481,7 +1486,7 @@ begin CheckActive; DataEvent(deCheckBrowseMode,0); Case State of - dsedit,dsinsert: begin + dsEdit,dsInsert: begin UpdateRecord; If Modified then Post else Cancel; end; @@ -1543,7 +1548,7 @@ begin {$endif} DoBeforeDelete; DoBeforeScroll; - If Not TryDoing(@InternalDelete,OnPostError) then exit; + If Not TryDoing(@InternalDelete,OnDeleteError) then exit; {$ifdef dsdebug} writeln ('Delete: Internaldelete succeeded'); {$endif} @@ -1552,7 +1557,7 @@ begin {$ifdef dsdebug} writeln ('Delete: Browse mode set'); {$endif} - SetCurrentRecord(FActiverecord); + SetCurrentRecord(FActiveRecord); Resync([]); DoAfterDelete; DoAfterScroll; @@ -1585,20 +1590,20 @@ Procedure TDataset.DoInsertAppend(DoAppend : Boolean); begin // need to scroll up al buffers after current one, // but copy current bookmark to insert buffer. - If FRecordcount > 0 then + If FRecordCount > 0 then BookBeforeInsert:=Bookmark; if not DoAppend then begin if FRecordCount > 0 then begin - TempBuf := FBuffers[FBuffercount]; - move(FBuffers[FActiveRecord],FBuffers[FActiveRecord+1],(Fbuffercount-FActiveRecord)*sizeof(FBuffers[0])); + TempBuf := FBuffers[FBufferCount]; + move(FBuffers[FActiveRecord],FBuffers[FActiveRecord+1],(FBufferCount-FActiveRecord)*sizeof(FBuffers[0])); FBuffers[FActiveRecord]:=TempBuf; end; end - else if FRecordcount=FBuffercount then - shiftbuffersbackward + else if FRecordCount=FBufferCount then + ShiftBuffersBackward else begin if FRecordCount>0 then @@ -1620,7 +1625,7 @@ Procedure TDataset.DoInsertAppend(DoAppend : Boolean); // 1-apr-06, JvdS: It just sets the bookmark of the newly inserted record to the place // where the record should be inserted. So it is ok. - if FRecordcount > 0 then + if FRecordCount > 0 then SetBookMarkData(ActiveBuffer,pointer(BookBeforeInsert)); end; @@ -1663,7 +1668,7 @@ begin try DoOnNewRecord; except - SetCurrentRecord(FActiverecord); + SetCurrentRecord(FActiveRecord); resync([]); raise; end; @@ -1681,7 +1686,7 @@ end; Procedure TDataset.Edit; begin - If State in [dsedit,dsinsert] then exit; + If State in [dsEdit,dsInsert] then exit; CheckBrowseMode; If Not CanModify then DatabaseError(SDatasetReadOnly,Self); @@ -1693,7 +1698,7 @@ begin DoBeforeEdit; If Not TryDoing(@InternalEdit,OnEditError) then exit; GetCalcFields(ActiveBuffer); - SetState(dsedit); + SetState(dsEdit); DataEvent(deRecordChange,0); DoAfterEdit; end; @@ -1833,7 +1838,7 @@ begin FFieldList.GetFieldNames(List); end; -Procedure TDataset.GotoBookmark(ABookmark: TBookmark); +Procedure TDataset.GotoBookmark(const ABookmark: TBookmark); begin @@ -1863,7 +1868,7 @@ Function TDataset.IsEmpty: Boolean; begin Result:=(fBof and fEof) and - (not (state = dsinsert)); // After an insert on an empty dataset, both fBof and fEof are true + (not (State = dsInsert)); // After an insert on an empty dataset, both fBof and fEof are true end; Function TDataset.IsLinkedTo(ADataSource: TDataSource): Boolean; @@ -1909,8 +1914,7 @@ Function TDataset.MoveBy(Distance: Longint): Longint; Var TheResult: Integer; - Function Scrollforward : Integer; - + Function ScrollForward : Integer; begin Result:=0; {$ifdef dsdebug} @@ -1944,8 +1948,8 @@ Var end; end end; - Function ScrollBackward : Integer; + Function ScrollBackward : Integer; begin CheckBiDirectional; Result:=0; @@ -2073,15 +2077,15 @@ begin InternalRefresh; { SetCurrentRecord is called by UpdateCursorPos already, so as long as InternalRefresh doesn't do strange things this should be ok. } -// SetCurrentRecord(FActiverecord); +// SetCurrentRecord(FActiveRecord); Resync([]); DoAfterRefresh; end; -Procedure TDataset.RegisterDataSource(ADatasource : TDataSource); +Procedure TDataset.RegisterDataSource(ADataSource : TDataSource); begin - FDatasources.Add(ADataSource); + FDataSources.Add(ADataSource); RecalcBufListSize; end; @@ -2097,16 +2101,16 @@ begin {$endif} if FIsUnidirectional then Exit; // place the cursor of the underlying dataset to the active record -// SetCurrentRecord(FActiverecord); +// SetCurrentRecord(FActiveRecord); // Now look if the data on the current cursor of the underlying dataset is still available - If GetRecord(Fbuffers[0],gmcurrent,False)<>grOk Then + If GetRecord(FBuffers[0],gmCurrent,False)<>grOk Then // If that fails and rmExact is set, then raise an exception If rmExact in Mode then DatabaseError(SNoSuchRecord,Self) // else, if rmexact is not set, try to fetch the next or prior record in the underlying dataset - else if (GetRecord(Fbuffers[0],gmnext,True)<>grOk) and - (GetRecord(Fbuffers[0],gmprior,True)<>grOk) then + else if (GetRecord(FBuffers[0],gmNext,True)<>grOk) and + (GetRecord(FBuffers[0],gmPrior,True)<>grOk) then begin {$ifdef dsdebug} Writeln ('Resync: fuzzy resync'); @@ -2128,7 +2132,7 @@ begin else count := FActiveRecord; i := 0; - FRecordcount := 1; + FRecordCount := 1; FActiveRecord := 0; // Fill the buffers before the active record @@ -2138,7 +2142,7 @@ begin // Fill the rest of the buffer getnextrecords; // If the buffer is not full yet, try to fetch some more prior records - if FRecordcount < FBuffercount then inc(FActiverecord,getpriorrecords); + if FRecordCount < FBufferCount then inc(FActiveRecord,getpriorrecords); // That's all folks! DataEvent(deDatasetChange,0); end; @@ -2188,7 +2192,7 @@ begin Ev(Self,E,Retry); Case Retry of daFail : Raise; - daAbort : Result:=False; + daAbort : Abort; end; end; else @@ -2203,7 +2207,7 @@ Procedure TDataset.UpdateCursorPos; begin If FRecordCount>0 then - SetCurrentRecord(FactiveRecord); + SetCurrentRecord(FActiveRecord); end; Procedure TDataset.UpdateRecord; @@ -2243,8 +2247,8 @@ var TempBuf : pointer; begin TempBuf := FBuffers[0]; - move(FBuffers[1],FBuffers[0],(fbuffercount)*sizeof(FBuffers[0])); - FBuffers[buffercount]:=TempBuf; + move(FBuffers[1],FBuffers[0],(FBufferCount)*sizeof(FBuffers[0])); + FBuffers[BufferCount]:=TempBuf; end; Procedure TDataset.ShiftBuffersForward; @@ -2253,11 +2257,11 @@ var TempBuf : pointer; begin TempBuf := FBuffers[FBufferCount]; - move(FBuffers[0],FBuffers[1],(fbuffercount)*sizeof(FBuffers[0])); + move(FBuffers[0],FBuffers[1],(FBufferCount)*sizeof(FBuffers[0])); FBuffers[0]:=TempBuf; end; -function TDataset.GetFieldValues(const Fieldname: string): Variant; +function TDataset.GetFieldValues(const FieldName: string): Variant; var i: Integer; FieldList: TList; @@ -2295,7 +2299,7 @@ begin FieldByName(Fieldname).Value := Value; end; -Function TDataset.Locate(const keyfields: string; const keyvalues: Variant; options: TLocateOptions) : boolean; +Function TDataset.Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; begin CheckBiDirectional; @@ -2310,7 +2314,7 @@ begin end; -Procedure TDataset.UnRegisterDataSource(ADatasource : TDatasource); +Procedure TDataset.UnRegisterDataSource(ADataSource : TDataSource); begin FDataSources.Remove(ADataSource); diff --git a/fpcsrc/packages/fcl-db/src/base/datasource.inc b/fpcsrc/packages/fcl-db/src/base/datasource.inc index 81fbf5ca..d0414b75 100644 --- a/fpcsrc/packages/fcl-db/src/base/datasource.inc +++ b/fpcsrc/packages/fcl-db/src/base/datasource.inc @@ -429,7 +429,7 @@ begin end; { --------------------------------------------------------------------- - TMasterDataLink + TMasterParamsDataLink ---------------------------------------------------------------------} constructor TMasterParamsDataLink.Create(ADataSet: TDataSet); @@ -448,7 +448,7 @@ begin end; -Procedure TMasterParamsDataLink.SetParams(AVAlue : TParams); +Procedure TMasterParamsDataLink.SetParams(AValue : TParams); begin FParams:=AValue; diff --git a/fpcsrc/packages/fcl-db/src/base/db.pas b/fpcsrc/packages/fcl-db/src/base/db.pas index 2735c230..75a92a8f 100644 --- a/fpcsrc/packages/fcl-db/src/base/db.pas +++ b/fpcsrc/packages/fcl-db/src/base/db.pas @@ -72,8 +72,8 @@ type TFields = Class; TDataSet = class; TDataBase = Class; - TDatasource = Class; - TDatalink = Class; + TDataSource = Class; + TDataLink = Class; TDBTransaction = Class; { Exception classes } @@ -356,11 +356,11 @@ type procedure SetAsDateTime(AValue: TDateTime); virtual; procedure SetAsFloat(AValue: Double); virtual; procedure SetAsLongint(AValue: Longint); virtual; - procedure SetAsInteger(AValue: Integer); virtual; + procedure SetAsInteger(AValue: Longint); virtual; procedure SetAsLargeint(AValue: Largeint); virtual; procedure SetAsVariant(const AValue: variant); virtual; procedure SetAsString(const AValue: string); virtual; - procedure SetAsWideString(const aValue: WideString); virtual; + procedure SetAsWideString(const AValue: WideString); virtual; procedure SetDataset(AValue : TDataset); virtual; procedure SetDataType(AValue: TFieldType); procedure SetNewValue(const AValue: Variant); @@ -392,7 +392,7 @@ type property AsFloat: Double read GetAsFloat write SetAsFloat; property AsLongint: Longint read GetAsLongint write SetAsLongint; property AsLargeInt: LargeInt read GetAsLargeInt write SetAsLargeInt; - property AsInteger: Integer read GetAsInteger write SetAsInteger; + property AsInteger: Longint read GetAsInteger write SetAsInteger; property AsString: string read GetAsString write SetAsString; property AsWideString: WideString read GetAsWideString write SetAsWideString; property AsVariant: variant read GetAsVariant write SetAsVariant; @@ -458,7 +458,7 @@ type function GetAsBoolean: Boolean; override; function GetAsDateTime: TDateTime; override; function GetAsFloat: Double; override; - function GetAsLongint: Longint; override; + function GetAsInteger: Longint; override; function GetAsString: string; override; function GetAsVariant: variant; override; function GetDataSize: Integer; override; @@ -468,7 +468,7 @@ type procedure SetAsBoolean(AValue: Boolean); override; procedure SetAsDateTime(AValue: TDateTime); override; procedure SetAsFloat(AValue: Double); override; - procedure SetAsLongint(AValue: Longint); override; + procedure SetAsInteger(AValue: Longint); override; procedure SetAsString(const AValue: string); override; procedure SetVarValue(const AValue: Variant); override; public @@ -486,18 +486,18 @@ type TWideStringField = class(TStringField) protected - class procedure CheckTypeSize(aValue: Integer); override; + class procedure CheckTypeSize(AValue: Integer); override; - function GetValue(var aValue: WideString): Boolean; + function GetValue(var AValue: WideString): Boolean; function GetAsString: string; override; - procedure SetAsString(const aValue: string); override; + procedure SetAsString(const AValue: string); override; function GetAsVariant: Variant; override; - procedure SetVarValue(const aValue: Variant); override; + procedure SetVarValue(const AValue: Variant); override; function GetAsWideString: WideString; override; - procedure SetAsWideString(const aValue: WideString); override; + procedure SetAsWideString(const AValue: WideString); override; function GetDataSize: Integer; override; public @@ -534,27 +534,27 @@ type FMinValue, FMaxValue, FMinRange, - FMAxRange : Longint; + FMaxRange : Longint; Procedure SetMinValue (AValue : longint); Procedure SetMaxValue (AValue : longint); protected function GetAsFloat: Double; override; - function GetAsLongint: Longint; override; + function GetAsInteger: Longint; override; function GetAsString: string; override; function GetAsVariant: variant; override; function GetDataSize: Integer; override; procedure GetText(var AText: string; ADisplayText: Boolean); override; function GetValue(var AValue: Longint): Boolean; procedure SetAsFloat(AValue: Double); override; - procedure SetAsLongint(AValue: Longint); override; + procedure SetAsInteger(AValue: Longint); override; procedure SetAsString(const AValue: string); override; procedure SetVarValue(const AValue: Variant); override; function GetAsLargeint: Largeint; override; procedure SetAsLargeint(AValue: Largeint); override; public constructor Create(AOwner: TComponent); override; - Function CheckRange(AValue : longint) : Boolean; - property Value: Longint read GetAsLongint write SetAsLongint; + Function CheckRange(AValue : Longint) : Boolean; + property Value: Longint read GetAsInteger write SetAsInteger; published property MaxValue: Longint read FMaxValue write SetMaxValue default 0; property MinValue: Longint read FMinValue write SetMinValue default 0; @@ -568,12 +568,12 @@ type FMinValue, FMaxValue, FMinRange, - FMAxRange : Largeint; + FMaxRange : Largeint; Procedure SetMinValue (AValue : Largeint); Procedure SetMaxValue (AValue : Largeint); protected function GetAsFloat: Double; override; - function GetAsLongint: Longint; override; + function GetAsInteger: Longint; override; function GetAsLargeint: Largeint; override; function GetAsString: string; override; function GetAsVariant: variant; override; @@ -581,7 +581,7 @@ type procedure GetText(var AText: string; ADisplayText: Boolean); override; function GetValue(var AValue: Largeint): Boolean; procedure SetAsFloat(AValue: Double); override; - procedure SetAsLongint(AValue: Longint); override; + procedure SetAsInteger(AValue: Longint); override; procedure SetAsLargeint(AValue: Largeint); override; procedure SetAsString(const AValue: string); override; procedure SetVarValue(const AValue: Variant); override; @@ -616,7 +616,7 @@ type TAutoIncField = class(TLongintField) Protected - Procedure SetAsLongInt(AValue : Longint); override; + procedure SetAsInteger(AValue: Longint); override; public constructor Create(AOwner: TComponent); override; end; @@ -633,13 +633,15 @@ type procedure SetPrecision(const AValue: Longint); protected function GetAsFloat: Double; override; - function GetAsLongint: Longint; override; + function GetAsLargeInt: LargeInt; override; + function GetAsInteger: Longint; override; function GetAsVariant: variant; override; function GetAsString: string; override; function GetDataSize: Integer; override; procedure GetText(var theText: string; ADisplayText: Boolean); override; procedure SetAsFloat(AValue: Double); override; - procedure SetAsLongint(AValue: Longint); override; + procedure SetAsLargeInt(AValue: LargeInt); override; + procedure SetAsInteger(AValue: Longint); override; procedure SetAsString(const AValue: string); override; procedure SetVarValue(const AValue: Variant); override; public @@ -680,7 +682,7 @@ type function GetDefaultWidth: Longint; override; procedure SetAsBoolean(AValue: Boolean); override; procedure SetAsString(const AValue: string); override; - procedure SetAsInteger(AValue: Integer); override; + procedure SetAsInteger(AValue: Longint); override; procedure SetVarValue(const AValue: Variant); override; public constructor Create(AOwner: TComponent); override; @@ -739,6 +741,7 @@ type function GetAsString: string; override; function GetAsVariant: Variant; override; procedure GetText(var TheText: string; ADisplayText: Boolean); override; + function GetValue(var AValue: TBytes): Boolean; procedure SetAsBytes(const AValue: TBytes); override; procedure SetAsString(const AValue: string); override; procedure SetText(const AValue: string); override; @@ -777,17 +780,19 @@ type FCurrency : boolean; protected class procedure CheckTypeSize(AValue: Longint); override; + function GetAsBCD: TBCD; override; function GetAsCurrency: Currency; override; function GetAsFloat: Double; override; - function GetAsLongint: Longint; override; + function GetAsInteger: Longint; override; function GetAsString: string; override; function GetValue(var AValue: Currency): Boolean; function GetAsVariant: variant; override; function GetDataSize: Integer; override; function GetDefaultWidth: Longint; override; procedure GetText(var TheText: string; ADisplayText: Boolean); override; + procedure SetAsBCD(const AValue: TBCD); override; procedure SetAsFloat(AValue: Double); override; - procedure SetAsLongint(AValue: Longint); override; + procedure SetAsInteger(AValue: Longint); override; procedure SetAsString(const AValue: string); override; procedure SetAsCurrency(AValue: Currency); override; procedure SetVarValue(const AValue: Variant); override; @@ -820,7 +825,8 @@ type function GetAsBCD: TBCD; override; function GetAsCurrency: Currency; override; function GetAsFloat: Double; override; - function GetAsLongint: Longint; override; + function GetAsLargeInt: LargeInt; override; + function GetAsInteger: Longint; override; function GetAsString: string; override; function GetAsVariant: variant; override; function GetDataSize: Integer; override; @@ -828,7 +834,8 @@ type procedure GetText(var TheText: string; ADisplayText: Boolean); override; procedure SetAsBCD(const AValue: TBCD); override; procedure SetAsFloat(AValue: Double); override; - procedure SetAsLongint(AValue: Longint); override; + procedure SetAsLargeInt(AValue: LargeInt); override; + procedure SetAsInteger(AValue: Longint); override; procedure SetAsString(const AValue: string); override; procedure SetAsCurrency(AValue: Currency); override; procedure SetVarValue(const AValue: Variant); override; @@ -857,16 +864,18 @@ type Function GetBlobStream (Mode : TBlobStreamMode) : TStream; protected procedure FreeBuffers; override; + function GetAsBytes: TBytes; override; function GetAsString: string; override; function GetAsVariant: Variant; override; + function GetAsWideString: WideString; override; function GetBlobSize: Longint; virtual; function GetIsNull: Boolean; override; procedure GetText(var TheText: string; ADisplayText: Boolean); override; + procedure SetAsBytes(const AValue: TBytes); override; procedure SetAsString(const AValue: string); override; procedure SetText(const AValue: string); override; procedure SetVarValue(const AValue: Variant); override; - function GetAsWideString: WideString; override; - procedure SetAsWideString(const aValue: WideString); override; + procedure SetAsWideString(const AValue: WideString); override; public constructor Create(AOwner: TComponent); override; procedure Clear; override; @@ -890,7 +899,7 @@ type TMemoField = class(TBlobField) protected function GetAsWideString: WideString; override; - procedure SetAsWideString(const aValue: WideString); override; + procedure SetAsWideString(const AValue: WideString); override; public constructor Create(AOwner: TComponent); override; published @@ -905,7 +914,7 @@ type procedure SetVarValue(const AValue: Variant); override; function GetAsString: string; override; - procedure SetAsString(const aValue: string); override; + procedure SetAsString(const AValue: string); override; public constructor Create(aOwner: TComponent); override; property Value: WideString read GetAsWideString write SetAsWideString; @@ -936,7 +945,7 @@ type procedure SetAsFloat(aValue: Double); override; function GetAsInteger: Longint; override; - procedure SetAsInteger(aValue: Longint); override; + procedure SetAsInteger(AValue: Longint); override; function GetAsString: string; override; procedure SetAsString(const aValue: string); override; @@ -960,7 +969,7 @@ type function GetDefaultWidth: Longint; override; function GetAsGuid: TGUID; - procedure SetAsGuid(const aValue: TGUID); + procedure SetAsGuid(const AValue: TGUID); public constructor Create(AOwner: TComponent); override; property AsGuid: TGUID read GetAsGuid write SetAsGuid; @@ -1064,7 +1073,7 @@ type { TFields } - Tfields = Class(TObject) + TFields = Class(TObject) Private FDataset : TDataset; FFieldList : TFpList; @@ -1159,7 +1168,7 @@ type Procedure SetDataType(AValue: TFieldType); Procedure SetText(const AValue: string); function GetAsWideString: WideString; - procedure SetAsWideString(const aValue: WideString); + procedure SetAsWideString(const AValue: WideString); public constructor Create(ACollection: TCollection); overload; override; constructor Create(AParams: TParams; AParamType: TParamType); reintroduce; overload; @@ -1231,8 +1240,8 @@ type Function ParamByName(const Value: string): TParam; Function ParseSQL(SQL: String; DoCreate: Boolean): String; overload; Function ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle): String; overload; - Function ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle; var ParamBinding: TParambinding): String; overload; - Function ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle; var ParamBinding: TParambinding; var ReplaceString : string): String; overload; + Function ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle; out ParamBinding: TParambinding): String; overload; + Function ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle; out ParamBinding: TParambinding; out ReplaceString : string): String; overload; Procedure RemoveParam(Value: TParam); Procedure CopyParamValuesFromDataset(ADataset : TDataset; CopyBound : Boolean); Property Dataset : TDataset Read GetDataset; @@ -1242,8 +1251,8 @@ type { TDataSet } - TBookmark = Pointer; - TBookmarkStr = string deprecated 'TBookmarkStr will disappear in 2.6.3 in favour of TBookmark'; + TBookmark = Pointer; // will change to TBytes in 2.7.x and higher. + TBookmarkStr = string deprecated 'TBookmarkStr will disappear in 2.7.x and higher in favour of TBookmark'; PBookmarkFlag = ^TBookmarkFlag; TBookmarkFlag = (bfCurrent, bfBOF, bfEOF, bfInserted); @@ -1395,7 +1404,7 @@ type Procedure DoInternalOpen; Function GetBuffer (Index : longint) : TRecordBuffer; Function GetField (Index : Longint) : TField; - Procedure RegisterDataSource(ADatasource : TDataSource); + Procedure RegisterDataSource(ADataSource : TDataSource); Procedure RemoveField (Field : TField); procedure SetConstraints(Value: TCheckConstraints); Procedure SetField (Index : Longint;Value : TField); @@ -1403,7 +1412,7 @@ type Procedure ShiftBuffersBackward; Function TryDoing (P : TDataOperation; Ev : TDatasetErrorEvent) : Boolean; Function GetActive : boolean; - Procedure UnRegisterDataSource(ADatasource : TDatasource); + Procedure UnRegisterDataSource(ADataSource : TDataSource); Procedure UpdateFieldDefs; procedure SetBlockReadSize(AValue: Integer); virtual; Procedure SetFieldDefs(AFieldDefs: TFieldDefs); @@ -1590,14 +1599,14 @@ type function GetCurrentRecord(Buffer: TRecordBuffer): Boolean; virtual; procedure GetFieldList(List: TList; const FieldNames: string); procedure GetFieldNames(List: TStrings); - procedure GotoBookmark(ABookmark: TBookmark); + procedure GotoBookmark(const ABookmark: TBookmark); procedure Insert; procedure InsertRecord(const Values: array of const); function IsEmpty: Boolean; function IsLinkedTo(ADataSource: TDataSource): Boolean; function IsSequenced: Boolean; virtual; procedure Last; - function Locate(const keyfields: string; const keyvalues: Variant; options: TLocateOptions) : boolean; virtual; + function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; virtual; function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; virtual; function MoveBy(Distance: Longint): Longint; procedure Next; @@ -1756,6 +1765,22 @@ type property OnMasterDisable: TNotifyEvent read FOnMasterDisable write FOnMasterDisable; end; +{ TMasterParamsDataLink } + + TMasterParamsDataLink = Class(TMasterDataLink) + Private + FParams : TParams; + Procedure SetParams(AValue : TParams); + Protected + Procedure DoMasterDisable; override; + Procedure DoMasterChange; override; + Public + constructor Create(ADataSet: TDataSet); override; + Procedure RefreshParamNames; virtual; + Procedure CopyParamsFromMaster(CopyBound : Boolean); virtual; + Property Params : TParams Read FParams Write SetParams; + end; + { TDataSource } TDataChangeEvent = procedure(Sender: TObject; Field: TField) of object; @@ -1796,7 +1821,7 @@ type property OnUpdateData: TNotifyEvent read FOnUpdateData write FOnUpdateData; end; - { TDBDataset } + { TDBDataset } TDBDatasetClass = Class of TDBDataset; TDBDataset = Class(TDataset) @@ -1813,7 +1838,7 @@ type Property Transaction : TDBTransaction Read FTransaction Write SetTransaction; end; - { TDBTransaction } + { TDBTransaction } TDBTransactionClass = Class of TDBTransaction; TDBTransaction = Class(TComponent) @@ -1848,7 +1873,7 @@ type property Active : boolean read FActive write setactive; end; - { TCustomConnection } + { TCustomConnection } TLoginEvent = procedure(Sender: TObject; Username, Password: string) of object; @@ -1858,6 +1883,7 @@ type FAfterDisconnect: TNotifyEvent; FBeforeConnect: TNotifyEvent; FBeforeDisconnect: TNotifyEvent; + FForcedClose: Boolean; FLoginPrompt: Boolean; FOnLogin: TLoginEvent; FStreamedConnected: Boolean; @@ -1874,9 +1900,10 @@ type procedure InternalHandleException; virtual; procedure Loaded; override; procedure SetConnected (Value : boolean); virtual; + property ForcedClose : Boolean read FForcedClose write FForcedClose; property Streamedconnected: Boolean read FStreamedConnected write FStreamedConnected; public - procedure Close; + procedure Close(ForceClose: Boolean=False); destructor Destroy; override; procedure Open; property DataSetCount: Longint read GetDataSetCount; @@ -1947,20 +1974,6 @@ type end; - TMasterParamsDataLink = Class(TMasterDataLink) - Private - FParams : TParams; - Procedure SetParams(AVAlue : TParams); - Protected - Procedure DoMasterDisable; override; - Procedure DoMasterChange; override; - Public - constructor Create(ADataSet: TDataSet); override; - Procedure RefreshParamNames; virtual; - Procedure CopyParamsFromMaster(CopyBound : Boolean); virtual; - Property Params : TParams Read FParams Write SetParams; - end; - const FieldTypetoVariantMap : array[TFieldType] of Integer = (varError, varOleStr, varSmallint, varInteger, varSmallint, varBoolean, varDouble, varCurrency, varCurrency, diff --git a/fpcsrc/packages/fcl-db/src/base/dsparams.inc b/fpcsrc/packages/fcl-db/src/base/dsparams.inc index 72d16d07..59a04d42 100644 --- a/fpcsrc/packages/fcl-db/src/base/dsparams.inc +++ b/fpcsrc/packages/fcl-db/src/base/dsparams.inc @@ -181,7 +181,7 @@ begin Result := ParseSQL(SQL,DoCreate,EscapeSlash,EscapeRepeat,ParameterStyle,pb, rs); end; -Function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle; var ParamBinding: TParambinding): String; +Function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle; out ParamBinding: TParambinding): String; var rs : string; @@ -192,16 +192,12 @@ end; function SkipComments(var p: PChar; EscapeSlash, EscapeRepeat : Boolean) : Boolean; begin - result := false; + Result := False; case p^ of - '''': + '''', '"', '`': begin - SkipQuotesString(p,'''',EscapeSlash,EscapeRepeat); // single quote delimited string - Result := True; - end; - '"': - begin - SkipQuotesString(p,'"',EscapeSlash,EscapeRepeat); // double quote delimited string + // single quote, double quote or backtick delimited string + SkipQuotesString(p, p^, EscapeSlash, EscapeRepeat); Result := True; end; '-': // possible start of -- comment @@ -212,9 +208,9 @@ begin Result := True; repeat // skip until at end of line Inc(p); - until p^ in [#10, #0]; + until p^ in [#10, #13, #0]; + while p^ in [#10, #13] do Inc(p); // newline is part of comment end; - if p^<>#0 then Inc(p); // newline is part of comment end; '/': // possible start of /* */ comment begin @@ -236,7 +232,7 @@ begin end; {case} end; -Function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat: Boolean; ParameterStyle : TParamStyle; var ParamBinding: TParambinding; var ReplaceString : string): String; +Function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat: Boolean; ParameterStyle : TParamStyle; out ParamBinding: TParambinding; out ReplaceString : string): String; type // used for ParamPart @@ -268,7 +264,7 @@ begin ParamCount:=0; NewQueryLength:=Length(SQL); SetLength(ParamPart,ParamAllocStepSize); - SetLength(Parambinding,ParamAllocStepSize); + SetLength(ParamBinding,ParamAllocStepSize); QuestionMarkParamCount:=0; // number of ? params found in query so far ReplaceString := '$'; @@ -418,7 +414,7 @@ begin end else NewQuery:=SQL; - + Result := NewQuery; end; @@ -607,84 +603,84 @@ end; Procedure TParam.SetAsBlob(const AValue: TBlobData); begin - Value:=AValue; FDataType:=ftBlob; + Value:=AValue; end; Procedure TParam.SetAsBoolean(AValue: Boolean); begin - Value:=AValue; FDataType:=ftBoolean; + Value:=AValue; end; Procedure TParam.SetAsCurrency(const AValue: Currency); begin - Value:=Avalue; FDataType:=ftCurrency; + Value:=Avalue; end; Procedure TParam.SetAsDate(const AValue: TDateTime); begin - Value:=Avalue; FDataType:=ftDate; + Value:=Avalue; end; Procedure TParam.SetAsDateTime(const AValue: TDateTime); begin - Value:=AValue; FDataType:=ftDateTime; + Value:=AValue; end; Procedure TParam.SetAsFloat(const AValue: Double); begin - Value:=AValue; FDataType:=ftFloat; + Value:=AValue; end; Procedure TParam.SetAsInteger(AValue: Longint); begin - Value:=AValue; FDataType:=ftInteger; + Value:=AValue; end; Procedure TParam.SetAsLargeInt(AValue: LargeInt); begin - Value:=AValue; FDataType:=ftLargeint; + Value:=AValue; end; Procedure TParam.SetAsMemo(const AValue: string); begin - Value:=AValue; FDataType:=ftMemo; + Value:=AValue; end; Procedure TParam.SetAsSmallInt(AValue: LongInt); begin - Value:=AValue; FDataType:=ftSmallInt; + Value:=AValue; end; Procedure TParam.SetAsString(const AValue: string); begin - Value:=AValue; if FDataType <> ftFixedChar then FDataType := ftString; + Value:=AValue; end; procedure TParam.SetAsWideString(const aValue: WideString); begin - Value := aValue; if FDataType <> ftFixedWideChar then FDataType := ftWideString; + Value := aValue; end; Procedure TParam.SetAsTime(const AValue: TDateTime); begin - Value:=AValue; FDataType:=ftTime; + Value:=AValue; end; Procedure TParam.SetAsVariant(const AValue: Variant); @@ -720,14 +716,14 @@ end; Procedure TParam.SetAsWord(AValue: LongInt); begin - Value:=AValue; FDataType:=ftWord; + Value:=AValue; end; procedure TParam.SetAsFMTBCD(const AValue: TBCD); begin - FValue:=VarFmtBCDCreate(AValue); FDataType:=ftFMTBcd; + FValue:=VarFmtBCDCreate(AValue); end; Procedure TParam.SetDataType(AValue: TFieldType); @@ -1095,7 +1091,7 @@ Var I : Integer; P : TParam; F : TField; - + begin If (ADataSet<>Nil) then For I:=0 to Count-1 do diff --git a/fpcsrc/packages/fcl-db/src/base/fields.inc b/fpcsrc/packages/fcl-db/src/base/fields.inc index 50c24ec5..ddd817ef 100644 --- a/fpcsrc/packages/fcl-db/src/base/fields.inc +++ b/fpcsrc/packages/fcl-db/src/base/fields.inc @@ -448,22 +448,22 @@ end; function TField.GetAsLongint: Longint; begin - raise AccessError(SInteger); + Result:=GetAsInteger; end; -function TField.GetAsVariant: Variant; +function TField.GetAsInteger: Longint; begin - raise AccessError(SVariant); + raise AccessError(SInteger); end; - -function TField.GetAsInteger: Integer; +function TField.GetAsVariant: Variant; begin - Result:=GetAsLongint; + raise AccessError(SVariant); end; + function TField.GetAsString: string; begin @@ -648,7 +648,7 @@ procedure TField.SetAlignment(const AValue: TAlignMent); begin if FAlignment <> AValue then begin - FAlignment := Avalue; + FAlignment := AValue; PropertyChanged(false); end; end; @@ -797,13 +797,13 @@ end; procedure TField.SetAsLongint(AValue: Longint); begin - Raise AccessError(SInteger); + SetAsInteger(AValue); end; -procedure TField.SetAsInteger(AValue: Integer); +procedure TField.SetAsInteger(AValue: Longint); begin - SetAsLongint(AValue); + raise AccessError(SInteger); end; procedure TField.SetAsLargeint(AValue: Largeint); @@ -817,9 +817,9 @@ begin Raise AccessError(SString); end; -procedure TField.SetAsWideString(const aValue: WideString); +procedure TField.SetAsWideString(const AValue: WideString); begin - SetAsString(aValue); + SetAsString(AValue); end; @@ -953,9 +953,9 @@ end; procedure TField.SetDisplayLabel(const AValue: string); begin - if FDisplayLabel<>Avalue then + if FDisplayLabel<>AValue then begin - FDisplayLabel:=Avalue; + FDisplayLabel:=AValue; PropertyChanged(true); end; end; @@ -986,7 +986,7 @@ end; procedure TField.SetReadOnly(const AValue: Boolean); begin - if (FReadOnly<>Avalue) then + if (FReadOnly<>AValue) then begin FReadOnly:=AValue; PropertyChanged(True); @@ -995,7 +995,7 @@ end; procedure TField.SetVisible(const AValue: Boolean); begin - if FVisible<>Avalue then + if FVisible<>AValue then begin FVisible:=AValue; PropertyChanged(True); @@ -1055,7 +1055,7 @@ begin Result:=StrToFloat(GetAsString); end; -function TStringField.GetAsLongint: Longint; +function TStringField.GetAsInteger: Longint; begin Result:=StrToInt(GetAsString); @@ -1107,10 +1107,10 @@ begin if DataSize <= dsMaxStringSize then begin Result:=GetData(@Buf); - buf[Size]:=#0; //limit string to Size + Buf[Size]:=#0; //limit string to Size If Result then begin - if transliterate then + if Transliterate then begin DataSet.Translate(Buf,TBuf,False); AValue:=TBuf; @@ -1123,10 +1123,10 @@ begin begin SetLength(DynBuf,DataSize); Result:=GetData(@DynBuf[0]); - Dynbuf[Size]:=#0; //limit string to Size + DynBuf[Size]:=#0; //limit string to Size If Result then begin - if transliterate then + if Transliterate then begin SetLength(TDynBuf,DataSize); DataSet.Translate(@DynBuf[0],@TDynBuf[0],False); @@ -1159,7 +1159,7 @@ begin SetAsString(FloatToStr(AValue)); end; -procedure TStringField.SetAsLongint(AValue: Longint); +procedure TStringField.SetAsInteger(AValue: Longint); begin SetAsString(intToStr(AValue)); @@ -1168,28 +1168,35 @@ end; procedure TStringField.SetAsString(const AValue: string); var Buf : TStringFieldBuffer; + DynBuf : array of char; begin - IF Length(AValue)=0 then + if Length(AValue)=0 then begin Buf := #0; - SetData(@buf); + SetData(@Buf); end - else if FTransliterate then + else if DataSize <= dsMaxStringSize then begin - DataSet.Translate(@AValue[1],Buf,True); + if FTransliterate then + DataSet.Translate(@AValue[1],Buf,True) + else + // The data is copied into the buffer, since some TDataset descendents copy + // the whole buffer-length in SetData. (See bug 8477) + Buf := AValue; + // If length(AValue) > DataSize the buffer isn't terminated properly Buf[DataSize-1] := #0; - SetData(@buf); + SetData(@Buf); end else begin - // The data is copied into the buffer, since some TDataset descendents copy - // the whole buffer-length in SetData. (See bug 8477) - Buf := AValue; - // If length(AValue) > Datasize the buffer isn't terminated properly - Buf[DataSize-1] := #0; - SetData(@Buf); - end; + SetLength(DynBuf, DataSize); + if FTransliterate then + DataSet.Translate(@AValue[1],@DynBuf[0],True) + else + StrPLCopy(@DynBuf[0], AValue, DataSize); + SetData(@DynBuf[0]); + end end; procedure TStringField.SetVarValue(const AValue: Variant); @@ -1201,7 +1208,7 @@ end; TWideStringField ---------------------------------------------------------------------} -class procedure TWideStringField.CheckTypeSize(aValue: Integer); +class procedure TWideStringField.CheckTypeSize(AValue: Integer); begin // A size of 0 is allowed, since for example Firebird allows // a query like: 'select '' as fieldname from table' which @@ -1222,7 +1229,7 @@ begin SetDataType(AValue); end; -function TWideStringField.GetValue(var aValue: WideString): Boolean; +function TWideStringField.GetValue(var AValue: WideString): Boolean; var FixBuffer : array[0..dsMaxStringSize div 2] of WideChar; DynBuffer : array of WideChar; @@ -1231,14 +1238,14 @@ begin if DataSize <= dsMaxStringSize then begin Result := GetData(@FixBuffer, False); FixBuffer[Size]:=#0; //limit string to Size - aValue := FixBuffer; + AValue := FixBuffer; end else begin SetLength(DynBuffer, Succ(Size)); Buffer := PWideChar(DynBuffer); Result := GetData(Buffer, False); Buffer[Size]:=#0; //limit string to Size if Result then - aValue := Buffer; + AValue := Buffer; end; end; @@ -1247,9 +1254,9 @@ begin Result := GetAsWideString; end; -procedure TWideStringField.SetAsString(const aValue: string); +procedure TWideStringField.SetAsString(const AValue: string); begin - SetAsWideString(aValue); + SetAsWideString(AValue); end; function TWideStringField.GetAsVariant: Variant; @@ -1262,9 +1269,9 @@ begin Result := Null; end; -procedure TWideStringField.SetVarValue(const aValue: Variant); +procedure TWideStringField.SetVarValue(const AValue: Variant); begin - SetAsWideString(aValue); + SetAsWideString(AValue); end; function TWideStringField.GetAsWideString: WideString; @@ -1273,14 +1280,14 @@ begin Result := ''; end; -procedure TWideStringField.SetAsWideString(const aValue: WideString); +procedure TWideStringField.SetAsWideString(const AValue: WideString); const NullWideChar : WideChar = #0; var Buffer : PWideChar; begin - if Length(aValue)>0 then - Buffer := PWideChar(@aValue[1]) + if Length(AValue)>0 then + Buffer := PWideChar(@AValue[1]) else Buffer := @NullWideChar; SetData(Buffer, False); @@ -1333,9 +1340,9 @@ end; procedure TNumericField.SetEditFormat(const AValue: string); begin - If FEDitFormat<>AValue then + If FEditFormat<>AValue then begin - FEDitFormat:=AVAlue; + FEditFormat:=AValue; PropertyChanged(True); end; end; @@ -1347,11 +1354,8 @@ end; procedure TNumericField.SetAsBoolean(AValue: Boolean); begin - if AValue then - SetAsLongint(1) - else - SetAsLongint(0); -end; + SetAsInteger(ord(AValue)); +end; { --------------------------------------------------------------------- TLongintField @@ -1371,15 +1375,15 @@ end; function TLongintField.GetAsFloat: Double; begin - Result:=GetAsLongint; + Result:=GetAsInteger; end; function TLongintField.GetAsLargeint: Largeint; begin - Result:=GetAsLongint; + Result:=GetAsInteger; end; -function TLongintField.GetAsLongint: Longint; +function TLongintField.GetAsInteger: Longint; begin If Not GetValue(Result) then @@ -1442,16 +1446,16 @@ begin Result:=GetData(P); If Result then Case Datatype of - ftInteger,ftautoinc : AValue:=Plongint(P)^; - ftword : Avalue:=Pword(P)^; - ftsmallint : AValue:=PSmallint(P)^; + ftInteger,ftAutoinc : AValue:=Plongint(P)^; + ftWord : AValue:=Pword(P)^; + ftSmallint : AValue:=PSmallint(P)^; end; end; procedure TLongintField.SetAsLargeint(AValue: Largeint); begin if (AValue>=FMinRange) and (AValue<=FMaxRange) then - SetAsLongint(AValue) + SetAsInteger(AValue) else RangeError(AValue,FMinRange,FMaxRange); end; @@ -1459,21 +1463,21 @@ end; procedure TLongintField.SetAsFloat(AValue: Double); begin - SetAsLongint(Round(Avalue)); + SetAsInteger(Round(AValue)); end; -procedure TLongintField.SetAsLongint(AValue: Longint); +procedure TLongintField.SetAsInteger(AValue: Longint); begin If CheckRange(AValue) then SetData(@AValue) else - RangeError(Avalue,FMinrange,FMaxRange); + RangeError(AValue,FMinRange,FMaxRange); end; procedure TLongintField.SetVarValue(const AValue: Variant); begin - SetAsLongint(AValue); + SetAsInteger(AValue); end; procedure TLongintField.SetAsString(const AValue: string); @@ -1485,11 +1489,11 @@ begin Clear else begin - Val(AVAlue,L,Code); + Val(AValue,L,Code); If Code=0 then - SetAsLongint(L) + SetAsInteger(L) else - DatabaseErrorFMT(SNotAnInteger,[Avalue]); + DatabaseErrorFMT(SNotAnInteger,[AValue]); end; end; @@ -1569,7 +1573,7 @@ begin Result:=Null; end; -function TLargeintField.GetAsLongint: Longint; +function TLargeintField.GetAsInteger: Longint; begin Result:=GetAsLargeint; @@ -1625,7 +1629,7 @@ end; procedure TLargeintField.SetAsFloat(AValue: Double); begin - SetAsLargeint(Round(Avalue)); + SetAsLargeint(Round(AValue)); end; procedure TLargeintField.SetAsLargeint(AValue: Largeint); @@ -1634,13 +1638,13 @@ begin If CheckRange(AValue) then SetData(@AValue) else - RangeError(Avalue,FMinrange,FMaxRange); + RangeError(AValue,FMinRange,FMaxRange); end; -procedure TLargeintField.SetAsLongint(AValue: Longint); +procedure TLargeintField.SetAsInteger(AValue: Longint); begin - SetAsLargeint(Avalue); + SetAsLargeint(AValue); end; procedure TLargeintField.SetAsString(const AValue: string); @@ -1653,11 +1657,11 @@ begin Clear else begin - Val(AVAlue,L,Code); + Val(AValue,L,Code); If Code=0 then SetAsLargeint(L) else - DatabaseErrorFMT(SNotAnInteger,[Avalue]); + DatabaseErrorFMT(SNotAnInteger,[AValue]); end; end; @@ -1746,18 +1750,16 @@ constructor TAutoIncField.Create(AOwner: TComponent); begin Inherited Create(AOWner); SetDataType(ftAutoInc); - FReadOnly:=True; - FProviderFlags:=FProviderFlags-[pfInUpdate]; end; -Procedure TAutoIncField.SetAsLongint(AValue : Longint); +Procedure TAutoIncField.SetAsInteger(AValue: Longint); begin // Some databases allows insertion of explicit values into identity columns // (some of them also allows (some not) updating identity columns) // So allow it at client side and leave check for server side - if not(FDataSet.State in [dsFilter,dsSetKey,dsInsert]) then - DataBaseError(SCantSetAutoIncFields); + //if not(FDataSet.State in [dsFilter,dsSetKey,dsInsert]) then + // DataBaseError(SCantSetAutoIncFields); inherited; end; @@ -1795,7 +1797,12 @@ begin Result:=Null; end; -function TFloatField.GetAsLongint: Longint; +function TFloatField.GetAsLargeInt: LargeInt; +begin + Result:=Round(GetAsFloat); +end; + +function TFloatField.GetAsInteger: Longint; begin Result:=Round(GetAsFloat); @@ -1857,15 +1864,20 @@ procedure TFloatField.SetAsFloat(AValue: Double); begin If CheckRange(AValue) then - SetData(@Avalue) + SetData(@AValue) else RangeError(AValue,FMinValue,FMaxValue); end; -procedure TFloatField.SetAsLongint(AValue: Longint); +procedure TFloatField.SetAsLargeInt(AValue: LargeInt); +begin + SetAsFloat(AValue); +end; + +procedure TFloatField.SetAsInteger(AValue: Longint); begin - SetAsFloat(Avalue); + SetAsFloat(AValue); end; procedure TFloatField.SetAsString(const AValue: string); @@ -1886,7 +1898,7 @@ end; procedure TFloatField.SetVarValue(const AValue: Variant); begin - SetAsFloat(Avalue); + SetAsFloat(AValue); end; constructor TFloatField.Create(AOwner: TComponent); @@ -1901,8 +1913,8 @@ end; Function TFloatField.CheckRange(AValue : Double) : Boolean; begin - If (FMinValue<>0) or (FmaxValue<>0) then - Result:=(AValue>=FMinValue) and (AVAlue<=FMAxValue) + If (FMinValue<>0) or (FMaxValue<>0) then + Result:=(AValue>=FMinValue) and (AValue<=FMaxValue) else Result:=True; end; @@ -1925,7 +1937,7 @@ var b : wordbool; begin If GetData(@b) then - result := b + Result := b else Result:=False; end; @@ -1946,7 +1958,7 @@ function TBooleanField.GetAsString: string; Var B : wordbool; begin - If Getdata(@B) then + If GetData(@B) then Result:=FDisplays[False,B] else result:=''; @@ -1966,17 +1978,14 @@ begin Result:=Length(FDisplays[false,True]); end; -function TBooleanField.GetAsInteger: integer; +function TBooleanField.GetAsInteger: Longint; begin - if GetAsBoolean then - Result:=1 - else - Result:=0; + Result := ord(GetAsBoolean); end; -procedure TBooleanField.SetAsInteger(AValue: Integer); +procedure TBooleanField.SetAsInteger(AValue: Longint); begin - SetAsBoolean(avalue<>0); + SetAsBoolean(AValue<>0); end; procedure TBooleanField.SetAsBoolean(AValue: Boolean); @@ -2064,7 +2073,7 @@ function TDateTimeField.GetAsVariant: Variant; Var d : tDateTime; begin - If Getdata(@d,False) then + If GetData(@d,False) then Result := d else Result:=Null; @@ -2097,7 +2106,7 @@ Var R : TDateTime; F : String; begin - If Not Getdata(@R,False) then + If Not GetData(@R,False) then TheText:='' else begin @@ -2118,7 +2127,7 @@ end; procedure TDateTimeField.SetAsDateTime(AValue: TDateTime); begin - SetData(@Avalue,False); + SetData(@AValue,False); end; @@ -2136,7 +2145,7 @@ Var R : TDateTime; begin if AValue<>'' then begin - R:=StrToDateTime(AVAlue); + R:=StrToDateTime(AValue); SetData(@R,False); end else @@ -2178,7 +2187,7 @@ begin Clear // set to NULL else begin - R:=StrToTime(AVAlue); + R:=StrToTime(AValue); SetData(@R,False); end; end; @@ -2197,26 +2206,16 @@ begin end; function TBinaryField.GetAsBytes: TBytes; -var B: TBytes; begin - SetLength(B, DataSize); - if not assigned(B) or not GetData(Pointer(B), True) then - SetLength(Result, 0) - else if DataType = ftVarBytes then - begin - SetLength(Result, PWord(B)^); - Move(B[sizeof(Word)], Result[0], Length(Result)); - end - else // ftBytes - Result := B; + if not GetValue(Result) then + SetLength(Result, 0); end; function TBinaryField.GetAsString: string; var B: TBytes; begin - B := GetAsBytes; - if length(B) = 0 then + if not GetValue(B) then Result := '' else SetString(Result, @B[0], length(B) div SizeOf(Char)); @@ -2227,13 +2226,17 @@ function TBinaryField.GetAsVariant: Variant; var B: TBytes; P: Pointer; begin - B := GetAsBytes; - Result := VarArrayCreate([0, length(B)-1], varByte); - P := VarArrayLock(Result); - try - Move(B[0], P^, length(B)); - finally - VarArrayUnlock(Result); + if not GetValue(B) then + Result := Null + else + begin + Result := VarArrayCreate([0, length(B)-1], varByte); + P := VarArrayLock(Result); + try + Move(B[0], P^, length(B)); + finally + VarArrayUnlock(Result); + end; end; end; @@ -2245,6 +2248,22 @@ begin end; +function TBinaryField.GetValue(var AValue: TBytes): Boolean; +var B: TBytes; +begin + SetLength(B, DataSize); + Result := assigned(B) and GetData(Pointer(B), True); + if Result then + if DataType = ftVarBytes then + begin + SetLength(AValue, PWord(B)^); + Move(B[sizeof(Word)], AValue[0], Length(AValue)); + end + else // ftBytes + AValue := B; +end; + + procedure TBinaryField.SetAsBytes(const AValue: TBytes); var Buf: array[0..dsMaxStringSize] of byte; DynBuf: TBytes; @@ -2292,7 +2311,7 @@ end; procedure TBinaryField.SetText(const AValue: string); begin - SetAsString(Avalue); + SetAsString(AValue); end; procedure TBinaryField.SetVarValue(const AValue: Variant); @@ -2367,7 +2386,18 @@ class procedure TBCDField.CheckTypeSize(AValue: Longint); begin If not (AValue in [0..4]) then - DatabaseErrorfmt(SInvalidFieldSize,[Avalue]); + DatabaseErrorfmt(SInvalidFieldSize,[AValue]); +end; + +function TBCDField.GetAsBCD: TBCD; +Var + c:system.Currency; + +begin + If GetData(@c) then + Result:=CurrToBCD(c) + else + Result:=NullBCD; end; function TBCDField.GetAsCurrency: Currency; @@ -2395,7 +2425,7 @@ begin end; -function TBCDField.GetAsLongint: Longint; +function TBCDField.GetAsInteger: Longint; begin result := round(GetAsCurrency); @@ -2455,13 +2485,21 @@ begin TheText := ''; end; +procedure TBCDField.SetAsBCD(const AValue: TBCD); +var + c:system.currency; +begin + if BCDToCurr(AValue,c) then + SetAsCurrency(c); +end; + procedure TBCDField.SetAsCurrency(AValue: Currency); begin If CheckRange(AValue) then setdata(@AValue) else - RangeError(AValue,FMinValue,FMaxvalue); + RangeError(AValue,FMinValue,FMaxValue); end; procedure TBCDField.SetVarValue(const AValue: Variant); @@ -2472,8 +2510,8 @@ end; Function TBCDField.CheckRange(AValue : Currency) : Boolean; begin - If (FMinValue<>0) or (FmaxValue<>0) then - Result:=(AValue>=FMinValue) and (AVAlue<=FMaxValue) + If (FMinValue<>0) or (FMaxValue<>0) then + Result:=(AValue>=FMinValue) and (AValue<=FMaxValue) else Result:=True; end; @@ -2485,7 +2523,7 @@ begin end; -procedure TBCDField.SetAsLongint(AValue: Longint); +procedure TBCDField.SetAsInteger(AValue: Longint); begin SetAsCurrency(AValue); @@ -2505,8 +2543,8 @@ constructor TBCDField.Create(AOwner: TComponent); begin Inherited Create(AOwner); - FMaxvalue := 0; - FMinvalue := 0; + FMaxValue := 0; + FMinValue := 0; FValidChars := [DecimalSeparator, '+', '-', '0'..'9']; SetDataType(ftBCD); FPrecision := 15; @@ -2579,7 +2617,16 @@ begin Result := 0; end; -function TFMTBCDField.GetAsLongint: Longint; +function TFMTBCDField.GetAsLargeInt: LargeInt; +var bcd: TBCD; +begin + if GetData(@bcd) then + Result := BCDToInteger(bcd) + else + Result := 0; +end; + +function TFMTBCDField.GetAsInteger: Longint; begin Result := round(GetAsFloat); end; @@ -2604,8 +2651,7 @@ begin else fmt := FEditFormat; if fmt<>'' then - TheText := BCDToStr(bcd) - //TheText := FormatBCD(fmt,bcd) //uncomment when formatBCD in fmtbcd.pp will be implemented + TheText := FormatBCD(fmt,bcd) else if fCurrency then begin if aDisplayText then TheText := BcdToStrF(bcd, ffCurrency, FPrecision, 2) @@ -2670,12 +2716,15 @@ begin SetAsBCD(DoubleToBCD(AValue)); end; - -procedure TFMTBCDField.SetAsLongint(AValue: Longint); +procedure TFMTBCDField.SetAsLargeInt(AValue: LargeInt); begin SetAsBCD(IntegerToBCD(AValue)); end; +procedure TFMTBCDField.SetAsInteger(AValue: Longint); +begin + SetAsBCD(IntegerToBCD(AValue)); +end; procedure TFMTBCDField.SetAsString(const AValue: string); begin @@ -2688,7 +2737,7 @@ end; { TBlobField } -Function TBlobField.GetBlobStream(Mode : TBlobStreamMode) : TStream; +function TBlobField.GetBlobStream(Mode: TBlobStreamMode): TStream; begin Result:=FDataset.CreateBlobStream(Self,Mode); @@ -2699,6 +2748,24 @@ procedure TBlobField.FreeBuffers; begin end; +function TBlobField.GetAsBytes: TBytes; +var + Stream : TStream; + Len : Integer; +begin + Stream := GetBlobStream(bmRead); + if Stream <> nil then + try + Len := Stream.Size; + SetLength(Result, Len); + if Len > 0 then + Stream.ReadBuffer(Result[0], Len); + finally + Stream.Free; + end + else + SetLength(Result, 0); +end; function TBlobField.GetAsString: string; var @@ -2707,7 +2774,7 @@ var begin Stream := GetBlobStream(bmRead); if Stream <> nil then - With Stream do + with Stream do try Len := Size; SetLength(Result, Len); @@ -2727,10 +2794,10 @@ var begin Stream := GetBlobStream(bmRead); if Stream <> nil then - With Stream do + with Stream do try Len := Size; - SetLength(Result,Len div 2); + SetLength(Result, (Len+1) div 2); if Len > 0 then ReadBuffer(Result[1] ,Len); finally @@ -2750,7 +2817,8 @@ begin s := GetAsString; result := s; end - else result := Null; + else + result := Null; end; @@ -2758,29 +2826,29 @@ function TBlobField.GetBlobSize: Longint; var Stream: TStream; begin - Stream := GetBlobStream(bmread); + Stream := GetBlobStream(bmRead); if Stream <> nil then - With Stream do + with Stream do try Result:=Size; finally Free; end else - result := 0; + Result := 0; end; function TBlobField.GetIsNull: Boolean; begin - If Not Modified then - result:= inherited GetIsnull + if Not Modified then + Result:= inherited GetIsNull else - With GetBlobStream(bmread) do + with GetBlobStream(bmRead) do try Result:=(Size=0); - Finally + finally Free; end; end; @@ -2792,16 +2860,30 @@ begin TheText:=inherited GetAsString; end; +procedure TBlobField.SetAsBytes(const AValue: TBytes); +var + Len : Integer; +begin + with GetBlobStream(bmWrite) do + try + Len := Length(AValue); + if Len > 0 then + WriteBuffer(AValue[0], Len); + finally + Free; + end; +end; + procedure TBlobField.SetAsString(const AValue: string); var Len : Integer; begin - With GetBlobStream(bmwrite) do + with GetBlobStream(bmWrite) do try - Len := Length(Avalue); + Len := Length(AValue); if Len > 0 then - WriteBuffer(aValue[1], Len); + WriteBuffer(AValue[1], Len); finally Free; end; @@ -2812,11 +2894,11 @@ procedure TBlobField.SetAsWideString(const AValue: WideString); var Len : Integer; begin - With GetBlobStream(bmwrite) do + with GetBlobStream(bmWrite) do try - Len := Length(Avalue) * 2; + Len := Length(AValue) * 2; if Len > 0 then - WriteBuffer(aValue[1], Len); + WriteBuffer(AValue[1], Len); finally Free; end; @@ -2874,8 +2956,8 @@ end; procedure TBlobField.LoadFromStream(Stream: TStream); begin - With GetBlobStream(bmWrite) do - Try + with GetBlobStream(bmWrite) do + try CopyFrom(Stream,0); finally Free; @@ -2915,7 +2997,7 @@ procedure TBlobField.SetFieldType(AValue: TFieldType); begin If AValue in [Low(TBlobType)..High(TBlobType)] then - SetDatatype(Avalue); + SetDatatype(AValue); end; { TMemoField } @@ -2932,9 +3014,9 @@ begin Result := GetAsString; end; -procedure TMemoField.SetAsWideString(const aValue: WideString); +procedure TMemoField.SetAsWideString(const AValue: WideString); begin - SetAsString(aValue); + SetAsString(AValue); end; { TWideMemoField } @@ -2950,9 +3032,9 @@ begin Result := GetAsWideString; end; -procedure TWideMemoField.SetAsString(const aValue: string); +procedure TWideMemoField.SetAsString(const AValue: string); begin - SetAsWideString(aValue); + SetAsWideString(AValue); end; function TWideMemoField.GetAsVariant: Variant; @@ -2993,7 +3075,7 @@ end; class procedure TGuidField.CheckTypeSize(AValue: LongInt); begin - if aValue <> 38 then + if AValue <> 38 then DatabaseErrorFmt(SInvalidFieldSize,[AValue]); end; @@ -3015,9 +3097,9 @@ begin Result := 38; end; -procedure TGuidField.SetAsGuid(const aValue: TGUID); +procedure TGuidField.SetAsGuid(const AValue: TGUID); begin - SetAsString(GuidToString(aValue)); + SetAsString(GuidToString(AValue)); end; function TVariantField.GetDefaultWidth: Integer; @@ -3089,7 +3171,7 @@ begin SetVarValue(aValue); end; -procedure TVariantField.SetAsInteger(aValue: Longint); +procedure TVariantField.SetAsInteger(AValue: Longint); begin SetVarValue(aValue); end; diff --git a/fpcsrc/packages/fcl-db/src/base/xmldatapacketreader.pp b/fpcsrc/packages/fcl-db/src/base/xmldatapacketreader.pp index 595b935b..43359b66 100644 --- a/fpcsrc/packages/fcl-db/src/base/xmldatapacketreader.pp +++ b/fpcsrc/packages/fcl-db/src/base/xmldatapacketreader.pp @@ -65,7 +65,7 @@ implementation uses xmlwrite, xmlread, base64; const - XMLFieldtypenames : Array [TFieldType] of String[15] = + XMLFieldtypenames : Array [TFieldType] of String[16] = ( 'Unknown', 'string', @@ -90,8 +90,8 @@ const 'bin.hex:Ole', 'bin.hex:Graphics', '', - 'string', - 'string', + 'string', // ftFixedChar + 'string.uni', // ftWideString 'i8', '', '', @@ -102,11 +102,11 @@ const '', '', '', + 'string:Guid', // ftGuid '', - '', - 'fixedFMT', - '', - '' + 'fixedFMT', // ftFmtBCD + 'string.uni', // ftFixedWideChar + 'bin.hex:WideText' // ftWideMemo ); resourcestring @@ -344,43 +344,46 @@ var FieldNr : integer; begin with ADataset do for FieldNr:=0 to FieldDefs.Count-1 do begin + AField := Fields.FieldByNumber(FieldDefs[FieldNr].FieldNo); AFieldNode := FRecordNode.Attributes.GetNamedItem(FieldDefs[FieldNr].Name); if assigned(AFieldNode) then begin s := AFieldNode.NodeValue; - AField := Fields.FieldByNumber(FieldDefs[FieldNr].FieldNo); if (FieldDefs[FieldNr].DataType in [ftBlob, ftBytes, ftVarBytes]) and (s <> '') then s := DecodeStringBase64(s); - if FieldDefs[FieldNr].DataType in [ftBlob, ftMemo] then + if FieldDefs[FieldNr].DataType in [ftBlob, ftMemo, ftWideMemo] then begin ABufBlobField.BlobBuffer:=ADataset.GetNewBlobBuffer; - AField.SetData(@ABufBlobField); ABufBlobField.BlobBuffer^.Size:=length(s); ReAllocMem(ABufBlobField.BlobBuffer^.Buffer,ABufBlobField.BlobBuffer^.Size); move(s[1],ABufBlobField.BlobBuffer^.Buffer^,ABufBlobField.BlobBuffer^.Size); + AField.SetData(@ABufBlobField); end else AField.AsString := s; // set it to the filterbuffer end + else + AField.SetData(nil); end; end; procedure TXMLDatapacketReader.StoreRecord(ADataset : TCustomBufDataset; ARowState : TRowState; AUpdOrder : integer = 0); var FieldNr : Integer; AFieldDef: TFieldDef; - s: string; + AField: TField; ARecordNode : TDOMElement; begin inc(FEntryNr); ARecordNode := XMLDocument.CreateElement('ROW'); - for FieldNr := 0 to ADataset.FieldDefs.Count-1 do + with ADataset do for FieldNr := 0 to FieldDefs.Count-1 do begin - AFieldDef := ADataset.FieldDefs[FieldNr]; - s := ADataset.Fields.FieldByNumber(AFieldDef.FieldNo).AsString; - if AFieldDef.DataType in [ftBlob, ftBytes, ftVarBytes] then - ARecordNode.SetAttribute(AFieldDef.Name, EncodeStringBase64(s)) - else - ARecordNode.SetAttribute(AFieldDef.Name, s); + AFieldDef := FieldDefs[FieldNr]; + AField := Fields.FieldByNumber(AFieldDef.FieldNo); + if not AField.IsNull then + if AFieldDef.DataType in [ftBlob, ftBytes, ftVarBytes] then + ARecordNode.SetAttribute(AFieldDef.Name, EncodeStringBase64(AField.AsString)) + else + ARecordNode.SetAttribute(AFieldDef.Name, AField.AsString); end; if ARowState<>[] then begin diff --git a/fpcsrc/packages/fcl-db/src/codegen/Makefile b/fpcsrc/packages/fcl-db/src/codegen/Makefile deleted file mode 100644 index b52a0241..00000000 --- a/fpcsrc/packages/fcl-db/src/codegen/Makefile +++ /dev/null @@ -1,2372 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/codegen/fpcgtiopf.pp b/fpcsrc/packages/fcl-db/src/codegen/fpcgtiopf.pp index 0c616235..68febae3 100644 --- a/fpcsrc/packages/fcl-db/src/codegen/fpcgtiopf.pp +++ b/fpcsrc/packages/fcl-db/src/codegen/fpcgtiopf.pp @@ -30,7 +30,13 @@ TYpe TVisitorOption = (voRead,voReadList,voCreate,voDelete,voUpdate, voCommonSetupParams,voSingleSaveVisitor,voRegisterVisitors); TVisitorOptions = set of TVisitorOption; - + + { TTiOPFFieldPropDef } + + TTiOPFFieldPropDef = Class(TFieldPropDef) + Public + Constructor Create(ACollection : TCollection); override; + end; { TTiOPFCodeOptions } TTiOPFCodeOptions = Class (TClassCodeGeneratorOptions) @@ -100,6 +106,7 @@ TYpe // Not to be overridden. procedure WriteListAddObject(Strings: TStrings; const ListClassName, ObjectClassName: String); // Overrides of parent objects + Function CreateFieldPropDefs : TFieldPropDefs; override; function AllowPropertyDeclaration(F: TFieldPropDef; AVisibility: TVisibilities): Boolean; override; Function GetInterfaceUsesClause : string; override; procedure WriteVisibilityStart(V: TVisibility; Strings: TStrings); override; @@ -134,6 +141,14 @@ begin Delete(Result,1,1); end; +{ TTiOPFFieldPropDef } + +constructor TTiOPFFieldPropDef.Create(ACollection: TCollection); +begin + inherited Create(ACollection); + PropSetters:=[psWrite]; +end; + { TTiOPFCodeOptions } function TTiOPFCodeOptions.GetListClassName: String; @@ -872,7 +887,7 @@ begin ptSingle, ptDouble, ptExtended, ptComp : S:='AsFloat'; ptCurrency : - S:='AsCurrency'; + S:='AsFloat'; ptDateTime : S:='AsDateTime'; ptEnumerated : @@ -1139,7 +1154,7 @@ begin AddLn(Strings,'Public'); IncIndent; Try - AddLn(Strings,'Property Items[Index : Integer] : %s Read GetObj Write SetObj; Default;',[ObjectClassname]); + AddLn(Strings,'Property Items[AIndex : Integer] : %s Read GetObj Write SetObj; Default;',[ObjectClassname]); Finally DecIndent; end; @@ -1178,6 +1193,11 @@ begin Addln(Strings); end; +function TTiOPFCodeGenerator.CreateFieldPropDefs: TFieldPropDefs; +begin + Result:=TFieldPropDefs.Create(TTiOPFFieldPropDef); +end; + function TTiOPFCodeGenerator.AllowPropertyDeclaration(F: TFieldPropDef; AVisibility: TVisibilities): Boolean; begin diff --git a/fpcsrc/packages/fcl-db/src/codegen/fpddcodegen.pp b/fpcsrc/packages/fcl-db/src/codegen/fpddcodegen.pp index a3bb5c18..cbbca34c 100644 --- a/fpcsrc/packages/fcl-db/src/codegen/fpddcodegen.pp +++ b/fpcsrc/packages/fcl-db/src/codegen/fpddcodegen.pp @@ -38,6 +38,8 @@ Type TVisibility = (vPrivate,vProtected,vPublic,vPublished); TVisibilities = Set of TVisibility; TPropAccess = (paReadWrite,paReadonly,paWriteonly); + TPropSetter = (psRead,psWrite); + TPropSetters = set of TPropSetter; TFieldPropDefs = Class; @@ -51,6 +53,7 @@ Type FFieldType: TFieldType; FPropAccess: TPropAccess; FPropDef: String; + FPropSetters: TPropSetters; FPropType : TPropType; FPRopSize: Integer; FPropName : String; @@ -66,8 +69,8 @@ Type Constructor Create(ACollection : TCollection) ; override; Procedure Assign(ASource : TPersistent); override; Function FieldPropDefs : TFieldPropDefs; - Function HasGetter : Boolean; Virtual; // Always false. - Function HasSetter : Boolean; Virtual; // True for streams/strings + Function HasGetter : Boolean; Virtual; // Checks Propsetters for psRead + Function HasSetter : Boolean; Virtual; // True for streams/strings or if Propsetters has pswrite Function ObjPasTypeDef : String; virtual; // Object pascal definition of type Function ObjPasReadDef : String; virtual; // Object pascal definition of getter Function ObjPasWriteDef : String; virtual; // Object pascal definition of setter @@ -81,6 +84,7 @@ Type Property PropertyDef : String Read FPropDef Write FPropDef; Property PropertyVisibility : TVisibility Read FPropVis Write FPropVis; Property PropertyAccess : TPropAccess Read FPropAccess Write FPropAccess; + Property PropSetters : TPropSetters Read FPropSetters Write FPropSetters; end; { TFieldPropDefs } @@ -113,6 +117,7 @@ Type FInterfaceUnits: String; FOptions: TCodeOptions; FUnitName: String; + FExtraSetterLine : string; procedure SetImplementationUnits(const AValue: String); procedure SetInterfaceUnits(const AValue: String); procedure SetUnitname(const AValue: String); @@ -122,9 +127,15 @@ Type Constructor create; virtual; Procedure Assign(ASource : TPersistent); override; Published + // Line of code that will be added to each property setter. Use %PROPNAME% to include property name in the line. + Property ExtraSetterLine : String Read FExtraSetterLine Write FExtraSetterLine; + // options Property Options : TCodeOptions Read FOptions Write SetOPtions; + // Name of unit if a unit is generated. Property UnitName : String Read FUnitName Write SetUnitname; + // Comma-separated list of units that will be put in the interface units clause Property InterfaceUnits : String Read FInterfaceUnits Write SetInterfaceUnits; + // Comma-separated list of units that will be put in the implementation units clause Property ImplementationUnits : String Read FImplementationUnits Write SetImplementationUnits; end; TCodeGeneratorOptionsClass = Class of TCodeGeneratorOptions; @@ -539,13 +550,13 @@ end; function TFieldPropDef.HasGetter: Boolean; begin - Result:=False; + Result:=psRead in PropSetters; end; function TFieldPropDef.HasSetter: Boolean; begin Result:=(PropertyAccess in [paReadWrite,paWriteOnly]) - and (PropertyType in [ptStream,ptTStrings]); + and ((PropertyType in [ptStream,ptTStrings]) or (psWrite in Propsetters)); end; function TFieldPropDef.ObjPasTypeDef: String; @@ -832,7 +843,7 @@ begin For I:=0 to Fields.Count-1 do begin F:=Fields[i]; - if AllowPropertyDeclaration(F,[]) and F.HasGetter then + if AllowPropertyDeclaration(F,[]) and F.HasSetter then begin If not B then begin @@ -867,22 +878,33 @@ Procedure TDDClassCodeGenerator.WritePropertySetterImpl(Strings : TStrings; F : Var S : String; + L : Integer; begin - S:=PropertyGetterDeclaration(F,True); + S:=PropertySetterDeclaration(F,True); BeginMethod(Strings,S); AddLn(Strings,'begin'); IncIndent; Try + AddLn(Strings,Format('if (F%s=AValue) then exit;',[F.PropertyName])); Case F.PropertyType of ptTStrings : S:=Format('F%s.Assign(AValue);',[F.PropertyName]); ptStream : S:=Format('F%s.CopyFrom(AValue,0);',[F.PropertyName]); else - S:=Format('F%s:=AValue',[F.PropertyName]); + S:=Format('F%s:=AValue;',[F.PropertyName]); end; AddLn(Strings,S); + S:=CodeOptions.ExtraSetterLine; + L:=Length(S); + if (L>0) then + begin + S:=StringReplace(S,'%PROPNAME%',F.PropertyName,[rfReplaceAll,rfIgnoreCase]); + if (S[L]<>';') then + S:=S+';'; + AddLn(Strings,S); + end; Finally DecIndent; end; @@ -1093,7 +1115,7 @@ begin Result:='Procedure '; If Impl then Result:=Result+ClassOptions.ObjectClassName+'.'; - Result:=Result+Def.ObjPasReadDef+' (AValue : '+Def.ObjPasTypeDef+');'; + Result:=Result+Def.ObjPasWriteDef+' (AValue : '+Def.ObjPasTypeDef+');'; end; function TDDClassCodeGenerator.NeedsConstructor: Boolean; @@ -1478,8 +1500,11 @@ begin If ASource is TCodeGeneratorOptions then begin CG:=ASource as TCodeGeneratorOptions; + FInterfaceUnits:=CG.InterfaceUnits; + FImplementationUnits:=CG.ImplementationUnits; FOptions:=CG.FOptions; FUnitName:=CG.UnitName; + FExtraSetterLine:=CG.ExtraSetterLine; end else inherited Assign(ASource); diff --git a/fpcsrc/packages/fcl-db/src/datadict/Makefile b/fpcsrc/packages/fcl-db/src/datadict/Makefile deleted file mode 100644 index 10e54e76..00000000 --- a/fpcsrc/packages/fcl-db/src/datadict/Makefile +++ /dev/null @@ -1,2974 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddsqlite3 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddodbc fpddsqlite3 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddsqlite3 -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddpq fpddsqlite3 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddpq fpddodbc fpddsqlite3 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddpq fpddsqlite3 -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddmysql51 fpddmysql55 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base fcl-xml -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_IBASE -PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_IBASE),) -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX)),) -UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX) -else -UNITDIR_IBASE=$(PACKAGEDIR_IBASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_IBASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_IBASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_IBASE)/$(FPCMADE) -endif -else -PACKAGEDIR_IBASE= -UNITDIR_IBASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /ibase/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_IBASE),) -UNITDIR_IBASE:=$(firstword $(UNITDIR_IBASE)) -else -UNITDIR_IBASE= -endif -endif -ifdef UNITDIR_IBASE -override COMPILER_UNITDIR+=$(UNITDIR_IBASE) -endif -ifdef UNITDIR_FPMAKE_IBASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_IBASE) -endif -endif -ifdef REQUIRE_PACKAGES_MYSQL -PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_MYSQL),) -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX)),) -UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX) -else -UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL) -endif -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_MYSQL)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE) -endif -else -PACKAGEDIR_MYSQL= -UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_MYSQL),) -UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL)) -else -UNITDIR_MYSQL= -endif -endif -ifdef UNITDIR_MYSQL -override COMPILER_UNITDIR+=$(UNITDIR_MYSQL) -endif -ifdef UNITDIR_FPMAKE_MYSQL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_MYSQL) -endif -endif -ifdef REQUIRE_PACKAGES_ORACLE -PACKAGEDIR_ORACLE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oracle/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ORACLE),) -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX)),) -UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX) -else -UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE) -endif -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ORACLE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ORACLE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ORACLE)/$(FPCMADE) -endif -else -PACKAGEDIR_ORACLE= -UNITDIR_ORACLE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /oracle/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ORACLE),) -UNITDIR_ORACLE:=$(firstword $(UNITDIR_ORACLE)) -else -UNITDIR_ORACLE= -endif -endif -ifdef UNITDIR_ORACLE -override COMPILER_UNITDIR+=$(UNITDIR_ORACLE) -endif -ifdef UNITDIR_FPMAKE_ORACLE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ORACLE) -endif -endif -ifdef REQUIRE_PACKAGES_SQLITE -PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_SQLITE),) -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX)),) -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX) -else -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE) -endif -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_SQLITE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_SQLITE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_SQLITE)/$(FPCMADE) -endif -else -PACKAGEDIR_SQLITE= -UNITDIR_SQLITE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_SQLITE),) -UNITDIR_SQLITE:=$(firstword $(UNITDIR_SQLITE)) -else -UNITDIR_SQLITE= -endif -endif -ifdef UNITDIR_SQLITE -override COMPILER_UNITDIR+=$(UNITDIR_SQLITE) -endif -ifdef UNITDIR_FPMAKE_SQLITE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_SQLITE) -endif -endif -ifdef REQUIRE_PACKAGES_ODBC -PACKAGEDIR_ODBC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /odbc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ODBC),) -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX)),) -UNITDIR_ODBC=$(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX) -else -UNITDIR_ODBC=$(PACKAGEDIR_ODBC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ODBC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ODBC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ODBC)/$(FPCMADE) -endif -else -PACKAGEDIR_ODBC= -UNITDIR_ODBC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /odbc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ODBC),) -UNITDIR_ODBC:=$(firstword $(UNITDIR_ODBC)) -else -UNITDIR_ODBC= -endif -endif -ifdef UNITDIR_ODBC -override COMPILER_UNITDIR+=$(UNITDIR_ODBC) -endif -ifdef UNITDIR_FPMAKE_ODBC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ODBC) -endif -endif -ifdef REQUIRE_PACKAGES_POSTGRES -PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_POSTGRES),) -ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(TARGETSUFFIX)),) -UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(TARGETSUFFIX) -else -UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES) -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 -$(PACKAGEDIR_POSTGRES)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE) -endif -else -PACKAGEDIR_POSTGRES= -UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_POSTGRES),) -UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES)) -else -UNITDIR_POSTGRES= -endif -endif -ifdef UNITDIR_POSTGRES -override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES) -endif -ifdef UNITDIR_FPMAKE_POSTGRES -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_POSTGRES) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/dbase/Makefile b/fpcsrc/packages/fcl-db/src/dbase/Makefile deleted file mode 100644 index 4dca1f95..00000000 --- a/fpcsrc/packages/fcl-db/src/dbase/Makefile +++ /dev/null @@ -1,2790 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(OS_TARGET),win32) -ifneq ($(OS_TARGET),win64) -ifneq ($(OS_TARGET),wince) -INSTALL_UNITS+=dbf_wtil -CLEAN_UNITS+=dbf_wtil -endif -endif -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=dbf -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_EXAMPLES+=testdbf -endif -ifeq ($(FULL_TARGET),i386-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-win32) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-os2) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-beos) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-haiku) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-solaris) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-qnx) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-netware) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-darwin) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-emx) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-watcom) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-wince) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-symbian) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-nativent) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-atari) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-palmos) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-darwin) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-wince) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-gba) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-nds) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-symbian) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),avr-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),armeb-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-win32) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-os2) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-beos) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-haiku) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-solaris) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-qnx) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-netware) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-darwin) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-emx) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-watcom) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-wince) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-symbian) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-nativent) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-atari) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-palmos) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-darwin) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-wince) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-gba) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-nds) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),arm-symbian) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),avr-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),armeb-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -Sh -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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_examples -ifneq ($(TARGET_EXAMPLES),) -HASEXAMPLES=1 -override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES))) -override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES)) -override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) -override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES)) -override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES) -override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES) -ifeq ($(OS_TARGET),os2) -override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES)) -endif -ifeq ($(OS_TARGET),emx) -override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES)) -endif -endif -ifneq ($(TARGET_EXAMPLEDIRS),) -HASEXAMPLES=1 -endif -fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS)) -.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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: fpc_examples -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf.pas index e2e45013..79c8d054 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf.pas @@ -1,4 +1,4 @@ -unit dbf deprecated 'Abandoned by maintainer, no longer supported by FPC team. Help may be available at http://tdbf.sourceforge.net and http://sourceforge.net/projects/tdbf/forums/forum/107245'; +unit dbf; { design info in dbf_reg.pas } @@ -17,9 +17,11 @@ uses dbf_fields, dbf_pgfile, dbf_idxfile; +{$ifndef fpc} // If you got a compilation error here or asking for dsgnintf.pas, then just add // this file in your project: // dsgnintf.pas in 'C: \Program Files\Borland\Delphi5\Source\Toolsapi\dsgnintf.pas' +{$endif} type @@ -154,7 +156,9 @@ type FMasterLink: TDbfMasterLink; FParser: TDbfParser; FBlobStreams: PDbfBlobList; + FUserIndexStream: TStream; FUserStream: TStream; // user stream to open + FUserMemoStream: TStream; // user-provided/expected stream backing memo file storage FTableName: string; // table path and file name FRelativePath: string; FAbsolutePath: string; @@ -260,7 +264,7 @@ type procedure SetFieldData(Field: TField; Buffer: Pointer); {$ifdef SUPPORT_OVERLOAD} overload; {$endif} override; {virtual abstract} - { virtual methods (mostly optionnal) } + { virtual methods (mostly optional) } function GetDataSource: TDataSource; {$ifndef VER1_0}override;{$endif} function GetRecordCount: Integer; override; {virtual} function GetRecNo: Integer; override; {virtual} @@ -290,7 +294,7 @@ type { abstract methods } function GetFieldData(Field: TField; Buffer: Pointer): Boolean; {$ifdef SUPPORT_OVERLOAD} overload; {$endif} override; {virtual abstract} - { virtual methods (mostly optionnal) } + { virtual methods (mostly optional) } procedure Resync(Mode: TResyncMode); override; function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override; {virtual} {$ifdef SUPPORT_NEW_TRANSLATE} @@ -309,6 +313,11 @@ type function CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Integer; override; procedure CheckDbfFieldDefs(ADbfFieldDefs: TDbfFieldDefs); + function FindFirst: Boolean; override; + function FindLast: Boolean; override; + function FindNext: Boolean; override; + function FindPrior: Boolean; override; + {$ifdef VER1_0} procedure DataEvent(Event: TDataEvent; Info: Longint); override; {$endif} @@ -367,7 +376,7 @@ type function IsDeleted: Boolean; procedure Undelete; - + // Call this after setting up fielddefs in order to store the definitions into a table procedure CreateTable; procedure CreateTableEx(ADbfFieldDefs: TDbfFieldDefs); procedure CopyFrom(DataSet: TDataSet; FileName: string; DateTimeAsString: Boolean; Level: Integer); @@ -390,7 +399,12 @@ type property PhysicalRecordCount: Integer read GetPhysicalRecordCount; property KeySize: Integer read GetKeySize; property DbfFile: TDbfFile read FDbfFile; + // Storage for data file if using memory storage property UserStream: TStream read FUserStream write FUserStream; + // Storage for index file - if any - when using memory storage + property UserIndexStream: TStream read FUserIndexStream write FUserIndexStream; + // Storage for memo file - if any - when using memory storage + property UserMemoStream: TStream read FUserMemoStream write FUserMemoStream; property DisableResyncOnPost: Boolean read FDisableResyncOnPost write FDisableResyncOnPost; published property DateTimeHandling: TDateTimeHandling @@ -492,9 +506,10 @@ const function TableLevelToDbfVersion(TableLevel: integer): TXBaseVersion; begin case TableLevel of - 3: Result := xBaseIII; - 7: Result := xBaseVII; - TDBF_TABLELEVEL_FOXPRO: Result := xFoxPro; + 3: Result := xBaseIII; + 7: Result := xBaseVII; + TDBF_TABLELEVEL_FOXPRO: Result := xFoxPro; + TDBF_TABLELEVEL_VISUALFOXPRO: Result := xVisualFoxPro; else {4:} Result := xBaseIV; end; @@ -559,7 +574,7 @@ var begin if FDirty then begin - Size := Position; // Strange but it leave tailing trash bytes if I do not write that. + Size := Position; // Strange but it leaves tailing trash bytes if I do not write that. Dbf := TDbf(FBlobField.DataSet); Translate(true); Dbf.FDbfFile.MemoFile.WriteMemo(FMemoRecNo, FReadSize, Self); @@ -753,6 +768,30 @@ begin SetFieldData(Field, Buffer, true); end; +function TDbf.FindFirst: Boolean; +begin + // Use inherited function; if failed use FindRecord + Result:=inherited FindFirst or FindRecord(True, True); +end; + +function TDbf.FindLast: Boolean; +begin + // Use inherited function; if failed use FindRecord + Result:=inherited FindLast or FindRecord(True, False); +end; + +function TDbf.FindNext: Boolean; +begin + // Use inherited function; if failed use FindRecord + Result:=inherited FindNext or FindRecord(False, True); +end; + +function TDbf.FindPrior: Boolean; +begin + // Use inherited function; if failed use FindRecord + Result:=inherited FindPrior or FindRecord(False, False); +end; + procedure TDbf.SetFieldData(Field: TField; Buffer: Pointer; NativeFormat: Boolean); {overload; override;} {$else} const @@ -1016,18 +1055,17 @@ end; procedure TDbf.GetFieldDefsFromDbfFieldDefs; var - I, N: Integer; + I: Integer; TempFieldDef: TDbfFieldDef; TempMdxFile: TIndexFile; - BaseName, lIndexName: string; -begin - FieldDefs.Clear; + lIndexName: string; + lFieldDefCount: integer; //Counter for destination fielddefs - // get all fields - for I := 0 to FDbfFile.FieldDefs.Count - 1 do + procedure FixDuplicateNames; + var + BaseName: string; + N: Integer; begin - TempFieldDef := FDbfFile.FieldDefs.Items[I]; - // handle duplicate field names N := 1; BaseName := TempFieldDef.FieldName; while FieldDefs.IndexOf(TempFieldDef.FieldName)>=0 do @@ -1035,26 +1073,55 @@ begin Inc(N); TempFieldDef.FieldName:=BaseName+IntToStr(N); end; - // add field - if TempFieldDef.FieldType in [ftString, ftBCD, ftBytes] then - FieldDefs.Add(TempFieldDef.FieldName, TempFieldDef.FieldType, TempFieldDef.Size, false) + end; + +begin + FieldDefs.Clear; + + // get all fields + lFieldDefCount:=-1; //will be fixed by first addition + for I := 0 to FDbfFile.FieldDefs.Count - 1 do + begin + TempFieldDef := FDbfFile.FieldDefs.Items[I]; + // handle duplicate field names: + FixDuplicateNames; + // add field, passing dbase native size if relevant + // TDbfFieldDef.Size indicates the number of bytes in the physical dbase file + // TFieldDef.Size is only meant to store size indicator for variable length fields + case TempFieldDef.FieldType of + ftString, ftBytes, ftVarBytes: FieldDefs.Add(TempFieldDef.FieldName, TempFieldDef.FieldType, TempFieldDef.Size, false); + ftBCD: + begin + FieldDefs.Add(TempFieldDef.FieldName, TempFieldDef.FieldType, 0, false);;; + end; else FieldDefs.Add(TempFieldDef.FieldName, TempFieldDef.FieldType, 0, false); + end; + lFieldDefCount:=lFieldDefCount+1; - if TempFieldDef.FieldType = ftFloat then - begin - FieldDefs[I].Size := 0; // Size is not defined for float-fields - FieldDefs[I].Precision := TempFieldDef.Size; - end; + FieldDefs[lFieldDefCount].Precision := TempFieldDef.Precision; {$ifdef SUPPORT_FIELDDEF_ATTRIBUTES} // AutoInc fields are readonly if TempFieldDef.FieldType = ftAutoInc then - FieldDefs[I].Attributes := [Db.faReadOnly]; + FieldDefs[lFieldDefCount].Attributes := [Db.faReadOnly]; // if table has dbase lock field, then hide it if TempFieldDef.IsLockField then - FieldDefs[I].Attributes := [Db.faHiddenCol]; + FieldDefs[lFieldDefCount].Attributes := [Db.faHiddenCol]; + + // Hide system/hidden fields (e.g. VFP's _NULLFLAGS) + if TempFieldDef.IsSystemField then + FieldDefs[lFieldDefCount].Attributes := [Db.faHiddenCol]; +{$else} + // Poor man's way of hiding fields that shouldn't be shown/modified: + // Note: Visual Foxpro seems to allow adding another _NULLFLAGS field. + // todo: test this with lockfield, then add this (TempFieldDef.IsLockField) + if (TempFieldDef.IsSystemField) then + begin + FieldDefs.Delete(lFieldDefCount); + lFieldDefCount:=lFieldDefCount-1; + end; {$endif} end; @@ -1085,6 +1152,8 @@ begin if FStorage = stoMemory then begin FDbfFile.Stream := FUserStream; + FDbfFile.MemoStream := FUserMemoStream; + FDbfFile.IndexStream := FUserIndexStream; FDbfFile.Mode := FileModeToMemMode[FileOpenMode]; end else begin FDbfFile.FileName := FAbsolutePath + FTableName; @@ -1192,10 +1261,11 @@ begin // determine dbf version case FDbfFile.DbfVersion of - xBaseIII: FTableLevel := 3; - xBaseIV: FTableLevel := 4; - xBaseVII: FTableLevel := 7; - xFoxPro: FTableLevel := TDBF_TABLELEVEL_FOXPRO; + xBaseIII: FTableLevel := 3; + xBaseIV: FTableLevel := 4; + xBaseVII: FTableLevel := 7; + xFoxPro: FTableLevel := TDBF_TABLELEVEL_FOXPRO; + xVisualFoxPro: FTableLevel := TDBF_TABLELEVEL_VISUALFOXPRO; end; FLanguageID := FDbfFile.LanguageID; @@ -1227,7 +1297,7 @@ begin BindFields(true); - // create array of blobstreams to store memo's in. each field is a possible blob + // create array of blobstreams to store memos in. each field is a possible blob FBlobStreams := AllocMem(FieldDefs.Count * SizeOf(TDbfBlobStream)); // check codepage settings @@ -1299,7 +1369,7 @@ begin Result := 0; end; -function TDbf.GetLanguageStr: String; +function TDbf.GetLanguageStr: string; begin if FDbfFile <> nil then Result := FDbfFile.LanguageStr; @@ -1324,7 +1394,7 @@ begin // store recno we are editing FEditingRecNo := FCursor.PhysicalRecNo; // reread blobs, execute cancel -> clears remembered memo pageno, - // causing it to reread the memo contents + // causing it to reread the x contents for I := 0 to Pred(FieldDefs.Count) do if Assigned(FBlobStreams^[I]) then FBlobStreams^[I].Cancel; @@ -1481,11 +1551,19 @@ begin FDbfFile.DbfVersion := TableLevelToDbfVersion(FTableLevel); FDbfFile.FileLangID := FLanguageID; FDbfFile.Open; - FDbfFile.FinishCreate(ADbfFieldDefs, 512); + // Default memo blocklength for FoxPro/VisualFoxpro is 64 (not 512 as specs say) + if FDbfFile.DbfVersion in [xFoxPro,xVisualFoxPro] then + FDbfFile.FinishCreate(ADbfFieldDefs, 64) + else + FDbfFile.FinishCreate(ADbfFieldDefs, 512); - // if creating memory table, copy stream pointer + // if creating memory table, use user-designated stream if FStorage = stoMemory then + begin FUserStream := FDbfFile.Stream; + FUserIndexStream := FDBfFile.IndexStream; + FUserMemoStream := FDbfFile.MemoStream; + end; // create all indexes for I := 0 to FIndexDefs.Count-1 do @@ -1601,6 +1679,8 @@ begin FieldName := lSrcField.FieldName; FieldType := lSrcField.DataType; Required := lSrcField.Required; + + // Set up size/precision for all physical fields: if (1 <= lSrcField.FieldNo) and (lSrcField.FieldNo <= lPhysFieldDefs.Count) then begin @@ -1758,7 +1838,7 @@ var var sCompare: String; begin - if (Field.DataType = ftString) then + if (Field.DataType in [ftString,ftWideString]) then begin sCompare := VarToStr(varCompare); if loCaseInsensitive in Options then @@ -1785,6 +1865,8 @@ var end; end else + // Not a string; could be date, integer etc. + // Follow e.g. FPC bufdataset by searching for equal Result := Field.Value = varCompare; end; @@ -1848,7 +1930,9 @@ var lTempBuffer: array [0..100] of Char; acceptable, checkmatch: boolean; begin - if loPartialKey in Options then + // Only honor loPartialKey for string types; for others, search for equal + if (loPartialKey in Options) and + (TIndexCursor(FCursor).IndexFile.KeyType='C') then searchFlag := stGreaterEqual else searchFlag := stEqual; @@ -2013,9 +2097,9 @@ begin end; { this is a hack, we actually need to know per user who's modifying, and who is not } { Mode is more like: the mode of the last "creation" } - { if create/free is nested, then everything will be alright, i think ;-) } + { if create/free is nested, then everything will be alright, I think ;-) } lBlob.Mode := Mode; - { this is a hack: we actually need to know per user what it's position is } + { this is a hack: we actually need to know per user what its position is } lBlob.Position := 0; Result := lBlob; end; @@ -2289,7 +2373,7 @@ begin end; end; -procedure TDbf.SetTableName(const s: string); +procedure TDbf.SetTableName(const S: string); var lPath: string; begin @@ -2322,7 +2406,7 @@ begin if NewLevel <> FTableLevel then begin // check validity - if not ((NewLevel = 3) or (NewLevel = 4) or (NewLevel = 7) or (NewLevel = 25)) then + if not (NewLevel in [3,4,7,TDBF_TABLELEVEL_FOXPRO,TDBF_TABLELEVEL_VISUALFOXPRO]) then exit; // can only assign tablelevel if table is closed diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_common.inc b/fpcsrc/packages/fcl-db/src/dbase/dbf_common.inc index ef4e275f..0b12c936 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_common.inc +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_common.inc @@ -224,6 +224,7 @@ {$define SUPPORT_REFRESHEVENTS} // FPC 2.0.x improvements + // todo: add a $IF FPC_FULLVERSION>=20000 for support for future FPC 3+ {$ifdef VER2} {$ifndef VER2_0_0} {$define SUPPORT_BACKWARD_FIELDDATA} diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_common.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_common.pas index 975233ae..b12442bd 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_common.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_common.pas @@ -16,11 +16,12 @@ uses const - TDBF_MAJOR_VERSION = 6; - TDBF_MINOR_VERSION = 9; - TDBF_SUB_MINOR_VERSION = 2; + TDBF_MAJOR_VERSION = 7; + TDBF_MINOR_VERSION = 0; + TDBF_SUB_MINOR_VERSION = 0; TDBF_TABLELEVEL_FOXPRO = 25; + TDBF_TABLELEVEL_VISUALFOXPRO = 30; {Source: http://www.codebase.com/support/kb/?article=C01059} JulianDateDelta = 1721425; { number of days between 1.1.4714 BC and "0" } @@ -30,7 +31,7 @@ type TDbfFieldType = char; - TXBaseVersion = (xUnknown, xClipper, xBaseIII, xBaseIV, xBaseV, xFoxPro, xBaseVII); + TXBaseVersion = (xUnknown, xClipper, xBaseIII, xBaseIV, xBaseV, xFoxPro, xBaseVII, xVisualFoxPro); TSearchKeyType = (stEqual, stGreaterEqual, stGreater); TDateTimeHandling = (dtDateTime, dtBDETimeStamp); @@ -86,15 +87,22 @@ procedure FindNextName(BaseName: string; var OutName: string; var Modifier: Inte function GetFreeMemory: Integer; {$endif} +// Convert word to big endian function SwapWordBE(const Value: word): word; +// Convert word to little endian function SwapWordLE(const Value: word): word; +// Convert integer to big endian function SwapIntBE(const Value: dword): dword; +// Convert integer to little endian function SwapIntLE(const Value: dword): dword; {$ifdef SUPPORT_INT64} +// Convert int64 to big endian procedure SwapInt64BE(Value, Result: Pointer); register; +// Convert int64 to little endian procedure SwapInt64LE(Value, Result: Pointer); register; {$endif} +// Translate string between codepages function TranslateString(FromCP, ToCP: Cardinal; Src, Dest: PChar; Length: Integer): Integer; // Returns a pointer to the first occurence of Chr in Str within the first Length characters @@ -365,10 +373,10 @@ begin Result := Length; {$ifndef WINCE} if (FromCP = GetOEMCP) and (ToCP = GetACP) then - OemToCharBuff(Src, Dest, Length) + OemToCharBuffA(Src, Dest, Length) else if (FromCP = GetACP) and (ToCP = GetOEMCP) then - CharToOemBuff(Src, Dest, Length) + CharToOemBuffA(Src, Dest, Length) else {$endif} if FromCP = ToCP then @@ -400,7 +408,9 @@ function MemScan(const Buffer: Pointer; Chr: Byte; Length: Integer): Pointer; var I: Integer; begin - I := System.IndexByte(Buffer, Length, Chr); + // Make sure we pass a buffer of bytes instead of a pchar otherwise + // the call will always fail + I := System.IndexByte(PByte(Buffer)^, Length, Chr); if I = -1 then Result := nil else diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_dbffile.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_dbffile.pas index b3632bba..885aaa58 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_dbffile.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_dbffile.pas @@ -34,19 +34,24 @@ type //==================================================================== TDbfIndexMissingEvent = procedure(var DeleteLink: Boolean) of object; - TUpdateNullField = (unClear, unSet); + TUpdateNullField = (unfClear, unfSet); + TNullFieldFlag = (nfNullFlag, nfVarlengthFlag); //the field that the nullflags bit applies to //==================================================================== TDbfGlobals = class; //==================================================================== + { TDbfFile } + TDbfFile = class(TPagedFile) protected FMdxFile: TIndexFile; FMemoFile: TMemoFile; + FMemoStream: TStream; FFieldDefs: TDbfFieldDefs; FIndexNames: TStringList; FIndexFiles: TList; + FIndexStream: TStream; FDbfVersion: TXBaseVersion; FPrevBuffer: TRecordBuffer; FDefaultBuffer: TRecordBuffer; @@ -65,17 +70,23 @@ type FDateTimeHandling: TDateTimeHandling; FOnLocaleError: TDbfLocaleErrorEvent; FOnIndexMissing: TDbfIndexMissingEvent; - + // Yes if table has blob/memo type field(s) (storage in external file) function HasBlob: Boolean; + // File extension for memo field; uppercase if FFileName is uppercase + // (useful for *nix case-sensitive filesystems) function GetMemoExt: string; function GetLanguageId: Integer; function GetLanguageStr: string; - + protected + // Reads the field's properties from the field header(s) procedure ConstructFieldDefs; procedure InitDefaultBuffer; - procedure UpdateNullField(Buffer: Pointer; AFieldDef: TDbfFieldDef; Action: TUpdateNullField); + // Shows if the (null or varlength) flag for AFieldDef is set. + function IsNullFlagSet(const Src: Pointer; var AFieldDef: TDbfFieldDef; WhichField: TNullFieldFlag): boolean; + // Updates _NULLFLAGS field with null or varlength flag for field + procedure UpdateNullField(Buffer: Pointer; AFieldDef: TDbfFieldDef; Action: TUpdateNullField; WhichField: TNullFieldFlag); procedure WriteLockInfo(Buffer: TRecordBuffer); public @@ -86,6 +97,7 @@ type procedure Close; procedure Zap; + // Write out field definitions to header etc. procedure FinishCreate(AFieldDefs: TDbfFieldDefs; MemoSize: Integer); function GetIndexByName(AIndexName: string): TIndexFile; procedure SetRecordSize(NewSize: Integer); override; @@ -97,18 +109,28 @@ type procedure CloseIndex(AIndexName: string); procedure RepageIndex(AIndexFile: string); procedure CompactIndex(AIndexFile: string); + + // Inserts new record function Insert(Buffer: TRecordBuffer): integer; + // Write dbf header as well as EOF marker at end of file if necessary procedure WriteHeader; override; - procedure ApplyAutoIncToBuffer(DestBuf: TRecordBuffer); // dBase7 support. Writeback last next-autoinc value + // Writes autoinc value to record buffer and updates autoinc value in field header + procedure ApplyAutoIncToBuffer(DestBuf: TRecordBuffer); procedure FastPackTable; procedure RestructureTable(DbfFieldDefs: TDbfFieldDefs; Pack: Boolean); procedure Rename(DestFileName: string; NewIndexFileNames: TStrings; DeleteFiles: boolean); function GetFieldInfo(FieldName: string): TDbfFieldDef; + // Copies record buffer to field buffer + // Returns true if not null & data succesfully copied; false if field is null function GetFieldData(Column: Integer; DataType: TFieldType; Src,Dst: Pointer; NativeFormat: boolean): Boolean; + // Copies record buffer to field buffer + // Returns true if not null & data succesfully copied; false if field is null function GetFieldDataFromDef(AFieldDef: TDbfFieldDef; DataType: TFieldType; Src, Dst: Pointer; NativeFormat: boolean): Boolean; + // Copies field buffer to record buffer for this field procedure SetFieldData(Column: Integer; DataType: TFieldType; Src,Dst: Pointer; NativeFormat: boolean); + // Fill DestBuf with default field data procedure InitRecord(DestBuf: TRecordBuffer); procedure PackIndex(lIndexFile: TIndexFile; AIndexName: string); procedure RegenerateIndexes; @@ -118,15 +140,20 @@ type procedure RecordRecalled(RecNo: Integer; Buffer: TRecordBuffer); property MemoFile: TMemoFile read FMemoFile; + // Backing stream for stream/memory-based memo "files" + property MemoStream: TStream read FMemoStream write FMemoStream; property FieldDefs: TDbfFieldDefs read FFieldDefs; property IndexNames: TStringList read FIndexNames; property IndexFiles: TList read FIndexFiles; + // Backing stream for stream/memory-based index "files" + property IndexStream: TStream read FIndexStream write FIndexStream; property MdxFile: TIndexFile read FMdxFile; property LanguageId: Integer read GetLanguageId; property LanguageStr: string read GetLanguageStr; property FileCodePage: Cardinal read FFileCodePage; property UseCodePage: Cardinal read FUseCodePage write FUseCodePage; property FileLangId: Byte read FFileLangId write FFileLangId; + // Dbase (clone) version that this format emulates. Related to tablelevel. property DbfVersion: TXBaseVersion read FDbfVersion write FDbfVersion; property PrevBuffer: TRecordBuffer read FPrevBuffer; property ForceClose: Boolean read FForceClose; @@ -157,6 +184,9 @@ type end; //==================================================================== + + { TDbfGlobals } + TDbfGlobals = class protected FCodePages: TList; @@ -165,8 +195,10 @@ type FDefaultCreateLangId: Byte; FUserName: string; FUserNameLen: DWORD; - + + // Translates FDefaultCreateLangId back to codepage function GetDefaultCreateCodePage: Integer; + // Takes codepage and sets FDefaultCreateLangId procedure SetDefaultCreateCodePage(NewCodePage: Integer); procedure InitUserName; public @@ -203,6 +235,8 @@ uses const sDBF_DEC_SEP = '.'; + FIELD_DESCRIPTOR_ARRAY_TERMINATOR = $0D; // Marker at end of list of fields within header + NULLFLAGSFIELD = '_NULLFLAGS'; //Visual Foxpro system field with flags for field=null and field has varlength byte {$I dbf_struct.inc} @@ -327,77 +361,59 @@ var I: Integer; deleteLink: Boolean; lModified: boolean; - LangStr: PChar; - version: byte; -begin - // check if not already opened - if not Active then - begin - // open requested file - OpenFile; - // check if we opened an already existing file - lModified := false; - if not FileCreated then - begin - HeaderSize := sizeof(rDbfHdr); // temporary - // OH 2000-11-15 dBase7 support. I build dBase Tables with different - // BDE dBase Level (1. without Memo, 2. with Memo) - // Header Byte ($1d hex) (29 dec) -> Language driver ID. - // $03,$83 xBaseIII Header Byte $1d=$00, Float -> N($13.$04) DateTime C($1E) - // $03,$8B xBaseIV/V Header Byte $1d=$58, Float -> N($14.$04) - // $04,$8C xBaseVII Header Byte $1d=$00 Float -> O($08) DateTime @($08) - // $03,$F5 FoxPro Level 25 Header Byte $1d=$03, Float -> N($14.$04) - // Access 97 - // $03,$83 dBaseIII Header Byte $1d=$00, Float -> N($13.$05) DateTime D($08) - // $03,$8B dBaseIV/V Header Byte $1d=$00, Float -> N($14.$05) DateTime D($08) - // $03,$F5 FoxPro Level 25 Header Byte $1d=$09, Float -> N($14.$05) DateTime D($08) - - version := PDbfHdr(Header)^.VerDBF; + procedure GetVersion; + var + version: byte; + begin + // OH 2000-11-15 dBase7 support. I build dBase Tables with different + // BDE dBase Level (1. without Memo, 2. with Memo) + // Header Byte ($1d hex) (29 dec) -> Language driver ID. + // $03,$83 xBaseIII Header Byte $1d=$00, Float -> N($13.$04) DateTime C($1E) + // $03,$8B xBaseIV/V Header Byte $1d=$58, Float -> N($14.$04) + // $04,$8C xBaseVII Header Byte $1d=$00 Float -> O($08) DateTime @($08) + // $03,$F5 FoxPro Level 25 Header Byte $1d=$03, Float -> N($14.$04) + // Access 97 + // $03,$83 dBaseIII Header Byte $1d=$00, Float -> N($13.$05) DateTime D($08) + // $03,$8B dBaseIV/V Header Byte $1d=$00, Float -> N($14.$05) DateTime D($08) + // $03,$F5 FoxPro Level 25 Header Byte $1d=$09, Float -> N($14.$05) DateTime D($08) + + version := PDbfHdr(Header)^.VerDBF; + FDbfVersion := xUnknown; + // Some hardcode versions for Visual FoxPro; see MS documentation + // (including the correction at the bottom): + // http://msdn.microsoft.com/en-US/library/st4a0s68%28v=vs.80%29.aspx + case version of + $30, $31, $32 {VFP9 with new data types}: FDbfVersion:=xVisualFoxPro; + $F5, $FB: FDbfVersion:=xFoxPro; + end; + if FDbfVersion = xUnknown then case (version and $07) of - $03: + $03: //dbf without memo. Could be foxpro, too if LanguageID = 0 then FDbfVersion := xBaseIII else FDbfVersion := xBaseIV; $04: FDbfVersion := xBaseVII; - $02, $05: + $02 {FoxBase, not readable by current Visual FoxPro driver}, $05: FDbfVersion := xFoxPro; else - // check visual foxpro - if ((version and $FE) = $30) or (version = $F5) or (version = $FB) then begin - FDbfVersion := xFoxPro; - end else begin // not a valid DBF file raise EDbfError.Create(STRING_INVALID_DBF_FILE); end; end; - FFieldDefs.DbfVersion := FDbfVersion; - RecordSize := PDbfHdr(Header)^.RecordSize; - HeaderSize := PDbfHdr(Header)^.FullHdrSize; - if (HeaderSize = 0) or (RecordSize = 0) then - begin - HeaderSize := 0; - RecordSize := 0; - RecordCount := 0; - FForceClose := true; - exit; - end; - // check if specified recordcount correct - if PDbfHdr(Header)^.RecordCount <> RecordCount then - begin - // This message was annoying - // and was not understood by most people - // ShowMessage('Invalid Record Count,'+^M+ - // 'RecordCount in Hdr : '+IntToStr(PDbfHdr(Header).RecordCount)+^M+ - // 'expected : '+IntToStr(RecordCount)); - PDbfHdr(Header)^.RecordCount := RecordCount; - lModified := true; - end; - // determine codepage - if FDbfVersion >= xBaseVII then + FFieldDefs.DbfVersion := FDbfVersion; + end; + + procedure GetCodePage; + var + LangStr: PChar; + begin + // determine codepage + case FDbfVersion of + xBaseVII: begin // cache language str LangStr := @PAfterHdrVII(PChar(Header) + SizeOf(rDbfHdr))^.LanguageDriverName; @@ -431,59 +447,112 @@ begin FFileCodePage := 0; end; FFileLangId := GetLangId_From_LangName(LanguageStr); - end else begin - // FDbfVersion <= xBaseV + end; + else + begin + // DBase II..V, FoxPro, Visual FoxPro FFileLangId := PDbfHdr(Header)^.Language; FFileCodePage := LangId_To_CodePage[FFileLangId]; end; - // determine used codepage, if no codepage, then use default codepage - FUseCodePage := FFileCodePage; - if FUseCodePage = 0 then - FUseCodePage := DbfGlobals.DefaultOpenCodePage; + end; + // determine used codepage, if no codepage, then use default codepage + FUseCodePage := FFileCodePage; + if FUseCodePage = 0 then + FUseCodePage := DbfGlobals.DefaultOpenCodePage; + end; + +begin + // check if not already opened + if not Active then + begin + // open requested file + OpenFile; + + // check if we opened an already existing file + lModified := false; + if not FileCreated then + begin + HeaderSize := sizeof(rDbfHdr); // temporary, required for getting version + GetVersion; + + RecordSize := PDbfHdr(Header)^.RecordSize; + HeaderSize := PDbfHdr(Header)^.FullHdrSize; + if (HeaderSize = 0) or (RecordSize = 0) then + begin + HeaderSize := 0; + RecordSize := 0; + RecordCount := 0; + FForceClose := true; + exit; + end; + + // check if specified recordcount is right; correct if not + if PDbfHdr(Header)^.RecordCount <> RecordCount then + begin + PDbfHdr(Header)^.RecordCount := RecordCount; + lModified := true; + end; + + GetCodePage; // get list of fields ConstructFieldDefs; // open blob file if present lMemoFileName := ChangeFileExt(FileName, GetMemoExt); if HasBlob then begin - // open blob file - if not FileExists(lMemoFileName) then + // open blob file; if it doesn't exist yet create it + // using AutoCreate as long as we're not running read-only + // If needed, fake a memo file: + if (Mode=pfReadOnly) and (not FileExists(lMemoFileName)) then MemoFileClass := TNullMemoFile - else if FDbfVersion = xFoxPro then + else if (FDbfVersion in [xFoxPro,xVisualFoxPro]) then MemoFileClass := TFoxProMemoFile else - MemoFileClass := TDbaseMemoFile; + MemoFileClass := TDbaseMemoFile; //fallback/default FMemoFile := MemoFileClass.Create(Self); FMemoFile.FileName := lMemoFileName; + if (Mode in [pfMemoryOpen,pfMemoryCreate]) then + FMemoFile.Stream:=FMemoStream; FMemoFile.Mode := Mode; - FMemoFile.AutoCreate := false; + FMemoFile.AutoCreate := true; FMemoFile.MemoRecordSize := 0; FMemoFile.DbfVersion := FDbfVersion; FMemoFile.Open; // set header blob flag corresponding to field list - if FDbfVersion <> xFoxPro then + if not(FDbfVersion in [xFoxPro,xVisualFoxPro]) then begin PDbfHdr(Header)^.VerDBF := PDbfHdr(Header)^.VerDBF or $80; lModified := true; end; end else - if FDbfVersion <> xFoxPro then + if not(FDbfVersion in [xFoxPro,xVisualFoxPro]) then begin PDbfHdr(Header)^.VerDBF := PDbfHdr(Header)^.VerDBF and $7F; lModified := true; end; // check if mdx flagged - if (FDbfVersion <> xFoxPro) and (PDbfHdr(Header)^.MDXFlag <> 0) then + if not(FDbfVersion in [xFoxPro,xVisualFoxPro]) and (PDbfHdr(Header)^.MDXFlag <> 0) then begin // open mdx file if present lMdxFileName := ChangeFileExt(FileName, '.mdx'); - if FileExists(lMdxFileName) then + // Deal with case-sensitive filesystems: + if (FileName<>'') and (UpperCase(FileName)=FileName) then + lMdxFileName := UpperCase(lMdxFileName); + if FileExists(lMdxFileName) or ((Mode in [pfMemoryOpen,pfMemoryCreate])) then begin // open file FMdxFile := TIndexFile.Create(Self); FMdxFile.FileName := lMdxFileName; FMdxFile.Mode := Mode; - FMdxFile.AutoCreate := false; + if (Mode in [pfMemoryOpen,pfMemoryCreate]) then + begin + FMdxFile.Stream := FIndexStream; + FMdxFile.AutoCreate := true; + end + else + begin + FMdxFile.AutoCreate := false; + end; FMdxFile.OnLocaleError := FOnLocaleError; FMdxFile.CodePage := UseCodePage; FMdxFile.Open; @@ -575,18 +644,32 @@ var I, lFieldOffset, lSize, lPrec: Integer; lHasBlob: Boolean; lLocaleID: LCID; + lNullVarFlagCount:integer; //(VFP only) Keeps track of number null/varlength flags needed for _NULLFLAGS size calculation begin try // first reset file RecordCount := 0; lHasBlob := false; + lNullVarFlagCount := 0; // determine codepage & locale - if FFileLangId = 0 then - FFileLangId := DbfGlobals.DefaultCreateLangId; + if FDbfVersion in [xFoxPro, xVisualFoxPro] then + begin + // Don't use DbfGlobals default language ID as it is dbase-based + if FFileLangId = 0 then + FFileLangId := ConstructLangId(LangId_To_CodePage[FFileLangId],GetUserDefaultLCID, true); + end + else + begin + // DBase + if FFileLangId = 0 then + FFileLangId := DbfGlobals.DefaultCreateLangId; + end; FFileCodePage := LangId_To_CodePage[FFileLangId]; lLocaleID := LangId_To_Locale[FFileLangId]; FUseCodePage := FFileCodePage; + + // prepare header size if FDbfVersion = xBaseVII then begin @@ -595,33 +678,39 @@ begin RecordSize := SizeOf(rFieldDescVII); FillChar(Header^, HeaderSize, #0); PDbfHdr(Header)^.VerDBF := $04; - // write language string + // write language string. FPC needs an explicit cast to pchar to avoid calling widestring version of StrPLCopy StrPLCopy( - @PAfterHdrVII(PChar(Header)+SizeOf(rDbfHdr))^.LanguageDriverName[32], - ConstructLangName(FFileCodePage, lLocaleID, false), + PChar(@PAfterHdrVII(PChar(Header)+SizeOf(rDbfHdr))^.LanguageDriverName[32]), + PChar(ConstructLangName(FFileCodePage, lLocaleID, false)), 63-32); lFieldDescPtr := @lFieldDescVII; end else begin - // version xBaseIII/IV/V without memo + // DBase III..V, (Visual) FoxPro without memo HeaderSize := SizeOf(rDbfHdr) + SizeOf(rAfterHdrIII); RecordSize := SizeOf(rFieldDescIII); FillChar(Header^, HeaderSize, #0); - if FDbfVersion = xFoxPro then - begin - PDbfHdr(Header)^.VerDBF := $02 - end else - PDbfHdr(Header)^.VerDBF := $03; - // standard language WE, dBase III no language support - if FDbfVersion = xBaseIII then - PDbfHdr(Header)^.Language := 0 + // Note: VerDBF may be changed later on depending on what features/fields are used + // (autoincrement etc) + case FDbfVersion of + xFoxPro: PDbfHdr(Header)^.VerDBF := $03; {FoxBASE+/FoxPro/dBASE III PLUS/dBASE IV, no memo + alternative $02 FoxBASE is not readable by current Visual FoxPro drivers. + } + xVisualFoxPro: PDbfHdr(Header)^.VerDBF := $30; {Visual FoxPro no autoincrement,no varchar} + else PDbfHdr(Header)^.VerDBF := $03; {FoxBASE+/FoxPro/dBASE III PLUS/dBASE IV, no memo} + end; + + // standard language WE/Western Europe + if FDbfVersion=xBaseIII then + PDbfHdr(Header)^.Language := 0 //no language support else PDbfHdr(Header)^.Language := FFileLangId; + // init field ptr lFieldDescPtr := @lFieldDescIII; end; - // begin writing fields + // begin writing field definitions FFieldDefs.Clear; - // deleted mark 1 byte + // deleted mark takes 1 byte, so skip over that lFieldOffset := 1; for I := 1 to AFieldDefs.Count do begin @@ -640,16 +729,28 @@ begin lFieldDef.FieldName := AnsiUpperCase(lFieldDef.FieldName); lFieldDef.Offset := lFieldOffset; lHasBlob := lHasBlob or lFieldDef.IsBlob; + // Check for foxpro, too, as it can get auto-upgraded to vfp: + if (FDbfVersion in [xFoxPro,xVisualFoxPro]) then + begin + if (lFieldDef.NativeFieldType='Q') or (lFieldDef.NativeFieldType='V') then + begin + lNullVarFlagCount:=lNullVarFlagCount+1; + end; + if (lFieldDef.NullPosition>=0) then + lNullVarFlagCount:=lNullVarFlagCount+1; + end; // apply field transformation tricks lSize := lFieldDef.Size; lPrec := lFieldDef.Precision; if (lFieldDef.NativeFieldType = 'C') {$ifndef USE_LONG_CHAR_FIELDS} - and (FDbfVersion = xFoxPro) + and (FDbfVersion in [xFoxPro,xVisualFoxPro]) {$endif} - then + then begin + // Up to 32kb strings + // Stores high byte of size in precision, low in size lPrec := lSize shr 8; lSize := lSize and $FF; end; @@ -670,12 +771,40 @@ begin lFieldDescIII.FieldType := lFieldDef.NativeFieldType; lFieldDescIII.FieldSize := lSize; lFieldDescIII.FieldPrecision := lPrec; - if FDbfVersion = xFoxPro then + if (FDbfVersion in [xFoxPro,xVisualFoxPro]) then lFieldDescIII.FieldOffset := SwapIntLE(lFieldOffset); - if (PDbfHdr(Header)^.VerDBF = $02) and (lFieldDef.NativeFieldType in ['0', 'Y', 'T', 'O', '+']) then - PDbfHdr(Header)^.VerDBF := $30; - if (PDbfHdr(Header)^.VerDBF = $30) and (lFieldDef.NativeFieldType = '+') then - PDbfHdr(Header)^.VerDBF := $31; + + // Upgrade the version info if needed for supporting field types used. + // This is also what Visual FoxPro does with FoxPro tables to which you + // add new VFP features. + if (FDBFVersion in [xUnknown,xFoxPro,xVisualFoxPro]) then + begin + // VerDBF=$03 also includes dbase formats, so we perform an extra check + if (PDbfHdr(Header)^.VerDBF in [$02,$03]) and + ((lFieldDef.NativeFieldType in ['0', 'Y', 'T', 'O', '+', 'Q', 'V']) or (lNullVarFlagCount>0)) + then + begin + PDbfHdr(Header)^.VerDBF := $30; {Visual FoxPro} + FDBFVersion:=xVisualFoxPro; //needed to write the backlink info + end; + //AutoInc only support in Visual Foxpro; another upgrade + //Note: .AutoIncrementNext is really a cardinal (see the definition) + lFieldDescIII.AutoIncrementNext:=SwapIntLE(lFieldDef.AutoInc); + lFieldDescIII.AutoIncrementStep:=lFieldDef.AutoIncStep; + // Set autoincrement flag using AutoIncStep as a marker + if (lFieldDef.AutoIncStep<>0) then + lFieldDescIII.VisualFoxProFlags:=(lFieldDescIII.VisualFoxProFlags or $0C); + if (PDbfHdr(Header)^.VerDBF = $30) and (lFieldDef.AutoIncStep<>0) then + begin + PDbfHdr(Header)^.VerDBF := $31; {Visual FoxPro, autoincrement enabled} + FDBFVersion:=xVisualFoxPro; + end; + + // Only supported in Visual FoxPro but let's not upgrade format as + // IsSystemField is a minor property + if (lFieldDef.IsSystemField) then + lFieldDescIII.VisualFoxProFlags:=(lFieldDescIII.VisualFoxProFlags or $01); + end; end; // update our field list @@ -690,32 +819,52 @@ begin WriteRecord(I, lFieldDescPtr); Inc(lFieldOffset, lFieldDef.Size); end; - // end of header - WriteChar($0D); + + // Visual Foxpro: write _NULLFLAGS field if required + if (FDBFVersion=xVisualFoxPro) and (lNullVarFlagCount>0) then + begin + FillChar(lFieldDescIII, SizeOf(lFieldDescIII), #0); + StrPLCopy(lFieldDescIII.FieldName, NULLFLAGSFIELD, 10); + lFieldDescIII.FieldType := '0'; //bytes + lFieldDescIII.FieldSize := 1+(lNullVarFlagCount-1) div 8; //Number of bytes needed for all bit flags + lFieldDescIII.FieldPrecision := 0; + lFieldDescIII.FieldOffset := SwapIntLE(lFieldOffset); + lFieldDescIII.VisualFoxProFlags:=$01+$04 ; //System column (hidden)+Column can store null values (which is a bit of a paradox) + // save field props + WriteRecord(AFieldDefs.Count+1, @lFieldDescIII); + Inc(lFieldOffset, lFieldDescIII.FieldSize); + end; + + // end of field descriptor; ussually end of header - + // Visual Foxpro backlink info is part of the header but comes after the + // terminator + WriteChar(FIELD_DESCRIPTOR_ARRAY_TERMINATOR); // write memo bit if lHasBlob then begin - if FDbfVersion = xBaseIII then - PDbfHdr(Header)^.VerDBF := PDbfHdr(Header)^.VerDBF or $80 - else - if FDbfVersion = xFoxPro then - begin - if PDbfHdr(Header)^.VerDBF = $02 then - PDbfHdr(Header)^.VerDBF := $F5; - end else - PDbfHdr(Header)^.VerDBF := PDbfHdr(Header)^.VerDBF or $88; + case FDbfVersion of + xBaseIII: PDbfHdr(Header)^.VerDBF := PDbfHdr(Header)^.VerDBF or $80; + xFoxPro: if (PDbfHdr(Header)^.VerDBF in [$02,$03]) then {change from FoxBASE to...} + PDbfHdr(Header)^.VerDBF := $F5; {...FoxPro 2.x (or earlier) with memo} + xVisualFoxPro: //MSDN says field 28 or $02 to set memo flag + PDbfHdr(Header)^.MDXFlag := PDbfHdr(Header)^.MDXFlag or $02; + else PDbfHdr(Header)^.VerDBF := PDbfHdr(Header)^.VerDBF or $88; + end; end; // update header PDbfHdr(Header)^.RecordSize := lFieldOffset; - PDbfHdr(Header)^.FullHdrSize := HeaderSize + RecordSize * AFieldDefs.Count + 1; - // add empty "back-link" info, whatever it is: - { A 263-byte range that contains the backlink, which is the relative path of + if lNullVarFlagCount>0 then + PDbfHdr(Header)^.FullHdrSize := HeaderSize + RecordSize * (AFieldDefs.Count+1) + 1 + else + PDbfHdr(Header)^.FullHdrSize := HeaderSize + RecordSize * AFieldDefs.Count + 1; + { For Visual FoxPro only, add empty "back-link" info: + A 263-byte range that contains the backlink, which is the relative path of an associated database (.dbc) file, information. If the first byte is 0x00, the file is not associated with a database. Therefore, database files always contain 0x00. } - if FDbfVersion = xFoxPro then + if (FDbfVersion = xVisualFoxPro) then Inc(PDbfHdr(Header)^.FullHdrSize, 263); // write dbf header to disk @@ -731,11 +880,13 @@ begin if HasBlob and (FMemoFile=nil) then begin lMemoFileName := ChangeFileExt(FileName, GetMemoExt); - if FDbfVersion = xFoxPro then + if (FDbfVersion in [xFoxPro,xVisualFoxPro]) then FMemoFile := TFoxProMemoFile.Create(Self) else FMemoFile := TDbaseMemoFile.Create(Self); FMemoFile.FileName := lMemoFileName; + if (Mode in [pfMemoryOpen,pfMemoryCreate]) then + FMemoFile.Stream:=FMemoStream; FMemoFile.Mode := Mode; FMemoFile.AutoCreate := AutoCreate; FMemoFile.MemoRecordSize := MemoSize; @@ -750,16 +901,21 @@ var begin Result := false; for I := 0 to FFieldDefs.Count-1 do - if FFieldDefs.Items[I].IsBlob then + if FFieldDefs.Items[I].IsBlob then + begin Result := true; + break; + end; end; function TDbfFile.GetMemoExt: string; begin - if FDbfVersion = xFoxPro then - Result := '.fpt' - else - Result := '.dbt'; + case FDbfVersion of + xFoxPro, xVisualFoxPro: Result := '.fpt' + else Result := '.dbt'; + end; + if (FFileName<>'') and (FFileName=UpperCase(FFileName)) then + Result := UpperCase(Result); end; procedure TDbfFile.Zap; @@ -792,8 +948,10 @@ begin // lDataHdr.RecordCount := RecordCount; inherited WriteHeader; + // Write terminator at the end of the file, after the records: EofTerminator := $1A; - WriteBlock(@EofTerminator, 1, CalcPageOffset(RecordCount+1)); + // We're using lDataHdr to make sure we have the latest/correct version + WriteBlock(@EofTerminator, 1, CalcPageOffset(lDataHdr.RecordCount+1)); end; procedure TDbfFile.ConstructFieldDefs; @@ -810,15 +968,19 @@ var dataPtr: PChar; lNativeFieldType: Char; lFieldName: string; - lCanHoldNull: boolean; + lCanHoldNull: boolean; //Can the field store nulls, i.e. is it nullable? + lIsVFPSystemField: boolean; //Is this a Visual FoxPro system/hidden field? + lIsVFPVarLength: boolean; //Is this a Visual FoxPro varbinary/varchar field, + // where varlength bit is maintained in _NULLFLAGS lCurrentNullPosition: integer; begin FFieldDefs.Clear; - if DbfVersion >= xBaseVII then + if DbfVersion = xBaseVII then begin lHeaderSize := SizeOf(rAfterHdrVII) + SizeOf(rDbfHdr); lFieldSize := SizeOf(rFieldDescVII); end else begin + // DBase III..V, (Visual) FoxPro lHeaderSize := SizeOf(rAfterHdrIII) + SizeOf(rDbfHdr); lFieldSize := SizeOf(rFieldDescIII); end; @@ -832,13 +994,15 @@ begin lFieldOffset := 1; lAutoInc := 0; I := 1; - lCurrentNullPosition := 0; + lCurrentNullPosition := 0; // Contains the next value for the _NULLFLAGS bit position lCanHoldNull := false; + lIsVFPSystemField := false; + lIsVFPVarLength := false; try - // there has to be minimum of one field + // Specs say there has to be at least one field, so use repeat: repeat // version field info? - if FDbfVersion >= xBaseVII then + if FDbfVersion = xBaseVII then begin ReadRecord(I, @lFieldDescVII); lFieldName := AnsiUpperCase(PChar(@lFieldDescVII.FieldName[0])); @@ -849,23 +1013,42 @@ begin if lNativeFieldType = '+' then FAutoIncPresent := true; end else begin + // DBase III..V, FoxPro, Visual FoxPro ReadRecord(I, @lFieldDescIII); lFieldName := AnsiUpperCase(PChar(@lFieldDescIII.FieldName[0])); lSize := lFieldDescIII.FieldSize; lPrec := lFieldDescIII.FieldPrecision; lNativeFieldType := lFieldDescIII.FieldType; - lCanHoldNull := (FDbfVersion = xFoxPro) and - ((lFieldDescIII.FoxProFlags and $2) <> 0) and - (lFieldName <> '_NULLFLAGS'); + if (FDBFVersion=xVisualFoxPro) and ((lFieldDescIII.VisualFoxProFlags and $0C)<>0) then + begin + // We do not test for an I field - we could implement our own N autoincrement this way... + lAutoInc:=lFieldDescIII.AutoIncrementNext; + FAutoIncPresent:=true; + end; + + // Only Visual FoxPro supports null fields, if the nullable field flag is on + lCanHoldNull := (FDbfVersion in [xVisualFoxPro]) and + ((lFieldDescIII.VisualFoxProFlags and $2) <> 0) and + (lFieldName <> NULLFLAGSFIELD {the field where null status is stored can never be null itself}); + // System/hidden flag (VFP only): + lIsVFPSystemField := (FDbfVersion in [xVisualFoxPro]) and + ((lFieldDescIII.VisualFoxProFlags and $01)=$01); + // Only Visual Foxpro supports varbinary/varchar fields where a flag indicates + // if the actual size is stored in the last data byte. + lIsVFPVarLength := (FDbfVersion in [xVisualFoxPro]) and + (lNativeFieldType in ['Q','V']) and + (lFieldName <> NULLFLAGSFIELD); end; // apply field transformation tricks if (lNativeFieldType = 'C') {$ifndef USE_LONG_CHAR_FIELDS} - and (FDbfVersion = xFoxPro) + and (FDbfVersion in [xFoxPro,xVisualFoxPro]) {$endif} - then + then begin + // (V)FP uses the byte where precision is normally stored + // for the high byte of the field size lSize := lSize + lPrec shl 8; lPrec := 0; end; @@ -880,6 +1063,15 @@ begin Precision := lPrec; AutoInc := lAutoInc; NativeFieldType := lNativeFieldType; + IsSystemField := lIsVFPSystemField; + if lIsVFPVarLength then + begin + // The varlength flag uses the same _NULLFLAGS field as the null flags. + // It comes before the null bit for that field, if any. + VarLengthPosition := lCurrentNullPosition; + inc(lCurrentNullPosition); + end else + VarLengthPosition := -1; if lCanHoldNull then begin NullPosition := lCurrentNullPosition; @@ -893,7 +1085,7 @@ begin // 2) known field type // {3) no changes have to be made to precision or size} if (Length(lFieldName) = 0) or (TempFieldDef.FieldType = ftUnknown) then - raise EDbfError.Create(STRING_INVALID_DBF_FILE); + raise EDbfError.Create(STRING_INVALID_DBF_FILE_FIELDERROR); // determine if lock field present, if present, then store additional info if lFieldName = '_DBASELOCK' then @@ -903,7 +1095,7 @@ begin if FLockUserLen > DbfGlobals.UserNameLen then FLockUserLen := DbfGlobals.UserNameLen; end else - if UpperCase(lFieldName) = '_NULLFLAGS' then + if (FDbfVersion=xVisualFoxPro) and (uppercase(lFieldName) = NULLFLAGSFIELD) then FNullField := TempFieldDef; // goto next field @@ -912,7 +1104,7 @@ begin // continue until header termination character found // or end of header reached - until (I > lColumnCount) or (ReadChar = $0D); + until (I > lColumnCount) or (ReadChar = FIELD_DESCRIPTOR_ARRAY_TERMINATOR); // test if not too many fields if FFieldDefs.Count >= 4096 then @@ -971,8 +1163,8 @@ begin ReadBlock(dataPtr, lStdProp.DataSize, lPropHdrOffset + lStdProp.DataOffset); end; end; - // read custom properties...not implemented - // read RI properties...not implemented + // todo: read custom properties...not implemented + // todo: read RI/referential integrity properties...not implemented end; finally HeaderSize := PDbfHdr(Header)^.FullHdrSize; @@ -985,12 +1177,46 @@ begin Result := PDbfHdr(Header)^.Language; end; -function TDbfFile.GetLanguageStr: String; +function TDbfFile.GetLanguageStr: string; begin if FDbfVersion >= xBaseVII then Result := PAfterHdrVII(PChar(Header) + SizeOf(rDbfHdr))^.LanguageDriverName; end; +function TDbfFile.IsNullFlagSet(const Src: Pointer; var AFieldDef: TDbfFieldDef; WhichField: TNullFieldFlag): boolean; +var + NullFlagByte: Pointer; +begin + case WhichField of + nfNullFlag: + begin + if (AFieldDef.NullPosition<0) or (FNullField=nil) then + result:=false //field is not even nullable + else + begin + // go to _NULLFLAGS byte that has this field's null flag + // Find out the byte where the null bit for the field is stored by doing + // NullPosition shr3 (= NullPosition div 8)... + NullFlagByte := PChar(Src) + FNullField.Offset + (AFieldDef.NullPosition shr 3); + // ... get the correct bit in the byte by the equivalent of getting the bit number in that byte: + // NullPosition and $7 (=mod 8)... and going to the bit value in the byte (by shl) + // The result is true if the field is null. + Result := (PByte(NullFlagByte)^ and (1 shl (AFieldDef.NullPosition and $7))) <> 0; + end; + end; + nfVarlengthFlag: + begin + if (AFieldDef.VarLengthPosition<0) or (FNullField=nil) then + result:=false //field *never* has a varlength byte + else + begin + NullFlagByte := PChar(Src) + FNullField.Offset + (AFieldDef.VarLengthPosition shr 3); + Result := (PByte(NullFlagByte)^ and (1 shl (AFieldDef.VarLengthPosition and $7))) <> 0 + end; + end; + end; +end; + { I fill the holes with the last records. now we can do an 'in-place' pack @@ -1049,7 +1275,7 @@ begin PChar(pNormal)^ := '*'; WriteRecord(iNormal, pNormal); end else begin - // Cannot found a record after iDel so iDel must be deleted + // Cannot find a record after iDel so iDel must be deleted dec(iDel); break; end; @@ -1071,6 +1297,7 @@ var NewBaseName: string; I: integer; begin + // todo: verify if this works with memo files // get memory for index file list lIndexFileNames := TStringList.Create; try @@ -1177,7 +1404,10 @@ begin if FMemoFile <> nil then DestDbfFile.FinishCreate(DestFieldDefs, FMemoFile.RecordSize) else - DestDbfFile.FinishCreate(DestFieldDefs, 512); + if (DestDbfFile.DbfVersion in [xFoxPro,xVisualFoxPro]) then + DestDbfFile.FinishCreate(DestFieldDefs, 64) {VFP default} + else + DestDbfFile.FinishCreate(DestFieldDefs, 512); // adjust size and offsets of fields GetMem(RestructFieldInfo, sizeof(TRestructFieldInfo)*DestFieldDefs.Count); @@ -1191,7 +1421,7 @@ begin begin // get minimum field length lFieldSize := Min(TempSrcDef.Precision, TempDstDef.Precision) + - Min(TempSrcDef.Size - TempSrcDef.Precision, + Min(TempSrcDef.Size - TempSrcDef.Precision, TempDstDef.Size - TempDstDef.Precision); // if one has dec separator, but other not, we lose one digit if (TempDstDef.Precision > 0) xor @@ -1200,7 +1430,7 @@ begin // should not happen, but check nevertheless (maybe corrupt data) if lFieldSize < 0 then lFieldSize := 0; - srcOffset := TempSrcDef.Size - TempSrcDef.Precision - + srcOffset := TempSrcDef.Size - TempSrcDef.Precision - (TempDstDef.Size - TempDstDef.Precision); if srcOffset < 0 then begin @@ -1252,7 +1482,7 @@ begin else GetMem(pDestBuff, DestDbfFile.RecordSize); - // let the games begin! + // Go through record data: try {$ifdef USE_CACHE} BufferAhead := true; @@ -1263,7 +1493,7 @@ begin begin // read record from original dbf ReadRecord(lRecNo, pBuff); - // copy record? + // copy record unless (deleted or user wants packing) if (ansichar(pBuff^) <> '*') or not Pack then begin // if restructure, initialize dest @@ -1405,6 +1635,7 @@ var date: TDateTime; timeStamp: TTimeStamp; asciiContents: boolean; + SrcRecord: Pointer; {$ifdef SUPPORT_INT64} function GetInt64FromStrLength(Src: Pointer; Size: Integer; Default: Int64): Int64; @@ -1428,7 +1659,7 @@ var var wD, wM, wY, CenturyBase: Word; {$ifndef DELPHI_5} - // Delphi 3 standard-behavior no change possible + // Delphi 3 standard behavior, no change possible const TwoDigitYearCenturyWindow= 0; {$endif} @@ -1473,40 +1704,39 @@ begin // check Dst = nil, called with dst = nil to check empty field if (FNullField <> nil) and (Dst = nil) and (AFieldDef.NullPosition >= 0) then begin - // go to byte with null flag of this field - Src := PChar(Src) + FNullField.Offset + (AFieldDef.NullPosition shr 3); - Result := (PByte(Src)^ and (1 shl (AFieldDef.NullPosition and $7))) <> 0; + result:= not(IsNullFlagSet(Src, AFieldDef, nfNullFlag)); exit; end; - + FieldOffset := AFieldDef.Offset; FieldSize := AFieldDef.Size; + SrcRecord := Src; Src := PChar(Src) + FieldOffset; asciiContents := false; Result := true; // field types that are binary and of which the fieldsize should not be truncated case AFieldDef.NativeFieldType of - '+', 'I': + '+', 'I': //Autoincrement, integer begin - if FDbfVersion <> xFoxPro then + if not(FDbfVersion in [xFoxPro,xVisualFoxPro]) then begin - Result := PDWord(Src)^ <> 0; + Result := Unaligned(PDWord(Src)^) <> 0; if Result and (Dst <> nil) then begin - PDWord(Dst)^ := SwapIntBE(PDWord(Src)^); + PDWord(Dst)^ := SwapIntBE(Unaligned(PDWord(Src)^)); if Result then PInteger(Dst)^ := Integer(PDWord(Dst)^ xor $80000000); end; end else begin Result := true; if Dst <> nil then - PInteger(Dst)^ := SwapIntLE(PInteger(Src)^); + PInteger(Dst)^ := SwapIntLE(Unaligned(PInteger(Src)^)); end; end; 'O': begin {$ifdef SUPPORT_INT64} - Result := PInt64(Src)^ <> 0; + Result := Unaligned(PInt64(Src)^) <> 0; if Result and (Dst <> nil) then begin SwapInt64BE(Src, Dst); @@ -1519,7 +1749,7 @@ begin end; '@': begin - Result := (PInteger(Src)^ <> 0) and (PInteger(PChar(Src)+4)^ <> 0); + Result := (Unaligned(PInteger(Src)^) <> 0) and (Unaligned(PInteger(PChar(Src)+4)^) <> 0); if Result and (Dst <> nil) then begin SwapInt64BE(Src, Dst); @@ -1534,50 +1764,92 @@ begin begin // all binary zeroes -> empty datetime {$ifdef SUPPORT_INT64} - Result := PInt64(Src)^ <> 0; + Result := Unaligned(PInt64(Src)^) <> 0; {$else} - Result := (PInteger(Src)^ <> 0) or (PInteger(PChar(Src)+4)^ <> 0); + Result := (Unaligned(PInteger(Src)^) <> 0) or (Unaligned(PInteger(PChar(Src)+4)^) <> 0); {$endif} if Result and (Dst <> nil) then begin - timeStamp.Date := SwapIntLE(PInteger(Src)^) - JulianDateDelta; - timeStamp.Time := SwapIntLE(PInteger(PChar(Src)+4)^); + timeStamp.Date := SwapIntLE(Unaligned(PInteger(Src)^)) - JulianDateDelta; + timeStamp.Time := SwapIntLE(Unaligned(PInteger(PChar(Src)+4)^)); date := TimeStampToDateTime(timeStamp); SaveDateToDst; end; end; - 'Y': + 'Y': // currency begin {$ifdef SUPPORT_INT64} Result := true; if Dst <> nil then begin - PInt64(Dst)^ := SwapIntLE(PInt64(Src)^); + PInt64(Dst)^ := SwapIntLE(Unaligned(PInt64(Src)^)); if DataType = ftCurrency then PDouble(Dst)^ := PInt64(Dst)^ / 10000.0; end; {$endif} end; - 'B': // foxpro double + 'B': // Foxpro double begin - if FDbfVersion = xFoxPro then + if (FDbfVersion in [xFoxPro,xVisualFoxPro]) then begin - Result := true; - if Dst <> nil then - PInt64(Dst)^ := SwapIntLE(PInt64(Src)^); - end else + {$ifdef SUPPORT_INT64} + Result := Unaligned(PInt64(Src)^) <> 0; + if Result and (Dst <> nil) then + begin + SwapInt64LE(Src, Dst); + PDouble(Dst)^ := PDouble(Dst)^; + end; + {$endif} end else asciiContents := true; end; 'M': begin if FieldSize = 4 then begin - Result := PInteger(Src)^ <> 0; + Result := Unaligned(PInteger(Src)^) <> 0; if Dst <> nil then - PInteger(Dst)^ := SwapIntLE(PInteger(Src)^); + PInteger(Dst)^ := SwapIntLE(Unaligned(PInteger(Src)^)); end else asciiContents := true; end; + 'Q', 'V': // Visual Foxpro varbinary, varchar + //todo: check if codepage conversion/translation for varchar is needed + begin + if (FDbfVersion in [xVisualFoxPro]) then + begin + Result := true; + // The length byte is only stored if the field is not full + if (Dst <> nil) then + begin + //clear the destination, just in case + Fillchar(pbyte(Dst)^,Fieldsize,0); + if IsNullFlagSet(SrcRecord, AFieldDef, nfVarlengthFlag) then + // so we decrease the fieldsize and let the rest of the code handle it + FieldSize:=(PByte(Src)+FieldSize-1)^; + // If field is not null: + if not(IsNullFlagSet(SrcRecord, AFieldDef, nfNullFlag)) then + if Afielddef.FieldType=ftVarBytes then + begin + PWord(Dst)^:=Fieldsize; //Store size in destination + move(Src^, pbyte(Dst+sizeof(Word))^, FieldSize) + end + else + move(Src^, pbyte(Dst)^, FieldSize) + else + result:=false; + end; + end; + end; + '0': // Zero not letter 0: bytes + begin + if (Dst <> nil) then + begin + //clear the destination, just in case + Fillchar(pbyte(Dst)^,Fieldsize,0); + move(Src^, pbyte(Dst)^, FieldSize); + Result := true; + end; + end; else asciiContents := true; end; @@ -1603,7 +1875,7 @@ begin begin // in DBase- FileDescription lowercase t is allowed too // with asking for Result= true s must be longer then 0 - // else it happens an AV, maybe field is NULL + // else an AV occurs, maybe field is NULL if (PChar(Src)^ = 'T') or (PChar(Src)^ = 't') then PWord(Dst)^ := 1 else @@ -1667,20 +1939,38 @@ begin end; procedure TDbfFile.UpdateNullField(Buffer: Pointer; AFieldDef: TDbfFieldDef; - Action: TUpdateNullField); + Action: TUpdateNullField; WhichField: TNullFieldFlag); var NullDst: pbyte; Mask: byte; begin - // this field has null setting capability - NullDst := PByte(PChar(Buffer) + FNullField.Offset + (AFieldDef.NullPosition shr 3)); - Mask := 1 shl (AFieldDef.NullPosition and $7); - if Action = unSet then + // this field has null setting capability... + // ... but no Super Cow Powers. + case WhichField of + nfNullFlag: + begin + // Find out the byte where the length bit for the field is stored by doing + // NullPosition shr3 (= NullPosition div 8)... + NullDst := PByte(PChar(Buffer) + FNullField.Offset + (AFieldDef.NullPosition shr 3)); + // ... get the correct bit in the byte by the equivalent of + // getting the bit number in that byte: + // NullPosition and $7 (=mod 8)... + // and going to the bit value in the byte (shl) + Mask := 1 shl (AFieldDef.NullPosition and $7); + end; + nfVarlengthFlag: + begin + NullDst := PByte(PChar(Buffer) + FNullField.Offset + (AFieldDef.VarLengthPosition shr 3)); + Mask := 1 shl (AFieldDef.VarLengthPosition and $7); + end; + end; + + if Action = unfSet then begin - // clear the field, set null flag + // set flag NullDst^ := NullDst^ or Mask; - end else begin - // set field data, clear null flag + end else begin //unfClear + // clear flag NullDst^ := NullDst^ and not Mask; end; end; @@ -1689,8 +1979,9 @@ procedure TDbfFile.SetFieldData(Column: Integer; DataType: TFieldType; Src, Dst: Pointer; NativeFormat: boolean); const IsBlobFieldToPadChar: array[Boolean] of Char = (#32, '0'); - SrcNilToUpdateNullField: array[boolean] of TUpdateNullField = (unClear, unSet); + SrcNilToUpdateNullField: array[boolean] of TUpdateNullField = (unfClear, unfSet); var + DstRecord: Pointer; FieldSize,FieldPrec: Integer; TempFieldDef: TDbfFieldDef; Len: Integer; @@ -1727,31 +2018,33 @@ begin FieldSize := TempFieldDef.Size; FieldPrec := TempFieldDef.Precision; + DstRecord:=Dst; //beginning of record + Dst := PChar(Dst) + TempFieldDef.Offset; //beginning of field + // if src = nil then write empty field - // symmetry with above + // symmetry with above loading code - // foxpro has special _nullfield for flagging fields as `null' + // Visual Foxpro has special _nullfield for flagging fields as `null' if (FNullField <> nil) and (TempFieldDef.NullPosition >= 0) then - UpdateNullField(Dst, TempFieldDef, SrcNilToUpdateNullField[Src = nil]); + UpdateNullField(DstRecord, TempFieldDef, SrcNilToUpdateNullField[Src = nil],nfNullFlag); // copy field data to record buffer - Dst := PChar(Dst) + TempFieldDef.Offset; asciiContents := false; case TempFieldDef.NativeFieldType of - '+', 'I': + '+', 'I' {autoincrement, integer}: begin - if FDbfVersion <> xFoxPro then + if not(FDbfVersion in [xFoxPro,xVisualFoxPro]) then begin if Src = nil then IntValue := 0 else IntValue := PDWord(Src)^ xor $80000000; - PDWord(Dst)^ := SwapIntBE(IntValue); + Unaligned(PDWord(Dst)^) := SwapIntBE(IntValue); end else begin if Src = nil then - PDWord(Dst)^ := 0 + Unaligned(PDWord(Dst)^) := 0 else - PDWord(Dst)^ := SwapIntLE(PDWord(Src)^); + Unaligned(PDWord(Dst)^) := SwapIntLE(PDWord(Src)^); end; end; 'O': @@ -1759,12 +2052,12 @@ begin {$ifdef SUPPORT_INT64} if Src = nil then begin - PInt64(Dst)^ := 0; + Unaligned(PInt64(Dst)^) := 0; end else begin if PDouble(Src)^ < 0 then - PInt64(Dst)^ := not PInt64(Src)^ + Unaligned(PInt64(Dst)^) := not PInt64(Src)^ else - PDouble(Dst)^ := (PDouble(Src)^) * -1; + Unaligned(PDouble(Dst)^) := (PDouble(Src)^) * -1; SwapInt64BE(Dst, Dst); end; {$endif} @@ -1774,10 +2067,10 @@ begin if Src = nil then begin {$ifdef SUPPORT_INT64} - PInt64(Dst)^ := 0; + Unaligned(PInt64(Dst)^) := 0; {$else} - PInteger(Dst)^ := 0; - PInteger(PChar(Dst)+4)^ := 0; + Unaligned(PInteger(Dst)^) := 0; + Unaligned(PInteger(PChar(Dst)+4)^) := 0; {$endif} end else begin LoadDateFromSrc; @@ -1792,16 +2085,16 @@ begin if Src = nil then begin {$ifdef SUPPORT_INT64} - PInt64(Dst)^ := 0; + Unaligned(PInt64(Dst)^) := 0; {$else} - PInteger(Dst)^ := 0; - PInteger(PChar(Dst)+4)^ := 0; + Unaligned(PInteger(Dst)^) := 0; + Unaligned(PInteger(PChar(Dst)+4)^) := 0; {$endif} end else begin LoadDateFromSrc; timeStamp := DateTimeToTimeStamp(date); - PInteger(Dst)^ := SwapIntLE(timeStamp.Date + JulianDateDelta); - PInteger(PChar(Dst)+4)^ := SwapIntLE(timeStamp.Time); + Unaligned(PInteger(Dst)^) := SwapIntLE(timeStamp.Date + JulianDateDelta); + Unaligned(PInteger(PChar(Dst)+4)^) := SwapIntLE(timeStamp.Time); end; end; 'Y': @@ -1809,24 +2102,24 @@ begin {$ifdef SUPPORT_INT64} if Src = nil then begin - PInt64(Dst)^ := 0; + Unaligned(PInt64(Dst)^) := 0; end else begin case DataType of ftCurrency: - PInt64(Dst)^ := Trunc(PDouble(Src)^ * 10000); + Unaligned(PInt64(Dst)^) := Trunc(PDouble(Src)^ * 10000); ftBCD: - PCurrency(Dst)^ := PCurrency(Src)^; + Unaligned(PCurrency(Dst)^) := PCurrency(Src)^; end; SwapInt64LE(Dst, Dst); end; {$endif} end; - 'B': + 'B' {(Visual) FoxPro Double}: begin - if DbfVersion = xFoxPro then + if DbfVersion in [xFoxPro,xVisualFoxPro] then begin if Src = nil then - PDouble(Dst)^ := 0 + Unaligned(PDouble(Dst)^) := 0 else SwapInt64LE(Src, Dst); end else @@ -1837,12 +2130,60 @@ begin if FieldSize = 4 then begin if Src = nil then - PInteger(Dst)^ := 0 + Unaligned(PInteger(Dst)^) := 0 else - PInteger(Dst)^ := SwapIntLE(PInteger(Src)^); + Unaligned(PInteger(Dst)^) := SwapIntLE(PInteger(Src)^); end else asciiContents := true; end; + 'Q': //Visual FoxPro varbinary + begin + // copy data, and update varlength flag/varlength byte in field data + Len := PWord(Src)^; + if Len > FieldSize then + Len := FieldSize; + if Len < FieldSize then + begin + // Clear flag and store actual size byte in last data byte + PByte(PChar(Dst)+TempFieldDef.Size-1)^:=Len; + UpdateNullField(DstRecord, TempFieldDef, unfSet, nfVarlengthFlag); + end + else + begin + UpdateNullField(DstRecord, TempFieldDef, unfClear, nfVarlengthFlag); + end; + + Move((Src+sizeof(word))^, Dst^, Len); + // fill remaining data area with spaces, keeping room for size indicator if needed + if Len=FieldSize then + FillChar((PChar(Dst)+Len)^, FieldSize - Len, ' ') + else + FillChar((PChar(Dst)+Len)^, FieldSize - Len - 1, ' '); + end; + 'V': //Visual FoxPro varchar + begin + // copy data, and update varlength flag/varlength byte in field data + Len := StrLen(Src); + if Len > FieldSize then + Len := FieldSize; + if Len < FieldSize then + begin + // Clear flag and store actual size byte in last data byte + PByte(PChar(Dst)+TempFieldDef.Size-1)^:=Len; + UpdateNullField(DstRecord, TempFieldDef, unfSet, nfVarlengthFlag); + end + else + begin + UpdateNullField(DstRecord, TempFieldDef, unfClear, nfVarlengthFlag); + end; + + Move(Src^, Dst^, Len); + // fill remaining data area with spaces, keeping room for size indicator if needed + if Len=FieldSize then + FillChar((PChar(Dst)+Len)^, FieldSize - Len, ' ') + else + FillChar((PChar(Dst)+Len)^, FieldSize - Len - 1, ' '); + end else asciiContents := true; end; @@ -1917,7 +2258,7 @@ begin GetMem(FDefaultBuffer, lRecordSize+1); FillChar(FDefaultBuffer^, lRecordSize, ' '); - // set nullflags field so that all fields are null + // set nullflags field so that all fields are null (and var* fields marked as full) if FNullField <> nil then FillChar(PChar(FDefaultBuffer+FNullField.Offset)^, FNullField.Size, $FF); @@ -1925,9 +2266,9 @@ begin for I := 0 to FFieldDefs.Count-1 do begin TempFieldDef := FFieldDefs.Items[I]; - // binary field? (foxpro memo fields are binary, but dbase not) - if (TempFieldDef.NativeFieldType in ['I', 'O', '@', '+', '0', 'Y']) - or ((TempFieldDef.NativeFieldType = 'M') and (TempFieldDef.Size = 4)) then + // binary (non-text) field? (foxpro memo fields are binary, but dbase not) + if (TempFieldDef.NativeFieldType in ['I', 'O', '@', '+', '0', 'W', 'Y']) + or ((TempFieldDef.NativeFieldType = 'M') and (TempFieldDef.Size = 4) {Visual FoxPro?}) then FillChar(PChar(FDefaultBuffer+TempFieldDef.Offset)^, TempFieldDef.Size, 0); // copy default value? if TempFieldDef.HasDefault then @@ -1935,7 +2276,18 @@ begin Move(TempFieldDef.DefaultBuf[0], FDefaultBuffer[TempFieldDef.Offset], TempFieldDef.Size); // clear the null flag, this field has a value if FNullField <> nil then - UpdateNullField(FDefaultBuffer, TempFieldDef, unClear); + UpdateNullField(FDefaultBuffer, TempFieldDef, unfClear, nfNullFlag); + // Check for varbinary/varchar and if default matches it, then mark field as full + if (TempFieldDef.VarLengthPosition>=0) then + if (strlen(FDefaultBuffer)>=TempFieldDef.Size) then + UpdateNullField(FDefaultBuffer, TempFieldDef, unfClear, nfVarlengthFlag) + else + begin + // Set flag and store actual size byte in last data byte + UpdateNullField(FDefaultBuffer, TempFieldDef, unfSet, nfVarlengthFlag); + //todo: verify pointer use + PByte(PChar(FDefaultBuffer)+TempFieldDef.Size)^:=strlen(FDefaultBuffer); + end; end; end; end; @@ -1965,7 +2317,8 @@ begin for I := 0 to FFieldDefs.Count-1 do begin TempFieldDef := FFieldDefs.Items[I]; - if (TempFieldDef.NativeFieldType = '+') then + if (DbfVersion=xBaseVII) and + (TempFieldDef.NativeFieldType = '+') then begin // read current auto inc, from header or field, depending on sharing lAutoIncOffset := sizeof(rDbfHdr) + sizeof(rAfterHdrVII) + @@ -1983,6 +2336,18 @@ begin TempFieldDef.AutoInc := NextVal; // write new value to header buffer PCardinal(FHeader+lAutoIncOffset)^ := SwapIntLE(NextVal); + end + else + if (DbfVersion=xVisualFoxPro) and + (TempFieldDef.AutoIncStep<>0) then + begin + // read current auto inc from field header + NextVal:=TempFieldDef.AutoInc; //todo: is this correc + PCardinal(DestBuf+TempFieldDef.Offset)^ := SwapIntBE(NextVal); //todo: is swapintbe correct? + // Increase with step size + NextVal:=NextVal+TempFieldDef.AutoIncStep; + // write new value back + TempFieldDef.AutoInc:=NextVal; end; end; @@ -2085,6 +2450,12 @@ begin lIndexFile.FileName := lIndexFileName; lIndexFile.Mode := IndexOpenMode[CreateIndex, Mode]; lIndexFile.AutoCreate := CreateIndex or (Length(IndexField) > 0); + if (Mode in [pfMemoryOpen,pfMemoryCreate]) then + begin + if FIndexStream = nil then + FIndexStream := TMemoryStream.Create; + lIndexFile.Stream := FIndexStream; + end; lIndexFile.CodePage := UseCodePage; lIndexFile.OnLocaleError := FOnLocaleError; lIndexFile.Open; @@ -2456,7 +2827,6 @@ begin // error occurred while writing? if WriteError then begin - // -- Tobias -- // The record couldn't be written, so // the written index records and the // change to the header have to be @@ -2466,7 +2836,7 @@ begin Dec(PDbfHdr(Header)^.RecordCount); WriteHeader; UnlockPage(0); - // roll back indexes too + // roll back indexes, too RollbackIndexesAndRaise(FIndexFiles.Count, ecWriteDbf); end else Result := newRecord; @@ -2768,7 +3138,8 @@ finalization (* - Stuffs non implemented yet + Not implemented yet (encrypted cdx is undocumented; + unencrypted cdx could be implemented) TFoxCDXHeader = Record PointerRootNode : Integer; PointerFreeList : Integer; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_fields.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_fields.pas index 2ed4b775..f79ca06e 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_fields.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_fields.pas @@ -14,10 +14,15 @@ uses type PDbfFieldDef = ^TDbfFieldDef; + { TDbfFieldDef } + TDbfFieldDef = class(TCollectionItem) private + FAutoIncStep: Integer; FFieldName: string; FFieldType: TFieldType; + FIsSystemField: Boolean; + FVarLengthPosition: integer; FNativeFieldType: TDbfFieldType; FDefaultBuf: PChar; FMinBuf: PChar; @@ -40,13 +45,15 @@ type procedure SetFieldType(lFieldType: TFieldType); procedure SetSize(lSize: Integer); procedure SetPrecision(lPrecision: Integer); + // Converts VCL/LCL field types to dbf native field type markers ('C' etc) procedure VCLToNative; + // Converts dbf native field type markers ('C' etc) to VCL/LCL field types procedure NativeToVCL; procedure FreeBuffers; protected function GetDisplayName: string; override; procedure AssignTo(Dest: TPersistent); override; - + // File is compatible with this database product property DbfVersion: TXBaseVersion read GetDbfVersion; public constructor Create(ACollection: TCollection); override; @@ -55,9 +62,11 @@ type procedure Assign(Source: TPersistent); override; procedure AssignDb(DbSource: TFieldDef); + // Checks and adjusts field size & precision procedure CheckSizePrecision; procedure SetDefaultSize; procedure AllocBuffers; + // Yes if field is a blob/memo type field (storage in external file) function IsBlob: Boolean; property DefaultBuf: PChar read FDefaultBuf; @@ -66,16 +75,40 @@ type property HasDefault: Boolean read FHasDefault write FHasDefault; property HasMin: Boolean read FHasMin write FHasMin; property HasMax: Boolean read FHasMax write FHasMax; + // Distance of field from beginning of record property Offset: Integer read FOffset write FOffset; + // Value for autoinc property AutoInc: Cardinal read FAutoInc write FAutoInc; + // Step size for autoinc (Visual FoxPro only) + property AutoIncStep: Integer read FAutoIncStep write FAutoIncStep; + // Field contains lock data (not a normal field) property IsLockField: Boolean read FIsLockField write FIsLockField; + // Field is a system, hidden field (Visual FoxPro supported only) + property IsSystemField: Boolean read FIsSystemField write FIsSystemField; property CopyFrom: Integer read FCopyFrom write FCopyFrom; published property FieldName: string read FFieldName write FFieldName; + // VCL/LCL field type mapped to this field property FieldType: TFieldType read FFieldType write SetFieldType; + // If using varchar/varbinary/var...: + // VFP uses a varlength bit in _NullFields in physical order (bit number corresponds to physical order) + // If flag=1, the actually used length/size is stored in the last data byte of the field + // If the var* field is nullable, 2 bits are used: + // lower bit number is varlength, next is null flag. + // Note: VarLengthPosition property is 0 based + // http://msdn.microsoft.com/en-us/library/st4a0s68%28v=VS.80%29.aspx + property VarLengthPosition: integer read FVarLengthPosition write FVarLengthPosition; + // Native dbf field type (C character etc) property NativeFieldType: TDbfFieldType read FNativeFieldType write SetNativeFieldType; + // Size in physical dbase file. + // Note: this often differs from the VCL field sizes + property Size: Integer read FSize write SetSize; + // Visual FoxPro: position of field null flag in _NullFields field + // Reflects the physical field order, except if varchar/varbinary/var* fields + // are used (see VarLengthPosition property for details) + // Note: NullPosition property is 0 based + // http://msdn.microsoft.com/en-us/library/st4a0s68%28v=VS.80%29.aspx property NullPosition: integer read FNullPosition write FNullPosition; - property Size: Integer read FSize write SetSize; property Precision: Integer read FPrecision write SetPrecision; property Required: Boolean read FRequired write FRequired; end; @@ -84,7 +117,6 @@ type private FOwner: TPersistent; FDbfVersion: TXBaseVersion; - function GetItem(Idx: Integer): TDbfFieldDef; protected function GetOwner: TPersistent; override; @@ -109,12 +141,9 @@ uses {$I dbf_struct.inc} -// I keep changing that fields... -// Last time has been asked by Venelin Georgiev -// Is he going to be the last ? const (* -The theory until now was : +The theory for Delphi/FPC is: ftSmallint 16 bits = -32768 to 32767 123456 = 6 digit max theorically DIGITS_SMALLINT = 6; @@ -126,22 +155,26 @@ The theory until now was : DIGITS_LARGEINT = 20; But in fact if I accept 6 digits into a ftSmallInt then tDbf will not -being able to handles fields with 999999 (6 digits). +be able to handles fields with 999999 (6 digits). -So I now oversize the field type in order to accept anithing coming from the +So I oversize the field type in order to accept anything coming from the database. ftSmallint 16 bits = -32768 to 32767 - -999 to 9999 - 4 digits max theorically - DIGITS_SMALLINT = 4; - ftInteger 32 bits = -2147483648 to 2147483647 - -99999999 to 999999999 12345678901 = 11 digits max - DIGITS_INTEGER = 9; - ftLargeInt 64 bits = -9223372036854775808 to 9223372036854775807 - -99999999999999999 to 999999999999999999 - DIGITS_LARGEINT = 18; + ... dbf supports: -999 to 9999 + 4 digits max in practice + therefore DIGITS_SMALLINT = 4; + ftWord 16 bits sign = 0 to 65535 + ... dbf supports: 0 to 999999999 (in an N field) + therefore DIGITS_WORD = 5; + ftInteger 32 bits = -2147483648 to 2147483647 + ... dbf supports: -99999999 to 999999999 12345678901 = 11 digits max + therefore DIGITS_INTEGER = 9; + ftLargeInt 64 bits = -9223372036854775808 to 9223372036854775807 + ... dbf supports: -99999999999999999 to 999999999999999999 + therefore DIGITS_LARGEINT = 18; *) DIGITS_SMALLINT = 4; + DIGITS_WORD = 5; DIGITS_INTEGER = 9; DIGITS_LARGEINT = 18; @@ -198,6 +231,7 @@ begin FHasMin := false; FHasMax := false; FNullPosition := -1; + FVarLengthPosition := -1; end; destructor TDbfFieldDef.Destroy; {override} @@ -222,7 +256,9 @@ begin FRequired := DbfSource.Required; FCopyFrom := DbfSource.Index; FIsLockField := DbfSource.IsLockField; + FIsSystemField := DbfSource.IsSystemField; FNullPosition := DbfSource.NullPosition; + FVarLengthPosition:=DbfSource.VarLengthPosition; // copy default,min,max AllocBuffers; if DbfSource.DefaultBuf <> nil then @@ -233,6 +269,7 @@ begin // do we need offsets? FOffset := DbfSource.Offset; FAutoInc := DbfSource.AutoInc; + FAutoIncStep := DbfSource.AutoIncStep; {$ifdef SUPPORT_FIELDDEF_TPERSISTENT} end else if Source is TFieldDef then begin AssignDb(TFieldDef(Source)); @@ -246,16 +283,19 @@ begin // copy from Db.TFieldDef FFieldName := DbSource.Name; FFieldType := DbSource.DataType; - FSize := DbSource.Size; + // We do NOT copy over size if TFieldDef size is different from our native size + if not(DBSource.DataType in [ftBCD,ftCurrency]) then + FSize := DbSource.Size; FPrecision := DbSource.Precision; FRequired := DbSource.Required; {$ifdef SUPPORT_FIELDDEF_INDEX} FCopyFrom := DbSource.Index; {$endif} FIsLockField := false; + FIsSystemField := false; // convert VCL fieldtypes to native DBF fieldtypes VCLToNative; - // for integer / float fields try fill in size/precision + // for integer / float fields try to fill in Size/precision if FSize = 0 then SetDefaultSize else @@ -267,6 +307,7 @@ begin FHasMax := false; FOffset := 0; FAutoInc := 0; + FAutoIncStep := 0; end; procedure TDbfFieldDef.AssignTo(Dest: TPersistent); @@ -298,16 +339,16 @@ begin Result := TDbfFieldDefs(Collection).DbfVersion; end; -procedure TDbfFieldDef.SetFieldType(lFieldType: tFieldType); +procedure TDbfFieldDef.SetFieldType(lFieldType: TFieldType); begin FFieldType := lFieldType; VCLToNative; SetDefaultSize; end; -procedure TDbfFieldDef.SetNativeFieldType(lFieldType: tDbfFieldType); +procedure TDbfFieldDef.SetNativeFieldType(lFieldType: TDbfFieldType); begin - // get uppercase field type + // convert lowercase to uppercase if (lFieldType >= 'a') and (lFieldType <= 'z') then lFieldType := Chr(Ord(lFieldType)-32); FNativeFieldType := lFieldType; @@ -330,20 +371,25 @@ end; procedure TDbfFieldDef.NativeToVCL; begin case FNativeFieldType of -// OH 2000-11-15 dBase7 support. -// Add the new fieldtypes - '+' : + '+' : //dbase7+ autoinc if DbfVersion = xBaseVII then FFieldType := ftAutoInc; - 'I' : FFieldType := ftInteger; - 'O' : FFieldType := ftFloat; - '@', 'T': - FFieldType := ftDateTime; - 'C', - #$91 {Russian 'C'} - : FFieldType := ftString; - 'L' : FFieldType := ftBoolean; - 'F', 'N': + 'I' : //visual foxpro integer + // todo: is this the right property to check for? Can't we check flags directly + if FAutoIncStep=0 then + FFieldType := ftInteger + else + FFieldType := ftAutoInc; + 'O' : //double, 8 bytes? + FFieldType := ftFloat; + '@', 'T' {Foxpro? datetime}: + FFieldType := ftDateTime; + 'C', //character + #$91 {Russian 'C'}: + FFieldType := ftString; + 'L' : //logical + FFieldType := ftBoolean; + 'F', 'N': //float/numeric begin if (FPrecision = 0) then begin @@ -362,20 +408,37 @@ begin FFieldType := ftFloat; end; end; - 'D' : FFieldType := ftDate; - 'M' : FFieldType := ftMemo; - 'B' : - if DbfVersion = xFoxPro then + 'D' : //date + FFieldType := ftDate; + 'M' : //memo + FFieldType := ftMemo; + 'B' : //binary or float + if (DbfVersion = xFoxPro) or (DbfVersion=xVisualFoxPro) then FFieldType := ftFloat else FFieldType := ftBlob; - 'G' : FFieldType := ftDBaseOle; - 'Y' : + 'G' : //general + FFieldType := ftDBaseOle; + 'Y' : //currency if DbfGlobals.CurrencyAsBCD then FFieldType := ftBCD else FFieldType := ftCurrency; - '0' : FFieldType := ftBytes; { Visual FoxPro ``_NullFlags'' } + '0' : //zero, not the letter O + FFieldType := ftBytes; + 'P' : //picture + if (DBFversion in [xFoxPro,xVisualFoxPro]) then + FFieldType := ftBlob; {Picture, but probably not compatible with ftGraphic storage} + 'V' : //VFP 9 Varchar; character with length indication + if (DbfVersion = xVisualFoxPro) then + FFieldType := ftString; + //todo: verify if 'V' for other systems exists. DBF "Varifields"? + 'W' : //BLOB + if (DBFVersion = xVisualFoxPro) then + FFieldType := ftBlob; + 'Q' : //varbinary + if (DBFVersion = xVisualFoxPro) then + FFieldType := ftVarBytes; else FNativeFieldType := #0; FFieldType := ftUnknown; @@ -386,12 +449,16 @@ procedure TDbfFieldDef.VCLToNative; begin FNativeFieldType := #0; case FFieldType of - ftAutoInc : FNativeFieldType := '+'; + ftAutoInc : + if DbfVersion=xVisualFoxPro then + FNativeFieldType := 'I' + else + FNativeFieldType := '+'; //Apparently xbaseV/7+ only; not (Visual) Foxpro ftDateTime : if DbfVersion = xBaseVII then FNativeFieldType := '@' else - if DbfVersion = xFoxPro then + if (DbfVersion = xFoxPro) or (DbfVersion = xVisualFoxPro) then FNativeFieldType := 'T' else FNativeFieldType := 'D'; @@ -399,24 +466,52 @@ begin ftFixedChar, ftWideString, {$endif} - ftString : FNativeFieldType := 'C'; - ftBoolean : FNativeFieldType := 'L'; + ftString : + FNativeFieldType := 'C'; // VFP9: could have used V but this works, too. + ftBoolean : + FNativeFieldType := 'L'; //logical ftFloat, ftSmallInt, ftWord {$ifdef SUPPORT_INT64} , ftLargeInt {$endif} : FNativeFieldType := 'N'; - ftDate : FNativeFieldType := 'D'; - ftMemo : FNativeFieldType := 'M'; - ftBlob : FNativeFieldType := 'B'; - ftDBaseOle : FNativeFieldType := 'G'; + ftDate : + FNativeFieldType := 'D'; //date + ftMemo : + FNativeFieldType := 'M'; //memo + ftBlob : + case DBFVersion of + xFoxPro: + FNativeFieldType := 'P'; //picture; best we can do + xVisualFoxPro: + FNativeFieldType := 'W'; //blob + xBaseIII,xBaseIV: + FNativeFieldType := 'M'; //memo; best we can do + xBaseV,xBaseVII: + FNativeFieldType := 'B'; //binary + else + FNativeFieldType := 'M'; //fallback + end; + ftVarBytes : + //todo: figure out if we can use the same fallbacks as ftBlob + case DBFVersion of + xVisualFoxPro: + FNativeFieldType := 'Q'; //variant bytes + end; + ftDBaseOle : + FNativeFieldType := 'G'; //general + //todo: verify if this is dbaseV/7 specific + ftGraphic : + // Let's store this as a BLOB even though FoxPro has P(icture). + // P is apparently not recommended + FNativeFieldType := 'B'; //BLOB ftInteger : - if DbfVersion = xBaseVII then - FNativeFieldType := 'I' + if (DbfVersion in [xBaseVII,xVisualFoxPro]) then + FNativeFieldType := 'I' //integer else - FNativeFieldType := 'N'; - ftBCD, ftCurrency: - if DbfVersion = xFoxPro then + FNativeFieldType := 'N'; //numeric + ftBCD, ftCurrency: + if (DbfVersion = xFoxPro) or (DBFVersion = xVisualFoxPro) then FNativeFieldType := 'Y'; end; if FNativeFieldType = #0 then @@ -434,18 +529,24 @@ begin end; ftCurrency, ftBCD: begin - FSize := 8; - FPrecision := 4; + FSize := 8; // Stored in dbase as 8 bytes; up to 18 (or 20) characters including .- + // FPC ftBCD/ftCurrency TFieldDef.Size has max 4 which is 4 bytes after decimal + FPrecision := 4; //Total number of digits end; - ftSmallInt, ftWord: + ftSmallInt: begin FSize := DIGITS_SMALLINT; FPrecision := 0; end; + ftWord: + begin + FSize := DIGITS_WORD; + FPrecision := 0; + end; ftInteger, ftAutoInc: begin - if DbfVersion = xBaseVII then - FSize := 4 + if DbfVersion in [xBaseVII,xVisualFoxPro] then + FSize := 4 //I, @ field else FSize := DIGITS_INTEGER; FPrecision := 0; @@ -464,89 +565,97 @@ begin end; end; // case fieldtype - // set sizes for fields that are restricted to single size/precision + // set sizes for fields that are restricted to single Size/precision CheckSizePrecision; end; procedure TDbfFieldDef.CheckSizePrecision; +// FSize means size in the database, not any VCL field size begin case FNativeFieldType of - 'C': + 'C','V','Q': // Character, Visual FoxPro varchar,Visual FoxPro varbinary begin - if FSize < 0 then + if FSize < 0 then FSize := 0; - if DbfVersion = xFoxPro then + if (DbfVersion = xFoxPro) or (DbfVersion = xVisualFoxPro) then begin - if FSize >= $FFFF then + if FSize >= $FFFF then FSize := $FFFF; end else begin - if FSize >= $FF then + if FSize >= $FF then FSize := $FF; end; FPrecision := 0; end; - 'L': + 'L': // Logical/boolean begin FSize := 1; FPrecision := 0; end; - 'N','F': + 'N','F': // Binary code decimal numeric, floating point binary numeric begin - // floating point + // ftBCD: precision=total number of digits; Delphi supports max 32 + // Note: this field can be stored as BCD or integer, depending on FPrecision; + // that's why we allow 0 precision if FSize < 1 then FSize := 1; if FSize >= 20 then FSize := 20; - if FPrecision > FSize-2 then FPrecision := FSize-2; + if FPrecision > FSize-2 then FPrecision := FSize-2; //Leave space for . and - if FPrecision < 0 then FPrecision := 0; end; - 'D': + 'D': // Date begin FSize := 8; FPrecision := 0; end; - 'B': + 'B': // (Visual)Foxpro double, DBase binary begin - if DbfVersion <> xFoxPro then + if not(DbfVersion in [xFoxPro,xVisualFoxPro]) then begin FSize := 10; FPrecision := 0; + end + else + begin + FSize := 8; //Foxpro double + FPrecision := 0; end; end; - 'M','G': + 'M','G','P','W': // Memo, general, FoxPro picture, Visual FoxPro blob begin - if DbfVersion = xFoxPro then + if (DbfVersion = xVisualFoxPro) then begin if (FSize <> 4) and (FSize <> 10) then FSize := 4; end else - FSize := 10; + FSize := 10; //Dbase, includes FoxPro FPrecision := 0; end; - '+','I': + '+','I': // Autoincrement, integer begin FSize := 4; FPrecision := 0; end; - '@', 'O': + '@', 'O': //Timestamp, double (both DBase 7) begin FSize := 8; FPrecision := 0; end; - 'T': + 'T': // DateTime begin - if DbfVersion = xFoxPro then + if (DbfVersion = xFoxPro) or (DbfVersion = xVisualFoxPro) then FSize := 8 else FSize := 14; FPrecision := 0; end; - 'Y': + 'Y': // Currency begin FSize := 8; FPrecision := 4; end; else - // Nothing - end; // case + // no idea/unimportant, let other code sort it out + end; end; function TDbfFieldDef.GetDisplayName: string; {override;} @@ -556,7 +665,11 @@ end; function TDbfFieldDef.IsBlob: Boolean; {override;} begin - Result := FNativeFieldType in ['M','G','B']; + // 'B' is float in (V)FP; W is Blob (VFP9) + if (DbfVersion in [xFoxPro,xVisualFoxPro]) then + Result := FNativeFieldType in ['M','G','W'] + else + Result := FNativeFieldType in ['M','G','B']; end; procedure TDbfFieldDef.FreeBuffers; @@ -573,7 +686,7 @@ end; procedure TDbfFieldDef.AllocBuffers; begin - // size changed? + // Size changed? if FAllocSize <> FSize then begin // free old buffers @@ -582,7 +695,7 @@ begin GetMem(FDefaultBuf, FSize*3); FMinBuf := FDefaultBuf + FSize; FMaxBuf := FMinBuf + FSize; - // store allocated size + // store allocated Size FAllocSize := FSize; end; end; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_idxfile.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_idxfile.pas index 33d71800..34a57a93 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_idxfile.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_idxfile.pas @@ -1551,7 +1551,7 @@ end; function TMdx4Tag.GetHeaderPageNo: Integer; begin - Result := SwapIntLE(PMdx4Tag(Tag)^.HeaderPageNo); + Result := SwapIntLE(Unaligned(PMdx4Tag(Tag)^.HeaderPageNo)); end; function TMdx4Tag.GetTagName: string; @@ -1591,7 +1591,7 @@ end; procedure TMdx4Tag.SetHeaderPageNo(NewPageNo: Integer); begin - PMdx4Tag(Tag)^.HeaderPageNo := SwapIntLE(NewPageNo); + Unaligned(PMdx4Tag(Tag)^.HeaderPageNo) := SwapIntLE(NewPageNo); end; procedure TMdx4Tag.SetTagName(NewName: string); @@ -1636,7 +1636,7 @@ end; function TMdx7Tag.GetHeaderPageNo: Integer; begin - Result := SwapIntLE(PMdx7Tag(Tag)^.HeaderPageNo); + Result := SwapIntLE(Unaligned(PMdx7Tag(Tag)^.HeaderPageNo)); end; function TMdx7Tag.GetTagName: string; @@ -1676,7 +1676,7 @@ end; procedure TMdx7Tag.SetHeaderPageNo(NewPageNo: Integer); begin - PMdx7Tag(Tag)^.HeaderPageNo := SwapIntLE(NewPageNo); + Unaligned(PMdx7Tag(Tag)^.HeaderPageNo) := SwapIntLE(NewPageNo); end; procedure TMdx7Tag.SetTagName(NewName: string); diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_lang.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_lang.pas index c0c98ffb..d02b75b4 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_lang.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_lang.pas @@ -21,10 +21,10 @@ const //*************************************************************************// // ... - FoxLangId_ENU_437 = $01; - FoxLangId_Intl_850 = $02; - FoxLangId_Windows_1252 = $03; - FoxLangId_Mac_10000 = $04; + FoxLangId_ENU_437 = $01; // DOS USA + FoxLangId_Intl_850 = $02; // DOS multilingual + FoxLangId_Windows_1252 = $03; // Windows ANSI + FoxLangId_Mac_10000 = $04; // Standard Macintosh // ... DbfLangId_DAN_865 = $08; DbfLangId_NLD_437 = $09; @@ -70,58 +70,62 @@ const DbfLangId_WEurope_1252 = $58; DbfLangId_Spanish_1252 = $59; // ... +// Additional FoxPro references: +// http://msdn.microsoft.com/en-us/library/8t45x02s%28v=VS.80%29.aspx +// http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT FoxLangId_German_437 = $5E; FoxLangId_Nordic_437 = $5F; FoxLangId_Nordic_850 = $60; FoxLangId_German_1252 = $61; FoxLangId_Nordic_1252 = $62; // ... - FoxLangId_EEurope_852 = $64; - FoxLangId_Russia_866 = $65; - FoxLangId_Nordic_865 = $66; - FoxLangId_Iceland_861 = $67; - FoxLangId_Czech_895 = $68; + FoxLangId_EEurope_852 = $64; // DOS + FoxLangId_Russia_866 = $65; // DOS //todo: verify, MS docs say this is $66 + FoxLangId_Nordic_865 = $66; // DOS //todo: verify, MS docs say this is $65 + FoxLangId_Iceland_861 = $67; // DOS + FoxLangId_Czech_895 = $68; // DOS Kamenicky // ... - DbfLangId_POL_620 = $69; + DbfLangId_POL_620 = $69; // DOS Polish Mazovia // ... - FoxLangId_Greek_737 = $6A; - FoxLangId_Turkish_857 = $6B; + FoxLangId_Greek_737 = $6A; // DOS (437G) + FoxLangId_Turkish_857 = $6B; // DOS // ... - FoxLangId_Taiwan_950 = $78; - FoxLangId_Korean_949 = $79; - FoxLangId_Chinese_936 = $7A; - FoxLangId_Japan_932 = $7B; - FoxLangId_Thai_874 = $7C; - FoxLangId_Hebrew_1255 = $7D; - FoxLangId_Arabic_1256 = $7E; + FoxLangId_Taiwan_950 = $78; // Windows + FoxLangId_Korean_949 = $79; // Windows + FoxLangId_Chinese_936 = $7A; // Windows Chinese simplified + FoxLangId_Japan_932 = $7B; // Windows + FoxLangId_Thai_874 = $7C; // Windows + FoxLangId_Hebrew_1255 = $7D; // Windows + FoxLangId_Arabic_1256 = $7E; // Windows // ... DbfLangId_Hebrew = $85; - DbfLangId_ELL_437 = $86; // greek, code page 737 (?) + DbfLangId_ELL_437 = $86; // greek, code page 737 (?) DbfLangId_SLO_852 = $87; DbfLangId_TRK_857 = $88; // ... DbfLangId_BUL_868 = $8E; // ... - FoxLangId_Russia_10007 = $96; - FoxLangId_EEurope_10029 = $97; - FoxLangId_Greek_10006 = $98; + FoxLangId_Russia_10007 = $96; // Macintosh + FoxLangId_EEurope_10029 = $97; // Macintosh + FoxLangId_Greek_10006 = $98; // Macintosh // ... FoxLangId_Czech_1250 = $9B; - FoxLangId_Czech_850 = $9C; // DOS + FoxLangId_Czech_850 = $9C; // DOS // ... - FoxLangId_EEurope_1250 = $C8; - FoxLangId_Russia_1251 = $C9; - FoxLangId_Turkish_1254 = $CA; - FoxLangId_Greek_1253 = $CB; + FoxLangId_EEurope_1250 = $C8; // Windows + FoxLangId_Russia_1251 = $C9; // Windows + FoxLangId_Turkish_1254 = $CA; // Windows + FoxLangId_Greek_1253 = $CB; // Windows // special constants - DbfLocale_NotFound = $010000; DbfLocale_Bul868 = $020000; //*************************************************************************// -// DB3/DB4/FoxPro Language ID to CodePage convert table +// DB3/DB4/FoxPro Language ID to CodePage conversion table +// Visual FoxPro docs call language ID "code page mark" +// or "code page identifier" //*************************************************************************// LangId_To_CodePage: array[Byte] of Word = @@ -161,6 +165,7 @@ const {F0} 0, 0, 0, 0, 0, 0, 0, 0, {F8} 0, 0, 0, 0, 0, 0, 0, 0); + {$ifdef FPC_VERSION} {$ifdef VER1_0} LANG_ARABIC = $01; @@ -176,7 +181,6 @@ const //*************************************************************************// // table - LangId_To_Locale: array[Byte] of LCID = ( DbfLocale_NotFound, @@ -209,7 +213,7 @@ const LANG_FRENCH or (SUBLANG_FRENCH_CANADIAN shl 10) or (SORT_DEFAULT shl 16), {1E} 0, {1F} LANG_CZECH or (SUBLANG_DEFAULT shl 10) or (SORT_DEFAULT shl 16), - LANG_CZECH or (SUBLANG_DEFAULT shl 10) or (SORT_DEFAULT shl 16), + 0 {Used to be LANG_CZECH in previous versions but DBase IV tables show no support here.}, {21} 0, {22} LANG_HUNGARIAN or (SUBLANG_DEFAULT shl 10) or (SORT_DEFAULT shl 16), LANG_POLISH or (SUBLANG_DEFAULT shl 10) or (SORT_DEFAULT shl 16), @@ -227,7 +231,7 @@ const LANG_THAI or (SUBLANG_DEFAULT shl 10) or (SORT_DEFAULT shl 16), {51} 0,0,0,0,0, {56} LANG_JAPANESE or (SUBLANG_DEFAULT shl 10) or (SORT_DEFAULT shl 16), // JPN: Dic932 ?? - 0, // Ascii: Binary +{57} 0, // ANSI/ASCII binary (interpret e.g. as ISO 8859_1 depending on client} LANG_ENGLISH or (SUBLANG_ENGLISH_UK shl 10) or (SORT_DEFAULT shl 16), // Western Europe ?? LANG_SPANISH or (SUBLANG_SPANISH shl 10) or (SORT_DEFAULT shl 16), {5A} 0,0,0,0, @@ -286,6 +290,41 @@ const {F0} 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ); + //*************************************************************************// + // Visual FoxPro CodePage<>Language ID conversion table + //*************************************************************************// + // table: note layout is different: + VFPCodePage_LangID: array[0..51] of integer = +// Code page|Codepage identifier/LangID + ( + 437,$01,// U.S. MS-DOS + 620,$69,// Mazovia (Polish) MS-DOS + 737,$6A,// Greek MS-DOS (437G) + 850,$02,// International MS-DOS + 852,$64,// Eastern European MS-DOS + 857,$6B,// Turkish MS-DOS + 861,$67,// Icelandic MS-DOS + 865,$66,// Nordic MS-DOS //todo: verify this. not 65? + 866,$64,// Russian MS-DOS //todo: verify this. not 66? + 874,$7C,// Thai Windows + 895,$68,// Kamenicky (Czech) MS-DOS + 932,$7B,// Japanese Windows + 936,$7A,// Chinese Simplified (PRC, Singapore) Windows + 949,$79,// Korean Windows + 950,$78,// Traditional Chinese (Hong Kong SAR, Taiwan) Windows + 1250,$C8,// Eastern European Windows + 1251,$C9,// Russian Windows + 1252,$03,// Windows ANSI + 1253,$CB,// Greek Windows + 1254,$CA,// Turkish Windows + 1255,$7D,// Hebrew Windows + 1256,$7E,// Arabic Windows + 10000,$04,// Standard Macintosh + 10006,$98,// Greek Macintosh + 10007,$96,// Russian Macintosh + 10029,$97// Macintosh EE (=Eastern European?) + ); + //*************************************************************************// // DB7 LangID Locale substrings //*************************************************************************// @@ -465,10 +504,12 @@ const // reverse convert routines //*************************************************************************// +// Visual DBaseVII specific; the IsFoxPro means a FoxPro codepage, which DB7 supports function ConstructLangName(CodePage: Integer; Locale: LCID; IsFoxPro: Boolean): string; function ConstructLangId(CodePage: Integer; Locale: LCID; IsFoxPro: Boolean): Byte; +// Visual DBaseVII specific function GetLangId_From_LangName(LocaleStr: string): Byte; implementation @@ -517,8 +558,7 @@ begin end; const - // range of Dbase / FoxPro locale; these are INCLUSIVE - + // range of Dbase locales; these are INCLUSIVE (the rest are FoxPro) dBase_RegionCount = 4; dBase_Regions: array[0..dBase_RegionCount*2-1] of Byte = ($00, $00, @@ -526,85 +566,68 @@ const $69, $69, // a lonely dbf entry :-) $80, $90); -function FindLangId(CodePage, Info2: Cardinal; Info2Table: PCardinal; IsFoxPro: Boolean): Byte; +function FindLangId(CodePage, DesiredLocale: Cardinal; LanguageIDToLocaleTable: PCardinal; IsFoxPro: Boolean): Byte; +// DesiredLocale: pointer to lookup array: language ID=>locale var - I, Region, FoxRes, DbfRes: Integer; + i, LangID, Region: Integer; begin Region := 0; - DbfRes := 0; - FoxRes := 0; - // scan - for I := 0 to $FF do + if IsFoxPro then begin - // check if need to advance to next region - if Region + 2 < dBase_RegionCount then - if I >= dBase_Regions[Region + 2] then - Inc(Region, 2); - // it seems delphi does not properly understand pointers? - // what a mess :-( - if ((LangId_To_CodePage[I] = CodePage) or (CodePage = 0)) and (PCardinal(PChar(Info2Table)+(I*4))^ = Info2) then - if I <= dBase_Regions[Region+1] then - DbfRes := Byte(I) - else - FoxRes := Byte(I); - end; - // if we can find langid in other set, use it - if (DbfRes <> 0) and (not IsFoxPro or (FoxRes = 0)) then - Result := DbfRes - else {(DbfRes = 0) or (IsFoxPro and (FoxRes <> 0)} - if (FoxRes <> 0) {and (IsFoxPro or (DbfRes = 0)} then - Result := FoxRes - else - Result := 0; -end; - -{ -function FindLangId(CodePage, Info2: Cardinal; Info2Table: PCardinal; IsFoxPro: Boolean): Byte; -var - I, Region, lEnd: Integer; - EndReached: Boolean; -begin - Region := 0; - Result := 0; - repeat - // determine region to scan - if IsFoxPro then + // scan for a language ID matching the given codepage; + // default to Win1252 Western European codepage + result:=$03; + for i := 0 to high(VFPCodePage_LangID) div 2 do begin - // foxpro, in between dbase regions - I := dBase_Regions[Region+1] + 1; - lEnd := dBase_Regions[Region+2] - 1; - EndReached := Region = dBase_RegionCount*2-4; - end else begin - // dBase, select regions - I := dBase_Regions[Region]; - lEnd := dBase_Regions[Region+1]; - EndReached := Region = dBase_RegionCount*2-2; + if CodePage=VFPCodePage_LangID[i*2] then + begin + result := Byte(VFPCodePage_LangID[1+i*2]); + break; + end; end; - // scan - repeat + end + else + begin + // DBase + // scan for a language ID matching the given codepage + result:=0; + for LangID := 0 to $FF do + begin + // check if need to advance to next region + if Region + 2 < dBase_RegionCount then + if LangID >= dBase_Regions[Region + 2] then + Inc(Region, 2); // it seems delphi does not properly understand pointers? // what a mess :-( - if (LangId_To_CodePage[I] = CodePage) and (PCardinal(PChar(Info2Table)+(I*4))^ = Info2) then - Result := Byte(I); - Inc(I); - // lEnd is included in range - until (Result <> 0) or (I > lEnd); - // goto next region - if (Result = 0) then - Inc(Region, 2); - // found or end? - until (Result <> 0) or EndReached; + if ((LangId_To_CodePage[LangID] = CodePage) or (CodePage = 0)) and + (PCardinal(PChar(LanguageIDToLocaleTable)+(LangID*4))^ = DesiredLocale) then + // Ignore (V)FP results + if LangID <= dBase_Regions[Region+1] then + result := Byte(LangID); + end; + end; end; -} function ConstructLangId(CodePage: Integer; Locale: LCID; IsFoxPro: Boolean): Byte; begin - // locale: lower 16bits only + // locale: lower 16bits only, with default sorting Locale := (Locale and $FFFF) or (SORT_DEFAULT shl 16); - Result := FindLangId(CodePage, Locale, @LangId_To_Locale[0], IsFoxPro); + if IsFoxPro then + Result := FindLangID(CodePage, Locale, @VFPCodePage_LangID[0], true) + else + Result := FindLangId(CodePage, Locale, @LangId_To_Locale[0], false); // not found? try any codepage if Result = 0 then - Result := FindLangId(0, Locale, @LangId_To_Locale[0], IsFoxPro); + if IsFoxPro then + Result := FindLangID(0, Locale, @VFPCodePage_LangID[0], true) + else + begin + Result := FindLangId(0, Locale, @LangId_To_Locale[0], false); + // Dbase: last resort; include foxpro codepages; + // compatible with older tdbf but unknow whether this actually works + if Result = 0 then + Result := FindLangID(0, Locale, @VFPCodePage_LangID[0], true) + end; end; function GetLangId_From_LangName(LocaleStr: string): Byte; @@ -627,10 +650,10 @@ begin // convert codepage string to codepage id if CodePageStr = 'WIN' then CodePage := 1252 - else if CodePageStr = 'REW' then // hebrew + else if CodePageStr = 'REW' then // Hebrew CodePage := 1255 else - CodePage := StrToInt(CodePageStr); + CodePage := StrToIntDef(CodePageStr,0); //fail to codepage 0 // find lang id Result := FindLangId(CodePage, SubType, @LangId_To_LocaleStr[0], IsFoxPro); end; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_memo.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_memo.pas index 585559cd..1ec83c44 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_memo.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_memo.pas @@ -12,10 +12,16 @@ uses type //==================================================================== + + { TMemoFile } + TMemoFile = class(TPagedFile) + private + procedure SetDBFVersion(AValue: TXBaseVersion); protected FDbfFile: pointer; FDbfVersion: TXBaseVersion; + FEmptySpaceFiller: Char; //filler for unused header and memo data FMemoRecordSize: Integer; FOpened: Boolean; FBuffer: PChar; @@ -35,10 +41,12 @@ type procedure ReadMemo(BlockNo: Integer; DestStream: TStream); procedure WriteMemo(var BlockNo: Integer; ReadSize: Integer; Src: TStream); - property DbfVersion: TXBaseVersion read FDbfVersion write FDbfVersion; + property DbfVersion: TXBaseVersion read FDbfVersion write SetDBFVersion; property MemoRecordSize: Integer read FMemoRecordSize write FMemoRecordSize; end; + { TFoxProMemoFile } + // (Visual) Foxpro memo file support TFoxProMemoFile = class(TMemoFile) protected function GetBlockLen: Integer; override; @@ -48,6 +56,7 @@ type procedure SetBlockLen(BlockLen: Integer); override; end; + // DBaseIII+ memo file support: TDbaseMemoFile = class(TMemoFile) protected function GetBlockLen: Integer; override; @@ -57,7 +66,7 @@ type procedure SetBlockLen(BlockLen: Integer); override; end; - { TNullMemoFile, a kind /dev/null memofile ;-) } + { TNullMemoFile, a kind of /dev/null memofile ;-) } { - inv: FHeaderModified == false!! (otherwise will try to write FStream) } { - inv: FHeaderSize == 0 } { - inv: FNeedLocks == false } @@ -101,16 +110,23 @@ uses //=== Memo and binary fields support //==================================================================== type - + // DBase III+ dbt memo file + // (Visual) FoxPro note: integers are in Big Endian: high byte first + // http://msdn.microsoft.com/en-us/library/aa975374%28VS.71%29.aspx PDbtHdr = ^rDbtHdr; rDbtHdr = record - NextBlock : dword; - Dummy : array [4..7] of Byte; + NextBlock : dword; // 0..3 + // Dummy in DBaseIII; size of blocks in memo file; default 512 bytes + // (Visual) FoxPro: 4..5 unused; use only bytes 6..7 + BlockSize : dword; // 4..7 + // DBF file name without extension DbfFile : array [0..7] of Byte; // 8..15 + // DBase III only: version number $03 bVer : Byte; // 16 - Dummy2 : array [17..19] of Byte; + Dummy2 : array [17..19] of Byte; // 17..19 + // Block length in bytes; DBaseIII: always $01 BlockLen : Word; // 20..21 - Dummy3 : array [22..511] of Byte; + Dummy3 : array [22..511] of Byte;// 22..511 First block; garbage contents end; PFptHdr = ^rFptHdr; @@ -121,13 +137,30 @@ type Dummy3 : array [8..511] of Byte; end; + // Header of a memo data block: + // (Visual) FoxPro note: integers are in Big Endian: high byte first PBlockHdr = ^rBlockHdr; rBlockHdr = record - MemoType : Cardinal; - MemoSize : Cardinal; + // DBase IV(+) identifier: $FF $FF $08 $00 + // (Visual) FoxPro: $00 picture, $01 text/memo, $02 object + MemoType : Cardinal; // 0..3 + // Length of memo field + MemoSize : Cardinal; // 4..7 + // memo data 8..N end; +procedure TMemoFile.SetDBFVersion(AValue: TXBaseVersion); +begin + if FDbfVersion=AValue then Exit; + FDbfVersion:=AValue; + if AValue in [xFoxPro, xVisualFoxPro] then + // Visual Foxpro writes 0s itself, so mimic it + FEmptySpaceFiller:=#0 + else + FEmptySpaceFiller:=' '; +end; + //========================================================== //============ Dbtfile //========================================================== @@ -137,6 +170,8 @@ begin FBuffer := nil; FOpened := false; + FEmptySpaceFiller:=' '; //default + // call inherited inherited Create; @@ -183,10 +218,19 @@ begin RecordSize := GetBlockLen; // checking for right blocksize not needed for foxpro? + // todo: why exactly are we testing for 0x7F? // mod 128 <> 0 <-> and 0x7F <> 0 - if (RecordSize = 0) and ((FDbfVersion = xFoxPro) or ((RecordSize and $7F) <> 0)) then + if (RecordSize = 0) and + ((FDbfVersion in [xFoxPro,xVisualFoxPro]) or ((RecordSize and $7F) <> 0)) then + begin + SetBlockLen(64); //(Visual) FoxPro docs suggest 512 is default; however it is 64: see + //http://technet.microsoft.com/en-us/subscriptions/d6e1ah7y%28v=vs.90%29.aspx + RecordSize := 64; + WriteHeader; + end + else if (RecordSize = 0) then begin - SetBlockLen(512); + SetBlockLen(512); //dbase default RecordSize := 512; WriteHeader; end; @@ -268,22 +312,22 @@ begin end; end; end else begin - // dbase III memo + // e.g. dbase III memo done := false; repeat - // scan for EOF + // scan for EOF marker/field terminator endMemo := MemScan(FBuffer, $1A, RecordSize); // EOF found? if endMemo <> nil then begin - // really EOF? - if (endMemo-FBuffer < RecordSize - 1) and ((endMemo[1] = #$1A) or (endMemo[1] = #0)) then + // really EOF? expect another 1A or null character + if (endMemo-FBuffer < RecordSize - 1) and + ((endMemo[1] = #$1A) or (endMemo[1] = #0)) then begin - // yes, EOF found - done := true; + done := true; //found the end numBytes := endMemo - FBuffer; end else begin - // no, fake + // no, fake ending numBytes := RecordSize; end; end else begin @@ -344,14 +388,15 @@ begin begin bytesBefore := SizeOf(rBlockHdr); bytesAfter := 0; - end else begin // dBase3 type + end else begin // dBase3 type, Clipper? bytesBefore := 0; bytesAfter := 2; end; // if ((bytesBefore + Src.Size + bytesAfter + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen) // <= ((ReadSize + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen) then - if ((bytesBefore + Src.Size + bytesAfter + RecordSize-1) div RecordSize) - <= ((ReadSize + RecordSize-1) div RecordSize) then + // If null memo is used, recordsize may be 0. Test for that. + if (RecordSize=0) or (((bytesBefore + Src.Size + bytesAfter + RecordSize-1) div RecordSize) + <= ((ReadSize + RecordSize-1) div RecordSize)) then begin append := false; end else begin @@ -367,11 +412,12 @@ begin end; tmpRecNo := BlockNo; Src.Position := 0; - FillChar(FBuffer[0], RecordSize, ' '); - if bytesBefore=8 then + FillChar(FBuffer[0], RecordSize, FEmptySpaceFiller); + + if bytesBefore=8 then //Field header begin totsize := Src.Size + bytesBefore + bytesAfter; - if FDbfVersion <> xFoxPro then + if not(FDbfVersion in [xFoxPro,xVisualFoxPro]) then begin PBlockHdr(FBuffer)^.MemoType := SwapIntLE($0008FFFF); PBlockHdr(FBuffer)^.MemoSize := SwapIntLE(totsize); @@ -383,18 +429,19 @@ begin repeat // read bytes, don't overwrite header readBytes := Src.Read(FBuffer[bytesBefore], RecordSize{PDbtHdr(Header).BlockLen}-bytesBefore); - // end of input data reached ? check if need to write block terminators + // end of input data reached? check if we need to write block terminators while (readBytes < RecordSize - bytesBefore) and (bytesAfter > 0) do begin - FBuffer[readBytes] := #$1A; + FBuffer[readBytes] := #$1A; //block terminator Inc(readBytes); Dec(bytesAfter); end; - // have we read anything that is to be written? + // have we read anything that needs to be written? if readBytes > 0 then begin // clear any unused space - FillChar(FBuffer[bytesBefore+readBytes], RecordSize-readBytes-bytesBefore, ' '); + FillChar(FBuffer[bytesBefore+readBytes], RecordSize-readBytes-bytesBefore, FEmptySpaceFiller); + // write to disk WriteRecord(tmpRecNo, @FBuffer[0]); Inc(tmpRecNo); @@ -419,7 +466,7 @@ end; function TDbaseMemoFile.GetBlockLen: Integer; begin // Can you tell me why the header of dbase3 memo contains 1024 and is 512 ? - // answer: it is not a valid field in memo db3 header + // answer: BlockLen is not a valid field in memo db3 header if FDbfVersion = xBaseIII then Result := 512 else @@ -428,8 +475,9 @@ end; function TDbaseMemoFile.GetMemoSize: Integer; begin - // dBase4 memofiles contain small 'header' - if PInteger(@FBuffer[0])^ = Integer(SwapIntLE($0008FFFF)) then + // dBase4 memofiles contain a small 'header' + if (FDbfVersion<>xBaseIII) and (PInteger(@FBuffer[0])^ = Integer(SwapIntLE($0008FFFF))) then + // Subtract size of the block header itself: Result := SwapIntLE(PBlockHdr(FBuffer)^.MemoSize)-8 else Result := -1; @@ -447,7 +495,9 @@ end; procedure TDbaseMemoFile.SetBlockLen(BlockLen: Integer); begin - PDbtHdr(Header)^.BlockLen := SwapWordLE(BlockLen); + // DBase III does not support block sizes<>512 bytes + if (FDbfVersion<>xBaseIII) then + PDbtHdr(Header)^.BlockLen := SwapWordLE(BlockLen); end; // ------------------------------------------------------------------ diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_pgfile.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_pgfile.pas index 5757cfae..a2c1fbae 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_pgfile.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_pgfile.pas @@ -80,10 +80,12 @@ type procedure UpdateBufferSize; procedure RecalcPagesPerRecord; procedure ReadHeader; + // Write header to stream procedure FlushHeader; procedure FlushBuffer; function ReadChar: Byte; procedure WriteChar(c: Byte); + // Check if position in cache. If not, enlarge cache. procedure CheckCachedSize(const APosition: Integer); procedure SynchronizeBuffer(IntRecNum: Integer); function Read(Buffer: Pointer; ASize: Integer): Integer; @@ -123,8 +125,11 @@ type procedure Flush; virtual; property Active: Boolean read FActive; - property AutoCreate: Boolean read FAutoCreate write FAutoCreate; // only write when closed! - property Mode: TPagedFileMode read FMode write FMode; // only write when closed! + // If yes, create file if it doesn't exist. + // Only write this property when closed! + property AutoCreate: Boolean read FAutoCreate write FAutoCreate; + // only write this property when closed! + property Mode: TPagedFileMode read FMode write FMode; property TempMode: TPagedFileMode read FTempMode; property NeedLocks: Boolean read FNeedLocks; property HeaderOffset: Integer read FHeaderOffset write SetHeaderOffset; @@ -316,6 +321,9 @@ end; function TPagedFile.CalcPageOffset(const PageNo: Integer): Integer; begin + //todo: verify: this looks suspicious: check if we should uniformly use + // either FPageSize*PageNo as in the case without header offset + // or (FPageSize*(PageNo-1)) if not FPageOffsetByHeader then Result := FPageSize * PageNo else if PageNo = 0 then @@ -555,7 +563,7 @@ begin begin // get size left in file for header size := FStream.Size - FHeaderOffset; - // header start before EOF? + // does header start before EOF? if size >= 0 then begin // go to header start @@ -571,7 +579,7 @@ begin Read(FHeader, size); end; end else begin - // header start before EOF, clear header + // clear header size := 0; end; FillChar(FHeader[size], FHeaderSize-size, 0); diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str.inc b/fpcsrc/packages/fcl-db/src/dbase/dbf_str.inc index 3dbc719a..9793fa97 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str.inc +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str.inc @@ -8,6 +8,7 @@ var STRING_KEY_VIOLATION: string; STRING_INVALID_DBF_FILE: string; + STRING_INVALID_DBF_FILE_FIELDERROR: string; STRING_FIELD_TOO_LONG: string; STRING_INVALID_FIELD_COUNT: string; STRING_INVALID_FIELD_TYPE: string; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str.pas index 23fda498..7613940a 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str.pas @@ -19,6 +19,7 @@ initialization 'Index: %s'+#13+#10+'Record=%d Key=''%s''.'; STRING_INVALID_DBF_FILE := 'Invalid DBF file.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'Invalid DBF file. Invalid field definition.'; STRING_FIELD_TOO_LONG := 'Value is too long: %d characters (it can''t be more than %d).'; STRING_INVALID_FIELD_COUNT := 'Invalid field count: %d (must be between 1 and 4095).'; STRING_INVALID_FIELD_TYPE := 'Invalid field type ''%s'' for field ''%s''.'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_es.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_es.pas index 63f74eba..5f0fc7ba 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_es.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_es.pas @@ -19,6 +19,7 @@ initialization 'Indice: %s'+#13+#10+'Registro=%d Clave=''%s''.'; STRING_INVALID_DBF_FILE := 'Archivo DBF inválido.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'Archivo DBF inválido. Tipo de campo inválido.'; //todo: check for correctness STRING_FIELD_TOO_LONG := 'Valor demasiado largo: %d caracteres (no puede ser mayor de %d).'; STRING_INVALID_FIELD_COUNT := 'Cantidad de campos inválida: %d (debe estar entre 1 y 4095).'; STRING_INVALID_FIELD_TYPE := 'Tipo de campo inválido ''%s'' para el campo ''%s''.'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_fr.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_fr.pas index 51ecb45f..77e23b92 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_fr.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_fr.pas @@ -12,6 +12,7 @@ var STRING_KEY_VIOLATION: string; STRING_INVALID_DBF_FILE: string; + STRING_INVALID_DBF_FILE_FIELDERROR: string; STRING_FIELD_TOO_LONG: string; STRING_INVALID_FIELD_COUNT: string; STRING_INVALID_FIELD_TYPE: string; @@ -37,6 +38,7 @@ initialization 'Index: %s'+#13+#10+'Enregistrement=%d Cle=''%s'''; STRING_INVALID_DBF_FILE := 'Fichier DBF invalide.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'Fichier DBF invalide. Definition de champ invalide.'; //todo: verify field part STRING_FIELD_TOO_LONG := 'Valeur trop longue: %d caractères (ne peut dépasser %d).'; STRING_INVALID_FIELD_COUNT := 'Nombre de champs non valide: %d (doit être entre 1 et 4095).'; STRING_INVALID_FIELD_TYPE := 'Type de champ ''%s'' invalide pour le champ %s.'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ita.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ita.pas index ec4c5983..0d7e2f53 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ita.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ita.pas @@ -16,6 +16,8 @@ initialization STRING_RECORD_LOCKED := 'Record già in uso.'; STRING_INVALID_DBF_FILE := 'File DBF non valido.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'File DBF non valido. Definizione de campo non valido'; //todo: check field part + STRING_FIELD_TOO_LONG := 'Valore troppo elevato: %d caratteri (esso non può essere più di %d).'; STRING_INVALID_FIELD_COUNT := 'Campo non valido (count): %d (deve essere tra 1 e 4095).'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_nl.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_nl.pas index 105564d7..beae72ab 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_nl.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_nl.pas @@ -18,6 +18,7 @@ initialization 'Index: %s'+#13+#10+'Record=%d Sleutel=''%s'''; STRING_INVALID_DBF_FILE := 'Ongeldig DBF bestand.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'Ongeldig DBF bestand. Ongeldige velddefinitie.'; STRING_FIELD_TOO_LONG := 'Waarde is te lang: %d karakters (maximum is %d).'; STRING_INVALID_FIELD_COUNT := 'Ongeldig aantal velden: %d (moet tussen 1 en 4095).'; STRING_INVALID_FIELD_TYPE := 'Veldtype ''%s'' is ongeldig voor veld ''%s''.'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pl.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pl.pas index 52e5378a..6d5c2552 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pl.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pl.pas @@ -18,6 +18,7 @@ initialization 'Indeks: %s'+#13+#10+'Rekord=%d Klucz=''%s'''; STRING_INVALID_DBF_FILE := 'Uszkodzony plik bazy.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'Uszkodzony plik bazy. Uszkodzony pol.'; //todo: definitely check field part STRING_FIELD_TOO_LONG := 'Dana za d³uga : %d znaków (dopuszczalne do %d).'; STRING_INVALID_FIELD_COUNT := 'Z³a liczba pól: %d (dozwolone 1 do 4095).'; STRING_INVALID_FIELD_TYPE := 'B³êdny typ pola ''%c'' dla pola ''%s''.'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pt.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pt.pas index 37e9a979..d449cc30 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pt.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_pt.pas @@ -21,6 +21,7 @@ initialization 'Índice: %s'+#13+#10+'Registro=%d Chave=''%s''.'; STRING_INVALID_DBF_FILE := 'Arquivo DBF inválido.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'Arquivo DBF inválido. Tipo de campo inválido.'; //todo: check field part STRING_FIELD_TOO_LONG := 'Valor muito grande: %d caracteres (não pode ser maior que %d).'; STRING_INVALID_FIELD_COUNT := 'Quantidade de campos inválida: %d (deve estar entre 1 e 4095).'; STRING_INVALID_FIELD_TYPE := 'Tipo de campo inválido ''%s'' para o campo ''%s''.'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ru.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ru.pas index c7fe9294..6c6cfc22 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ru.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_str_ru.pas @@ -23,6 +23,7 @@ initialization 'Èíäåêñ: %s'+#13+#10+'Çàïèñü (ñòðîêà)=%d Êëþ÷="%s".'; STRING_INVALID_DBF_FILE := 'Ôàéë DBF ïîâðåæäåí èëè åãî ñòðóêòóðà íå DBF.'; + STRING_INVALID_DBF_FILE_FIELDERROR := 'Ôàéë DBF ïîâðåæäåí èëè åãî ñòðóêòóðà íå DBF.'; //todo: add field error info STRING_FIELD_TOO_LONG := 'Äëèíà çíà÷åíèÿ - %d ñèìâîëîâ, ýòî áîëüøå ìàêñèìóìà - %d.'; STRING_INVALID_FIELD_COUNT := 'Êîëè÷åñòâî ïîëåé â òàáëèöå (%d) íåâîçìîæíî. Äîïóñòèìî îò 1 äî 4095.'; STRING_INVALID_FIELD_TYPE := 'Òèï çíà÷åíèÿ "%s", çàòðåáîâàííûé ïîëåì "%s" íåâîçìîæåí.'; diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_struct.inc b/fpcsrc/packages/fcl-db/src/dbase/dbf_struct.inc index 68d3ae3e..8c005d11 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_struct.inc +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_struct.inc @@ -19,20 +19,23 @@ type PDbfHdr = ^rDbfHdr; rDbfHdr = packed record VerDBF : Byte; // 0 - Year : Byte; // 1 - Month : Byte; // 2 - Day : Byte; // 3 - RecordCount : Integer; // 4-7 + Year : Byte; // 1 year last updated + Month : Byte; // 2 month last updated + Day : Byte; // 3 day last updated + RecordCount : Integer; // 4-7 number of records in file FullHdrSize : Word; // 8-9 - RecordSize : Word; // 10-11 + RecordSize : Word; // 10-11 sum of all field sizes, including delete flag Dummy1 : Word; // 12-13 IncTrans : Byte; // 14 - Encrypt : Byte; // 15 + Encrypt : Byte; // 15 DBase encryption flag MultiUse : Integer; // 16-19 LastUserID : Integer; // 20-23 Dummy2 : array[24..27] of Byte; - MDXFlag : Byte; // 28 - Language : Byte; // 29 + // $01: mdx (or cdx for VFP) index file present + // $02: (Visual FoxPro): associated memo file? + // $04: (Visual FoxPro): is this a dbc/database container + MDXFlag : Byte; // 28 Flags: + Language : Byte; // 29 code page mark Dummy3 : Word; // 30-31 end; //==================================================================== @@ -46,15 +49,35 @@ type Dummy : array[64..67] of Byte; end; //==================================================================== +// DBase III,IV,FoxPro,VisualFoxPro field description PFieldDescIII = ^rFieldDescIII; rFieldDescIII = packed record - FieldName : array[0..10] of Char; - FieldType : Char; // 11 - FieldOffset : Integer; // 12..15 only applicable to foxpro databases - FieldSize : Byte; // 16 - FieldPrecision : Byte; // 17 - FoxProFlags : Byte; // 18 - Dummy2 : array[19..31] of Byte; + FieldName : array[0..10] of Char; + FieldType : Char; // 11 + // FieldOffset: (V)FoxPro only: displacement of field in record + // DBase III uses it for address in memory + FieldOffset : Integer; // 12..15 + FieldSize : Byte; // 16 + FieldPrecision : Byte; // 17, also known as decimal count + // $01: system solumn (not user-visible) + // $02: column can store null values + // $04: binary column, e.g. don't interpret codepage (char/memo fields) + // $0C: column is autoincrementing (only integer fields) + VisualFoxProFlags : Byte; // 18 Field Flags; flags can be combined + // (!!not the next value for a new record!!); the next is calculated by + // adding AutoIncrementStep first. + // Value covers bytes 19..22 (so no WorkAreaID,Reserved1 for VFP) + AutoIncrementNext : Byte; // 19 VFP only: autoincrement value + // WorkAreaID only for DBase III, is always $01 + WorkAreaID : Byte; // 20 + Reserved1 : array[21..22] of Byte; + AutoIncrementStep : Byte; // 23 VFP only: step value for autoincrement + Reserved2 : array[24..30] of Byte; + // DBase IV: + // $00: no key for this field; + // $01: key exists for this field in MDX index file + // todo: implement this?? + MDXIndexField : Byte; //31 end; //==================================================================== // OH 2000-11-15 dBase7 support. Header Update (add fields like Next AutoInc Value) diff --git a/fpcsrc/packages/fcl-db/src/dbase/dbf_wtil.pas b/fpcsrc/packages/fcl-db/src/dbase/dbf_wtil.pas index cfe8b311..df612dbd 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/dbf_wtil.pas +++ b/fpcsrc/packages/fcl-db/src/dbase/dbf_wtil.pas @@ -142,7 +142,7 @@ const SUBLANG_SPANISH_GUATEMALA = $04; { Spanish (Guatemala) } SUBLANG_SPANISH_COSTA_RICA = $05; { Spanish (Costa Rica) } SUBLANG_SPANISH_PANAMA = $06; { Spanish (Panama) } - SUBLANG_SPANISH_DOMINICAN_REPUBLIC = $07; { Spanish (Dominican Republic) } + SUBLANG_SPANISH_DOMINICAN_REPUBLIC = $07; { Spanish (Dominican Republic) } SUBLANG_SPANISH_VENEZUELA = $08; { Spanish (Venezuela) } SUBLANG_SPANISH_COLOMBIA = $09; { Spanish (Colombia) } SUBLANG_SPANISH_PERU = $0a; { Spanish (Peru) } @@ -253,8 +253,8 @@ function GetOEMCP: Cardinal; function GetACP: Cardinal; function OemToChar(lpszSrc: PChar; lpszDst: PChar): BOOL; function CharToOem(lpszSrc: PChar; lpszDst: PChar): BOOL; -function OemToCharBuff(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; -function CharToOemBuff(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; +function OemToCharBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; +function CharToOemBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; function MultiByteToWideChar(CodePage: DWORD; dwFlags: DWORD; const lpMultiByteStr: LPCSTR; cchMultiByte: Integer; lpWideCharStr: LPWSTR; cchWideChar: Integer): Integer; function WideCharToMultiByte(CodePage: DWORD; dwFlags: DWORD; lpWideCharStr: LPWSTR; cchWideChar: Integer; lpMultiByteStr: LPSTR; cchMultiByte: Integer; lpDefaultChar: LPCSTR; lpUsedDefaultChar: PBOOL): Integer; function CompareString(Locale: LCID; dwCmpFlags: DWORD; lpString1: PChar; cchCount1: Integer; lpString2: PChar; cchCount2: Integer): Integer; @@ -588,7 +588,7 @@ begin Result := true; end; -function OemToCharBuff(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; +function OemToCharBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; begin if lpszDst <> lpszSrc then StrLCopy(lpszDst, lpszSrc, cchDstLength); @@ -598,7 +598,7 @@ begin Result := true; end; -function CharToOemBuff(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; +function CharToOemBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL; begin if lpszDst <> lpszSrc then StrLCopy(lpszDst, lpszSrc, cchDstLength); diff --git a/fpcsrc/packages/fcl-db/src/dbase/history.txt b/fpcsrc/packages/fcl-db/src/dbase/history.txt index 225c9c17..e1d0ff3e 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/history.txt +++ b/fpcsrc/packages/fcl-db/src/dbase/history.txt @@ -31,6 +31,16 @@ BUGS & WARNINGS - storedefs is not updated automatically when fielddefs are changed +FreePascal trunk (future V7.0.0): +- add support for memo and index stream so no disk files are needed when using streams +- clarification on field types; remove some workarounds (r24169) todo: reinstate depending on test set +- initial support for (Visual) FoxPro files (r24139) +- annotated constants/file structure (r24139) +- factored out get version/get codepage subprocedure for readability (r24139) +- split out existing support for Visual FoxPro and Foxpro (r24109) + so future Visual FoxPro only features can be implemented +- implemented FindFirst,FindNext,FindPrior,FindLast (r24107) +- compile fix for FPC 2.6.2 (r24069), possibly useful for Delphi ------------------------ V6.9.2 diff --git a/fpcsrc/packages/fcl-db/src/dbase/readme.txt b/fpcsrc/packages/fcl-db/src/dbase/readme.txt index cc25662a..09f050f8 100644 --- a/fpcsrc/packages/fcl-db/src/dbase/readme.txt +++ b/fpcsrc/packages/fcl-db/src/dbase/readme.txt @@ -1,6 +1,7 @@ -The maintainers of this package have abandoned it, so it has been deprecated. -It will no longer be supported by the FPC team in the future, unless someone -else volunteers to do so. +This package provides support for DBase files. +It is derived from the upstream package at +http://sourceforge.net/projects/tdbf/ +It is supported by FPC developers and the upstream maintainers. Support from other tdbf users may be available on the tdbf forum on SourceForge: http://sourceforge.net/projects/tdbf/forums/forum/107245 @@ -8,7 +9,58 @@ SourceForge: http://sourceforge.net/projects/tdbf/forums/forum/107245 TDbf readme: -See history.txt for changelog. -See history.txt for version number, latest version is at the top. +See history.txt for changelog, and version number. See INSTALL for installation procedure. License is LGPL (Library General Public License); see COPYING.LIB for details. + +Development notes +================= +(Includes possible additions to end user documentation) + +property RecNo: approximate record number. Does not take deleted records into account. Used mainly in grids. + +File format references: +Flagship/FoxPro/Clipper/DBase III..V .dbf file format description +ftp://fship.com/pub/multisoft/flagship/docu/dbfspecs.txt + +DBase IV language drivers +- Russian list: ... +http://www.autopark.ru/ASBProgrammerGuide/DBFSTRUC.HTM +... English extract: +- http://shapelib.maptools.org/codepage.html + +- as supported by ArcPad .shp files (basically DBase IV) (page 128): +http://downloads.esri.com/support/documentation/pad_/ArcPad_RefGuide_dec2007.pdf + + +FoxPro 2.x: +http://support.microsoft.com/kb/98743/en-us +Data type: +P Picture (foxpro/vfoxpro specific) + +Visual FoxPro: +http://msdn.microsoft.com/en-us/library/d863bcf2%28v=vs.80%29.aspx + +especially this for table structure: +http://msdn.microsoft.com/en-US/library/st4a0s68%28v=vs.80%29.aspx +note however that the file type/magic number at offset 0 is incorrect. +A community member amended these with correct numbers. See bottom of page + +Visual FoxPro 6 internal structures, _NULLFIELDS etc: +http://www.dfpug.de/buecher/fundamentals/Hack6/S1C2.HTM + +Visual Foxpro 8 info about autoincrement: +http://msdn.microsoft.com/en-us/library/aa976850%28v=VS.71%29.aspx + +Visual FoxPro 9 data types +http://msdn.microsoft.com/en-US/library/ww305zh2%28v=vs.80%29.aspx + +Visual FoxPro 9 specific changes: +http://foxcentral.net/microsoft/WhatsNewInVFP9_Chapter09.htm +New data types: +V Varchar/varchar binary (in Visual FoxPro 9) 1 byte up to 254 bytes. + Same storage as char (padded spaces) but padding is removed on display +W Blob (Visual FoxPro 9), 4 bytes in a table; stored in .fpt +Q Varchar (binary) (in Visual Foxpro 9): + accepts null, up to 254 characters (stored as padded with spaces), no code page translations + note varchar (binary)<>varbinary diff --git a/fpcsrc/packages/fcl-db/src/export/Makefile b/fpcsrc/packages/fcl-db/src/export/Makefile deleted file mode 100644 index d7a2661e..00000000 --- a/fpcsrc/packages/fcl-db/src/export/Makefile +++ /dev/null @@ -1,2570 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base fcl-xml -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/export/XMLXSDExportReadme.TXT b/fpcsrc/packages/fcl-db/src/export/XMLXSDExportReadme.TXT index 8a4c2107..d20c55b2 100644 --- a/fpcsrc/packages/fcl-db/src/export/XMLXSDExportReadme.TXT +++ b/fpcsrc/packages/fcl-db/src/export/XMLXSDExportReadme.TXT @@ -1,7 +1,7 @@ 1. fpXMLXSDExport ================= This export module provides export to various forms of XML, selectable by the ExportFormat setting. -Note that not exporting indexes appears as a limitation in most formats below, but indexes probably will probably need to be changed anyway in an new environment/database. +Note that not exporting indexes appears as a limitation in most formats below, but indexes will probably need to be changed anyway in an new environment/database. 1.1 AccessCompatible ==================== @@ -18,7 +18,7 @@ We cannot replicate this functionality, so we just base64 encode the BLOB, and l 1.2 ADONETCompatible ==================== -This format generates XML compatible with the .Net framework (specifically the ADO.NET data access libraries). It should work for versions 2 to 4; version 1/1.1 has not been tested. +This format generates XML compatible with the .Net framework (specifically the ADO.NET data access libraries). It should work for .Net versions 2 to 4; version 1/1.1 has not been tested. In this format you can also specify XSD or no XSD using the CreateXSD setting. This output format is fairly generic and could be usable for import in other applications, as well. Limitations: @@ -49,7 +49,7 @@ Limitations: 2. Other settings ================= -As the XML formats used above defines how date/time formats, boolean formats etc are used, these general export settings have no effect: +As the XML formats used above define how date/time formats, boolean formats etc are used, these general export settings have no effect: - BooleanFalse - BooleanTrue - DateFormat @@ -63,6 +63,6 @@ As the XML formats used above defines how date/time formats, boolean formats etc 3. License ========== The fpXMLXSDExport module is freeware, licensed under the MIT license: all use free, but no liability accepted. -It is also licensed under the FreePascal license, so take your pick, but don't blame me for things that go wrong. +It is also licensed under the FreePascal modified LGPL license, so take your pick, but don't blame me for things that go wrong. Reinier Olislagers, 2011 \ No newline at end of file diff --git a/fpcsrc/packages/fcl-db/src/export/fpdbexport.pp b/fpcsrc/packages/fcl-db/src/export/fpdbexport.pp index cde6190a..18c5a3aa 100644 --- a/fpcsrc/packages/fcl-db/src/export/fpdbexport.pp +++ b/fpcsrc/packages/fcl-db/src/export/fpdbexport.pp @@ -150,7 +150,7 @@ Type Procedure DoDataRowStart; virtual; // Override if a simple loop is not enough. Procedure ExportDataRow; virtual; - // Override to write something at row start. + // Override to write something at row end. Procedure DoDataRowEnd; virtual; // Called after row was exported Procedure DoProgress(ItemNo : Integer); Virtual; @@ -221,8 +221,9 @@ Type procedure SetFileName(const AValue: String); virtual; // Override if some checking needs to be done prior to opening. Procedure CheckFileName; virtual; - // Use to open/close textfile. Creates a file stream. + // Use to open textfile. Creates a file stream. Procedure OpenTextFile; + // Use to close textfile. Procedure CloseTextFile; // Access to stream/file Property TextFile : Text Read FTextFile; diff --git a/fpcsrc/packages/fcl-db/src/export/fpdbfexport.pp b/fpcsrc/packages/fcl-db/src/export/fpdbfexport.pp index d26ffde3..29bf993d 100644 --- a/fpcsrc/packages/fcl-db/src/export/fpdbfexport.pp +++ b/fpcsrc/packages/fcl-db/src/export/fpdbfexport.pp @@ -20,7 +20,7 @@ Type { TDBFExportFormatSettings } - TTableFormat = (tfDBaseIII,tfDBaseIV,tfDBaseVII,tfFoxPro); + TTableFormat = (tfDBaseIII,tfDBaseIV,tfDBaseVII,tfFoxPro,tfVisualFoxPro); TDBFExportFormatSettings = class(TExportFormatSettings) private @@ -42,7 +42,7 @@ Type function GetSettings: TDBFExportFormatSettings; procedure SetSettings(const AValue: TDBFExportFormatSettings); Protected - Procedure CheckExportFieldNames(const MaxFieldNameLength: integer); virtual; + Procedure CheckExportFieldName(ThisExportField: TExportFieldItem; const MaxFieldNameLength: integer); Function BindFields : Boolean; override; Function CreateFormatSettings : TCustomExportFormatSettings; override; @@ -97,51 +97,53 @@ begin Inherited FormatSettings.Assign(AValue); end; -procedure TFPCustomDBFExport.CheckExportFieldNames(const MaxFieldNameLength: integer); +procedure TFPCustomDBFExport.CheckExportFieldName(ThisExportField: TExportFieldItem; const MaxFieldNameLength: integer); +// Cut off field name at max length, and rename if it already exists +Const + CounterInvalid=100; Var - i,NameCounter : Integer; - EF : TExportFieldItem; + NameCounter : Integer; NewFieldName : String; begin - For i:=0 to ExportFields.Count-1 do + If (Length(ThisExportField.ExportedName)>MaxFieldNameLength) then begin - EF:=ExportFields[i]; - { Cut off field name at max length, and - rename if it already exists:} - If (Length(EF.ExportedName)>MaxFieldNameLength) then + NewFieldName:=Copy(ThisExportField.ExportedName,1,MaxFieldNameLength); + If ExportFields.IndexOfExportedName(NewFieldName)<>-1 then begin - NewFieldName:=Copy(EF.ExportedName,1,MaxFieldNameLength); - If ExportFields.IndexOfExportedName(NewFieldName)<>-1 then - begin - NameCounter:=1; - Repeat - NewFieldName:=Copy(EF.ExportedName,1,8)+Format('%.2d',[NameCounter]); - Until (ExportFIelds.IndexOfExportedName(NewFieldName)=-1); - end; - EF.ExportedName:=NewFieldName; + // Try using 2-character number sequence to generate unique name + NameCounter:=1; + Repeat + NewFieldName:=Copy(ThisExportField.ExportedName,1,MaxFieldNameLength-2)+Format('%.2d',[NameCounter]); + Until (ExportFields.IndexOfExportedName(NewFieldName)=-1) or (NameCounter=CounterInvalid); + if NameCounter=CounterInvalid then + ExportError('Could not create a unique export field name for field %s',[ThisExportField.FieldName]); end; + ThisExportField.ExportedName:=NewFieldName; end; end; function TFPCustomDBFExport.BindFields: Boolean; Const - Levels : Array[TTableFormat] of integer = (3,4,7,25); + // Translate tableformat to tablelevel + Levels : Array[TTableFormat] of integer = (3,4,7,25,30); Var EF : TDBFExportFieldItem; i : Integer; - + MaxFieldName: integer; + begin + Result:=Inherited; // DBase III,IV, and FoxPro have a 10 character field length limit. - If FormatSettings.AutoRenameFields and (FormatSettings.TableFormat in [tfDbaseIII,tfDbaseIV,tfFoxPro]) then - CheckExportFieldNames(10); + // Visual Foxpro free tables (without .dbc file) also // DBase VII has a 32 character field length limit. - If FormatSettings.AutoRenameFields and (FormatSettings.TableFormat=tfDbaseVII) then - CheckExportFieldNames(32); - Result:=Inherited; + if (FormatSettings.TableFormat=tfDbaseVII) then + MaxFieldName:=32 + else + MaxFieldName:=10; try with FDBF.FieldDefs do begin @@ -149,6 +151,8 @@ begin For i:=0 to ExportFields.Count-1 do begin EF:=ExportFields[i] as TDBFExportFieldItem; + If FormatSettings.AutoRenameFields then + CheckExportFieldName(EF,MaxFieldName); If EF.Enabled and Assigned(EF.Field) then Add(EF.ExportedName,EF.Field.DataType,EF.Field.Size); end; diff --git a/fpcsrc/packages/fcl-db/src/json/Makefile b/fpcsrc/packages/fcl-db/src/json/Makefile deleted file mode 100644 index 87608e72..00000000 --- a/fpcsrc/packages/fcl-db/src/json/Makefile +++ /dev/null @@ -1,2085 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=fpjsondataset -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=fpjsondataset -endif -override INSTALL_FPCPACKAGE=y -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base fcl-json -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-JSON=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-JSON -PACKAGEDIR_FCL-JSON:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-json/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-JSON),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-JSON)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-JSON=$(PACKAGEDIR_FCL-JSON)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-JSON=$(PACKAGEDIR_FCL-JSON) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-JSON)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-JSON=$(PACKAGEDIR_FCL-JSON)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-JSON)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-JSON=$(PACKAGEDIR_FCL-JSON)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-JSON=$(PACKAGEDIR_FCL-JSON) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-JSON)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-JSON) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-JSON)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-JSON= -UNITDIR_FCL-JSON:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-json/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-JSON),) -UNITDIR_FCL-JSON:=$(firstword $(UNITDIR_FCL-JSON)) -else -UNITDIR_FCL-JSON= -endif -endif -ifdef UNITDIR_FCL-JSON -override COMPILER_UNITDIR+=$(UNITDIR_FCL-JSON) -endif -ifdef UNITDIR_FPMAKE_FCL-JSON -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-JSON) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/memds/Makefile b/fpcsrc/packages/fcl-db/src/memds/Makefile deleted file mode 100644 index 84fe5646..00000000 --- a/fpcsrc/packages/fcl-db/src/memds/Makefile +++ /dev/null @@ -1,2392 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=memds -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=memds -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_EXAMPLES+=testpop testopen testld testcp -endif -override INSTALL_FPCPACKAGE=y -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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_examples -ifneq ($(TARGET_EXAMPLES),) -HASEXAMPLES=1 -override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES))) -override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES)) -override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) -override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES)) -override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES) -override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES) -ifeq ($(OS_TARGET),os2) -override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES)) -endif -ifeq ($(OS_TARGET),emx) -override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES)) -endif -endif -ifneq ($(TARGET_EXAMPLEDIRS),) -HASEXAMPLES=1 -endif -fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS)) -.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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: fpc_examples -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/memds/memds.pp b/fpcsrc/packages/fcl-db/src/memds/memds.pp index fd0668c7..4ef6ac61 100644 --- a/fpcsrc/packages/fcl-db/src/memds/memds.pp +++ b/fpcsrc/packages/fcl-db/src/memds/memds.pp @@ -63,7 +63,6 @@ type FRecInfoOffset: integer; FRecCount: integer; FRecSize: integer; - FRecBufferSize: integer; FCurrRecNo: integer; FIsOpen: boolean; FTableIsCreated: boolean; @@ -77,11 +76,12 @@ type function MDSGetRecordOffset(ARecNo: integer): longint; function MDSGetFieldOffset(FieldNo: integer): integer; function MDSGetBufferSize(FieldNo: integer): integer; - function MDSGetActiveBuffer(var Buffer: TRecordBuffer): Boolean; + function MDSGetActiveBuffer(out Buffer: TRecordBuffer): Boolean; procedure MDSReadRecord(Buffer:TRecordBuffer;ARecNo:Integer); procedure MDSWriteRecord(Buffer:TRecordBuffer;ARecNo:Integer); procedure MDSAppendRecord(Buffer:TRecordBuffer); function MDSFilterRecord(Buffer:TRecordBuffer): Boolean; + function MDSLocateRecord(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions; out ARecNo: integer): Boolean; protected // Mandatory function AllocRecordBuffer: TRecordBuffer; override; @@ -98,6 +98,7 @@ type procedure InternalGotoBookmark(ABookmark: Pointer); override; procedure InternalInitFieldDefs; override; procedure InternalInitRecord(Buffer: TRecordBuffer); override; + procedure ClearCalcFields(Buffer: TRecordBuffer); override; procedure InternalLast; override; procedure InternalOpen; override; procedure InternalPost; override; @@ -129,6 +130,8 @@ type constructor Create(AOwner:tComponent); override; destructor Destroy; override; function BookmarkValid(ABookmark: TBookmark): Boolean; override; + function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): boolean; override; + function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; override; procedure CreateTable; Function DataSize : Integer; @@ -176,6 +179,9 @@ type implementation +uses + Variants, FmtBCD; + ResourceString SErrFieldTypeNotSupported = 'Fieldtype of Field "%s" not supported.'; SErrBookMarkNotFound = 'Bookmark %d not found.'; @@ -262,14 +268,13 @@ begin FStream:=TMemoryStream.Create; FRecCount:=0; FRecSize:=0; - FRecBufferSize:=0; FRecInfoOffset:=0; FCurrRecNo:=-1; BookmarkSize := sizeof(Longint); FIsOpen:=False; end; -Destructor TMemDataset.Destroy; +destructor TMemDataset.Destroy; begin FStream.Free; FreeMem(FFieldOffsets); @@ -297,7 +302,7 @@ begin result:= getIntegerpointer(ffieldoffsets, fieldno-1)^; end; -Procedure TMemDataset.RaiseError(Fmt : String; Args : Array of const); +procedure TMemDataset.RaiseError(Fmt: String; Args: array of const); begin Raise MDSError.CreateFmt(Fmt,Args); @@ -305,31 +310,39 @@ end; function TMemDataset.MDSGetBufferSize(FieldNo: integer): integer; var - dt1: tfieldtype; + FD: TFieldDef; begin - dt1:= FieldDefs.Items[FieldNo-1].Datatype; - case dt1 of - ftString: result:=FieldDefs.Items[FieldNo-1].Size+1; - ftFixedChar:result:=FieldDefs.Items[FieldNo-1].Size+1; + FD := FieldDefs.Items[FieldNo-1]; + case FD.DataType of + ftString, + ftGuid: result:=FD.Size+1; + ftFixedChar:result:=FD.Size+1; ftBoolean: result:=SizeOf(Wordbool); ftCurrency, ftFloat: result:=SizeOf(Double); ftBCD: result:=SizeOf(currency); ftLargeInt: result:=SizeOf(int64); ftSmallInt: result:=SizeOf(SmallInt); + ftWord, + ftAutoInc, ftInteger: result:=SizeOf(longint); ftDateTime, ftTime, ftDate: result:=SizeOf(TDateTime); + ftFmtBCD: result:=SizeOf(TBCD); + ftWideString, + ftFixedWideChar: result:=(FD.Size+1)*SizeOf(WideChar); + ftBytes: result := FD.Size; + ftVarBytes: result := FD.Size + SizeOf(Word); else - RaiseError(SErrFieldTypeNotSupported,[FieldDefs.Items[FieldNo-1].Name]); + RaiseError(SErrFieldTypeNotSupported,[FD.Name]); end; {$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} Result:=Align(Result,4); {$ENDIF} end; -function TMemDataset.MDSGetActiveBuffer(var Buffer: TRecordBuffer): Boolean; +function TMemDataset.MDSGetActiveBuffer(out Buffer: TRecordBuffer): Boolean; begin case State of @@ -343,6 +356,8 @@ begin Buffer:=ActiveBuffer; dsFilter: Buffer:=FFilterBuffer; + dsCalcFields: + Buffer:=CalcBuffer; else Buffer:=nil; end; @@ -372,7 +387,7 @@ end; //Abstract Overrides function TMemDataset.AllocRecordBuffer: TRecordBuffer; begin - GetMem(Result,FRecBufferSize); + GetMem(Result, FRecSize+CalcFieldsSize); end; procedure TMemDataset.FreeRecordBuffer (var Buffer: TRecordBuffer); @@ -381,19 +396,19 @@ begin end; procedure TMemDataset.InternalInitRecord(Buffer: TRecordBuffer); +begin + FillChar(Buffer^,FRecSize,0); +end; -var - I : integer; - +procedure TMemDataset.ClearCalcFields(Buffer: TRecordBuffer); begin - fillchar(buffer^,frecsize,0); + FillChar(Buffer[RecordSize], CalcFieldsSize, 0); end; procedure TMemDataset.InternalDelete; Var TS : TMemoryStream; - OldPos,NewPos,CopySize1,CopySize2 : Cardinal; begin if (FCurrRecNo<0) or (FCurrRecNo>=FRecCount) then @@ -419,7 +434,7 @@ begin FStream.Position:=MDSGetRecordOffset(FCurrRecNo+1); TS.CopyFrom(FStream,(MDSGetRecordOffset(FRecCount))-MDSGetRecordOffset(FCurrRecNo+1)); end; - FStream.loadFromStream(TS); + FStream.LoadFromStream(TS); Dec(FRecCount); if FRecCount=0 then FCurrRecNo:=-1 @@ -438,7 +453,7 @@ begin ReadFieldDefsFromStream(FOpenStream); end; -Procedure TMemDataset.CheckMarker(F : TStream; Marker : Integer); +procedure TMemDataset.CheckMarker(F: TStream; Marker: Integer); Var I,P : Integer; @@ -473,7 +488,6 @@ begin B:=ReadInteger(F)<>0; TFieldDef.Create(FieldDefs,FN,ft,FS,B,I); end; - CreateTable; end; procedure TMemDataset.InternalFirst; @@ -488,16 +502,16 @@ end; procedure TMemDataset.InternalOpen; - begin - if not FTableIsCreated then CreateTable; If (FFileName<>'') then FOpenStream:=TFileStream.Create(FFileName,fmOpenRead); Try InternalInitFieldDefs; if DefaultFields then CreateFields; - BindFields(True); + BindFields(True); // BindFields computes CalcFieldsSize + if not FTableIsCreated then + CreateTable; FCurrRecNo:=-1; If (FOpenStream<>Nil) then begin @@ -510,7 +524,7 @@ begin FIsOpen:=True; end; -Procedure TMemDataSet.LoadDataFromStream(F : TStream); +procedure TMemDataset.LoadDataFromStream(F: TStream); Var Size : Integer; @@ -524,17 +538,18 @@ begin FCurrRecNo:=-1; end; -Procedure TMemDataSet.LoadFromStream(F : TStream); +procedure TMemDataset.LoadFromStream(F: TStream); begin Close; ReadFieldDefsFromStream(F); + CreateTable; LoadDataFromStream(F); CheckMarker(F,smEOF); FFileModified:=False; end; -Procedure TMemDataSet.LoadFromFile(AFileName : String); +procedure TMemDataset.LoadFromFile(AFileName: String); Var F : TFileStream; @@ -549,13 +564,13 @@ begin end; -Procedure TMemDataset.SaveToFile(AFileName : String); +procedure TMemDataset.SaveToFile(AFileName: String); begin SaveToFile(AFileName,True); end; -Procedure TMemDataset.SaveToFile(AFileName : String; SaveData : Boolean); +procedure TMemDataset.SaveToFile(AFileName: String; SaveData: Boolean); Var F : TFileStream; @@ -571,19 +586,19 @@ begin end; end; -Procedure TMemDataset.WriteMarker(F : TStream; Marker : Integer); +procedure TMemDataset.WriteMarker(F: TStream; Marker: Integer); begin Writeinteger(F,Marker); end; -Procedure TMemDataset.SaveToStream(F : TStream); +procedure TMemDataset.SaveToStream(F: TStream); begin SaveToStream(F,True); end; -Procedure TMemDataset.SaveToStream(F : TStream; SaveData : Boolean); +procedure TMemDataset.SaveToStream(F: TStream; SaveData: Boolean); begin SaveFieldDefsToStream(F); @@ -592,14 +607,10 @@ begin WriteMarker(F,smEOF); end; -Procedure TMemDataset.SaveFieldDefsToStream(F : TStream); +procedure TMemDataset.SaveFieldDefsToStream(F: TStream); Var - I,ACount : Integer; - FN : String; - FS : Integer; - B : Boolean; - FT : TFieldType; + I : Integer; FD : TFieldDef; begin @@ -615,7 +626,7 @@ begin end; end; -Procedure TMemDataset.SaveDataToStream(F : TStream; SaveData : Boolean); +procedure TMemDataset.SaveDataToStream(F: TStream; SaveData: Boolean); begin if SaveData then @@ -650,8 +661,9 @@ end; procedure TMemDataset.InternalPost; begin CheckActive; - if ((State<>dsEdit) and (State<>dsInsert)) then + if not (State in [dsEdit, dsInsert]) then Exit; + inherited InternalPost; if (State=dsEdit) then MDSWriteRecord(ActiveBuffer, FCurrRecNo) else @@ -698,6 +710,7 @@ begin MDSReadRecord(Buffer, FCurrRecNo); PRecInfo(Buffer+FRecInfoOffset)^.Bookmark:=FCurrRecNo; PRecInfo(Buffer+FRecInfoOffset)^.BookmarkFlag:=bfCurrent; + GetCalcFields(Buffer); if (Filtered) then Accepted:=MDSFilterRecord(Buffer) //Filtering else @@ -714,11 +727,21 @@ var I: integer; begin I:= Field.FieldNo - 1; - result:= (I >= 0) and MDSGetActiveBuffer(SrcBuffer) and - not getfieldisnull(pointer(srcbuffer),I); - if result and (buffer <> nil) then + result := MDSGetActiveBuffer(SrcBuffer); + if not result then Exit; + + if I >= 0 then + begin + result := not getfieldisnull(pointer(srcbuffer),I); + if result and assigned(Buffer) then + Move(GetRecordBufferPointer(SrcBuffer, GetIntegerPointer(ffieldoffsets,I)^)^, Buffer^, GetIntegerPointer(FFieldSizes, I)^); + end + else // Calculated, Lookup begin - Move(GetRecordBufferPointer((SrcBuffer),getintegerpointer(ffieldoffsets,I)^)^, Buffer^,GetIntegerPointer(FFieldSizes, I)^); + Inc(SrcBuffer, RecordSize + Field.Offset); + result := Boolean(SrcBuffer[0]); + if result and assigned(Buffer) then + Move(SrcBuffer[1], Buffer^, Field.DataSize); end; end; @@ -729,22 +752,33 @@ var begin I:= Field.FieldNo - 1; - if (I >= 0) and MDSGetActiveBuffer(DestBuffer) then + if not MDSGetActiveBuffer(DestBuffer) then Exit; + + if I >= 0 then begin if State in [dsEdit, dsInsert, dsNewValue] then - Field.Validate(Buffer); - if buffer = nil then - setfieldisnull(pointer(destbuffer),I) - else - begin - unsetfieldisnull(pointer(destbuffer),I); + Field.Validate(Buffer); + if Buffer = nil then + setfieldisnull(pointer(DestBuffer),I) + else + begin + unsetfieldisnull(pointer(DestBuffer),I); J:=GetIntegerPointer(FFieldSizes, I)^; if Field.DataType=ftString then Dec(J); // Do not move terminating 0, which is in the size. - Move(Buffer^,GetRecordBufferPointer((DestBuffer), getIntegerPointer(FFieldOffsets, I)^)^,J); - dataevent(defieldchange,ptrint(field)); + Move(Buffer^, GetRecordBufferPointer(DestBuffer, getIntegerPointer(FFieldOffsets, I)^)^, J); end; + end + else // Calculated, Lookup + begin + Inc(DestBuffer, RecordSize + Field.Offset); + Boolean(DestBuffer[0]) := Buffer <> nil; + if assigned(Buffer) then + Move(Buffer^, DestBuffer[1], Field.DataSize); end; + + if not (State in [dsCalcFields, dsFilter, dsNewValue]) then + DataEvent(deFieldChange, PtrInt(Field)); end; function TMemDataset.GetRecordSize: Word; @@ -822,7 +856,7 @@ begin end; end; -Function TMemDataset.DataSize : Integer; +function TMemDataset.DataSize: Integer; begin Result:=FStream.Size; @@ -849,7 +883,7 @@ begin end; end; -procedure tmemdataset.calcrecordlayout; +procedure TMemDataset.calcrecordlayout; var i,count : integer; begin @@ -870,10 +904,12 @@ begin {$ENDIF} for i:= 0 to Count-1 do begin - GetIntegerPointer(ffieldoffsets, i)^ := frecsize; + GetIntegerPointer(ffieldoffsets, i)^ := FRecSize; GetIntegerPointer(ffieldsizes, i)^ := MDSGetbufferSize(i+1); - FRecSize:= FRecSize+GetIntegerPointeR(FFieldSizes, i)^; + FRecSize:= FRecSize+GetIntegerPointer(FFieldSizes, i)^; end; + FRecInfoOffset:=FRecSize; + FRecSize:=FRecSize+SizeRecInfo; end; procedure TMemDataset.CreateTable; @@ -885,9 +921,6 @@ begin FCurrRecNo:=-1; FIsOpen:=False; calcrecordlayout; - FRecInfoOffset:=FRecSize; - FRecSize:=FRecSize+SizeRecInfo; - FRecBufferSize:=FRecSize; FTableIsCreated:=True; end; @@ -909,30 +942,30 @@ begin end; end; -Function TMemDataset.GetRecNo: Longint; +function TMemDataset.GetRecNo: Integer; begin UpdateCursorPos; - if (FCurrRecNo<0) then - Result:=1 + if (FCurrRecNo<0) or (FRecCount=0) or (State=dsInsert) then + Result:=0 else Result:=FCurrRecNo+1; end; -Function TMemDataset.GetRecordCount: Longint; +function TMemDataset.GetRecordCount: Integer; begin CheckActive; Result:=FRecCount; end; -Procedure TMemDataset.CopyFromDataset(DataSet : TDataSet); +procedure TMemDataset.CopyFromDataset(DataSet: TDataSet); begin CopyFromDataset(Dataset,True); end; -Procedure TMemDataset.CopyFromDataset(DataSet : TDataSet; CopyData : Boolean); +procedure TMemDataset.CopyFromDataset(DataSet: TDataSet; CopyData: Boolean); Var I : Integer; @@ -1020,4 +1053,115 @@ begin inc(Result, Pos); end; +function TMemDataset.MDSLocateRecord(const KeyFields: string; const KeyValues: Variant; + Options: TLocateOptions; out ARecNo: integer): Boolean; +var + SaveState: TDataSetState; + lstKeyFields: TList; + Matched: boolean; + AKeyValues: variant; + i: integer; + AField: TField; + s1,s2: string; +begin + Result := false; + SaveState := SetTempState(dsFilter); + FFilterBuffer := TempBuffer; + lstKeyFields := TList.Create; + try + GetFieldList(lstKeyFields, KeyFields); + if VarArrayDimCount(KeyValues) = 0 then + begin + Matched := lstKeyFields.Count = 1; + AKeyValues := VarArrayOf([KeyValues]); + end + else if VarArrayDimCount(KeyValues) = 1 then + begin + Matched := VarArrayHighBound(KeyValues,1) + 1 = lstKeyFields.Count; + AKeyValues := KeyValues; + end + else + Matched := false; + + if Matched then + begin + ARecNo:=0; + while ARecNo $(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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sdf/Makefile b/fpcsrc/packages/fcl-db/src/sdf/Makefile deleted file mode 100644 index 111ea189..00000000 --- a/fpcsrc/packages/fcl-db/src/sdf/Makefile +++ /dev/null @@ -1,2197 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=sdfdata -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_EXAMPLES+=testsdf testfix -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_EXAMPLES+=testsdf testfix -endif -override INSTALL_FPCPACKAGE=y -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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_examples -ifneq ($(TARGET_EXAMPLES),) -HASEXAMPLES=1 -override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES))) -override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES)) -override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) -override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES)) -override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES) -override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES) -ifeq ($(OS_TARGET),os2) -override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES)) -endif -ifeq ($(OS_TARGET),emx) -override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES)) -endif -endif -ifneq ($(TARGET_EXAMPLEDIRS),) -HASEXAMPLES=1 -endif -fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS)) -.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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: fpc_examples -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sql/Makefile b/fpcsrc/packages/fcl-db/src/sql/Makefile deleted file mode 100644 index 45552554..00000000 --- a/fpcsrc/packages/fcl-db/src/sql/Makefile +++ /dev/null @@ -1,2567 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2h -endif -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_UNITDIR+=../dbase -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_UNITDIR+=../dbase -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-base -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/Makefile deleted file mode 100644 index 49164382..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/Makefile +++ /dev/null @@ -1,3792 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_DIRS+=interbase postgres mysql odbc sqlite mssql -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite mssql -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=sqldb sqldblib -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=sqldb -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=sqldb -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-xml -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -REQUIRE_PACKAGES_POSTGRES=1 -REQUIRE_PACKAGES_MYSQL=1 -REQUIRE_PACKAGES_ODBC=1 -REQUIRE_PACKAGES_ORACLE=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_DBLIB=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_IBASE -PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_IBASE),) -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX)),) -UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX) -else -UNITDIR_IBASE=$(PACKAGEDIR_IBASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_IBASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_IBASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_IBASE)/$(FPCMADE) -endif -else -PACKAGEDIR_IBASE= -UNITDIR_IBASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /ibase/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_IBASE),) -UNITDIR_IBASE:=$(firstword $(UNITDIR_IBASE)) -else -UNITDIR_IBASE= -endif -endif -ifdef UNITDIR_IBASE -override COMPILER_UNITDIR+=$(UNITDIR_IBASE) -endif -ifdef UNITDIR_FPMAKE_IBASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_IBASE) -endif -endif -ifdef REQUIRE_PACKAGES_POSTGRES -PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_POSTGRES),) -ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(TARGETSUFFIX)),) -UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(TARGETSUFFIX) -else -UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES) -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 -$(PACKAGEDIR_POSTGRES)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE) -endif -else -PACKAGEDIR_POSTGRES= -UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_POSTGRES),) -UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES)) -else -UNITDIR_POSTGRES= -endif -endif -ifdef UNITDIR_POSTGRES -override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES) -endif -ifdef UNITDIR_FPMAKE_POSTGRES -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_POSTGRES) -endif -endif -ifdef REQUIRE_PACKAGES_MYSQL -PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_MYSQL),) -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX)),) -UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX) -else -UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL) -endif -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_MYSQL)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE) -endif -else -PACKAGEDIR_MYSQL= -UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_MYSQL),) -UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL)) -else -UNITDIR_MYSQL= -endif -endif -ifdef UNITDIR_MYSQL -override COMPILER_UNITDIR+=$(UNITDIR_MYSQL) -endif -ifdef UNITDIR_FPMAKE_MYSQL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_MYSQL) -endif -endif -ifdef REQUIRE_PACKAGES_ODBC -PACKAGEDIR_ODBC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /odbc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ODBC),) -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX)),) -UNITDIR_ODBC=$(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX) -else -UNITDIR_ODBC=$(PACKAGEDIR_ODBC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ODBC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ODBC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ODBC)/$(FPCMADE) -endif -else -PACKAGEDIR_ODBC= -UNITDIR_ODBC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /odbc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ODBC),) -UNITDIR_ODBC:=$(firstword $(UNITDIR_ODBC)) -else -UNITDIR_ODBC= -endif -endif -ifdef UNITDIR_ODBC -override COMPILER_UNITDIR+=$(UNITDIR_ODBC) -endif -ifdef UNITDIR_FPMAKE_ODBC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ODBC) -endif -endif -ifdef REQUIRE_PACKAGES_ORACLE -PACKAGEDIR_ORACLE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oracle/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ORACLE),) -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX)),) -UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX) -else -UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE) -endif -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ORACLE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ORACLE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ORACLE)/$(FPCMADE) -endif -else -PACKAGEDIR_ORACLE= -UNITDIR_ORACLE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /oracle/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ORACLE),) -UNITDIR_ORACLE:=$(firstword $(UNITDIR_ORACLE)) -else -UNITDIR_ORACLE= -endif -endif -ifdef UNITDIR_ORACLE -override COMPILER_UNITDIR+=$(UNITDIR_ORACLE) -endif -ifdef UNITDIR_FPMAKE_ORACLE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ORACLE) -endif -endif -ifdef REQUIRE_PACKAGES_SQLITE -PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_SQLITE),) -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX)),) -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX) -else -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE) -endif -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_SQLITE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_SQLITE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_SQLITE)/$(FPCMADE) -endif -else -PACKAGEDIR_SQLITE= -UNITDIR_SQLITE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_SQLITE),) -UNITDIR_SQLITE:=$(firstword $(UNITDIR_SQLITE)) -else -UNITDIR_SQLITE= -endif -endif -ifdef UNITDIR_SQLITE -override COMPILER_UNITDIR+=$(UNITDIR_SQLITE) -endif -ifdef UNITDIR_FPMAKE_SQLITE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_SQLITE) -endif -endif -ifdef REQUIRE_PACKAGES_DBLIB -PACKAGEDIR_DBLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /dblib/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_DBLIB),) -ifneq ($(wildcard $(PACKAGEDIR_DBLIB)/units/$(TARGETSUFFIX)),) -UNITDIR_DBLIB=$(PACKAGEDIR_DBLIB)/units/$(TARGETSUFFIX) -else -UNITDIR_DBLIB=$(PACKAGEDIR_DBLIB) -endif -ifneq ($(wildcard $(PACKAGEDIR_DBLIB)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_DBLIB=$(PACKAGEDIR_DBLIB)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_DBLIB)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_DBLIB=$(PACKAGEDIR_DBLIB)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_DBLIB=$(PACKAGEDIR_DBLIB) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_DBLIB)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_DBLIB) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_DBLIB)/$(FPCMADE) -endif -else -PACKAGEDIR_DBLIB= -UNITDIR_DBLIB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /dblib/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_DBLIB),) -UNITDIR_DBLIB:=$(firstword $(UNITDIR_DBLIB)) -else -UNITDIR_DBLIB= -endif -endif -ifdef UNITDIR_DBLIB -override COMPILER_UNITDIR+=$(UNITDIR_DBLIB) -endif -ifdef UNITDIR_FPMAKE_DBLIB -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_DBLIB) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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 -ifeq ($(FULL_TARGET),i386-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -TARGET_DIRS_INTERBASE=1 -TARGET_DIRS_POSTGRES=1 -TARGET_DIRS_MYSQL=1 -TARGET_DIRS_ODBC=1 -TARGET_DIRS_ORACLE=1 -TARGET_DIRS_SQLITE=1 -TARGET_DIRS_MSSQL=1 -endif -ifdef TARGET_DIRS_INTERBASE -interbase_all: - $(MAKE) -C interbase all -interbase_debug: - $(MAKE) -C interbase debug -interbase_smart: - $(MAKE) -C interbase smart -interbase_release: - $(MAKE) -C interbase release -interbase_units: - $(MAKE) -C interbase units -interbase_examples: - $(MAKE) -C interbase examples -interbase_shared: - $(MAKE) -C interbase shared -interbase_install: - $(MAKE) -C interbase install -interbase_sourceinstall: - $(MAKE) -C interbase sourceinstall -interbase_exampleinstall: - $(MAKE) -C interbase exampleinstall -interbase_distinstall: - $(MAKE) -C interbase distinstall -interbase_zipinstall: - $(MAKE) -C interbase zipinstall -interbase_zipsourceinstall: - $(MAKE) -C interbase zipsourceinstall -interbase_zipexampleinstall: - $(MAKE) -C interbase zipexampleinstall -interbase_zipdistinstall: - $(MAKE) -C interbase zipdistinstall -interbase_clean: - $(MAKE) -C interbase clean -interbase_distclean: - $(MAKE) -C interbase distclean -interbase_cleanall: - $(MAKE) -C interbase cleanall -interbase_info: - $(MAKE) -C interbase info -interbase_makefiles: - $(MAKE) -C interbase makefiles -interbase: - $(MAKE) -C interbase all -.PHONY: interbase_all interbase_debug interbase_smart interbase_release interbase_units interbase_examples interbase_shared interbase_install interbase_sourceinstall interbase_exampleinstall interbase_distinstall interbase_zipinstall interbase_zipsourceinstall interbase_zipexampleinstall interbase_zipdistinstall interbase_clean interbase_distclean interbase_cleanall interbase_info interbase_makefiles interbase -endif -ifdef TARGET_DIRS_POSTGRES -postgres_all: - $(MAKE) -C postgres all -postgres_debug: - $(MAKE) -C postgres debug -postgres_smart: - $(MAKE) -C postgres smart -postgres_release: - $(MAKE) -C postgres release -postgres_units: - $(MAKE) -C postgres units -postgres_examples: - $(MAKE) -C postgres examples -postgres_shared: - $(MAKE) -C postgres shared -postgres_install: - $(MAKE) -C postgres install -postgres_sourceinstall: - $(MAKE) -C postgres sourceinstall -postgres_exampleinstall: - $(MAKE) -C postgres exampleinstall -postgres_distinstall: - $(MAKE) -C postgres distinstall -postgres_zipinstall: - $(MAKE) -C postgres zipinstall -postgres_zipsourceinstall: - $(MAKE) -C postgres zipsourceinstall -postgres_zipexampleinstall: - $(MAKE) -C postgres zipexampleinstall -postgres_zipdistinstall: - $(MAKE) -C postgres zipdistinstall -postgres_clean: - $(MAKE) -C postgres clean -postgres_distclean: - $(MAKE) -C postgres distclean -postgres_cleanall: - $(MAKE) -C postgres cleanall -postgres_info: - $(MAKE) -C postgres info -postgres_makefiles: - $(MAKE) -C postgres makefiles -postgres: - $(MAKE) -C postgres all -.PHONY: postgres_all postgres_debug postgres_smart postgres_release postgres_units postgres_examples postgres_shared postgres_install postgres_sourceinstall postgres_exampleinstall postgres_distinstall postgres_zipinstall postgres_zipsourceinstall postgres_zipexampleinstall postgres_zipdistinstall postgres_clean postgres_distclean postgres_cleanall postgres_info postgres_makefiles postgres -endif -ifdef TARGET_DIRS_MYSQL -mysql_all: - $(MAKE) -C mysql all -mysql_debug: - $(MAKE) -C mysql debug -mysql_smart: - $(MAKE) -C mysql smart -mysql_release: - $(MAKE) -C mysql release -mysql_units: - $(MAKE) -C mysql units -mysql_examples: - $(MAKE) -C mysql examples -mysql_shared: - $(MAKE) -C mysql shared -mysql_install: - $(MAKE) -C mysql install -mysql_sourceinstall: - $(MAKE) -C mysql sourceinstall -mysql_exampleinstall: - $(MAKE) -C mysql exampleinstall -mysql_distinstall: - $(MAKE) -C mysql distinstall -mysql_zipinstall: - $(MAKE) -C mysql zipinstall -mysql_zipsourceinstall: - $(MAKE) -C mysql zipsourceinstall -mysql_zipexampleinstall: - $(MAKE) -C mysql zipexampleinstall -mysql_zipdistinstall: - $(MAKE) -C mysql zipdistinstall -mysql_clean: - $(MAKE) -C mysql clean -mysql_distclean: - $(MAKE) -C mysql distclean -mysql_cleanall: - $(MAKE) -C mysql cleanall -mysql_info: - $(MAKE) -C mysql info -mysql_makefiles: - $(MAKE) -C mysql makefiles -mysql: - $(MAKE) -C mysql all -.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_units mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql -endif -ifdef TARGET_DIRS_ODBC -odbc_all: - $(MAKE) -C odbc all -odbc_debug: - $(MAKE) -C odbc debug -odbc_smart: - $(MAKE) -C odbc smart -odbc_release: - $(MAKE) -C odbc release -odbc_units: - $(MAKE) -C odbc units -odbc_examples: - $(MAKE) -C odbc examples -odbc_shared: - $(MAKE) -C odbc shared -odbc_install: - $(MAKE) -C odbc install -odbc_sourceinstall: - $(MAKE) -C odbc sourceinstall -odbc_exampleinstall: - $(MAKE) -C odbc exampleinstall -odbc_distinstall: - $(MAKE) -C odbc distinstall -odbc_zipinstall: - $(MAKE) -C odbc zipinstall -odbc_zipsourceinstall: - $(MAKE) -C odbc zipsourceinstall -odbc_zipexampleinstall: - $(MAKE) -C odbc zipexampleinstall -odbc_zipdistinstall: - $(MAKE) -C odbc zipdistinstall -odbc_clean: - $(MAKE) -C odbc clean -odbc_distclean: - $(MAKE) -C odbc distclean -odbc_cleanall: - $(MAKE) -C odbc cleanall -odbc_info: - $(MAKE) -C odbc info -odbc_makefiles: - $(MAKE) -C odbc makefiles -odbc: - $(MAKE) -C odbc all -.PHONY: odbc_all odbc_debug odbc_smart odbc_release odbc_units odbc_examples odbc_shared odbc_install odbc_sourceinstall odbc_exampleinstall odbc_distinstall odbc_zipinstall odbc_zipsourceinstall odbc_zipexampleinstall odbc_zipdistinstall odbc_clean odbc_distclean odbc_cleanall odbc_info odbc_makefiles odbc -endif -ifdef TARGET_DIRS_ORACLE -oracle_all: - $(MAKE) -C oracle all -oracle_debug: - $(MAKE) -C oracle debug -oracle_smart: - $(MAKE) -C oracle smart -oracle_release: - $(MAKE) -C oracle release -oracle_units: - $(MAKE) -C oracle units -oracle_examples: - $(MAKE) -C oracle examples -oracle_shared: - $(MAKE) -C oracle shared -oracle_install: - $(MAKE) -C oracle install -oracle_sourceinstall: - $(MAKE) -C oracle sourceinstall -oracle_exampleinstall: - $(MAKE) -C oracle exampleinstall -oracle_distinstall: - $(MAKE) -C oracle distinstall -oracle_zipinstall: - $(MAKE) -C oracle zipinstall -oracle_zipsourceinstall: - $(MAKE) -C oracle zipsourceinstall -oracle_zipexampleinstall: - $(MAKE) -C oracle zipexampleinstall -oracle_zipdistinstall: - $(MAKE) -C oracle zipdistinstall -oracle_clean: - $(MAKE) -C oracle clean -oracle_distclean: - $(MAKE) -C oracle distclean -oracle_cleanall: - $(MAKE) -C oracle cleanall -oracle_info: - $(MAKE) -C oracle info -oracle_makefiles: - $(MAKE) -C oracle makefiles -oracle: - $(MAKE) -C oracle all -.PHONY: oracle_all oracle_debug oracle_smart oracle_release oracle_units oracle_examples oracle_shared oracle_install oracle_sourceinstall oracle_exampleinstall oracle_distinstall oracle_zipinstall oracle_zipsourceinstall oracle_zipexampleinstall oracle_zipdistinstall oracle_clean oracle_distclean oracle_cleanall oracle_info oracle_makefiles oracle -endif -ifdef TARGET_DIRS_SQLITE -sqlite_all: - $(MAKE) -C sqlite all -sqlite_debug: - $(MAKE) -C sqlite debug -sqlite_smart: - $(MAKE) -C sqlite smart -sqlite_release: - $(MAKE) -C sqlite release -sqlite_units: - $(MAKE) -C sqlite units -sqlite_examples: - $(MAKE) -C sqlite examples -sqlite_shared: - $(MAKE) -C sqlite shared -sqlite_install: - $(MAKE) -C sqlite install -sqlite_sourceinstall: - $(MAKE) -C sqlite sourceinstall -sqlite_exampleinstall: - $(MAKE) -C sqlite exampleinstall -sqlite_distinstall: - $(MAKE) -C sqlite distinstall -sqlite_zipinstall: - $(MAKE) -C sqlite zipinstall -sqlite_zipsourceinstall: - $(MAKE) -C sqlite zipsourceinstall -sqlite_zipexampleinstall: - $(MAKE) -C sqlite zipexampleinstall -sqlite_zipdistinstall: - $(MAKE) -C sqlite zipdistinstall -sqlite_clean: - $(MAKE) -C sqlite clean -sqlite_distclean: - $(MAKE) -C sqlite distclean -sqlite_cleanall: - $(MAKE) -C sqlite cleanall -sqlite_info: - $(MAKE) -C sqlite info -sqlite_makefiles: - $(MAKE) -C sqlite makefiles -sqlite: - $(MAKE) -C sqlite all -.PHONY: sqlite_all sqlite_debug sqlite_smart sqlite_release sqlite_units sqlite_examples sqlite_shared sqlite_install sqlite_sourceinstall sqlite_exampleinstall sqlite_distinstall sqlite_zipinstall sqlite_zipsourceinstall sqlite_zipexampleinstall sqlite_zipdistinstall sqlite_clean sqlite_distclean sqlite_cleanall sqlite_info sqlite_makefiles sqlite -endif -ifdef TARGET_DIRS_MSSQL -mssql_all: - $(MAKE) -C mssql all -mssql_debug: - $(MAKE) -C mssql debug -mssql_smart: - $(MAKE) -C mssql smart -mssql_release: - $(MAKE) -C mssql release -mssql_units: - $(MAKE) -C mssql units -mssql_examples: - $(MAKE) -C mssql examples -mssql_shared: - $(MAKE) -C mssql shared -mssql_install: - $(MAKE) -C mssql install -mssql_sourceinstall: - $(MAKE) -C mssql sourceinstall -mssql_exampleinstall: - $(MAKE) -C mssql exampleinstall -mssql_distinstall: - $(MAKE) -C mssql distinstall -mssql_zipinstall: - $(MAKE) -C mssql zipinstall -mssql_zipsourceinstall: - $(MAKE) -C mssql zipsourceinstall -mssql_zipexampleinstall: - $(MAKE) -C mssql zipexampleinstall -mssql_zipdistinstall: - $(MAKE) -C mssql zipdistinstall -mssql_clean: - $(MAKE) -C mssql clean -mssql_distclean: - $(MAKE) -C mssql distclean -mssql_cleanall: - $(MAKE) -C mssql cleanall -mssql_info: - $(MAKE) -C mssql info -mssql_makefiles: - $(MAKE) -C mssql makefiles -mssql: - $(MAKE) -C mssql all -.PHONY: mssql_all mssql_debug mssql_smart mssql_release mssql_units mssql_examples mssql_shared mssql_install mssql_sourceinstall mssql_exampleinstall mssql_distinstall mssql_zipinstall mssql_zipsourceinstall mssql_zipexampleinstall mssql_zipdistinstall mssql_clean mssql_distclean mssql_cleanall mssql_info mssql_makefiles mssql -endif -all: fpc_all $(addsuffix _all,$(TARGET_DIRS)) -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units $(addsuffix _units,$(TARGET_DIRS)) -examples: $(addsuffix _examples,$(TARGET_DIRS)) -shared: fpc_shared -install: fpc_install $(addsuffix _install,$(TARGET_DIRS)) -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS)) -distinstall: $(addsuffix _distinstall,$(TARGET_DIRS)) -zipinstall: -zipsourceinstall: -zipexampleinstall: $(addsuffix _zipexampleinstall,$(TARGET_DIRS)) -zipdistinstall: $(addsuffix _zipdistinstall,$(TARGET_DIRS)) -clean: fpc_clean $(addsuffix _clean,$(TARGET_DIRS)) -distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS)) -cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS)) -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/interbase/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/interbase/Makefile deleted file mode 100644 index 27a2c947..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/interbase/Makefile +++ /dev/null @@ -1,2478 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-xml ibase -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_IBASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_IBASE -PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_IBASE),) -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX)),) -UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX) -else -UNITDIR_IBASE=$(PACKAGEDIR_IBASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_IBASE=$(PACKAGEDIR_IBASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_IBASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_IBASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_IBASE)/$(FPCMADE) -endif -else -PACKAGEDIR_IBASE= -UNITDIR_IBASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /ibase/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_IBASE),) -UNITDIR_IBASE:=$(firstword $(UNITDIR_IBASE)) -else -UNITDIR_IBASE= -endif -endif -ifdef UNITDIR_IBASE -override COMPILER_UNITDIR+=$(UNITDIR_IBASE) -endif -ifdef UNITDIR_FPMAKE_IBASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_IBASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/interbase/fbadmin.pp b/fpcsrc/packages/fcl-db/src/sqldb/interbase/fbadmin.pp index 22221309..4ac5c26b 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/interbase/fbadmin.pp +++ b/fpcsrc/packages/fcl-db/src/sqldb/interbase/fbadmin.pp @@ -93,7 +93,7 @@ type public constructor Create(AOwner: TComponent); override; destructor Destroy; override; - //Connect to service manage. Specify User,Password and, for remote databases, + //Connect to service manager. Specify User,Password and, for remote databases, //Host and, if not standard, Port function Connect:boolean; //Disconnect from service manager. Done automatically when destroying component @@ -158,7 +158,7 @@ type property Port: word read FPort write FPort default 3050; //Protocol used to connect to service manager. One of: //IBSPLOCAL: Host and port ignored - //IBSPTCPIP: Connectoct to Host:Port + //IBSPTCPIP: Connect to Host:Port //IBSPNETBEUI: Connect to \\Host\ //IBSPNAMEDPIPE: Connect to //Host/ property Protocol: TServiceProtocol read FProtocol write FProtocol; diff --git a/fpcsrc/packages/fcl-db/src/sqldb/interbase/ibconnection.pp b/fpcsrc/packages/fcl-db/src/sqldb/interbase/ibconnection.pp index 326b7af8..affa80a2 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/interbase/ibconnection.pp +++ b/fpcsrc/packages/fcl-db/src/sqldb/interbase/ibconnection.pp @@ -19,6 +19,12 @@ const MAXBLOBSEGMENTSIZE = 65535; //Maximum number of bytes that fit in a blob segment. type + TDatabaseInfo = record + Dialect : integer; //Dialect set in database + ODSMajorVersion : integer; //On-Disk Structure version of file + ServerVersion : string; //Representation of major.minor (.build) + ServerVersionString : string; //Complete version string, including name, platform + end; EIBDatabaseError = class(EDatabaseError) public @@ -48,22 +54,31 @@ type TIBConnection = class (TSQLConnection) private - FSQLDatabaseHandle : pointer; - FStatus : array [0..19] of ISC_STATUS; - FDialect : integer; - FDBDialect : integer; - FBLobSegmentSize : word; //required for backward compatibilty; not used + FSQLDatabaseHandle : pointer; + FStatus : array [0..19] of ISC_STATUS; + FDatabaseInfo : TDatabaseInfo; + FDialect : integer; + FBlobSegmentSize : word; //required for backward compatibilty; not used procedure ConnectFB; - function GetDialect: integer; + procedure AllocSQLDA(var aSQLDA : PXSQLDA;Count : integer); + + // Metadata: + procedure GetDatabaseInfo; //Queries for various information from server once connected + procedure ResetDatabaseInfo; //Useful when disconnecting + function GetDialect: integer; + function GetODSMajorVersion: integer; + function ParseServerVersion(const CompleteVersion: string): string; //Extract version info from complete version identification string + + // conversion methods procedure TranslateFldType(SQLType, SQLSubType, SQLLen, SQLScale : integer; var TrType : TFieldType; var TrLen : word); - // conversion methods procedure GetDateTime(CurrBuff, Buffer : pointer; AType : integer); procedure SetDateTime(CurrBuff: pointer; PTime : TDateTime; AType : integer); procedure GetFloat(CurrBuff, Buffer : pointer; Size : Byte); procedure SetFloat(CurrBuff: pointer; Dbl: Double; Size: integer); + procedure CheckError(ProcName : string; Status : PISC_STATUS); procedure SetParameters(cursor : TSQLCursor; aTransation : TSQLTransaction; AParams : TParams); procedure FreeSQLDABuffer(var aSQLDA : PXSQLDA); @@ -98,11 +113,12 @@ type function RowsAffected(cursor: TSQLCursor): TRowsCount; override; public constructor Create(AOwner : TComponent); override; + function GetConnectionInfo(InfoType:TConnInfoType): string; override; procedure CreateDB; override; procedure DropDB; override; //Segment size is not used in the code; property kept for backward compatibility property BlobSegmentSize : word read FBlobSegmentSize write FBlobSegmentSize; deprecated; - function GetDBDialect: integer; + property ODSMajorVersion : integer read GetODSMajorVersion; //ODS major version number; influences database compatibility/feature level. published property DatabaseName; property Dialect : integer read GetDialect write FDialect stored IsDialectStored default DEFDIALECT; @@ -121,6 +137,7 @@ type Class Function DefaultLibraryName : String; override; Class Function LoadFunction : TLibraryLoadFunction; override; Class Function UnLoadFunction : TLibraryUnLoadFunction; override; + Class Function LoadedLibraryName: string; override; end; implementation @@ -131,6 +148,7 @@ uses const SQL_BOOLEAN_INTERBASE = 590; SQL_BOOLEAN_FIREBIRD = 32764; + INVALID_DATA = -1; type TTm = packed record @@ -173,9 +191,9 @@ constructor TIBConnection.Create(AOwner : TComponent); begin inherited; FConnOptions := FConnOptions + [sqSupportParams] + [sqEscapeRepeat]; - FBLobSegmentSize := 65535; //Shows we're using the maximum segment size - FDialect := -1; - FDBDialect := -1; + FBlobSegmentSize := 65535; //Shows we're using the maximum segment size + FDialect := INVALID_DATA; + ResetDatabaseInfo; end; @@ -267,6 +285,8 @@ begin if isc_rollback_retaining(@Status[0], @TransactionHandle) <> 0 then CheckError('RollBackRetaining', Status); end; + + procedure TIBConnection.DropDB; begin @@ -286,6 +306,7 @@ begin {$EndIf} end; + procedure TIBConnection.CreateDB; var ASQLDatabaseHandle, @@ -324,7 +345,6 @@ begin end; procedure TIBConnection.DoInternalConnect; - begin {$IfDef LinkDynamically} InitialiseIBase60; @@ -336,10 +356,11 @@ end; procedure TIBConnection.DoInternalDisconnect; begin - FDialect := -1; - FDBDialect := -1; + Inherited; + FDialect := INVALID_DATA; if not Connected then begin + ResetDatabaseInfo; FSQLDatabaseHandle := nil; Exit; end; @@ -351,40 +372,163 @@ begin {$EndIf} end; +function TIBConnection.GetConnectionInfo(InfoType: TConnInfoType): string; +begin + result:=''; + {$IFDEF LinkDynamically} + InitialiseIBase60; + {$ENDIF} + try + case InfoType of + citServerType: + // Firebird returns own name in ServerVersion; Interbase 7.5 doesn't. + if Pos('Firebird', FDatabaseInfo.ServerVersionString)=0 then + result := 'Interbase' + else + result := 'Firebird'; + citServerVersion: + // Firebird returns major.minor, Interbase major.minor.build + result := FDatabaseInfo.ServerVersion; + citServerVersionString: + result := FDatabaseInfo.ServerVersionString; + citClientName: + result:=TIBConnectionDef.LoadedLibraryName; + else + //including citClientVersion, for which no single IB+FB and Win+*nux solution exists + result:=inherited GetConnectionInfo(InfoType); + end; + finally + {$IFDEF LinkDynamically} + ReleaseIBase60; + {$ENDIF} + end; +end; -function TIBConnection.GetDBDialect: integer; +procedure TIBConnection.GetDatabaseInfo; +// Asks server for multiple values +const + ResBufHigh = 512; //hopefully enough to include version string as well. var x : integer; Len : integer; - Buffer : array [0..1] of byte; - ResBuf : array [0..39] of byte; + ReqBuf : array [0..3] of byte; + ResBuf : array [0..ResBufHigh] of byte; // should be big enough for version string etc begin - result := -1; + ResetDatabaseInfo; if Connected then - begin - Buffer[0] := isc_info_db_sql_dialect; - Buffer[1] := isc_info_end; - if isc_database_info(@FStatus[0], @FSQLDatabaseHandle, Length(Buffer), - pchar(@Buffer[0]), SizeOf(ResBuf), pchar(@ResBuf[0])) <> 0 then - CheckError('SetDBDialect', FStatus); + begin + ReqBuf[0] := isc_info_ods_version; + ReqBuf[1] := isc_info_version; + ReqBuf[2] := isc_info_db_sql_dialect; + ReqBuf[3] := isc_info_end; + if isc_database_info(@FStatus[0], @FSQLDatabaseHandle, Length(ReqBuf), + pchar(@ReqBuf[0]), SizeOf(ResBuf), pchar(@ResBuf[0])) <> 0 then + CheckError('CacheServerInfo', FStatus); x := 0; - while x < 40 do + while x < ResBufHigh+1 do case ResBuf[x] of isc_info_db_sql_dialect : begin Inc(x); Len := isc_vax_integer(pchar(@ResBuf[x]), 2); Inc(x, 2); - Result := isc_vax_integer(pchar(@ResBuf[x]), Len); + FDatabaseInfo.Dialect := isc_vax_integer(pchar(@ResBuf[x]), Len); Inc(x, Len); end; - isc_info_end : Break; + isc_info_ods_version : + begin + Inc(x); + Len := isc_vax_integer(pchar(@ResBuf[x]), 2); + Inc(x, 2); + FDatabaseInfo.ODSMajorVersion := isc_vax_integer(pchar(@ResBuf[x]), Len); + Inc(x, Len); + end; + isc_info_version : + begin + Inc(x); + Len := isc_vax_integer(pchar(@ResBuf[x]), 2); + Inc(x, 2); + SetString(FDatabaseInfo.ServerVersionString, PAnsiChar(@ResBuf[x + 2]), Len-2); + FDatabaseInfo.ServerVersion := ParseServerVersion(FDatabaseInfo.ServerVersionString); + Inc(x, Len); + end; + isc_info_end, isc_info_error : Break; + isc_info_truncated : Break; //result buffer too small; fix your code! else inc(x); end; + end; +end; + +procedure TIBConnection.ResetDatabaseInfo; +begin + FDatabaseInfo.Dialect:=0; + FDatabaseInfo.ODSMajorVersion:=0; + FDatabaseInfo.ServerVersion:=''; + FDatabaseInfo.ServerVersionString:=''; // don't confuse applications with 'Firebird' or 'Interbase' +end; + + +function TIBConnection.GetODSMajorVersion: integer; +begin + result:=FDatabaseInfo.ODSMajorVersion; +end; + +function TIBConnection.ParseServerVersion(const CompleteVersion: string): string; +// String representation of integer version number derived from +// major.minor.build => should give e.g. 020501 +const + Delimiter = '.'; + DigitsPerNumber = 2; + MaxNumbers = 3; +var + BeginPos,EndPos,StartLook,i: integer; + NumericPart: string; +begin + result := ''; + // Ignore 6.x version number in front of "Firebird" + StartLook := Pos('Firebird', CompleteVersion); + if StartLook = 0 then + StartLook := 1; + BeginPos := 0; + // Catch all numerics + decimal point: + for i := StartLook to Length(CompleteVersion) do + begin + if (BeginPos > 0) and + ((CompleteVersion[i] < '0') or (CompleteVersion[i] > '9')) and (CompleteVersion[i] <> '.') then + begin + EndPos := i - 1; + break; + end; + if (BeginPos = 0) and + (CompleteVersion[i] >= '0') and (CompleteVersion[i] <= '9') then + begin + BeginPos := i; end; + end; + if BeginPos > 0 then + begin + NumericPart := copy(CompleteVersion, BeginPos, 1+EndPos-BeginPos); + BeginPos := 1; + for i := 1 to MaxNumbers do + begin + EndPos := PosEx(Delimiter,NumericPart,BeginPos); + if EndPos > 0 then + begin + result := result + rightstr(StringOfChar('0',DigitsPerNumber)+copy(NumericPart,BeginPos,EndPos-BeginPos),DigitsPerNumber); + BeginPos := EndPos+1; + end + else + begin + result := result + rightstr(StringOfChar('0',DigitsPerNumber)+copy(NumericPart,BeginPos,Length(NumericPart)),DigitsPerNumber); + break; + end; + end; + result := leftstr(result + StringOfChar('0',DigitsPerNumber * MaxNumbers), DigitsPerNumber * MaxNumbers); + end; end; + procedure TIBConnection.ConnectFB; var ADatabaseName: String; @@ -413,12 +557,12 @@ end; function TIBConnection.GetDialect: integer; begin - if FDialect = -1 then + if FDialect = INVALID_DATA then begin - if FDBDialect = -1 then + if FDatabaseInfo.Dialect=0 then Result := DEFDIALECT else - Result := FDBDialect; + Result := FDatabaseInfo.Dialect; end else Result := FDialect; end; @@ -598,8 +742,9 @@ begin isc_info_sql_stmt_delete: FStatementType := stDelete; isc_info_sql_stmt_exec_procedure: FStatementType := stExecProcedure; end; + FSelectable := FStatementType in [stSelect,stExecProcedure]; - if FStatementType in [stSelect,stExecProcedure] then + if FSelectable then begin if isc_dsql_describe(@Status[0], @Statement, 1, SQLDA) <> 0 then CheckError('PrepareSelect', Status); @@ -652,21 +797,20 @@ begin Dispose(aSQLDA^.SQLVar[x].sqlind); aSQLDA^.SQLVar[x].sqlind := nil; end - end; {$R+} end; function TIBConnection.IsDialectStored: boolean; begin - result := (FDialect<>-1); + result := (FDialect<>INVALID_DATA); end; procedure TIBConnection.DoConnect; const NoQuotes: TQuoteChars = (' ',' '); begin inherited DoConnect; - FDBDialect := GetDBDialect; + GetDatabaseInfo; //Get db dialect, db metadata if Dialect < 3 then FieldNameQuoteChars := NoQuotes else @@ -748,8 +892,8 @@ begin with cursor as TIBCursor do begin if FStatementType = stExecProcedure then - //it is not recommended fetch from non-select statement, i.e. statement which have no cursor - //starting from Firebird 2.5 it leads to error 'Invalid cursor reference' + //do not fetch from a non-select statement, i.e. statement which has no cursor + //on Firebird 2.5+ it leads to error 'Invalid cursor reference' if SQLDA^.SQLD = 0 then retcode := 100 //no more rows to retrieve else @@ -829,11 +973,18 @@ var ParNr,SQLVarNr : integer; {$R+} end; +Const + DateF = 'yyyy-mm-dd'; + TimeF = 'hh:nn:ss'; + DateTimeF = DateF+' '+TimeF; + var // This should be a pointer, because the ORIGINAL variables must // be modified. VSQLVar: ^XSQLVAR; - + P: TParam; + ft : TFieldType; + D : TDateTime; begin {$R-} with cursor as TIBCursor do for SQLVarNr := 0 to High(ParamBinding){AParams.count-1} do @@ -868,7 +1019,20 @@ begin SetBlobParam; SQL_VARYING, SQL_TEXT : begin - s := AParams[ParNr].AsString; + P:=AParams[ParNr]; + ft:=P.DataType; + if Not (ft in [ftDate,ftTime,ftDateTime,ftTimeStamp]) then + S:=P.AsString + else + begin + Case ft of + ftDate : S:=DateF; + ftTime : S:=TimeF; + ftDateTime, + ftTimeStamp : S:=DateTimeF; + end; + S:=FormatDateTime(S,P.AsDateTime); + end; w := length(s); // a word is enough, since the max-length of a string in interbase is 32k if ((VSQLVar^.SQLType and not 1) = SQL_VARYING) then begin @@ -1123,7 +1287,7 @@ begin {$IFNDEF SUPPORT_MSECS} isc_encode_sql_time(@CTime, PISC_TIME(CurrBuff)); {$ELSE} - PISC_TIME(CurrBuff)^ := Trunc(abs(Frac(PTime)) * IBTimeFractionsPerDay); + PISC_TIME(CurrBuff)^ := Round(abs(Frac(PTime)) * IBTimeFractionsPerDay); {$ENDIF} SQL_TIMESTAMP : begin @@ -1131,7 +1295,7 @@ begin isc_encode_timestamp(@CTime, PISC_TIMESTAMP(CurrBuff)); {$ELSE} PISC_TIMESTAMP(CurrBuff)^.timestamp_date := Trunc(PTime) + IBDateOffset; - PISC_TIMESTAMP(CurrBuff)^.timestamp_time := Trunc(abs(Frac(PTime)) * IBTimeFractionsPerDay); + PISC_TIMESTAMP(CurrBuff)^.timestamp_time := Round(abs(Frac(PTime)) * IBTimeFractionsPerDay); {$ENDIF} end else @@ -1216,6 +1380,11 @@ begin if not assigned(Transaction) then DatabaseError(SErrConnTransactionnSet); + if (length(TableName)>2) and (TableName[1]='"') and (TableName[length(TableName)]='"') then + TableName := AnsiDequotedStr(TableName, '"') + else + TableName := UpperCase(TableName); + qry := tsqlquery.Create(nil); qry.transaction := Transaction; qry.database := Self; @@ -1239,7 +1408,7 @@ begin 'rel_con.rdb$index_name = ind.rdb$index_name '+ 'where '+ '(ind_seg.rdb$index_name = ind.rdb$index_name) and '+ - '(ind.rdb$relation_name=''' + UpperCase(TableName) +''') '+ + '(ind.rdb$relation_name=' + QuotedStr(TableName) + ') '+ 'order by '+ 'ind.rdb$index_name;'); open; @@ -1466,6 +1635,15 @@ begin Result:=@ReleaseIBase60 end; +class function TIBConnectionDef.LoadedLibraryName: string; +begin + {$IfDef LinkDynamically} + Result:=IBaseLoadedLibrary; + {$else} + Result:=''; + {$endif} +end; + initialization RegisterConnection(TIBConnectionDef); diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mssql/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/mssql/Makefile deleted file mode 100644 index 4a390435..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/mssql/Makefile +++ /dev/null @@ -1,2317 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=mssqlconn -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=mssqlconn -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl dblib fcl-base -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_DBLIB=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_DBLIB -PACKAGEDIR_DBLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /dblib/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_DBLIB),) -ifneq ($(wildcard $(PACKAGEDIR_DBLIB)/units/$(TARGETSUFFIX)),) -UNITDIR_DBLIB=$(PACKAGEDIR_DBLIB)/units/$(TARGETSUFFIX) -else -UNITDIR_DBLIB=$(PACKAGEDIR_DBLIB) -endif -ifneq ($(wildcard $(PACKAGEDIR_DBLIB)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_DBLIB=$(PACKAGEDIR_DBLIB)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_DBLIB)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_DBLIB=$(PACKAGEDIR_DBLIB)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_DBLIB=$(PACKAGEDIR_DBLIB) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_DBLIB)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_DBLIB) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_DBLIB)/$(FPCMADE) -endif -else -PACKAGEDIR_DBLIB= -UNITDIR_DBLIB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /dblib/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_DBLIB),) -UNITDIR_DBLIB:=$(firstword $(UNITDIR_DBLIB)) -else -UNITDIR_DBLIB= -endif -endif -ifdef UNITDIR_DBLIB -override COMPILER_UNITDIR+=$(UNITDIR_DBLIB) -endif -ifdef UNITDIR_FPMAKE_DBLIB -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_DBLIB) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp b/fpcsrc/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp index 36c87437..2b346063 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp +++ b/fpcsrc/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp @@ -27,10 +27,12 @@ TMSSQLConnection properties: HostName - can be specified also as 'servername:port' or 'servername\instance' + (SQL Server Browser Service must be running on server to connect to specific instance) CharSet - if you use Microsoft DB-Lib and set to 'UTF-8' then char/varchar fields will be UTF8Encoded/Decoded if you use FreeTDS DB-Lib then you must compile with iconv support (requires libiconv2.dll) or cast char/varchar to nchar/nvarchar in SELECTs Params - "AutoCommit=true" - if you don't want explicitly commit/rollback transactions - "TextSize=16777216 - set maximum size of text/image data returned + "TextSize=16777216" - set maximum size of text/image data returned + "ApplicationName=YourAppName" - Set the app name for the connection. MSSQL 2000 and higher only } unit mssqlconn; @@ -44,6 +46,12 @@ uses type + TServerInfo = record + ServerVersion: string; + ServerVersionString: string; + UserName: string; + end; + TClientCharset = (ccNone, ccUTF8, ccISO88591, ccUnknown); { TMSSQLConnection } @@ -54,8 +62,10 @@ type FDBProc : PDBPROCESS; Ftds : integer; // TDS protocol version Fstatus : STATUS; // current result/rows fetch status + FServerInfo: TServerInfo; function CheckError(const Ret: RETCODE): RETCODE; - procedure DBExecute(const cmd: string); + procedure Execute(const cmd: string); overload; + procedure ExecuteDirectSQL(const Query: string); function TranslateFldType(SQLDataType: integer): TFieldType; function ClientCharset: TClientCharset; function AutoCommit: boolean; @@ -71,10 +81,6 @@ type function AllocateCursorHandle:TSQLCursor; override; procedure DeAllocateCursorHandle(var cursor:TSQLCursor); override; function AllocateTransactionHandle:TSQLHandle; override; - // - Statement handling - function StrToStatementType(s : string) : TStatementType; override; - procedure PrepareStatement(cursor:TSQLCursor; ATransaction:TSQLTransaction; buf:string; AParams:TParams); override; - procedure UnPrepareStatement(cursor:TSQLCursor); override; // - Transaction handling function GetTransactionHandle(trans:TSQLHandle):pointer; override; function StartDBTransaction(trans:TSQLHandle; AParams:string):boolean; override; @@ -82,6 +88,10 @@ type function Rollback(trans:TSQLHandle):boolean; override; procedure CommitRetaining(trans:TSQLHandle); override; procedure RollbackRetaining(trans:TSQLHandle); override; + // - Statement handling + function StrToStatementType(s : string) : TStatementType; override; + procedure PrepareStatement(cursor:TSQLCursor; ATransaction:TSQLTransaction; buf:string; AParams:TParams); override; + procedure UnPrepareStatement(cursor:TSQLCursor); override; // - Statement execution procedure Execute(cursor:TSQLCursor; ATransaction:TSQLTransaction; AParams:TParams); override; function RowsAffected(cursor: TSQLCursor): TRowsCount; override; @@ -97,6 +107,9 @@ type function GetSchemaInfoSQL(SchemaType:TSchemaType; SchemaObjectName, SchemaObjectPattern:string):string; override; public constructor Create(AOwner : TComponent); override; + function GetConnectionInfo(InfoType:TConnInfoType): string; override; + procedure CreateDB; override; + procedure DropDB; override; //property TDS:integer read Ftds; published // Redeclare properties from TSQLConnection @@ -135,11 +148,15 @@ type Class Function TypeName : String; override; Class Function ConnectionClass : TSQLConnectionClass; override; Class Function Description : String; override; + Class Function DefaultLibraryName : String; override; + Class Function LoadFunction : TLibraryLoadFunction; override; + Class Function UnLoadFunction : TLibraryUnLoadFunction; override; + Class Function LoadedLibraryName: string; override; end; { TSybaseConnectionDef } - TSybaseConnectionDef = Class(TConnectionDef) + TSybaseConnectionDef = Class(TMSSQLConnectionDef) Class Function TypeName : String; override; Class Function ConnectionClass : TSQLConnectionClass; override; Class Function Description : String; override; @@ -158,12 +175,19 @@ type { TDBLibCursor } TDBLibCursor = class(TSQLCursor) + private + FConnection: TMSSQLConnection; // owner connection + FQuery: string; // :ParamNames converted to $1,$2,..,$n + FParamReplaceString: string; protected - FQuery: string; //:ParamNames converted to $1,$2,..,$n - FCanOpen: boolean; //can return rows? FRowsAffected: integer; - FParamReplaceString: string; - function ReplaceParams(AParams: TParams; ASQLConnection: TMSSQLConnection): string; //replaces parameters placeholders $1,$2,..$n in FQuery with supplied values in AParams + function ReplaceParams(AParams: TParams): string; // replaces parameters placeholders $1,$2,..$n in FQuery with supplied values in AParams + procedure Prepare(Buf: string; AParams: TParams); + procedure Execute(AParams: TParams); + function Fetch: boolean; + procedure Put(column: integer; out s: string); overload; + public + constructor Create(AConnection: TMSSQLConnection); overload; end; @@ -171,6 +195,7 @@ const SBeginTransaction = 'BEGIN TRANSACTION'; SAutoCommit = 'AUTOCOMMIT'; STextSize = 'TEXTSIZE'; + SAppName = 'APPLICATIONNAME'; var @@ -194,8 +219,18 @@ end; { TDBLibCursor } -function TDBLibCursor.ReplaceParams(AParams: TParams; ASQLConnection: TMSSQLConnection): string; -var i:integer; +procedure TDBLibCursor.Prepare(Buf: string; AParams: TParams); +var + ParamBinding : TParamBinding; +begin + if assigned(AParams) and (AParams.Count > 0) then + FQuery:=AParams.ParseSQL(Buf, false, sqEscapeSlash in FConnection.ConnOptions, sqEscapeRepeat in FConnection.ConnOptions, psSimulated, ParamBinding, FParamReplaceString) + else + FQuery:=Buf; +end; + +function TDBLibCursor.ReplaceParams(AParams: TParams): string; +var i: integer; ParamNames, ParamValues: array of string; begin if Assigned(AParams) and (AParams.Count > 0) then //taken from mysqlconn, pqconnection @@ -205,8 +240,7 @@ begin for i := 0 to AParams.Count -1 do begin ParamNames[AParams.Count-i-1] := format('%s%d', [FParamReplaceString, AParams[i].Index+1]); - ParamValues[AParams.Count-i-1] := ASQLConnection.GetAsSQLText(AParams[i]); - //showmessage(ParamNames[AParams.Count-i-1] + '=' + ParamValues[AParams.Count-i-1]); + ParamValues[AParams.Count-i-1] := FConnection.GetAsSQLText(AParams[i]); end; Result := stringsreplace(FQuery, ParamNames, ParamValues, [rfReplaceAll]); end @@ -214,6 +248,32 @@ begin Result := FQuery; end; +procedure TDBLibCursor.Execute(AParams: TParams); +begin + Fconnection.Execute(Self, nil, AParams); +end; + +function TDBLibCursor.Fetch: boolean; +begin + Result := Fconnection.Fetch(Self); +end; + +procedure TDBLibCursor.Put(column: integer; out s: string); +var + data: PByte; + datalen: DBINT; +begin + data := dbdata(Fconnection.FDBProc, column); + datalen := dbdatlen(Fconnection.FDBProc, column); + SetString(s, PAnsiChar(data), datalen); +end; + +constructor TDBLibCursor.Create(AConnection: TMSSQLConnection); +begin + inherited Create; + FConnection := AConnection; +end; + { TSybaseConnection } @@ -259,6 +319,31 @@ begin Ftds := DBTDS_UNKNOWN; end; +procedure TMSSQLConnection.CreateDB; +begin + ExecuteDirectSQL('CREATE DATABASE '+DatabaseName); +end; + +procedure TMSSQLConnection.DropDB; +begin + ExecuteDirectSQL('DROP DATABASE '+DatabaseName); +end; + +procedure TMSSQLConnection.ExecuteDirectSQL(const Query: string); +var ADatabaseName: string; +begin + CheckDisConnected; + ADatabaseName:=DatabaseName; + DatabaseName:=''; + try + Open; + Execute(Query); + finally + Close; + DatabaseName:=ADatabaseName; + end; +end; + function TMSSQLConnection.GetHandle: pointer; begin Result:=FDBProc; @@ -310,8 +395,23 @@ const IMPLICIT_TRANSACTIONS_OFF: array[boolean] of shortstring = ('SET IMPLICIT_TRANSACTIONS OFF', 'SET CHAINED OFF'); ANSI_DEFAULTS_ON: array[boolean] of shortstring = ('SET ANSI_DEFAULTS ON', 'SET QUOTED_IDENTIFIER ON'); CURSOR_CLOSE_ON_COMMIT_OFF: array[boolean] of shortstring = ('SET CURSOR_CLOSE_ON_COMMIT OFF', 'SET CLOSE ON ENDTRAN OFF'); + VERSION_NUMBER: array[boolean] of shortstring = ('SERVERPROPERTY(''ProductVersion'')', '@@version_number'); + +Var + B : Boolean; + begin - inherited DoInternalConnect; + // Do not call the inherited method as it checks for a non-empty DatabaseName, empty DatabaseName=default database defined for login + // MVC: Inherited MUST be called to do housekeeping. + B:=DatabaseName=''; + if B then + DatabaseName:='Dummy'; + try + inherited DoInternalConnect; + finally + if B then + DatabaseName:=''; + end; InitialiseDBLib(DBLibLibraryName); @@ -344,6 +444,9 @@ begin else dbsetlcharset(FDBLogin, PChar(CharSet)); + if Params.IndexOfName(SAppName) <> -1 then + dbsetlname(FDBLogin, PChar(Params.Values[SAppName]), DBSETAPP); + //dbsetlname(FDBLogin, PChar(TIMEOUT_IGNORE), DBSET_LOGINTIME); dbsetlogintime(10); @@ -360,17 +463,38 @@ begin //while dbresults(FDBProc) = SUCCEED do ; // Also SQL Server ODBC driver and Microsoft OLE DB Provider for SQL Server set ANSI_DEFAULTS to ON when connecting - //DBExecute(ANSI_DEFAULTS_ON[IsSybase]); - DBExecute('SET QUOTED_IDENTIFIER ON'); + //Execute(ANSI_DEFAULTS_ON[IsSybase]); + Execute('SET QUOTED_IDENTIFIER ON'); if Params.IndexOfName(STextSize) <> -1 then - DBExecute('SET TEXTSIZE '+Params.Values[STextSize]) + Execute('SET TEXTSIZE '+Params.Values[STextSize]) else - DBExecute('SET TEXTSIZE 16777216'); + Execute('SET TEXTSIZE 16777216'); - if AutoCommit then DBExecute(IMPLICIT_TRANSACTIONS_OFF[IsSybase]); //set connection to autocommit mode - default + if AutoCommit then + Execute(IMPLICIT_TRANSACTIONS_OFF[IsSybase]); //set connection to autocommit mode - default - CheckError( dbuse(FDBProc, PChar(DatabaseName)) ); + if DatabaseName <> '' then + CheckError( dbuse(FDBProc, PChar(DatabaseName)) ); + + with TDBLibCursor.Create(Self) do + begin + try + Prepare(format('SELECT cast(%s as varchar), @@version, user_name()', [VERSION_NUMBER[IsSybase]]), nil); + Execute(nil); + if Fetch then + begin + Put(1, FServerInfo.ServerVersion); + Put(2, FServerInfo.ServerVersionString); + Put(3, FServerInfo.UserName); + end; + except + FServerInfo.ServerVersion:=''; + FServerInfo.ServerVersionString:=''; + FServerInfo.UserName:=''; + end; + Free; + end; end; procedure TMSSQLConnection.DoInternalDisconnect; @@ -385,7 +509,7 @@ end; function TMSSQLConnection.AllocateCursorHandle: TSQLCursor; begin - Result:=TDBLibCursor.Create; + Result:=TDBLibCursor.Create(Self); end; procedure TMSSQLConnection.DeAllocateCursorHandle(var cursor: TSQLCursor); @@ -395,32 +519,13 @@ end; function TMSSQLConnection.StrToStatementType(s: string): TStatementType; begin - if s = 'EXEC' then + s:=LowerCase(s); + if s = 'exec' then Result:=stExecProcedure else Result:=inherited StrToStatementType(s); end; -procedure TMSSQLConnection.PrepareStatement(cursor: TSQLCursor; - ATransaction: TSQLTransaction; buf: string; AParams: TParams); -var - ParamBinding : TParamBinding; -begin - with cursor as TDBLibCursor do - begin - if assigned(AParams) and (AParams.Count > 0) then - FQuery:=AParams.ParseSQL(buf, false, sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions, psSimulated, ParamBinding, FParamReplaceString) - else - FQuery:=buf; - end; -end; - -procedure TMSSQLConnection.UnPrepareStatement(cursor: TSQLCursor); -begin - if assigned(FDBProc) and (Fstatus <> NO_MORE_ROWS) then - dbcanquery(FDBProc); -end; - function TMSSQLConnection.AllocateTransactionHandle: TSQLHandle; begin Result:=nil; @@ -435,31 +540,31 @@ function TMSSQLConnection.StartDBTransaction(trans: TSQLHandle; AParams: string) begin Result := not AutoCommit; if Result then - DBExecute(SBeginTransaction); + Execute(SBeginTransaction); end; function TMSSQLConnection.Commit(trans: TSQLHandle): boolean; begin - DBExecute('COMMIT'); + Execute('COMMIT'); Result:=true; end; function TMSSQLConnection.Rollback(trans: TSQLHandle): boolean; begin - DBExecute('ROLLBACK'); + Execute('ROLLBACK'); Result:=true; end; procedure TMSSQLConnection.CommitRetaining(trans: TSQLHandle); begin if Commit(trans) then - DBExecute(SBeginTransaction); + Execute(SBeginTransaction); end; procedure TMSSQLConnection.RollbackRetaining(trans: TSQLHandle); begin if Rollback(trans) then - DBExecute(SBeginTransaction); + Execute(SBeginTransaction); end; function TMSSQLConnection.AutoCommit: boolean; @@ -467,15 +572,6 @@ begin Result := StrToBoolDef(Params.Values[SAutoCommit], False); end; -procedure TMSSQLConnection.DBExecute(const cmd: string); -begin - DBErrorStr:=''; - DBMsgStr :=''; - CheckError( dbcmd(FDBProc, PChar(cmd)) ); - CheckError( dbsqlexec(FDBProc) ); - CheckError( dbresults(FDBProc) ); -end; - function TMSSQLConnection.ClientCharset: TClientCharset; begin {$IF (FPC_VERSION>=2) AND (FPC_RELEASE>4)} @@ -497,6 +593,27 @@ begin {$ENDIF} end; +procedure TMSSQLConnection.PrepareStatement(cursor: TSQLCursor; + ATransaction: TSQLTransaction; buf: string; AParams: TParams); +begin + (cursor as TDBLibCursor).Prepare(buf, AParams); +end; + +procedure TMSSQLConnection.UnPrepareStatement(cursor: TSQLCursor); +begin + if assigned(FDBProc) and (Fstatus <> NO_MORE_ROWS) then + dbcanquery(FDBProc); +end; + +procedure TMSSQLConnection.Execute(const cmd: string); +begin + DBErrorStr:=''; + DBMsgStr :=''; + CheckError( dbcmd(FDBProc, PChar(cmd)) ); + CheckError( dbsqlexec(FDBProc) ); + CheckError( dbresults(FDBProc) ); +end; + procedure TMSSQLConnection.Execute(cursor: TSQLCursor; ATransaction: TSQLTransaction; AParams: TParams); var c: TDBLibCursor; cmd: string; @@ -504,22 +621,22 @@ var c: TDBLibCursor; begin c:=cursor as TDBLibCursor; - cmd := c.ReplaceParams(AParams, Self); - DBExecute(cmd); + cmd := c.ReplaceParams(AParams); + Execute(cmd); res := SUCCEED; repeat - c.FCanOpen := dbcmdrow(FDBProc)=SUCCEED; + c.FSelectable := dbcmdrow(FDBProc)=SUCCEED; c.FRowsAffected := dbcount(FDBProc); if assigned(dbiscount) and not dbiscount(FDBProc) then c.FRowsAffected := -1; - if not c.FCanOpen then //Sybase stored proc. + if not c.FSelectable then //Sybase stored proc. begin repeat until dbnextrow(FDBProc) = NO_MORE_ROWS; res := CheckError( dbresults(FDBProc) ); end; - until (res = NO_MORE_RESULTS) or c.FCanOpen; + until c.FSelectable or (res = NO_MORE_RESULTS) or (res = FAIL); if res = NO_MORE_RESULTS then Fstatus := NO_MORE_ROWS @@ -540,7 +657,8 @@ begin case SQLDataType of SQLCHAR: Result:=ftFixedChar; SQLVARCHAR: Result:=ftString; - SQLINT1, SQLINT2: Result:=ftSmallInt; + SQLINT1: Result:=ftWord; + SQLINT2: Result:=ftSmallInt; SQLINT4, SQLINTN: Result:=ftInteger; SYBINT8: Result:=ftLargeInt; SQLFLT4, SQLFLT8, @@ -556,6 +674,7 @@ begin SQLBINARY: Result:=ftBytes; SQLVARBINARY: Result:=ftVarBytes; SYBUNIQUE: Result:=ftGuid; + SYBVARIANT: Result:=ftBlob; else DatabaseErrorFmt('Unsupported SQL DataType %d "%s"', [SQLDataType, dbprtype(SQLDataType)]); Result:=ftUnknown; @@ -597,16 +716,10 @@ begin FieldType := ftAutoInc; end; -{ // dbcolinfo(), dbcoltype() maps VARCHAR->CHAR, VARBINARY->BINARY: - if col.VarLength {true also when column is nullable} then - case FieldType of - ftFixedChar: FieldType := ftString; - ftBytes : FieldType := ftVarBytes; - end; -} with TFieldDef.Create(FieldDefs, FieldDefs.MakeNameUnique(FieldName), FieldType, FieldSize, (col.Null=0) and (not col.Identity), i) do begin - //if col.Updatable = 0 then Attributes := Attributes + [faReadonly]; + // identity, timestamp and calculated column are not updatable + if col.Updatable = 0 then Attributes := Attributes + [faReadonly]; case FieldType of ftBCD, ftFmtBCD: Precision := col.Precision; @@ -617,14 +730,14 @@ end; function TMSSQLConnection.Fetch(cursor: TSQLCursor): boolean; begin - //Compute rows resulting from the COMPUTE clause are not processed + // Compute rows resulting from the COMPUTE clause are not processed repeat Fstatus := dbnextrow(FDBProc); Result := Fstatus=REG_ROW; until Result or (Fstatus = NO_MORE_ROWS); if Fstatus = NO_MORE_ROWS then - while dbresults(FDBProc) <> NO_MORE_RESULTS do //process remaining results if there are any + while dbresults(FDBProc) <> NO_MORE_RESULTS do // process remaining results if there are any repeat until dbnextrow(FDBProc) = NO_MORE_ROWS; end; @@ -662,7 +775,7 @@ begin inc(dest, sizeof(Word)); desttype:=SQLBINARY; end; - ftSmallInt: + ftSmallInt, ftWord: begin desttype:=SQLINT2; destlen:=sizeof(DBSMALLINT); //smallint @@ -767,22 +880,19 @@ procedure TMSSQLConnection.LoadBlobIntoBuffer(FieldDef: TFieldDef; ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction: TSQLTransaction); var data: PByte; datalen: DBINT; - srctype: INT; begin - //see also LoadField - srctype:=dbcoltype(FDBProc, FieldDef.FieldNo); + // see also LoadField data:=dbdata(FDBProc, FieldDef.FieldNo); datalen:=dbdatlen(FDBProc, FieldDef.FieldNo); ReAllocMem(ABlobBuf^.BlobBuffer^.Buffer, datalen); - - ABlobBuf^.BlobBuffer^.Size := - dbconvert(FDBProc, srctype, data , datalen, srctype, ABlobBuf^.BlobBuffer^.Buffer, datalen); + Move(data^, ABlobBuf^.BlobBuffer^.Buffer^, datalen); + ABlobBuf^.BlobBuffer^.Size := datalen; end; procedure TMSSQLConnection.FreeFldBuffers(cursor: TSQLCursor); begin - inherited FreeFldBuffers(cursor); + inherited FreeFldBuffers(cursor); end; procedure TMSSQLConnection.UpdateIndexDefs(IndexDefs: TIndexDefs; TableName: string); @@ -841,15 +951,47 @@ begin end; function TMSSQLConnection.GetSchemaInfoSQL(SchemaType: TSchemaType; SchemaObjectName, SchemaObjectPattern: string): string; -const SCHEMA_QUERY='select name as %s from sysobjects where type=''%s'' order by 1'; +const SCHEMA_QUERY='select id as RECNO, db_name() as CATALOG_NAME, user_name(uid) as SCHEMA_NAME, name as %s '+ + 'from sysobjects '+ + 'where type in (%s) '+ + 'order by name'; begin case SchemaType of - stTables : Result := format(SCHEMA_QUERY, ['table_name','U']); - stSysTables : Result := format(SCHEMA_QUERY, ['table_name','S']); - stProcedures : Result := format(SCHEMA_QUERY, ['proc_name','P']); - stColumns : Result := 'select name as column_name from syscolumns where id=object_id(''' + SchemaObjectName + ''') order by colorder'; - else - DatabaseError(SMetadataUnavailable) + stTables : Result := format(SCHEMA_QUERY, ['TABLE_NAME, 1 as TABLE_TYPE', '''U''']); + stSysTables : Result := format(SCHEMA_QUERY, ['TABLE_NAME, 4 as TABLE_TYPE', '''S''']); + stProcedures : Result := format(SCHEMA_QUERY, ['PROC_NAME , case type when ''P'' then 1 else 2 end as PROC_TYPE', '''P'',''FN'',''IF'',''TF''']); + stColumns : Result := 'select colid as RECNO, db_name() as CATALOG_NAME, user_name(uid) as SCHEMA_NAME, o.name as TABLE_NAME, c.name as COLUMN_NAME,'+ + 'colid as COLUMN_POSITION, prec as COLUMN_PRECISION, scale as COLUMN_SCALE, length as COLUMN_LENGTH, case when c.status&8=8 then 1 else 0 end as COLUMN_NULLABLE '+ + 'from syscolumns c join sysobjects o on c.id=o.id '+ + 'where c.id=object_id(''' + SchemaObjectName + ''') '+ + 'order by colid'; + else Result := inherited; + end; +end; + +function TMSSQLConnection.GetConnectionInfo(InfoType: TConnInfoType): string; +const + SERVER_TYPE: array[boolean] of string = ('Microsoft SQL Server', 'ASE'); // product_name returned in TDS login token; same like ODBC SQL_DBMS_NAME +begin + Result:=''; + try + InitialiseDBLib(DBLibLibraryName); + case InfoType of + citServerType: + Result:=SERVER_TYPE[IsSybase]; + citServerVersion: + if Connected then + Result:=FServerInfo.ServerVersion; + citServerVersionString: + if Connected then + Result:=FServerInfo.ServerVersionString; + citClientName: + Result:=TMSSQLConnectionDef.LoadedLibraryName; + else + Result:=inherited GetConnectionInfo(InfoType); + end; + finally + ReleaseDBLib; end; end; @@ -871,6 +1013,26 @@ begin Result:='Connect to MS SQL Server via Microsoft client library or via FreeTDS db-lib'; end; +class function TMSSQLConnectionDef.DefaultLibraryName: String; +begin + Result:=DBLibLibraryName; +end; + +class function TMSSQLConnectionDef.LoadFunction: TLibraryLoadFunction; +begin + Result:=@InitialiseDBLib; +end; + +class function TMSSQLConnectionDef.UnLoadFunction: TLibraryUnLoadFunction; +begin + Result:=@ReleaseDBLib; +end; + +class function TMSSQLConnectionDef.LoadedLibraryName: string; +begin + Result:=DBLibLoadedLibrary; +end; + { TSybaseConnectionDef } diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile deleted file mode 100644 index 95eaca8b..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile +++ /dev/null @@ -1,2673 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-xml mysql -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_MYSQL=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_MYSQL -PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_MYSQL),) -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX)),) -UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX) -else -UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL) -endif -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_MYSQL=$(PACKAGEDIR_MYSQL) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_MYSQL)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE) -endif -else -PACKAGEDIR_MYSQL= -UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_MYSQL),) -UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL)) -else -UNITDIR_MYSQL= -endif -endif -ifdef UNITDIR_MYSQL -override COMPILER_UNITDIR+=$(UNITDIR_MYSQL) -endif -ifdef UNITDIR_FPMAKE_MYSQL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_MYSQL) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile.fpc b/fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile.fpc index 0f93e3c8..09a7d046 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile.fpc +++ b/fpcsrc/packages/fcl-db/src/sqldb/mysql/Makefile.fpc @@ -6,8 +6,8 @@ main=fcl-db [target] -units=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn -rsts=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn +units=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn mysql56conn +rsts=mysql40conn mysql41conn mysql50conn mysql4conn mysql51conn mysql55conn mysql56conn [require] packages=fcl-xml mysql diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas index 80e3994d..c59f22be 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas +++ b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas @@ -4,7 +4,7 @@ unit mysql50conn; -{$DEFINE MYSQL50_up} +{$DEFINE MYSQL50_UP} {$DEFINE MYSQL50} {$i mysqlconn.inc} diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas index 41bbc113..4419bcf9 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas +++ b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas @@ -4,7 +4,6 @@ unit mysql51conn; -{$DEFINE MYSQL50_UP} {$DEFINE MYSQL51_UP} {$DEFINE MYSQL51} diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql55conn.pas b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql55conn.pas index 5b6296d4..f8eab264 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql55conn.pas +++ b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql55conn.pas @@ -4,8 +4,7 @@ unit mysql55conn; -{$DEFINE MYSQL50_UP} -{$DEFINE MYSQL51_UP} +{$DEFINE MYSQL55_UP} {$DEFINE MYSQL55} {$i mysqlconn.inc} diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql56conn.pas b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql56conn.pas new file mode 100644 index 00000000..a28d5362 --- /dev/null +++ b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysql56conn.pas @@ -0,0 +1,12 @@ +{ + Contains the TMysqlConnection for MySQL 5.6 +} + +unit mysql56conn; + +{$DEFINE MYSQL56_UP} +{$DEFINE MYSQL56} + +{$i mysqlconn.inc} + +end. diff --git a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc index 8f4bd921..2a79d560 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc +++ b/fpcsrc/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc @@ -1,13 +1,25 @@ +{$IFDEF MYSQL56_UP} + {$DEFINE MYSQL55_UP} +{$ENDIF} +{$IFDEF MYSQL55_UP} + {$DEFINE MYSQL51_UP} +{$ENDIF} +{$IFDEF MYSQL51_UP} + {$DEFINE MYSQL50_UP} +{$ENDIF} {$mode objfpc}{$H+} interface uses - Classes, SysUtils,bufdataset,sqldb,db,dynlibs,ctypes, - {$IFDEF mysql55} + Classes, SysUtils,bufdataset,sqldb,db,ctypes, +{$IFDEF mysql56} + mysql56dyn; +{$ELSE} +{$IFDEF mysql55} mysql55dyn; - {$ELSE} +{$ELSE} {$IFDEF mysql51} mysql51dyn; {$ELSE} @@ -17,38 +29,37 @@ uses {$IfDef mysql41} mysql41dyn; {$ELSE} - {$IFDEF mysql4} // temporary backwards compatibility for Lazarus - mysql40dyn; - {$ELSE} - mysql40dyn; - {$EndIf} + mysql40dyn; {$EndIf} {$EndIf} {$endif} {$endif} +{$ENDIF} Const + MySQLVersion = +{$IFDEF mysql56} + '5.6'; +{$ELSE} {$IFDEF mysql55} - MySQLVersion = '5.5'; -{$else} + '5.5'; +{$ELSE} {$IFDEF mysql51} - MySQLVersion = '5.1'; + '5.1'; {$else} {$IfDef mysql50} - MySQLVersion = '5.0'; + '5.0'; {$ELSE} {$IfDef mysql41} - MySQLVersion = '4.1'; + '4.1'; {$ELSE} - {$IFDEF mysql4} // temporary backwards compatibility for Lazarus - MySQLVersion = '4.0'; - {$ELSE} - MySQLVersion = '4.0'; - {$EndIf} + '4.0'; {$EndIf} {$EndIf} {$endif} {$endif} +{$ENDIF} + Type TTransactionName = Class(TSQLHandle) protected @@ -59,7 +70,6 @@ Type TCursorName = Class(TSQLCursor) protected FRes: PMYSQL_RES; { Record pointer } - FNeedData : Boolean; FStatement : String; Row : MYSQL_ROW; Lengths : pculong; { Lengths of the columns of the current row } @@ -121,6 +131,8 @@ Type constructor Create(AOwner : TComponent); override; procedure GetFieldNames(const TableName : string; List : TStrings); override; procedure GetTableNames(List : TStrings; SystemTables : Boolean = false); override; + function GetConnectionInfo(InfoType:TConnInfoType): string; override; + Function GetInsertID: int64; procedure CreateDB; override; procedure DropDB; override; Property ServerInfo : String Read FServerInfo; @@ -146,10 +158,17 @@ Type Class Function DefaultLibraryName : String; override; Class Function LoadFunction : TLibraryLoadFunction; override; Class Function UnLoadFunction : TLibraryUnLoadFunction; override; + Class Function LoadedLibraryName : string; override; end; EMySQLError = Class(Exception); + {$IFDEF mysql56} + TMySQL56Connection = Class(TConnectionName); + TMySQL56ConnectionDef = Class(TMySQLConnectionDef); + TMySQL56Transaction = Class(TTransactionName); + TMySQL56Cursor = Class(TCursorName); + {$ELSE} {$ifdef mysql55} TMySQL55Connection = Class(TConnectionName); TMySQL55ConnectionDef = Class(TMySQLConnectionDef); @@ -174,21 +193,15 @@ Type TMySQL41Transaction = Class(TTransactionName); TMySQL41Cursor = Class(TCursorName); {$ELSE} - {$IFDEF mysql4} // temporary backwards compatibility for Lazarus - TMySQLConnection = Class(TConnectionName); - TMySQL40ConnectionDef = Class(TMySQLConnectionDef); - TMySQLTransaction = Class(TTransactionName); - TMySQLCursor = Class(TCursorName); - {$ELSE} - TMySQL40Connection = Class(TConnectionName); - TMySQL40ConnectionDef = Class(TMySQLConnectionDef); - TMySQL40Transaction = Class(TTransactionName); - TMySQL40Cursor = Class(TCursorName); - {$EndIf} + TMySQL40Connection = Class(TConnectionName); + TMySQL40ConnectionDef = Class(TMySQLConnectionDef); + TMySQL40Transaction = Class(TTransactionName); + TMySQL40Cursor = Class(TCursorName); {$EndIf} {$endif} {$EndIf} {$ENDIF} + {$ENDIF} implementation @@ -212,9 +225,17 @@ const {$IFDEF MYSQL50_UP} ,'MYSQL_REPORT_DATA_TRUNCATION', 'MYSQL_OPT_RECONNECT' {$IFDEF mysql51_UP} - ,'MYSQL_OPT_SSL_VERIFY_SERVER_CERT' -{$IFDEF mysql55} - ,'MYSQL_PLUGIN_DIR', 'MYSQL_DEFAULT_AUTH' + ,'MYSQL_OPT_SSL_VERIFY_SERVER_CERT' +{$IFDEF mysql55_UP} + ,'MYSQL_PLUGIN_DIR', 'MYSQL_DEFAULT_AUTH' +{$IFDEF MYSQL56_UP} + ,'MYSQL_OPT_BIND' + ,'MYSQL_OPT_SSL_KEY', 'MYSQL_OPT_SSL_CERT', 'MYSQL_OPT_SSL_CA', 'MYSQL_OPT_SSL_CAPATH', 'MYSQL_OPT_SSL_CIPHER', 'MYSQL_OPT_SSL_CRL', 'MYSQL_OPT_SSL_CRLPATH' + ,'MYSQL_OPT_CONNECT_ATTR_RESET', 'MYSQL_OPT_CONNECT_ATTR_ADD', 'MYSQL_OPT_CONNECT_ATTR_DELETE' + ,'MYSQL_SERVER_PUBLIC_KEY' + ,'MYSQL_ENABLE_CLEARTEXT_PLUGIN' + ,'MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS' +{$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} @@ -294,6 +315,12 @@ begin Result := mysql_stat(FMYSQL); end; +function TConnectionName.GetInsertID: Int64; +begin + CheckConnected; + Result:=mysql_insert_id(GetHandle); +end; + procedure TConnectionName.ConnectMySQL(var HMySQL : PMySQL;H,U,P : pchar); Var @@ -340,24 +367,24 @@ end; function TConnectionName.GetAsSQLText(Field : TField) : string; -var esc_str : pchar; - begin - if (not assigned(field)) or field.IsNull then Result := 'Null' - else if field.DataType = ftString then - Result := '''' + EscapeString(field.AsString) + '''' - else Result := inherited GetAsSqlText(field); + if (not assigned(Field)) or Field.IsNull then + Result := 'Null' + else if Field.DataType = ftString then + Result := '''' + EscapeString(Field.AsString) + '''' + else + Result := inherited GetAsSqlText(Field); end; function TConnectionName.GetAsSQLText(Param: TParam) : string; -var esc_str : pchar; - begin - if (not assigned(param)) or param.IsNull then Result := 'Null' - else if param.DataType in [ftString,ftFixedChar,ftBlob,ftMemo,ftBytes,ftVarBytes] then + if (not assigned(Param)) or Param.IsNull then + Result := 'Null' + else if Param.DataType in [ftString,ftFixedChar,ftBlob,ftMemo,ftBytes,ftVarBytes] then Result := '''' + EscapeString(Param.AsString) + '''' - else Result := inherited GetAsSqlText(Param); + else + Result := inherited GetAsSqlText(Param); end; @@ -461,6 +488,9 @@ end; function TConnectionName.AllocateCursorHandle: TSQLCursor; begin + {$IFDEF mysql56} + Result:=TMySQL56Cursor.Create; + {$ELSE} {$IfDef mysql55} Result:=TMySQL55Cursor.Create; {$ELSE} @@ -473,15 +503,12 @@ begin {$IfDef mysql41} Result:=TMySQL41Cursor.Create; {$ELSE} - {$IFDEF mysql4} // temporary backwards compatibility for Lazarus - Result:=TMySQLCursor.Create; - {$ELSE} - Result:=TMySQL40Cursor.Create; - {$EndIf} + Result:=TMySQL40Cursor.Create; {$EndIf} {$EndIf} {$EndIf} - {$endif} + {$EndIf} + {$ENDIF} end; Procedure TConnectionName.DeAllocateCursorHandle(var cursor : TSQLCursor); @@ -506,8 +533,6 @@ begin FStatement:=Buf; if assigned(AParams) and (AParams.count > 0) then FStatement := AParams.ParseSQL(FStatement,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psSimulated,paramBinding,ParamReplaceString); - if FStatementType in [stSelect,stExecProcedure] then - FNeedData:=True; end end; @@ -531,8 +556,6 @@ Var begin C:=Cursor as TCursorName; - if c.FStatementType in [stSelect,stExecProcedure] then - c.FNeedData:=False; if assigned(C.FRes) then begin mysql_free_result(C.FRes); @@ -568,20 +591,42 @@ begin C.FStatement := stringsreplace(C.FStatement,ParamNames,ParamValues,[rfReplaceAll]); end; if mysql_query(FMySQL,Pchar(C.FStatement))<>0 then - MySQLError(FMYSQL,SErrExecuting,Self) + begin + if not ForcedClose then + MySQLError(FMYSQL,SErrExecuting,Self) + else //don't return a resulset. We are shutting down, not opening. + begin + C.RowsAffected:=0; + C.FSelectable:= False; + C.FRes:=nil; + end; + end else begin C.RowsAffected := mysql_affected_rows(FMYSQL); C.LastInsertID := mysql_insert_id(FMYSQL); - if C.FNeedData then - repeat - Res:=mysql_store_result(FMySQL); //returns a null pointer if the statement didn't return a result set + C.FSelectable := False; + repeat + Res:=mysql_store_result(FMySQL); //returns a null pointer also if the statement didn't return a result set + if mysql_errno(FMySQL)<>0 then + begin + if not ForcedClose then + MySQLError(FMySQL, SErrGettingResult, Self) + else + begin + C.RowsAffected:=0; + C.FSelectable:= False; + C.FRes:=nil; + break; + end; + end; if Res<>nil then begin mysql_free_result(C.FRes); C.FRes:=Res; + C.FSelectable:=True; end; - until mysql_next_result(FMySQL)<>0; + until mysql_next_result(FMySQL)<>0; end; end; end; @@ -599,7 +644,10 @@ begin end; FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_YEAR: begin - NewType := ftSmallint; + if AField^.flags and UNSIGNED_FLAG <> 0 then + NewType := ftWord + else + NewType := ftSmallint; end; FIELD_TYPE_LONG, FIELD_TYPE_INT24: begin @@ -660,7 +708,7 @@ begin NewSize := ASize; end; end; - FIELD_TYPE_BLOB: + FIELD_TYPE_TINY_BLOB..FIELD_TYPE_BLOB: begin {$IFDEF MYSQL50_UP} if AField^.charsetnr = 63 then //character set is binary @@ -777,6 +825,14 @@ begin ABlobBuf^.BlobBuffer^.Size := len; end; +function InternalStrToInt(const S: string): integer; +begin + if S = '' then + Result := 0 + else + Result := StrToInt(S); +end; + function InternalStrToFloat(S: string): Extended; var @@ -788,7 +844,7 @@ begin for I := 1 to Length(S) do begin if not (S[I] in ['0'..'9', '+', '-', 'E', 'e']) then - Tmp := Tmp + DecimalSeparator + Tmp := Tmp + FormatSettings.DecimalSeparator else Tmp := Tmp + S[I]; end; @@ -806,7 +862,7 @@ begin for I := 1 to Length(S) do begin if not (S[I] in ['0'..'9', '+', '-', 'E', 'e']) then - Tmp := Tmp + DecimalSeparator + Tmp := Tmp + FormatSettings.DecimalSeparator else Tmp := Tmp + S[I]; end; @@ -897,6 +953,7 @@ var VI: Integer; VL: LargeInt; VS: Smallint; + VW: Word; VF: Double; VC: Currency; VD: TDateTime; @@ -909,131 +966,104 @@ begin if Source = Nil then // If the pointer is NULL, the field is NULL exit; SetString(Src, Source, Len); - case AField^.ftype of - FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_YEAR: + + if Len > FieldDef.Size then + Len := FieldDef.Size; + + case FieldDef.DataType of + ftSmallint: begin - if (Src<>'') then - VS := StrToInt(Src) - else - VS := 0; - Move(VS, Dest^, SizeOf(smallint)); + VS := InternalStrToInt(Src); + Move(VS, Dest^, SizeOf(Smallint)); end; - FIELD_TYPE_LONG, FIELD_TYPE_INT24: + ftWord: begin - if (Src<>'') then - VI := StrToInt(Src) - else - VI := 0; + VW := InternalStrToInt(Src); + Move(VW, Dest^, SizeOf(Word)); + end; + ftInteger, ftAutoInc: + begin + VI := InternalStrToInt(Src); Move(VI, Dest^, SizeOf(Integer)); end; - FIELD_TYPE_LONGLONG: + ftLargeInt: begin - if (Src<>'') then + {$IFDEF MYSQL50_UP} + if AField^.ftype = FIELD_TYPE_BIT then + begin + VL := 0; + for VI := 0 to Len-1 do + VL := VL * 256 + PByte(Source+VI)^; + end + else + {$ENDIF} + if Src <> '' then VL := StrToInt64(Src) else VL := 0; Move(VL, Dest^, SizeOf(LargeInt)); end; -{$ifdef mysql50_up} - FIELD_TYPE_NEWDECIMAL, -{$endif} - FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE: - case FieldDef.DataType of - ftBCD: - begin - VC := InternalStrToCurrency(Src); - Move(VC, Dest^, SizeOf(Currency)); - end; - ftFmtBCD: - begin - VB := StrToBCD(Src, FSQLFormatSettings); - Move(VB, Dest^, SizeOf(TBCD)); - end - else - begin - if Src <> '' then - VF := InternalStrToFloat(Src) - else - VF := 0; - Move(VF, Dest^, SizeOf(Double)); - end; - end; - FIELD_TYPE_TIMESTAMP: + ftFloat: begin if Src <> '' then - VD := InternalStrToTimeStamp(Src) + VF := InternalStrToFloat(Src) else - VD := 0; - Move(VD, Dest^, SizeOf(TDateTime)); + VF := 0; + Move(VF, Dest^, SizeOf(Double)); + end; + ftBCD: + begin + VC := InternalStrToCurrency(Src); + Move(VC, Dest^, SizeOf(Currency)); end; - FIELD_TYPE_DATETIME: + ftFmtBCD: + begin + VB := StrToBCD(Src, FSQLFormatSettings); + Move(VB, Dest^, SizeOf(TBCD)); + end; + ftDate: begin if Src <> '' then - VD := InternalStrToDateTime(Src) + VD := InternalStrToDate(Src) else VD := 0; Move(VD, Dest^, SizeOf(TDateTime)); end; - FIELD_TYPE_DATE: + ftTime: begin if Src <> '' then - VD := InternalStrToDate(Src) + VD := InternalStrToTime(Src) else VD := 0; Move(VD, Dest^, SizeOf(TDateTime)); end; - FIELD_TYPE_TIME: + ftDateTime: begin if Src <> '' then - VD := InternalStrToTime(Src) + if AField^.ftype = FIELD_TYPE_TIMESTAMP then + VD := InternalStrToTimeStamp(Src) + else + VD := InternalStrToDateTime(Src) else VD := 0; Move(VD, Dest^, SizeOf(TDateTime)); end; - FIELD_TYPE_VAR_STRING, FIELD_TYPE_STRING, FIELD_TYPE_ENUM, FIELD_TYPE_SET: + ftString, ftFixedChar: + // String-fields which can contain more then dsMaxStringSize characters + // are mapped to ftBlob fields, while their mysql-datatype is FIELD_TYPE_BLOB begin -{ Write('Moving string of size ',asize,' : '); - P:=Source; - If (P<>nil) then - While P[0]<>#0 do - begin - Write(p[0]); - inc(p); - end; - Writeln; -} - if Len > FieldDef.Size then - Len := FieldDef.Size; - case FieldDef.DataType of - // String-fields which can contain more then dsMaxStringSize characters - // are mapped to ftBlob fields, while their mysql-datatype is FIELD_TYPE_BLOB - ftBlob, ftMemo: - CreateBlob := True; - ftVarBytes: - begin - PWord(Dest)^ := Len; - Move(Source^, (Dest+sizeof(Word))^, Len); - end; - ftBytes: - Move(Source^, Dest^, Len); - else // ftString, ftFixedChar - begin - Move(Source^, Dest^, Len); - (Dest+Len)^ := #0; - end; - end; + Move(Source^, Dest^, Len); + (Dest+Len)^ := #0; end; - FIELD_TYPE_BLOB: - CreateBlob := True; -{$IFDEF MYSQL50_UP} - FIELD_TYPE_BIT: + ftVarBytes: begin - VL := 0; - for VI := 0 to Len-1 do - VL := VL * 256 + PByte(Source+VI)^; - move(VL, Dest^, sizeof(LargeInt)); + PWord(Dest)^ := Len; + Move(Source^, (Dest+sizeof(Word))^, Len); end; -{$ENDIF} + ftBytes: + Move(Source^, Dest^, Len); + ftBlob, ftMemo: + CreateBlob := True; end; Result := True; end; @@ -1104,6 +1134,32 @@ begin GetDBInfo(stTables,'','tables_in_'+DatabaseName,List) end; +function TConnectionName.GetConnectionInfo(InfoType: TConnInfoType): string; +begin + Result:=''; + try + InitialiseMysql; + case InfoType of + citServerType: + Result:='MySQL'; + citServerVersion: + if Connected then + Result:=format('%6.6d', [mysql_get_server_version(FMySQL)]); + citServerVersionString: + if Connected then + Result:=mysql_get_server_info(FMySQL); + citClientVersion: + Result:=format('%6.6d', [mysql_get_client_version()]); + citClientName: + Result:=TMySQLConnectionDef.LoadedLibraryName; + else + Result:=inherited GetConnectionInfo(InfoType); + end; + finally + ReleaseMysql; + end; +end; + function TConnectionName.GetTransactionHandle(trans: TSQLHandle): pointer; begin Result:=Nil; @@ -1111,27 +1167,51 @@ end; function TConnectionName.Commit(trans: TSQLHandle): boolean; begin - // Do nothing. + //mysql_commit(FMySQL); + Result := (mysql_query(FMySQL, 'COMMIT') = 0) or ForcedClose; + if not Result then + MySQLError(FMySQL, SErrExecuting, Self); end; function TConnectionName.RollBack(trans: TSQLHandle): boolean; begin - // Do nothing + //mysql_rollback(FMySQL); + Result := (mysql_query(FMySQL, 'ROLLBACK') = 0) or ForcedClose; + if not Result then + MySQLError(FMySQL, SErrExecuting, Self); end; function TConnectionName.StartdbTransaction(trans: TSQLHandle; AParams : string): boolean; begin - // Do nothing + Result := mysql_query(FMySQL, 'START TRANSACTION') = 0; + if not Result then + MySQLError(FMySQL, SErrExecuting, Self); end; procedure TConnectionName.CommitRetaining(trans: TSQLHandle); begin - // Do nothing + {$IFDEF MYSQL50_UP} + if mysql_query(FMySQL, 'COMMIT AND CHAIN') <> 0 then + MySQLError(FMySQL, SErrExecuting, Self); + {$ELSE} + if mysql_query(FMySQL, 'COMMIT') <> 0 then + MySQLError(FMySQL, SErrExecuting, Self); + if mysql_query(FMySQL, 'START TRANSACTION') <> 0 then + MySQLError(FMySQL, SErrExecuting, Self); + {$ENDIF} end; procedure TConnectionName.RollBackRetaining(trans: TSQLHandle); begin - // Do nothing + {$IFDEF MYSQL50_UP} + if mysql_query(FMySQL, 'ROLLBACK AND CHAIN') <> 0 then + MySQLError(FMySQL, SErrExecuting, Self); + {$ELSE} + if mysql_query(FMySQL, 'ROLLBACK') <> 0 then + MySQLError(FMySQL, SErrExecuting, Self); + if mysql_query(FMySQL, 'START TRANSACTION') <> 0 then + MySQLError(FMySQL, SErrExecuting, Self); + {$ENDIF} end; function TConnectionName.GetSchemaInfoSQL(SchemaType: TSchemaType; @@ -1155,6 +1235,9 @@ end; class function TMySQLConnectionDef.ConnectionClass: TSQLConnectionClass; begin + {$IFDEF mysql56} + Result:=TMySQL56Connection; + {$ELSE} {$IfDef mysql55} Result:=TMySQL55Connection; {$ELSE} @@ -1167,15 +1250,12 @@ begin {$IfDef mysql41} Result:=TMySQL41Connection; {$ELSE} - {$IFDEF mysql4} // temporary backwards compatibility for Lazarus - Result:=TMySQLConnection; - {$ELSE} - Result:=TMySQL40Connection; - {$EndIf} + Result:=TMySQL40Connection; {$EndIf} {$EndIf} {$endif} {$endif} + {$ENDIF} end; class function TMySQLConnectionDef.Description: String; @@ -1190,7 +1270,7 @@ end; class function TMySQLConnectionDef.LoadFunction: TLibraryLoadFunction; begin - Result:=@initialisemysql; + Result:=@InitialiseMySQL; end; class function TMySQLConnectionDef.UnLoadFunction: TLibraryUnLoadFunction; @@ -1198,6 +1278,17 @@ begin Result:=@ReleaseMySQL; end; +class function TMySQLConnectionDef.LoadedLibraryName: string; +begin + Result:=MysqlLoadedLibrary; +end; + +{$IFDEF mysql56} + initialization + RegisterConnection(TMySQL56ConnectionDef); + finalization + UnRegisterConnection(TMySQL56ConnectionDef); +{$ELSE} {$IfDef mysql55} initialization RegisterConnection(TMySQL55ConnectionDef); @@ -1222,20 +1313,14 @@ end; finalization UnRegisterConnection(TMySQL41ConnectionDef); {$ELSE} - {$IFDEF mysql4} // temporary backwards compatibility for Lazarus - initialization - RegisterConnection(TMySQL40ConnectionDef); - finalization - UnRegisterConnection(TMySQL40ConnectionDef); - {$ELSE} - initialization - RegisterConnection(TMySQL40ConnectionDef); - finalization - UnRegisterConnection(TMySQL40ConnectionDef); - {$EndIf} + initialization + RegisterConnection(TMySQL40ConnectionDef); + finalization + UnRegisterConnection(TMySQL40ConnectionDef); {$EndIf} {$EndIf} {$ENDIF} {$endif} +{$ENDIF} end. diff --git a/fpcsrc/packages/fcl-db/src/sqldb/odbc/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/odbc/Makefile deleted file mode 100644 index 4e6b0c78..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/odbc/Makefile +++ /dev/null @@ -1,2478 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=odbcconn -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=odbcconn -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-xml odbc -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ODBC=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_ODBC -PACKAGEDIR_ODBC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /odbc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ODBC),) -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX)),) -UNITDIR_ODBC=$(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX) -else -UNITDIR_ODBC=$(PACKAGEDIR_ODBC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ODBC=$(PACKAGEDIR_ODBC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ODBC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ODBC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ODBC)/$(FPCMADE) -endif -else -PACKAGEDIR_ODBC= -UNITDIR_ODBC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /odbc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ODBC),) -UNITDIR_ODBC:=$(firstword $(UNITDIR_ODBC)) -else -UNITDIR_ODBC= -endif -endif -ifdef UNITDIR_ODBC -override COMPILER_UNITDIR+=$(UNITDIR_ODBC) -endif -ifdef UNITDIR_FPMAKE_ODBC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ODBC) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/odbc/odbcconn.pas b/fpcsrc/packages/fcl-db/src/sqldb/odbc/odbcconn.pas index b4569993..931afe87 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/odbc/odbcconn.pas +++ b/fpcsrc/packages/fcl-db/src/sqldb/odbc/odbcconn.pas @@ -112,6 +112,7 @@ type function CreateConnectionString:string; public constructor Create(AOwner : TComponent); override; + function GetConnectionInfo(InfoType:TConnInfoType): string; override; property Environment:TODBCEnvironment read FEnvironment; published property Driver:string read FDriver write FDriver; // will be passed as DRIVER connection parameter @@ -149,7 +150,7 @@ type implementation uses - Math, DBConst, ctypes; + DBConst, ctypes; const DefaultEnvironment:TODBCEnvironment = nil; @@ -302,10 +303,14 @@ end; function TODBCConnection.StrToStatementType(s : string) : TStatementType; begin - S:=Lowercase(s); - if s = 'transform' then Result:=stSelect //MS Access - else if s = 'exec' then Result:=stExecProcedure - else Result := inherited StrToStatementType(s); + case Lowercase(s) of + 'transform': // MS Access + Result := stSelect; + 'exec', 'call': + Result := stExecProcedure; + else + Result := inherited StrToStatementType(s); + end; end; procedure TODBCConnection.SetParameters(ODBCCursor: TODBCCursor; AParams: TParams); @@ -323,7 +328,8 @@ var TimeStampVal: SQL_TIMESTAMP_STRUCT; BoolVal: byte; NumericVal: SQL_NUMERIC_STRUCT; - ColumnSize, BufferLength, StrLenOrInd: SQLINTEGER; + ColumnSize: SQLULEN; + BufferLength, StrLenOrInd: SQLLEN; CType, SqlType, DecimalDigits:SQLSMALLINT; APD: SQLHDESC; begin @@ -484,12 +490,12 @@ begin if AParams[ParamIndex].IsNull then StrLenOrInd:=SQL_NULL_DATA; - Buf:=GetMem(Size+SizeOf(SQLINTEGER)); + Buf:=GetMem(Size+SizeOf(StrLenOrInd)); Move(PVal^, Buf^, Size); if StrLenOrInd<>0 then begin PStrLenOrInd:=Buf + Size; - Move(StrLenOrInd, PStrLenOrInd^, SizeOf(SQLINTEGER)); + Move(StrLenOrInd, PStrLenOrInd^, SizeOf(StrLenOrInd)); end else PStrLenOrInd:=nil; @@ -516,7 +522,7 @@ begin SQLGetStmtAttr(ODBCCursor.FSTMTHandle, SQL_ATTR_APP_PARAM_DESC, @APD, 0, nil), SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not get parameter descriptor.' ); - SQLSetDescRec(APD, i+1, SQL_C_NUMERIC, 0, ColumnSize+2, ColumnSize, DecimalDigits, Buf, nil, nil); + SQLSetDescRec(APD, i+1, SQL_C_NUMERIC, 0, ColumnSize+2, ColumnSize, DecimalDigits, Buf, PStrLenOrInd, PStrLenOrInd); end; end; end; @@ -657,14 +663,14 @@ begin // prepare statement ODBCCursor.FQuery:=Buf; - if ODBCCursor.FSchemaType=stNoSchema then + if not (ODBCCursor.FSchemaType in [stTables, stSysTables, stColumns, stProcedures]) then begin ODBCCheckResult( SQLPrepare(ODBCCursor.FSTMTHandle, PChar(buf), Length(buf)), SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not prepare statement.' ); - end - else + end; + if ODBCCursor.FSchemaType <> stNoSchema then ODBCCursor.FStatementType:=stSelect; end; @@ -694,7 +700,7 @@ function TODBCConnection.StartDBTransaction(trans: TSQLHandle; AParams:string): var AutoCommit: SQLINTEGER; begin // set some connection attributes - if StrToBoolDef(Params.Values['AUTOCOMMIT'], True) then + if StrToBoolDef(Params.Values['AUTOCOMMIT'], False) then AutoCommit := SQL_AUTOCOMMIT_ON else AutoCommit := SQL_AUTOCOMMIT_OFF; @@ -742,6 +748,7 @@ const var ODBCCursor:TODBCCursor; Res:SQLRETURN; + ColumnCount:SQLSMALLINT; begin ODBCCursor:=cursor as TODBCCursor; @@ -750,16 +757,20 @@ begin if Assigned(APArams) and (AParams.count > 0) then SetParameters(ODBCCursor, AParams); // execute the statement case ODBCCursor.FSchemaType of - stNoSchema : Res:=SQLExecute(ODBCCursor.FSTMTHandle); //SQL_NO_DATA returns searched update or delete statement that does not affect any rows stTables : Res:=SQLTables (ODBCCursor.FSTMTHandle, nil, 0, nil, 0, nil, 0, TABLE_TYPE_USER, length(TABLE_TYPE_USER) ); stSysTables : Res:=SQLTables (ODBCCursor.FSTMTHandle, nil, 0, nil, 0, nil, 0, TABLE_TYPE_SYSTEM, length(TABLE_TYPE_SYSTEM) ); stColumns : Res:=SQLColumns(ODBCCursor.FSTMTHandle, nil, 0, nil, 0, @ODBCCursor.FQuery[1], length(ODBCCursor.FQuery), nil, 0 ); stProcedures: Res:=SQLProcedures(ODBCCursor.FSTMTHandle, nil, 0, nil, 0, nil, 0 ); - else Res:=SQL_NO_DATA; + else Res:=SQLExecute(ODBCCursor.FSTMTHandle); //SQL_NO_DATA returns searched update or delete statement that does not affect any rows end; {case} if (Res<>SQL_NO_DATA) then ODBCCheckResult( Res, SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not execute statement.' ); + if ODBCSucces(SQLNumResultCols(ODBCCursor.FSTMTHandle, ColumnCount)) then + ODBCCursor.FSelectable:=ColumnCount>0 + else + ODBCCursor.FSelectable:=False; + finally // free parameter buffers FreeParamBuffers(ODBCCursor); @@ -768,7 +779,7 @@ end; function TODBCConnection.RowsAffected(cursor: TSQLCursor): TRowsCount; var - RowCount: SQLINTEGER; + RowCount: SQLLEN; begin if assigned(cursor) then if ODBCSucces( SQLRowCount((cursor as TODBCCursor).FSTMTHandle, RowCount) ) then @@ -805,7 +816,7 @@ function TODBCConnection.LoadField(cursor: TSQLCursor; FieldDef: TFieldDef; buff {$ENDIF} var ODBCCursor:TODBCCursor; - StrLenOrInd:SQLINTEGER; + StrLenOrInd:SQLLEN; ODBCDateStruct:SQL_DATE_STRUCT; ODBCTimeStruct:SQL_TIME_STRUCT; ODBCTimeStampStruct:SQL_TIMESTAMP_STRUCT; @@ -832,11 +843,13 @@ begin Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_CHAR, buffer, FieldDef.Size+1, @StrLenOrInd); ftSmallint: // mapped to TSmallintField Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_SSHORT, buffer, SizeOf(Smallint), @StrLenOrInd); - ftInteger,ftWord,ftAutoInc: // mapped to TLongintField + ftInteger,ftAutoInc: // mapped to TLongintField Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_SLONG, buffer, SizeOf(Longint), @StrLenOrInd); + ftWord: // mapped to TWordField + Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_USHORT, buffer, SizeOf(Word), @StrLenOrInd); ftLargeint: // mapped to TLargeintField Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_SBIGINT, buffer, SizeOf(Largeint), @StrLenOrInd); - ftFloat: // mapped to TFloatField + ftFloat,ftCurrency: // mapped to TFloatField Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_DOUBLE, buffer, SizeOf(Double), @StrLenOrInd); ftTime: // mapped to TTimeField begin @@ -951,7 +964,7 @@ procedure TODBCConnection.LoadBlobIntoBuffer(FieldDef: TFieldDef; ABlobBuf: PBuf var ODBCCursor: TODBCCursor; Res: SQLRETURN; - StrLenOrInd:SQLINTEGER; + StrLenOrInd:SQLLEN; BlobBuffer:pointer; BlobBufferSize,BytesRead:SQLINTEGER; BlobMemoryStream:TMemoryStream; @@ -959,8 +972,10 @@ begin ODBCCursor:=cursor as TODBCCursor; // Try to discover BLOB data length // NB MS ODBC requires that TargetValuePtr is not nil, so we supply it with a valid pointer, even though BufferLength is 0 + StrLenOrInd:=0; Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_BINARY, @BlobBuffer, 0, @StrLenOrInd); - ODBCCheckResult(Res, SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not get field data for field "%s" (index %d).',[FieldDef.Name, FieldDef.Index+1]); + if Res<>SQL_NO_DATA then + ODBCCheckResult(Res, SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not get field data for field "%s" (index %d).',[FieldDef.Name, FieldDef.Index+1]); // Read the data if not NULL if StrLenOrInd<>SQL_NULL_DATA then begin @@ -1071,11 +1086,11 @@ var ColumnCount:SQLSMALLINT; i:integer; ColNameLength,TypeNameLength,DataType,DecimalDigits,Nullable:SQLSMALLINT; - ColumnSize:SQLUINTEGER; + ColumnSize:SQLULEN; ColName,TypeName:string; FieldType:TFieldType; FieldSize:word; - AutoIncAttr: SQLINTEGER; + AutoIncAttr, FixedPrecScale, Unsigned, Updatable: SQLLEN; begin ODBCCursor:=cursor as TODBCCursor; @@ -1147,6 +1162,7 @@ begin SQL_VARBINARY: begin FieldType:=ftVarBytes; FieldSize:=ColumnSize; end; SQL_LONGVARBINARY: begin FieldType:=ftBlob; FieldSize:=BLOB_BUF_SIZE; end; // is a blob SQL_TYPE_DATE: begin FieldType:=ftDate; FieldSize:=0; end; + SQL_SS_TIME2, SQL_TYPE_TIME: begin FieldType:=ftTime; FieldSize:=0; end; SQL_TYPE_TIMESTAMP:begin FieldType:=ftDateTime; FieldSize:=0; end; { SQL_TYPE_UTCDATETIME:FieldType:=ftUnknown;} @@ -1172,9 +1188,9 @@ begin end; if (FieldType in [ftString,ftFixedChar]) and // field types mapped to TStringField - (FieldSize >= dsMaxStringSize) then + (FieldSize > MaxSmallint) then begin - FieldSize:=dsMaxStringSize-1; + FieldSize := MaxSmallint; end else // any exact numeric type with scale 0 can have identity attr. @@ -1193,8 +1209,56 @@ begin ); if (AutoIncAttr=SQL_TRUE) and (FieldType=ftInteger) then FieldType:=ftAutoInc; + end + else + if FieldType in [ftFloat] then + begin + FixedPrecScale:=0; + ODBCCheckResult( + SQLColAttribute(ODBCCursor.FSTMTHandle, + i, + SQL_DESC_FIXED_PREC_SCALE, + nil, + 0, + nil, + @FixedPrecScale), + SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not get money attribute for column %d.',[i] + ); + if FixedPrecScale=SQL_TRUE then + FieldType:=ftCurrency; + end; + + if FieldType in [ftSmallint] then + begin + Unsigned:=0; + ODBCCheckResult( + SQLColAttribute(ODBCCursor.FSTMTHandle, + i, + SQL_DESC_UNSIGNED, + nil, + 0, + nil, + @Unsigned), + SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not get unsigned attribute for column %d.',[i] + ); + if Unsigned=SQL_TRUE then + case FieldType of + ftSmallint: FieldType:=ftWord; + end; end; + Updatable:=0; + ODBCCheckResult( + SQLColAttribute(ODBCCursor.FSTMTHandle, + i, + SQL_DESC_UPDATABLE, + nil, + 0, + nil, + @Updatable), + SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not get updatable attribute for column %d.',[i] + ); + if FieldType=ftUnknown then // if unknown field type encountered, try finding more specific information about the ODBC SQL DataType begin SetLength(TypeName,TypeNameDefaultLength); // also garantuees uniqueness @@ -1232,27 +1296,38 @@ begin end; // add FieldDef - TFieldDef.Create(FieldDefs, FieldDefs.MakeNameUnique(ColName), FieldType, FieldSize, (Nullable=SQL_NO_NULLS) and (AutoIncAttr=SQL_FALSE), i); + with TFieldDef.Create(FieldDefs, FieldDefs.MakeNameUnique(ColName), FieldType, FieldSize, (Nullable=SQL_NO_NULLS) and (AutoIncAttr=SQL_FALSE), i) do + begin + if Updatable = SQL_ATTR_READONLY then Attributes := Attributes + [faReadonly]; + end; end; end; procedure TODBCConnection.UpdateIndexDefs(IndexDefs: TIndexDefs; TableName: string); var + Len: integer; StmtHandle:SQLHSTMT; Res:SQLRETURN; IndexDef: TIndexDef; KeyName: String; // variables for binding - NonUnique :SQLSMALLINT; NonUniqueIndOrLen :SQLINTEGER; - IndexName :string; IndexNameIndOrLen :SQLINTEGER; - _Type :SQLSMALLINT; _TypeIndOrLen :SQLINTEGER; - OrdinalPos:SQLSMALLINT; OrdinalPosIndOrLen:SQLINTEGER; - ColName :string; ColNameIndOrLen :SQLINTEGER; - AscOrDesc :char; AscOrDescIndOrLen :SQLINTEGER; - PKName :string; PKNameIndOrLen :SQLINTEGER; + NonUnique :SQLSMALLINT; NonUniqueIndOrLen :SQLLEN; + IndexName :string; IndexNameIndOrLen :SQLLEN; + _Type :SQLSMALLINT; _TypeIndOrLen :SQLLEN; + OrdinalPos:SQLSMALLINT; OrdinalPosIndOrLen:SQLLEN; + ColName :string; ColNameIndOrLen :SQLLEN; + AscOrDesc :char; AscOrDescIndOrLen :SQLLEN; + PKName :string; PKNameIndOrLen :SQLLEN; const DEFAULT_NAME_LEN = 255; begin + Len := length(TableName); + if Len > 2 then + if (TableName[1] in ['"','`']) and (TableName[Len] in ['"','`']) then + TableName := AnsiDequotedStr(TableName, TableName[1]) + else if (TableName[1] in ['[']) and (TableName[Len] in [']']) then + TableName := copy(TableName, 2, Len-2); + // allocate statement handle StmtHandle := SQL_NULL_HANDLE; ODBCCheckResult( @@ -1404,14 +1479,43 @@ end; function TODBCConnection.GetSchemaInfoSQL(SchemaType: TSchemaType; SchemaObjectName, SchemaObjectPattern: string): string; begin - if SchemaObjectName<>'' then - Result := SchemaObjectName + if SchemaType in [stTables, stSysTables, stColumns, stProcedures] then + begin + if SchemaObjectName<>'' then + Result := SchemaObjectName + else + Result := ' '; + end + else + Result := inherited; +end; + +function TODBCConnection.GetConnectionInfo(InfoType: TConnInfoType): string; +var i,l: SQLSMALLINT; + b: array[0..41] of AnsiChar; +begin + case InfoType of + citServerType: + i:=SQL_DBMS_NAME; + citServerVersion, + citServerVersionString: + i:=SQL_DBMS_VER; + citClientName: + i:=SQL_DRIVER_NAME; + citClientVersion: + i:=SQL_DRIVER_VER; + else + Result:=inherited GetConnectionInfo(InfoType); + Exit; + end; + + if Connected and (SQLGetInfo(FDBCHandle, i, @b, sizeof(b), @l) = SQL_SUCCESS) then + SetString(Result, @b, l) else - Result := ' '; - if not (SchemaType in [stNoSchema, stTables, stSysTables, stColumns, stProcedures]) then - DatabaseError(SMetadataUnavailable); + Result:=''; end; + { TODBCEnvironment } constructor TODBCEnvironment.Create; @@ -1462,8 +1566,6 @@ begin end; destructor TODBCCursor.Destroy; -var - Res:SQLRETURN; begin {$IF NOT((FPC_VERSION>=2) AND (FPC_RELEASE>=1))} FBlobStreams.Free; diff --git a/fpcsrc/packages/fcl-db/src/sqldb/oracle/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/oracle/Makefile deleted file mode 100644 index 29297a4a..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/oracle/Makefile +++ /dev/null @@ -1,2673 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=oracleconnection -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=oracleconnection -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-xml oracle -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_ORACLE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_ORACLE -PACKAGEDIR_ORACLE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oracle/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ORACLE),) -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX)),) -UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX) -else -UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE) -endif -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ORACLE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ORACLE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ORACLE)/$(FPCMADE) -endif -else -PACKAGEDIR_ORACLE= -UNITDIR_ORACLE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /oracle/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ORACLE),) -UNITDIR_ORACLE:=$(firstword $(UNITDIR_ORACLE)) -else -UNITDIR_ORACLE= -endif -endif -ifdef UNITDIR_ORACLE -override COMPILER_UNITDIR+=$(UNITDIR_ORACLE) -endif -ifdef UNITDIR_FPMAKE_ORACLE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ORACLE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp b/fpcsrc/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp index 316a062a..07f356fc 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp +++ b/fpcsrc/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp @@ -94,10 +94,16 @@ type constructor Create(AOwner : TComponent); override; end; + { TOracleConnectionDef } + TOracleConnectionDef = Class(TConnectionDef) Class Function TypeName : String; override; Class Function ConnectionClass : TSQLConnectionClass; override; Class Function Description : String; override; + Class Function DefaultLibraryName : String; override; + Class Function LoadFunction : TLibraryLoadFunction; override; + Class Function UnLoadFunction : TLibraryUnLoadFunction; override; + Class Function LoadedLibraryName: string; override; end; implementation @@ -517,11 +523,30 @@ var tel : integer; OFieldType : ub2; OFieldSize : sb4; + stmttype : ub2; + begin with cursor as TOracleCursor do begin if OCIStmtPrepare2(TOracleTrans(ATransaction.Handle).FOciSvcCtx,FOciStmt,FOciError,@buf[1],length(buf),nil,0,OCI_NTV_SYNTAX,OCI_DEFAULT) = OCI_ERROR then HandleError; + //get statement type + if OCIAttrGet(FOciStmt,OCI_HTYPE_STMT,@stmttype,nil,OCI_ATTR_STMT_TYPE,FOciError) = OCI_ERROR then + HandleError; + case stmttype of + OCI_STMT_SELECT:FStatementType := stSelect; + OCI_STMT_UPDATE:FStatementType := stUpdate; + OCI_STMT_DELETE:FStatementType := stDelete; + OCI_STMT_INSERT:FStatementType := stInsert; + OCI_STMT_CREATE, + OCI_STMT_DROP, + OCI_STMT_DECLARE, + OCI_STMT_ALTER:FStatementType := stDDL; + else + FStatementType := stUnknown; + end; + if FStatementType in [stUpdate,stDelete,stInsert,stDDL] then + FSelectable:=false; if assigned(AParams) then begin setlength(ParamBuffers,AParams.Count); @@ -720,11 +745,11 @@ var Param : POCIParam; FieldType : TFieldType; FieldName : string; - FieldSize : integer; + FieldSize : cardinal; OFieldType : ub2; OFieldName : Pchar; - OFieldSize : sb4; + OFieldSize : ub4; OFNameLength : ub4; NumCols : ub4; FOciDefine : POCIDefine; @@ -743,6 +768,12 @@ begin for tel := 1 to numcols do begin + // Clear OFieldSize. Oracle 9i, 10g doc says *ub4 but some clients use *ub2 leaving + // high 16 bit untouched resulting in huge values and ORA-01062 + // WARNING: this is not working in big endian systems !!!! + // To be tested if BE systems have this *ub2<->*ub4 problem + OFieldSize:=0; + if OCIParamGet(FOciStmt,OCI_HTYPE_STMT,FOciError,Param,tel) = OCI_ERROR then HandleError; @@ -1033,6 +1064,42 @@ begin Result:='Connect to an Oracle database directly via the client library'; end; +class function TOracleConnectionDef.DefaultLibraryName: String; +begin + {$IfDef LinkDynamically} + Result:=ocilib; + {$else} + Result:=''; + {$endif} +end; + +class function TOracleConnectionDef.LoadFunction: TLibraryLoadFunction; +begin + {$IfDef LinkDynamically} + Result:=@InitialiseOCI; + {$else} + Result:=Nil; + {$endif} +end; + +class function TOracleConnectionDef.UnLoadFunction: TLibraryUnLoadFunction; +begin + {$IfDef LinkDynamically} + Result:=@ReleaseOCI; + {$else} + Result:=Nil; + {$endif} +end; + +class function TOracleConnectionDef.LoadedLibraryName: string; +begin + {$IfDef LinkDynamically} + Result:=OCILoadedLibrary; + {$else} + Result:=''; + {$endif} +end; + { TOracleTrans } destructor TOracleTrans.Destroy(); diff --git a/fpcsrc/packages/fcl-db/src/sqldb/postgres/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/postgres/Makefile deleted file mode 100644 index 077d2bf6..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/postgres/Makefile +++ /dev/null @@ -1,2673 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=pqconnection pqeventmonitor -endif -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_RSTS+=pqconnection -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_RSTS+=pqconnection -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-xml postgres -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_POSTGRES=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_POSTGRES -PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_POSTGRES),) -ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(TARGETSUFFIX)),) -UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(TARGETSUFFIX) -else -UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES) -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 -$(PACKAGEDIR_POSTGRES)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE) -endif -else -PACKAGEDIR_POSTGRES= -UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_POSTGRES),) -UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES)) -else -UNITDIR_POSTGRES= -endif -endif -ifdef UNITDIR_POSTGRES -override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES) -endif -ifdef UNITDIR_FPMAKE_POSTGRES -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_POSTGRES) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/postgres/pqconnection.pp b/fpcsrc/packages/fcl-db/src/sqldb/postgres/pqconnection.pp index 7bc70559..838b1182 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/postgres/pqconnection.pp +++ b/fpcsrc/packages/fcl-db/src/sqldb/postgres/pqconnection.pp @@ -15,20 +15,33 @@ uses {$EndIf} type + TPQCursor = Class; + + { TPQTrans } + TPQTrans = Class(TSQLHandle) - protected + protected PGConn : PPGConn; - ErrorOccured : boolean; + FList : TThreadList; + Procedure RegisterCursor(S : TPQCursor); + Procedure UnRegisterCursor(S : TPQCursor); + Public + Constructor Create; + Destructor Destroy; override; end; + { TPQCursor } + TPQCursor = Class(TSQLCursor) - protected + protected Statement : string; StmtName : string; tr : TPQTrans; res : PPGresult; CurTuple : integer; FieldBinding : array of integer; + Public + Destructor Destroy; override; end; EPQDatabaseError = class(EDatabaseError) @@ -41,19 +54,31 @@ type STATEMENT_POSITION:string; end; + TPQTranConnection = class + protected + FPGConn : PPGConn; + FTranActive : boolean + end; + { TPQConnection } TPQConnection = class (TSQLConnection) private - FCursorCount : word; + FConnectionPool : TThreadList; + FCursorCount : dword; FConnectString : string; - FSQLDatabaseHandle : pointer; FIntegerDateTimes : boolean; - procedure CheckResultError(res: PPGresult; conn:PPGconn; ErrMsg: string); - function GetPQDatabaseError(res : PPGresult;ErrMsg: string):EPQDatabaseError; + FVerboseErrors : Boolean; + procedure CheckConnectionStatus(var conn: PPGconn); + procedure CheckResultError(var res: PPGresult; conn:PPGconn; ErrMsg: string); function TranslateFldType(res : PPGresult; Tuple : integer; out Size : integer) : TFieldType; procedure ExecuteDirectPG(const Query : String); protected + // Add connection to pool. + procedure AddConnection(T: TPQTranConnection); + // Release connection in pool. + procedure ReleaseConnection(Conn: PPGConn; DoClear : Boolean); + procedure DoInternalConnect; override; procedure DoInternalDisconnect; override; function GetHandle : pointer; override; @@ -80,6 +105,8 @@ type function RowsAffected(cursor: TSQLCursor): TRowsCount; override; public constructor Create(AOwner : TComponent); override; + destructor destroy; override; + function GetConnectionInfo(InfoType:TConnInfoType): string; override; procedure CreateDB; override; procedure DropDB; override; published @@ -88,6 +115,7 @@ type property LoginPrompt; property Params; property OnLogin; + Property VerboseErrors : Boolean Read FVerboseErrors Write FVerboseErrors default true; end; { TPQConnectionDef } @@ -99,6 +127,7 @@ type Class Function DefaultLibraryName : String; override; Class Function LoadFunction : TLibraryLoadFunction; override; Class Function UnLoadFunction : TLibraryUnLoadFunction; override; + Class Function LoadedLibraryName: string; override; end; implementation @@ -115,6 +144,7 @@ ResourceString SErrFieldDefsFailed = 'Can not extract field information from query'; SErrFetchFailed = 'Fetch of data failed'; SErrPrepareFailed = 'Preparation of query failed.'; + SErrUnPrepareFailed = 'Unpreparation of query failed.'; const Oid_Bool = 16; Oid_Bytea = 17; @@ -142,6 +172,53 @@ const Oid_Bool = 16; oid_numeric = 1700; Oid_uuid = 2950; +{ TPQTrans } + +procedure TPQTrans.RegisterCursor(S: TPQCursor); +begin + FList.Add(S); + S.tr:=Self; +end; + +procedure TPQTrans.UnRegisterCursor(S: TPQCursor); +begin + S.tr:=Nil; + FList.Remove(S); +end; + +constructor TPQTrans.Create; +begin + Flist:=TThreadList.Create; + FList.Duplicates:=dupIgnore; +end; + +destructor TPQTrans.Destroy; + +Var + L : TList; + I : integer; + +begin + L:=Flist.LockList; + try + For I:=0 to L.Count-1 do + TPQCursor(L[i]).tr:=Nil; + finally + Flist.UnlockList; + end; + FreeAndNil(FList); + inherited Destroy; +end; + +{ TPQCursor } + +destructor TPQCursor.Destroy; +begin + if Assigned(tr) then + Tr.UnRegisterCursor(Self); + inherited Destroy; +end; + constructor TPQConnection.Create(AOwner : TComponent); @@ -149,6 +226,16 @@ begin inherited; FConnOptions := FConnOptions + [sqSupportParams] + [sqEscapeRepeat] + [sqEscapeSlash]; FieldNameQuoteChars:=DoubleQuotes; + VerboseErrors:=True; + FConnectionPool:=TThreadlist.Create; +end; + +destructor TPQConnection.destroy; +begin + // We must disconnect here. If it is done in inherited, then connection pool is gone. + Connected:=False; + FreeAndNil(FConnectionPool); + inherited destroy; end; procedure TPQConnection.CreateDB; @@ -163,11 +250,10 @@ begin ExecuteDirectPG('DROP DATABASE ' +DatabaseName); end; -procedure TPQConnection.ExecuteDirectPG(const query : string); +procedure TPQConnection.ExecuteDirectPG(const Query: String); var ASQLDatabaseHandle : PPGConn; res : PPGresult; - msg : String; begin CheckDisConnected; @@ -184,12 +270,7 @@ begin ASQLDatabaseHandle := PQconnectdb(pchar(FConnectString)); - if (PQstatus(ASQLDatabaseHandle) = CONNECTION_BAD) then - begin - msg := PQerrorMessage(ASQLDatabaseHandle); - PQFinish(ASQLDatabaseHandle); - DatabaseError(sErrConnectionFailed + ' (PostgreSQL: ' + Msg + ')',self); - end; + CheckConnectionStatus(ASQLDatabaseHandle); res := PQexec(ASQLDatabaseHandle,pchar(query)); @@ -202,6 +283,39 @@ begin {$EndIf} end; +procedure TPQConnection.AddConnection(T: TPQTranConnection); + +begin + FConnectionPool.Add(T); +end; + +procedure TPQConnection.ReleaseConnection(Conn: PPGConn; DoClear: Boolean); + +Var + I : Integer; + L : TList; + T : TPQTranConnection; + +begin + L:=FConnectionPool.LockList; + // make connection available in pool + try + for i:=0 to L.Count-1 do + begin + T:=TPQTranConnection(L[i]); + if (T.FPGConn=Conn) then + begin + T.FTranActive:=false; + if DoClear then + T.FPGConn:=Nil; + break; + end; + end + finally + FConnectionPool.UnlockList; + end; +end; + function TPQConnection.GetTransactionHandle(trans : TSQLHandle): pointer; begin @@ -212,17 +326,27 @@ function TPQConnection.RollBack(trans : TSQLHandle) : boolean; var res : PPGresult; tr : TPQTrans; + i : Integer; + L : TList; + begin result := false; - tr := trans as TPQTrans; - + L:=tr.FList.LockList; + try + For I:=0 to L.Count-1 do + begin + UnprepareStatement(TPQCursor(L[i])); + TPQCursor(L[i]).tr:=Nil; + end; + L.Clear; + finally + tr.flist.UnlockList; + end; res := PQexec(tr.PGConn, 'ROLLBACK'); - CheckResultError(res,tr.PGConn,SErrRollbackFailed); - PQclear(res); - PQFinish(tr.PGConn); + ReleaseConnection(tr.PGCOnn,false); result := true; end; @@ -230,16 +354,15 @@ function TPQConnection.Commit(trans : TSQLHandle) : boolean; var res : PPGresult; tr : TPQTrans; + i : Integer; begin result := false; - tr := trans as TPQTrans; - res := PQexec(tr.PGConn, 'COMMIT'); CheckResultError(res,tr.PGConn,SErrCommitFailed); - PQclear(res); - PQFinish(tr.PGConn); + //make connection available in pool + ReleaseConnection(tr.PGConn,false); result := true; end; @@ -247,30 +370,56 @@ function TPQConnection.StartdbTransaction(trans : TSQLHandle; AParams : string) var res : PPGresult; tr : TPQTrans; + i : Integer; + t : TPQTranConnection; + L : TList; begin + result:=false; tr := trans as TPQTrans; - tr.PGConn := PQconnectdb(pchar(FConnectString)); - - if (PQstatus(tr.PGConn) = CONNECTION_BAD) then + //find an unused connection in the pool + i:=0; + t:=Nil; + L:=FConnectionPool.LockList; + try + while (Inil) then + tr.PGConn:=T.FPGConn else begin - tr.ErrorOccured := False; - + tr.PGConn := PQconnectdb(pchar(FConnectString)); + T.FPGConn:=tr.PGConn; + CheckConnectionStatus(tr.PGConn); if CharSet <> '' then PQsetClientEncoding(tr.PGConn, pchar(CharSet)); + end; - res := PQexec(tr.PGConn, 'BEGIN'); - CheckResultError(res,tr.PGConn,sErrTransactionFailed); + res := PQexec(tr.PGConn, 'BEGIN'); + CheckResultError(res,tr.PGConn,sErrTransactionFailed); - PQclear(res); - result := true; - end; + PQclear(res); + result := true; end; procedure TPQConnection.RollBackRetaining(trans : TSQLHandle); @@ -307,15 +456,16 @@ end; procedure TPQConnection.DoInternalConnect; - -var msg : string; +var + ASQLDatabaseHandle : PPGConn; + T : TPQTranConnection; begin {$IfDef LinkDynamically} InitialisePostgres3; {$EndIf} - inherited dointernalconnect; + inherited DoInternalConnect; FConnectString := ''; if (UserName <> '') then FConnectString := FConnectString + ' user=''' + UserName + ''''; @@ -324,81 +474,124 @@ begin if (DatabaseName <> '') then FConnectString := FConnectString + ' dbname=''' + DatabaseName + ''''; if (Params.Text <> '') then FConnectString := FConnectString + ' '+Params.Text; - FSQLDatabaseHandle := PQconnectdb(pchar(FConnectString)); + ASQLDatabaseHandle := PQconnectdb(pchar(FConnectString)); + try + CheckConnectionStatus(ASQLDatabaseHandle); + except + DoInternalDisconnect; + raise; + end; - if (PQstatus(FSQLDatabaseHandle) = CONNECTION_BAD) then - begin - msg := PQerrorMessage(FSQLDatabaseHandle); - dointernaldisconnect; - DatabaseError(sErrConnectionFailed + ' (PostgreSQL: ' + msg + ')',self); - end; -// This does only work for pg>=8.0, so timestamps won't work with earlier versions of pg which are compiled with integer_datetimes on + // This only works for pg>=8.0, so timestamps won't work with earlier versions of pg which are compiled with integer_datetimes on if PQparameterStatus<>nil then - FIntegerDatetimes := pqparameterstatus(FSQLDatabaseHandle,'integer_datetimes') = 'on'; + FIntegerDateTimes := PQparameterStatus(ASQLDatabaseHandle,'integer_datetimes') = 'on'; + T:=TPQTranConnection.Create; + T.FPGConn:=ASQLDatabaseHandle; + T.FTranActive:=false; + AddConnection(T); end; procedure TPQConnection.DoInternalDisconnect; +var + i:integer; + L : TList; + T : TPQTranConnection; + begin - PQfinish(FSQLDatabaseHandle); + Inherited; + L:=FConnectionPool.LockList; + try + for i:=0 to L.Count-1 do + begin + T:=TPQTranConnection(L[i]); + if assigned(T.FPGConn) then + PQfinish(T.FPGConn); + T.Free; + end; + L.Clear; + finally + FConnectionPool.UnLockList; + end; {$IfDef LinkDynamically} ReleasePostgres3; {$EndIf} +end; +procedure TPQConnection.CheckConnectionStatus(var conn: PPGconn); +var sErr: string; + i: integer; +begin + if (PQstatus(conn) = CONNECTION_BAD) then + begin + sErr := PQerrorMessage(conn); + //make connection available in pool + ReleaseConnection(Conn,True); + PQfinish(conn); + DatabaseError(sErrConnectionFailed + ' (PostgreSQL: ' + sErr + ')', Self); + end; end; -procedure TPQConnection.CheckResultError(res: PPGresult; conn: PPGconn; +procedure TPQConnection.CheckResultError(var res: PPGresult; conn: PPGconn; ErrMsg: string); + + Procedure MaybeAdd(Var S : String; Prefix,Msg : String); + + begin + if (Msg='') then + exit; + S:=S+LineEnding+Prefix+': '+Msg; + end; + var E: EPQDatabaseError; - + sErr: string; + CompName: string; + SEVERITY: string; + SQLSTATE: string; + MESSAGE_PRIMARY: string; + MESSAGE_DETAIL: string; + MESSAGE_HINT: string; + STATEMENT_POSITION: string; + i:Integer; begin if (PQresultStatus(res) <> PGRES_COMMAND_OK) then begin - E:=GetPQDatabaseError(res,ErrMsg); - pqclear(res); + SEVERITY:=PQresultErrorField(res,ord('S')); + SQLSTATE:=PQresultErrorField(res,ord('C')); + MESSAGE_PRIMARY:=PQresultErrorField(res,ord('M')); + MESSAGE_DETAIL:=PQresultErrorField(res,ord('D')); + MESSAGE_HINT:=PQresultErrorField(res,ord('H')); + STATEMENT_POSITION:=PQresultErrorField(res,ord('P')); + sErr:=PQresultErrorMessage(res); + if VerboseErrors then + begin + MaybeAdd(sErr,'Severity',SEVERITY); + MaybeAdd(sErr,'SQL State',SQLSTATE); + MaybeAdd(sErr,'Primary Error',MESSAGE_PRIMARY); + MaybeAdd(sErr,'Error Detail',MESSAGE_DETAIL); + MaybeAdd(sErr,'Hint',MESSAGE_HINT); + MaybeAdd(sErr,'Character',STATEMENT_POSITION); + end; + if (Self.Name='') then CompName := Self.ClassName else CompName := Self.Name; + E:=EPQDatabaseError.CreateFmt('%s : %s (PostgreSQL: %s)', [CompName, ErrMsg, sErr]); + E.SEVERITY:=SEVERITY; + E.SQLSTATE:=SQLSTATE; + E.MESSAGE_PRIMARY:=MESSAGE_PRIMARY; + E.MESSAGE_DETAIL:=MESSAGE_DETAIL; + E.MESSAGE_HINT:=MESSAGE_HINT; + E.STATEMENT_POSITION:=STATEMENT_POSITION; + + PQclear(res); + res:=nil; if assigned(conn) then + begin PQFinish(conn); + ReleaseConnection(Conn,True); + end; raise E; end; end; -function TPQConnection.GetPQDatabaseError(res: PPGresult; ErrMsg: string - ): EPQDatabaseError; -var - serr:string; - E: EPQDatabaseError; - CompName: string; - SEVERITY:string; - SQLSTATE: string; - MESSAGE_PRIMARY:string; - MESSAGE_DETAIL:string; - MESSAGE_HINT:string; - STATEMENT_POSITION:string; -begin - SEVERITY:=PQresultErrorField(res,ord('S')); - SQLSTATE:=PQresultErrorField(res,ord('C')); - MESSAGE_PRIMARY:=PQresultErrorField(res,ord('M')); - MESSAGE_DETAIL:=PQresultErrorField(res,ord('D')); - MESSAGE_HINT:=PQresultErrorField(res,ord('H')); - STATEMENT_POSITION:=PQresultErrorField(res,ord('P')); - serr:=PQresultErrorMessage(res)+LineEnding+ - 'Severity: '+ SEVERITY +LineEnding+ - 'SQL State: '+ SQLSTATE +LineEnding+ - 'Primary Error: '+ MESSAGE_PRIMARY +LineEnding+ - 'Error Detail: '+ MESSAGE_DETAIL +LineEnding+ - 'Hint: '+ MESSAGE_HINT +LineEnding+ - 'Character: '+ STATEMENT_POSITION +LineEnding; - if Self.Name = '' then CompName := Self.ClassName else CompName := Self.Name; - E:=EPQDatabaseError.CreateFmt('%s : %s (PostgreSQL: %s)', [CompName,ErrMsg, serr]); - E.SEVERITY:=SEVERITY; - E.SQLSTATE:=SQLSTATE; - E.MESSAGE_PRIMARY:=MESSAGE_PRIMARY; - E.MESSAGE_DETAIL:=MESSAGE_DETAIL; - E.MESSAGE_HINT:=MESSAGE_HINT; - E.STATEMENT_POSITION:=STATEMENT_POSITION; - result:=E; -end; - function TPQConnection.TranslateFldType(res : PPGresult; Tuple : integer; out Size : integer) : TFieldType; const VARHDRSZ=sizeof(longint); var li : longint; @@ -417,7 +610,7 @@ begin else size := (li-VARHDRSZ) and $FFFF; end; - if size > dsMaxStringSize then size := dsMaxStringSize; + if size > MaxSmallint then size := MaxSmallint; end; // Oid_text : Result := ftstring; Oid_text : Result := ftMemo; @@ -472,19 +665,18 @@ begin end; end; -Function TPQConnection.AllocateCursorHandle : TSQLCursor; +function TPQConnection.AllocateCursorHandle: TSQLCursor; begin result := TPQCursor.create; end; -Procedure TPQConnection.DeAllocateCursorHandle(var cursor : TSQLCursor); - +procedure TPQConnection.DeAllocateCursorHandle(var cursor: TSQLCursor); begin FreeAndNil(cursor); end; -Function TPQConnection.AllocateTransactionHandle : TSQLHandle; +function TPQConnection.AllocateTransactionHandle: TSQLHandle; begin result := TPQTrans.create; @@ -495,7 +687,7 @@ procedure TPQConnection.PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLT const TypeStrings : array[TFieldType] of string = ( 'Unknown', // ftUnknown - 'text', // ftString + 'text', // ftString 'smallint', // ftSmallint 'int', // ftInteger 'int', // ftWord @@ -549,28 +741,37 @@ begin if FStatementType in [stInsert,stUpdate,stDelete, stSelect] then begin StmtName := 'prepst'+inttostr(FCursorCount); - inc(FCursorCount); - tr := TPQTrans(aTransaction.Handle); + InterlockedIncrement(FCursorCount); + TPQTrans(aTransaction.Handle).RegisterCursor(Cursor as TPQCursor); + // Only available for pq 8.0, so don't use it... // Res := pqprepare(tr,'prepst'+name+nr,pchar(buf),params.Count,pchar('')); s := 'prepare '+StmtName+' '; - if Assigned(AParams) and (AParams.count > 0) then + if Assigned(AParams) and (AParams.Count > 0) then begin s := s + '('; - for i := 0 to AParams.count-1 do if TypeStrings[AParams[i].DataType] <> 'Unknown' then - s := s + TypeStrings[AParams[i].DataType] + ',' - else - begin - if AParams[i].DataType = ftUnknown then - DatabaseErrorFmt(SUnknownParamFieldType,[AParams[i].Name],self) - else - DatabaseErrorFmt(SUnsupportedParameter,[Fieldtypenames[AParams[i].DataType]],self); - end; + for i := 0 to AParams.Count-1 do + if TypeStrings[AParams[i].DataType] <> 'Unknown' then + s := s + TypeStrings[AParams[i].DataType] + ',' + else + begin + if AParams[i].DataType = ftUnknown then + begin + if AParams[i].IsNull then + s:=s+' unknown ,' + else + DatabaseErrorFmt(SUnknownParamFieldType,[AParams[i].Name],self) + end + else + DatabaseErrorFmt(SUnsupportedParameter,[Fieldtypenames[AParams[i].DataType]],self); + end; s[length(s)] := ')'; buf := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psPostgreSQL); end; s := s + ' as ' + buf; - res := pqexec(tr.PGConn,pchar(s)); + if LogEvent(detPrepare) then + Log(detPrepare,S); + res := PQexec(tr.PGConn,pchar(s)); CheckResultError(res,nil,SErrPrepareFailed); // if statement is INSERT, UPDATE, DELETE with RETURNING clause, then // override the statement type derrived by parsing the query. @@ -584,31 +785,27 @@ begin FPrepared := True; end else - statement := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psPostgreSQL); + Statement := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psPostgreSQL); end; end; procedure TPQConnection.UnPrepareStatement(cursor : TSQLCursor); -var - E: EPQDatabaseError; - begin - with (cursor as TPQCursor) do if FPrepared then + with (cursor as TPQCursor) do begin - if not tr.ErrorOccured then + PQclear(res); + res:=nil; + if FPrepared then begin - PQclear(res); - res := pqexec(tr.PGConn,pchar('deallocate '+StmtName)); - if (PQresultStatus(res) <> PGRES_COMMAND_OK) then + if PQtransactionStatus(tr.PGConn) <> PQTRANS_INERROR then begin - E:=GetPQDatabaseError(res,SErrPrepareFailed); - pqclear(res); - raise E; - end - else - pqclear(res); + res := PQexec(tr.PGConn,pchar('deallocate '+StmtName)); + CheckResultError(res,nil,SErrUnPrepareFailed); + PQclear(res); + res:=nil; + end; + FPrepared := False; end; - FPrepared := False; end; end; @@ -621,21 +818,20 @@ var ar : array of pchar; ParamNames, ParamValues : array of string; cash: int64; - E: EPQDatabaseError; begin with cursor as TPQCursor do begin + PQclear(res); if FStatementType in [stInsert,stUpdate,stDelete,stSelect] then begin - pqclear(res); - if Assigned(AParams) and (AParams.count > 0) then + if Assigned(AParams) and (AParams.Count > 0) then begin - l:=Aparams.count; + l:=AParams.Count; setlength(ar,l); setlength(lengths,l); setlength(formats,l); - for i := 0 to AParams.count -1 do if not AParams[i].IsNull then + for i := 0 to AParams.Count -1 do if not AParams[i].IsNull then begin case AParams[i].DataType of ftDateTime: @@ -667,8 +863,8 @@ begin end else FreeAndNil(ar[i]); - res := PQexecPrepared(tr.PGConn,pchar(StmtName),Aparams.count,@Ar[0],@Lengths[0],@Formats[0],1); - for i := 0 to AParams.count -1 do + res := PQexecPrepared(tr.PGConn,pchar(StmtName),AParams.Count,@Ar[0],@Lengths[0],@Formats[0],1); + for i := 0 to AParams.Count -1 do FreeMem(ar[i]); end else @@ -676,39 +872,39 @@ begin end else begin - tr := TPQTrans(aTransaction.Handle); + // Registercursor sets tr + TPQTrans(aTransaction.Handle).RegisterCursor(Cursor as TPQCursor); - if Assigned(AParams) and (AParams.count > 0) then + if Assigned(AParams) and (AParams.Count > 0) then begin setlength(ParamNames,AParams.Count); setlength(ParamValues,AParams.Count); - for i := 0 to AParams.count -1 do + for i := 0 to AParams.Count -1 do begin - ParamNames[AParams.count-i-1] := '$'+inttostr(AParams[i].index+1); - ParamValues[AParams.count-i-1] := GetAsSQLText(AParams[i]); + ParamNames[AParams.Count-i-1] := '$'+inttostr(AParams[i].index+1); + ParamValues[AParams.Count-i-1] := GetAsSQLText(AParams[i]); end; - s := stringsreplace(statement,ParamNames,ParamValues,[rfReplaceAll]); + s := stringsreplace(Statement,ParamNames,ParamValues,[rfReplaceAll]); end else s := Statement; - res := pqexec(tr.PGConn,pchar(s)); - if (PQresultStatus(res) in [PGRES_COMMAND_OK,PGRES_TUPLES_OK]) then + res := PQexec(tr.PGConn,pchar(s)); + if (PQresultStatus(res) in [PGRES_COMMAND_OK]) then begin - pqclear(res); - res:=nil; + PQclear(res); + res:=nil; end; end; + if assigned(res) and not (PQresultStatus(res) in [PGRES_COMMAND_OK,PGRES_TUPLES_OK]) then begin - E:=GetPQDatabaseError(res,SErrExecuteFailed); - pqclear(res); - - tr.ErrorOccured := True; -// Don't perform the rollback, only make it possible to do a rollback. -// The other databases also don't do this. -// atransaction.Rollback; - raise E; + // Don't perform the rollback, only make it possible to do a rollback. + // The other databases also don't do this. + //atransaction.Rollback; + CheckResultError(res,nil,SErrExecuteFailed); end; + + FSelectable := assigned(res) and (PQresultStatus(res)=PGRES_TUPLES_OK); end; end; @@ -736,8 +932,41 @@ begin end; function TPQConnection.GetHandle: pointer; +var + i:integer; + L : TList; + T : TPQTranConnection; + begin - Result := FSQLDatabaseHandle; + result:=nil; + if not Connected then + exit; + //Get any handle that is (still) connected + L:=FConnectionPool.LockList; + try + I:=L.Count-1; + While (I>=0) and (Result=Nil) do + begin + T:=TPQTranConnection(L[i]); + if assigned(T.FPGConn) and (PQstatus(T.FPGConn)<>CONNECTION_BAD) then + Result:=T.FPGConn; + Dec(I); + end; + finally + FConnectionPool.UnLockList; + end; + if Result<>Nil then + exit; + //Nothing connected!! Reconnect + // T is element 0 after loop + if assigned(T.FPGConn) then + PQreset(T.FPGConn) + else + T.FPGConn := PQconnectdb(pchar(FConnectString)); + CheckConnectionStatus(T.FPGConn); + if CharSet <> '' then + PQsetClientEncoding(T.FPGConn, pchar(CharSet)); + result:=T.FPGConn; end; function TPQConnection.Fetch(cursor : TSQLCursor) : boolean; @@ -778,7 +1007,7 @@ type TNumericRecord = record end; var - x,i,j : integer; + x,i : integer; s : string; li : Longint; CurrBuff : pchar; @@ -812,18 +1041,22 @@ begin result := true; case FieldDef.DataType of - ftInteger, ftSmallint, ftLargeInt, ftFloat : - begin - i := PQfsize(res, x); - case i of // postgres returns big-endian numbers - sizeof(int64) : pint64(buffer)^ := BEtoN(pint64(CurrBuff)^); - sizeof(integer) : pinteger(buffer)^ := BEtoN(pinteger(CurrBuff)^); - sizeof(smallint) : psmallint(buffer)^ := BEtoN(psmallint(CurrBuff)^); - else - for j := 1 to i do - pchar(Buffer)[j-1] := CurrBuff[i-j]; + ftInteger, ftSmallint, ftLargeInt : + case PQfsize(res, x) of // postgres returns big-endian numbers + sizeof(int64) : pint64(buffer)^ := BEtoN(pint64(CurrBuff)^); // INT8 + sizeof(integer) : pinteger(buffer)^ := BEtoN(pinteger(CurrBuff)^); // INT4 + sizeof(smallint) : psmallint(buffer)^ := BEtoN(psmallint(CurrBuff)^); // INT2 + end; {case} + ftFloat : + case PQfsize(res, x) of // postgres returns big-endian numbers + sizeof(int64) : // FLOAT8 + pint64(buffer)^ := BEtoN(pint64(CurrBuff)^); + sizeof(integer) : // FLOAT4 + begin + li := BEtoN(pinteger(CurrBuff)^); + pdouble(buffer)^ := psingle(@li)^ + end; end; {case} - end; ftString, ftFixedChar : begin case PQftype(res, x) of @@ -848,7 +1081,7 @@ begin else begin li := pqgetlength(res,curtuple,x); - if li > dsMaxStringSize then li := dsMaxStringSize; + if li > FieldDef.Size then li := FieldDef.Size; Move(CurrBuff^, Buffer^, li); end; end; @@ -864,7 +1097,7 @@ begin ftDateTime, ftTime : begin dbl := pointer(buffer); - if FIntegerDatetimes then + if FIntegerDateTimes then dbl^ := BEtoN(pint64(CurrBuff)^) / 1000000 else pint64(dbl)^ := BEtoN(pint64(CurrBuff)^); @@ -940,11 +1173,17 @@ end; procedure TPQConnection.UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); var qry : TSQLQuery; + relname : string; begin if not assigned(Transaction) then DatabaseError(SErrConnTransactionnSet); + if (length(TableName)>2) and (TableName[1]='"') and (TableName[length(TableName)]='"') then + relname := QuotedStr(AnsiDequotedStr(TableName, '"')) + else + relname := 'lower(' + QuotedStr(TableName) + ')'; // unquoted names are stored lower case in PostgreSQL which is incompatible with the SQL standard + qry := tsqlquery.Create(nil); qry.transaction := Transaction; qry.database := Self; @@ -971,7 +1210,7 @@ begin '(ia.attrelid = i.indexrelid) and '+ '(ic.oid = i.indexrelid) and '+ '(ta.attnum = i.indkey[ia.attnum-1]) and '+ - '(upper(tc.relname)=''' + UpperCase(TableName) +''') '+ + '(tc.relname = ' + relname + ') '+ 'order by '+ 'ic.relname;'); open; @@ -999,53 +1238,54 @@ function TPQConnection.GetSchemaInfoSQL(SchemaType: TSchemaType; var s : string; begin + // select * from information_schema.tables with + // where table_schema [not] in ('pg_catalog','information_schema') may be better. + // But the following should work: case SchemaType of stTables : s := 'select '+ - 'relfilenode as recno, '+ - '''' + DatabaseName + ''' as catalog_name, '+ - ''''' as schema_name, '+ - 'relname as table_name, '+ - '0 as table_type '+ - 'from '+ - 'pg_class '+ - 'where '+ - '(relowner > 1) and relkind=''r''' + + 'relfilenode as recno, '+ + 'current_database() as catalog_name, '+ + 'nspname as schema_name, '+ + 'relname as table_name, '+ + '0 as table_type '+ + 'from pg_class c '+ + 'left join pg_namespace n on c.relnamespace=n.oid '+ + 'where (relkind=''r'') and not (nspname in (''pg_catalog'',''information_schema''))' + 'order by relname'; stSysTables : s := 'select '+ - 'relfilenode as recno, '+ - '''' + DatabaseName + ''' as catalog_name, '+ - ''''' as schema_name, '+ - 'relname as table_name, '+ - '0 as table_type '+ - 'from '+ - 'pg_class '+ - 'where '+ - 'relkind=''r''' + + 'relfilenode as recno, '+ + 'current_database() as catalog_name, '+ + 'nspname as schema_name, '+ + 'relname as table_name, '+ + '0 as table_type '+ + 'from pg_class c '+ + 'left join pg_namespace n on c.relnamespace=n.oid '+ + 'where (relkind=''r'') and nspname in ((''pg_catalog'',''information_schema'')) ' + // only system tables 'order by relname'; stColumns : s := 'select '+ - 'a.attnum as recno, '+ - ''''' as catalog_name, '+ - ''''' as schema_name, '+ - 'c.relname as table_name, '+ - 'a.attname as column_name, '+ - '0 as column_position, '+ - '0 as column_type, '+ - '0 as column_datatype, '+ - ''''' as column_typename, '+ - '0 as column_subtype, '+ - '0 as column_precision, '+ - '0 as column_scale, '+ - 'a.atttypmod as column_length, '+ - 'not a.attnotnull as column_nullable '+ - 'from '+ - ' pg_class c, pg_attribute a '+ - 'WHERE '+ - // This can lead to problems when case-sensitive tablenames are used. - '(c.oid=a.attrelid) and (a.attnum>0) and (not a.attisdropped) and (upper(c.relname)=''' + Uppercase(SchemaObjectName) + ''') ' + + 'a.attnum as recno, '+ + 'current_database() as catalog_name, '+ + 'nspname as schema_name, '+ + 'c.relname as table_name, '+ + 'a.attname as column_name, '+ + '0 as column_position, '+ + '0 as column_type, '+ + '0 as column_datatype, '+ + ''''' as column_typename, '+ + '0 as column_subtype, '+ + '0 as column_precision, '+ + '0 as column_scale, '+ + 'a.atttypmod as column_length, '+ + 'not a.attnotnull as column_nullable '+ + 'from pg_class c '+ + 'join pg_attribute a on c.oid=a.attrelid '+ + 'left join pg_namespace n on c.relnamespace=n.oid '+ + // This can lead to problems when case-sensitive tablenames are used. + 'where (a.attnum>0) and (not a.attisdropped) and (upper(c.relname)=''' + Uppercase(SchemaObjectName) + ''') '+ 'order by a.attname'; else - DatabaseError(SMetadataUnavailable) + s := inherited; end; {case} result := s; end; @@ -1074,11 +1314,38 @@ begin Result := -1; end; +function TPQConnection.GetConnectionInfo(InfoType: TConnInfoType): string; +begin + Result:=''; + try + {$IFDEF LinkDynamically} + InitialisePostgres3; + {$ENDIF} + case InfoType of + citServerType: + Result:=TPQConnectionDef.TypeName; + citServerVersion, + citServerVersionString: + if Connected then + Result:=format('%6.6d', [PQserverVersion(GetHandle)]); + citClientName: + Result:=TPQConnectionDef.LoadedLibraryName; + else + Result:=inherited GetConnectionInfo(InfoType); + end; + finally + {$IFDEF LinkDynamically} + ReleasePostgres3; + {$ENDIF} + end; +end; + + { TPQConnectionDef } class function TPQConnectionDef.TypeName: String; begin - Result:='PostGreSQL'; + Result:='PostgreSQL'; end; class function TPQConnectionDef.ConnectionClass: TSQLConnectionClass; @@ -1088,7 +1355,7 @@ end; class function TPQConnectionDef.Description: String; begin - Result:='Connect to a PostGreSQL database directly via the client library'; + Result:='Connect to a PostgreSQL database directly via the client library'; end; class function TPQConnectionDef.DefaultLibraryName: String; @@ -1096,7 +1363,7 @@ begin {$IfDef LinkDynamically} Result:=pqlib; {$else} - result:=''; + Result:=''; {$endif} end; @@ -1105,7 +1372,7 @@ begin {$IfDef LinkDynamically} Result:=@InitialisePostgres3; {$else} - result:=Nil; + Result:=Nil; {$endif} end; @@ -1114,7 +1381,16 @@ begin {$IfDef LinkDynamically} Result:=@ReleasePostgres3; {$else} - result:=Nil; + Result:=Nil; + {$endif} +end; + +class function TPQConnectionDef.LoadedLibraryName: string; +begin + {$IfDef LinkDynamically} + Result:=Postgres3LoadedLibrary; + {$else} + Result:=''; {$endif} end; diff --git a/fpcsrc/packages/fcl-db/src/sqldb/readme.txt b/fpcsrc/packages/fcl-db/src/sqldb/readme.txt index c8f150cc..a52132fe 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/readme.txt +++ b/fpcsrc/packages/fcl-db/src/sqldb/readme.txt @@ -1,11 +1,14 @@ -SQLDB readme file, 20 Aug 2005, Joost van der Sluis +SQLDB readme file, initially by Joost van der Sluis -since there is no real documentation about sqldb yet, this should be regarded as -a small reminder to myself, and to others who want to write their own -connections. +Since there is no real documentation about sqldb yet, this should be regarded as +the beginning of documentation for writing your own connections as well as modifying the code. -From the TSQLConnection point-of-view the following methods are called if a -select-statement is used: +Code flow +========= + +** Select statement +From the TSQLConnection point of view the following methods are called if a +select statement is used: OPEN: Prepare: (is only called when prepared is false) @@ -15,7 +18,7 @@ OPEN: - Execute - AddFieldDefs (only if called for the first time after a prepare) -GETNEXTPAKCET: (probably called several times, offcourse) +GETNEXTPACKET: (probably called several times, of course) - Fetch - Loadfield @@ -23,6 +26,7 @@ CLOSE: - FreeFieldBuffers - UnPrepareStatement (Only if prepare is False, thus if prepared queries were not supported) + UnPrepare: - UnPrepareStatement @@ -30,8 +34,9 @@ DESTROY: - DeAllocateCursorHandle (Also called if the Connection is changed) -From the TSQLConnection point-of-view the following methods are called if a non- -select-statement is used (execsql): +** Non select statement (execsql) +From the TSQLConnection point of view the following methods are called if a non- +select statement is used (execsql): Prepare: (is only called when prepared is false) - AllocateCursorHandle (only if the cursor <> nil) @@ -42,7 +47,6 @@ Execute: - UnPrepareStatement (Only if prepare is False, thus if prepared queries were not supported) - UNPREPARE: - UnPrepareStatement @@ -50,32 +54,85 @@ DESTROY: - DeAllocateCursorHandle (Also called if the Connection is changed) -A short description of what each method in a TSQLConnection should do: +Writing your own T*Connection +============================= -* Function AllocateCursorHandle : TSQLCursor; override; +** Required methods +A short description of what some methods in a TSQLConnection must do: +* Function AllocateCursorHandle : TSQLCursor; override; This function creates and returns a TSQLcursor which can be used by any query -for the used type of database. The cursor is only database-dependent, it is -deallocated when the connection of the query changes, or if the query is -destroyed. +for the used type of database. The cursor is strictly database-dependent +It is deallocated: +- when the connection of the query changes, or +- if the query is destroyed. * Procedure DeAllocateCursorHandle(var cursor : TSQLCursor); override; - This function deallocates the TSQLCursor, and sets its value to nil. -* procedure PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams); override; +* Function AllocateTransactionHandle : TSQLHandle; virtual; abstract; +*** to do *** + +* function GetTransactionHandle(trans : TSQLHandle): pointer; virtual; abstract; +*** to do *** + +* function Commit(trans : TSQLHandle) : boolean; virtual; abstract; +This function commits the statement in the context of +transaction trans. + +* function RollBack(trans : TSQLHandle) : boolean; virtual; abstract; +This function rolls back/reverts the statement in the context of +transaction trans + +* function StartdbTransaction(trans : TSQLHandle; aParams : string) : boolean; virtual; abstract; +This function starts the transaction trans. +* procedure CommitRetaining(trans : TSQLHandle); virtual; abstract; +This procedure commits the transaction tran and immediately starts the transaction again +(or opens a new transaction with the same parameters/settings as tran). + +* procedure RollBackRetaining(trans : TSQLHandle); virtual; abstract; +This procedure rolls back the transaction tran and immediately opens a +new transaction with the same parameters/settings as the original transaction. + +* procedure UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); virtual; +*** to do *** + +* procedure AddFieldDefs(cursor: TSQLCursor; FieldDefs : TfieldDefs); virtual; abstract; +*** to do *** + +* function LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; virtual; abstract; +*** to do *** + +* procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); virtual; abstract; +*** to do *** + +* procedure PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams); override; This functions prepares the query which is given in buf. +It's only called if Prepared is True (and cursor FPrepared is False). -It's only called if Prepared is True. -If the database supports prepared queries for the kind of sql-statement (in -cursor.FStatementType) and the prepare was successfully, then cursor.FPrepared -is set to True, so that prepare will not be called again, until UnPrepared -is called. (which sets FPrepared to False) +If the database supports prepared queries for the kind of SQL statement indicated +in cursor.FStatementType and the prepare was successful, then cursor.FPrepared +is set to True. This keeps Prepare from being called again until UnPrepared +is called (which sets FPrepared to False). + +* procedure UnPrepareStatement(cursor : TSQLCursor); virtual; abstract; +This procedure sets cursor.FPrepared to false and performs cleanup tasks to +unprepare the query statement. * procedure FreeFldBuffers(cursor : TSQLCursor); override; +This procedure is called if a Select query is closed. This procedure is used to +handle all actions which are needed to close a select statement. + +* procedure Execute(cursor: TSQLCursor;atransaction:tSQLtransaction; AParams : TParams); virtual; abstract; +Tells the database to execute the statement. No data are loaded from the database client library into the sqldb data set buffers. -This procedure is called if a Select-query is closed. This procedure is used to -handle all actions which are needed to close a select-statement. +* function Fetch(cursor : TSQLCursor) : boolean; virtual; abstract; +Retrieves some resultset data from the database client library and stores them in sqldb dataset buffers. +** Optional (but recommended) methods +* function GetConnectionInfo(InfoType:TConnInfoType): string; virtual; +Returns metadata information about server and client/driver type, version. +* function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; virtual; +Returns an SQL string that retrieves metadata about tables, columns, etc. diff --git a/fpcsrc/packages/fcl-db/src/sqldb/sqldb.pp b/fpcsrc/packages/fcl-db/src/sqldb/sqldb.pp index af928114..58ccab16 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/sqldb.pp +++ b/fpcsrc/packages/fcl-db/src/sqldb/sqldb.pp @@ -22,23 +22,35 @@ interface uses SysUtils, Classes, DB, bufdataset, sqlscript; -type TSchemaType = (stNoSchema, stTables, stSysTables, stProcedures, stColumns, stProcedureParams, stIndexes, stPackages); - TConnOption = (sqSupportParams,sqEscapeSlash,sqEscapeRepeat); - TConnOptions= set of TConnOption; +type + TSchemaType = (stNoSchema, stTables, stSysTables, stProcedures, stColumns, stProcedureParams, stIndexes, stPackages, stSchemata); + TConnOption = (sqSupportParams,sqEscapeSlash,sqEscapeRepeat); + TConnOptions= set of TConnOption; + TConnInfoType=(citAll=-1, citServerType, citServerVersion, citServerVersionString, citClientName, citClientVersion); + TStatementType = (stUnknown, stSelect, stInsert, stUpdate, stDelete, + stDDL, stGetSegment, stPutSegment, stExecProcedure, + stStartTrans, stCommit, stRollback, stSelectForUpd); + + TRowsCount = LargeInt; + + TSQLStatementInfo = Record + StatementType : TStatementType; + TableName : String; + Updateable : Boolean; + WhereStartPos , + WhereStopPos : integer; + end; - TRowsCount = LargeInt; type TSQLConnection = class; TSQLTransaction = class; TCustomSQLQuery = class; + TCustomSQLStatement = Class; TSQLQuery = class; TSQLScript = class; - TStatementType = (stUnknown, stSelect, stInsert, stUpdate, stDelete, - stDDL, stGetSegment, stPutSegment, stExecProcedure, - stStartTrans, stCommit, stRollback, stSelectForUpd); TDBEventType = (detCustom, detPrepare, detExecute, detFetch, detCommit,detRollBack); TDBEventTypes = set of TDBEventType; @@ -52,6 +64,7 @@ type TSQLCursor = Class(TSQLHandle) public FPrepared : Boolean; + FSelectable : Boolean; FInitFieldDef : Boolean; FStatementType : TStatementType; FSchemaType : TSchemaType; @@ -95,46 +108,51 @@ type FHostName : string; FCharSet : string; FRole : String; - - + FStatements : TFPList; function GetPort: cardinal; - procedure Setport(const AValue: cardinal); + procedure SetPort(const AValue: cardinal); protected FConnOptions : TConnOptions; FSQLFormatSettings : TFormatSettings; procedure GetDBInfo(const ASchemaType : TSchemaType; const ASchemaObjectName, AReturnField : string; AList: TStrings); - procedure SetTransaction(Value : TSQLTransaction);virtual; - function StrToStatementType(s : string) : TStatementType; virtual; + procedure SetTransaction(Value : TSQLTransaction); virtual; procedure DoInternalConnect; override; procedure DoInternalDisconnect; override; function GetAsSQLText(Field : TField) : string; overload; virtual; function GetAsSQLText(Param : TParam) : string; overload; virtual; - function GetHandle : pointer; virtual; virtual; + function GetHandle : pointer; virtual; Function LogEvent(EventType : TDBEventType) : Boolean; Procedure Log(EventType : TDBEventType; Const Msg : String); virtual; + Procedure RegisterStatement(S : TCustomSQLStatement); + Procedure UnRegisterStatement(S : TCustomSQLStatement); + Function AllocateCursorHandle : TSQLCursor; virtual; abstract; Procedure DeAllocateCursorHandle(var cursor : TSQLCursor); virtual; abstract; - Function AllocateTransactionHandle : TSQLHandle; virtual; abstract; - + function StrToStatementType(s : string) : TStatementType; virtual; + function GetStatementInfo(const ASQL: string; Full: Boolean; ASchema : TSchemaType): TSQLStatementInfo; virtual; procedure PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams); virtual; abstract; + procedure UnPrepareStatement(cursor : TSQLCursor); virtual; abstract; procedure Execute(cursor: TSQLCursor;atransaction:tSQLtransaction; AParams : TParams); virtual; abstract; + function RowsAffected(cursor: TSQLCursor): TRowsCount; virtual; function Fetch(cursor : TSQLCursor) : boolean; virtual; abstract; procedure AddFieldDefs(cursor: TSQLCursor; FieldDefs : TfieldDefs); virtual; abstract; - procedure UnPrepareStatement(cursor : TSQLCursor); virtual; abstract; - - procedure FreeFldBuffers(cursor : TSQLCursor); virtual; function LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; virtual; abstract; + procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); virtual; abstract; + procedure FreeFldBuffers(cursor : TSQLCursor); virtual; + + Function AllocateTransactionHandle : TSQLHandle; virtual; abstract; function GetTransactionHandle(trans : TSQLHandle): pointer; virtual; abstract; function Commit(trans : TSQLHandle) : boolean; virtual; abstract; function RollBack(trans : TSQLHandle) : boolean; virtual; abstract; function StartdbTransaction(trans : TSQLHandle; aParams : string) : boolean; virtual; abstract; procedure CommitRetaining(trans : TSQLHandle); virtual; abstract; procedure RollBackRetaining(trans : TSQLHandle); virtual; abstract; + procedure UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); virtual; function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; virtual; - procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); virtual; abstract; - function RowsAffected(cursor: TSQLCursor): TRowsCount; virtual; - property port: cardinal read GetPort write Setport; + + Property Statements : TFPList Read FStatements; + property Port: cardinal read GetPort write SetPort; public property Handle: Pointer read GetHandle; property FieldNameQuoteChars: TQuoteChars read FFieldNameQuoteChars write FFieldNameQuoteChars; @@ -147,7 +165,9 @@ type procedure ExecuteDirect(SQL : String; ATransaction : TSQLTransaction); overload; virtual; procedure GetTableNames(List : TStrings; SystemTables : Boolean = false); virtual; procedure GetProcedureNames(List : TStrings); virtual; - procedure GetFieldNames(const TableName : string; List : TStrings); virtual; + procedure GetFieldNames(const TableName : string; List : TStrings); virtual; + procedure GetSchemaNames(List: TStrings); virtual; + function GetConnectionInfo(InfoType:TConnInfoType): string; virtual; procedure CreateDB; virtual; procedure DropDB; virtual; published @@ -194,32 +214,102 @@ type property Handle: Pointer read GetHandle; procedure EndTransaction; override; published - property Action : TCommitRollbackAction read FAction write FAction; + property Action : TCommitRollbackAction read FAction write FAction Default caRollBack; property Database; property Params : TStringList read FParams write SetParams; end; + { TCustomSQLStatement } + + TCustomSQLStatement = Class(TComponent) + Private + FCursor : TSQLCursor; + FDatabase: TSQLConnection; + FParamCheck: Boolean; + FParams: TParams; + FSQL: TStrings; + FOrigSQL : String; + FServerSQL : String; + FTransaction: TSQLTransaction; + FParseSQL: Boolean; + FDataLink : TDataLink; + procedure SetDatabase(AValue: TSQLConnection); + procedure SetParams(AValue: TParams); + procedure SetSQL(AValue: TStrings); + procedure SetTransaction(AValue: TSQLTransaction); + Function GetPrepared : Boolean; + Protected + Function CreateDataLink : TDataLink; virtual; + procedure OnChangeSQL(Sender : TObject); virtual; + function GetDataSource: TDataSource; Virtual; + procedure SetDataSource(AValue: TDataSource); virtual; + Procedure CopyParamsFromMaster(CopyBound : Boolean); virtual; + procedure AllocateCursor; + procedure DeAllocateCursor; + Function GetSchemaType : TSchemaType; virtual; + Function GetSchemaObjectName : String; virtual; + Function GetSchemaPattern: String; virtual; + Function IsSelectable : Boolean ; virtual; + procedure GetStatementInfo(Var ASQL: String; Full: Boolean; ASchema: TSchemaType; out Info: TSQLStatementInfo); virtual; + Procedure DoExecute; virtual; + procedure DoPrepare; virtual; + procedure DoUnPrepare; virtual; + Function CreateParams : TParams; virtual; + Function LogEvent(EventType : TDBEventType) : Boolean; + Procedure Log(EventType : TDBEventType; Const Msg : String); virtual; + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + Property Cursor : TSQLCursor read FCursor; + Property Database : TSQLConnection Read FDatabase Write SetDatabase; + Property Transaction : TSQLTransaction Read FTransaction Write SetTransaction; + Property SQL : TStrings Read FSQL Write SetSQL; + Property Params : TParams Read FParams Write SetParams; + Property DataSource : TDataSource Read GetDataSource Write SetDataSource; + Property ParseSQL : Boolean Read FParseSQL Write FParseSQL; + Property ParamCheck : Boolean Read FParamCheck Write FParamCheck default true; + Public + constructor Create(AOwner : TComponent); override; + destructor Destroy; override; + Procedure Prepare; + Procedure Execute; + Procedure Unprepare; + function ParamByName(Const AParamName : String) : TParam; + function RowsAffected: TRowsCount; virtual; + Property Prepared : boolean read GetPrepared; + end; + + TSQLStatement = Class(TCustomSQLStatement) + Published + Property Database; + Property DataSource; + Property ParamCheck; + Property Params; + Property ParseSQL; + Property SQL; + Property Transaction; + end; + { TCustomSQLQuery } TCustomSQLQuery = class (TCustomBufDataset) private - FCursor : TSQLCursor; + // FCursor : TSQLCursor; + FSchemaType: TSchemaType; +// FSQL: TStringlist; FUpdateable : boolean; FTableName : string; - FSQL : TStringList; + FStatement : TCustomSQLStatement; FUpdateSQL, FInsertSQL, FDeleteSQL : TStringList; FIsEOF : boolean; FLoadingFieldDefs : boolean; FUpdateMode : TUpdateMode; - FParams : TParams; FusePrimaryKeyAsKey : Boolean; FSQLBuf : String; FWhereStartPos : integer; FWhereStopPos : integer; - FParseSQL : boolean; - FMasterLink : TMasterParamsDatalink; + // FParseSQL : boolean; +// FMasterLink : TMasterParamsDatalink; // FSchemaInfo : TSchemaInfo; FServerFilterText : string; @@ -228,7 +318,6 @@ type FServerIndexDefs : TServerIndexDefs; // Used by SetSchemaType - FSchemaType : TSchemaType; FSchemaObjectName : string; FSchemaPattern : string; @@ -236,24 +325,31 @@ type FDeleteQry, FInsertQry : TCustomSQLQuery; procedure FreeFldBuffers; + function GetParamCheck: Boolean; + function GetParams: TParams; + function GetParseSQL: Boolean; function GetServerIndexDefs: TServerIndexDefs; + function GetSQL: TStringlist; function GetStatementType : TStatementType; + procedure SetParamCheck(AValue: Boolean); + procedure SetUpdateSQL(const AValue: TStringlist); procedure SetDeleteSQL(const AValue: TStringlist); procedure SetInsertSQL(const AValue: TStringlist); + procedure SetParams(AValue: TParams); procedure SetParseSQL(AValue : Boolean); procedure SetSQL(const AValue: TStringlist); - procedure SetUpdateSQL(const AValue: TStringlist); procedure SetUsePrimaryKeyAsKey(AValue : Boolean); procedure SetUpdateMode(AValue : TUpdateMode); - procedure OnChangeSQL(Sender : TObject); +// procedure OnChangeSQL(Sender : TObject); procedure OnChangeModifySQL(Sender : TObject); procedure Execute; - Function SQLParser(const ASQL : string) : TStatementType; +// Function SQLParser(const ASQL : string) : TStatementType; procedure ApplyFilter; Function AddFilter(SQLstr : string) : string; protected // abstract & virtual methods of TBufDataset function Fetch : boolean; override; + Function Cursor : TSQLCursor; function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override; // abstract & virtual methods of TDataset procedure UpdateServerIndexDefs; virtual; @@ -269,13 +365,14 @@ type Procedure SetActive (Value : Boolean); override; procedure SetServerFiltered(Value: Boolean); virtual; procedure SetServerFilterText(const Value: string); virtual; - Function GetDataSource : TDatasource; override; - Procedure SetDataSource(AValue : TDatasource); + Function GetDataSource : TDataSource; override; + Procedure SetDataSource(AValue : TDataSource); procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); override; procedure BeforeRefreshOpenCursor; override; procedure SetReadOnly(AValue : Boolean); override; Function LogEvent(EventType : TDBEventType) : Boolean; Procedure Log(EventType : TDBEventType; Const Msg : String); virtual; + procedure Notification(AComponent: TComponent; Operation: TOperation); override; public procedure Prepare; virtual; procedure UnPrepare; virtual; @@ -284,7 +381,6 @@ type destructor Destroy; override; procedure SetSchemaInfo( ASchemaType : TSchemaType; ASchemaObjectName, ASchemaPattern : string); virtual; property Prepared : boolean read IsPrepared; - procedure Notification(AComponent: TComponent; Operation: TOperation); override; function RowsAffected: TRowsCount; virtual; function ParamByName(Const AParamName : String) : TParam; protected @@ -321,16 +417,17 @@ type // protected property SchemaType : TSchemaType read FSchemaType default stNoSchema; property Transaction; - property SQL : TStringlist read FSQL write SetSQL; + property SQL : TStringlist read GetSQL write SetSQL; property UpdateSQL : TStringlist read FUpdateSQL write SetUpdateSQL; property InsertSQL : TStringlist read FInsertSQL write SetInsertSQL; property DeleteSQL : TStringlist read FDeleteSQL write SetDeleteSQL; - property Params : TParams read FParams write FParams; + property Params : TParams read GetParams Write SetParams; + Property ParamCheck : Boolean Read GetParamCheck Write SetParamCheck default true; + property ParseSQL : Boolean read GetParseSQL write SetParseSQL default true; property UpdateMode : TUpdateMode read FUpdateMode write SetUpdateMode default upWhereKeyOnly; property UsePrimaryKeyAsKey : boolean read FUsePrimaryKeyAsKey write SetUsePrimaryKeyAsKey default true; property StatementType : TStatementType read GetStatementType; - property ParseSQL : Boolean read FParseSQL write SetParseSQL default true; - Property DataSource : TDatasource Read GetDataSource Write SetDatasource; + Property DataSource : TDataSource Read GetDataSource Write SetDataSource; property ServerFilter: string read FServerFilterText write SetServerFilterText; property ServerFiltered: Boolean read FServerFiltered write SetServerFiltered default False; property ServerIndexDefs : TServerIndexDefs read GetServerIndexDefs; @@ -340,6 +437,7 @@ type TSQLQuery = Class(TCustomSQLQuery) public property SchemaType; + Property StatementType; Published property MaxIndexesCount; // TDataset stuff @@ -381,9 +479,10 @@ type property DeleteSQL; property IndexDefs; property Params; + Property ParamCheck; + property ParseSQL; property UpdateMode; property UsePrimaryKeyAsKey; - property ParseSQL; Property DataSource; property ServerFilter; property ServerFiltered; @@ -474,7 +573,7 @@ type TSQLConnectionClass = Class of TSQLConnection; { TConnectionDef } - TLibraryLoadFunction = Function (Const S : ShortString) : Integer; + TLibraryLoadFunction = Function (Const S : AnsiString) : Integer; TLibraryUnLoadFunction = Procedure; TConnectionDef = Class(TPersistent) Class Function TypeName : String; virtual; @@ -483,6 +582,7 @@ type Class Function DefaultLibraryName : String; virtual; Class Function LoadFunction : TLibraryLoadFunction; virtual; Class Function UnLoadFunction : TLibraryUnLoadFunction; virtual; + Class Function LoadedLibraryName : string; virtual; Procedure ApplyParams(Params : TStrings; AConnection : TSQLConnection); virtual; end; TConnectionDefClass = class of TConnectionDef; @@ -536,6 +636,310 @@ begin result := Format('%.2d:%.2d:%.2d.%.3d',[hour,minute,second,millisecond]); end; +{ TCustomSQLStatement } + +procedure TCustomSQLStatement.OnChangeSQL(Sender: TObject); + +var + ConnOptions : TConnOptions; + NewParams: TParams; + +begin + UnPrepare; + if not ParamCheck then + exit; + if assigned(DataBase) then + ConnOptions:=DataBase.ConnOptions + else + ConnOptions := [sqEscapeRepeat,sqEscapeSlash]; + NewParams := CreateParams; + try + NewParams.ParseSQL(FSQL.Text, True, sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions, psInterbase); + NewParams.AssignValues(FParams); + FParams.Assign(NewParams); + finally + NewParams.Free; + end; +end; + +procedure TCustomSQLStatement.SetDatabase(AValue: TSQLConnection); +begin + if FDatabase=AValue then Exit; + UnPrepare; + If Assigned(FDatabase) then + begin + FDatabase.UnregisterStatement(Self); + FDatabase.RemoveFreeNotification(Self); + end; + FDatabase:=AValue; + If Assigned(FDatabase) then + begin + FDatabase.FreeNotification(Self); + FDatabase.RegisterStatement(Self); + if (Transaction=nil) and (Assigned(FDatabase.Transaction)) then + transaction := FDatabase.Transaction; + OnChangeSQL(Self); + end; +end; + +procedure TCustomSQLStatement.SetDataSource(AValue: TDataSource); + +begin + if GetDataSource=AValue then Exit; + if (FDataLink=Nil) then + FDataLink:=CreateDataLink; + FDataLink.DataSource:=AValue; +end; + +procedure TCustomSQLStatement.CopyParamsFromMaster(CopyBound : Boolean); +begin + if Assigned(DataSource) and Assigned(DataSource.Dataset) then + FParams.CopyParamValuesFromDataset(DataSource.Dataset,CopyBound); +end; + +procedure TCustomSQLStatement.SetParams(AValue: TParams); +begin + if FParams=AValue then Exit; + FParams.Assign(AValue); +end; + +procedure TCustomSQLStatement.SetSQL(AValue: TStrings); +begin + if FSQL=AValue then Exit; + FSQL.Assign(AValue); +end; + +procedure TCustomSQLStatement.SetTransaction(AValue: TSQLTransaction); +begin + if FTransaction=AValue then Exit; + UnPrepare; + if Assigned(FTransaction) then + FTransaction.RemoveFreeNotification(Self); + FTransaction:=AValue; + if Assigned(FTransaction) then + begin + FTransaction.FreeNotification(Self); + If (Database=Nil) then + Database:=Transaction.Database as TSQLConnection; + end; +end; + +procedure TCustomSQLStatement.DoExecute; +begin + If (FParams.Count>0) and Assigned(DataSource) then + CopyParamsFromMaster(False); + If LogEvent(detExecute) then + Log(detExecute,FServerSQL); + Database.Execute(FCursor,Transaction, FParams); +end; + +function TCustomSQLStatement.GetPrepared: Boolean; +begin + Result := Assigned(FCursor) and FCursor.FPrepared; +end; + +function TCustomSQLStatement.CreateDataLink: TDataLink; +begin + Result:=TDataLink.Create; +end; + +function TCustomSQLStatement.CreateParams: TParams; +begin + Result:=TParams.Create(Nil); +end; + +function TCustomSQLStatement.LogEvent(EventType: TDBEventType): Boolean; +begin + Result:=Assigned(Database) and Database.LogEvent(EventType); +end; + +procedure TCustomSQLStatement.Log(EventType: TDBEventType; const Msg: String); +Var + M : String; + +begin + If LogEvent(EventType) then + begin + If (Name<>'') then + M:=Name + else + M:=ClassName; + Database.Log(EventType,M+' : '+Msg); + end; +end; + +procedure TCustomSQLStatement.Notification(AComponent: TComponent; + Operation: TOperation); +begin + inherited Notification(AComponent, Operation); + if (operation=opRemove) then + If (AComponent=FTransaction) then + FTransaction:=Nil + else if (AComponent=FDatabase) then + begin + UnPrepare; + FDatabase:=Nil; + end; +end; + +constructor TCustomSQLStatement.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FSQL:=TStringList.Create; + TStringList(FSQL).OnChange:=@OnChangeSQL; + FParams:=CreateParams; + FParamCheck:=True; + FParseSQL:=True; +end; + +destructor TCustomSQLStatement.Destroy; +begin + UnPrepare; + Transaction:=Nil; + Database:=Nil; + DataSource:=Nil; + FreeAndNil(FDataLink); + FreeAndNil(Fparams); + FreeAndNil(FSQL); + inherited Destroy; +end; + +function TCustomSQLStatement.GetSchemaType: TSchemaType; + +begin + Result:=stNoSchema +end; + +function TCustomSQLStatement.GetSchemaObjectName: String; +begin + Result:=''; +end; + +function TCustomSQLStatement.GetSchemaPattern: String; +begin + Result:=''; +end; + +function TCustomSQLStatement.IsSelectable: Boolean; +begin + Result:=False; +end; + + +procedure TCustomSQLStatement.GetStatementInfo(var ASQL: String; Full: Boolean; + ASchema: TSchemaType; out Info: TSQLStatementInfo); + +begin + Info:=Database.GetStatementInfo(ASQL,Full,ASchema); +end; + +procedure TCustomSQLStatement.AllocateCursor; + +begin + if not assigned(FCursor) then + // Do this as late as possible. + FCursor:=Database.AllocateCursorHandle; +end; + +procedure TCustomSQLStatement.DeAllocateCursor; +begin + if Assigned(FCursor) and Assigned(Database) then + DataBase.DeAllocateCursorHandle(FCursor); +end; + +procedure TCustomSQLStatement.DoPrepare; + +var + StmType: TStatementType; + I : TSQLStatementInfo; +begin + if GetSchemaType=stNoSchema then + FOrigSQL := TrimRight(FSQL.Text) + else + FOrigSQL := Database.GetSchemaInfoSQL(GetSchemaType, GetSchemaObjectName, GetSchemaPattern); + if (FOrigSQL='') then + DatabaseError(SErrNoStatement); + FServerSQL:=FOrigSQL; + GetStatementInfo(FServerSQL,ParseSQL,GetSchemaType,I); + StmType:=I.StatementType; + AllocateCursor; + FCursor.FSelectable:=True; // let PrepareStatement and/or Execute alter it + FCursor.FStatementType:=StmType; + FCursor.FSchemaType:=GetSchemaType; + If LogEvent(detPrepare) then + Log(detPrepare,FServerSQL); + Database.PrepareStatement(FCursor,Transaction,FServerSQL,FParams); +end; + +procedure TCustomSQLStatement.Prepare; + +begin + if Prepared then exit; + if not assigned(Database) then + DatabaseError(SErrDatabasenAssigned); + if not assigned(Transaction) then + DatabaseError(SErrTransactionnSet); + if not Database.Connected then + Database.Open; + if not Transaction.Active then + Transaction.StartTransaction; + try + DoPrepare; + except + DeAllocateCursor; + Raise; + end; +end; + +procedure TCustomSQLStatement.Execute; +begin + Prepare; + DoExecute; +end; + +procedure TCustomSQLStatement.DoUnPrepare; + +begin + If Assigned(FCursor) then + If Assigned(Database) then + begin + DataBase.UnPrepareStatement(FCursor); + DeAllocateCursor; + end + else // this should never happen. It means a cursor handle leaks in the DB itself. + FreeAndNil(FCursor); +end; + +function TCustomSQLStatement.GetDataSource: TDataSource; +begin + if Assigned(FDataLink) then + Result:=FDataLink.DataSource + else + Result:=Nil; +end; + +procedure TCustomSQLStatement.Unprepare; +begin + // Some SQLConnections does not support statement [un]preparation, but they have allocated local cursor(s) + // so let them do cleanup f.e. cancel pending queries and/or free resultset + // and also do UnRegisterStatement! + if assigned(FCursor) then + DoUnprepare; +end; + +function TCustomSQLStatement.ParamByName(const AParamName: String): TParam; +begin + Result:=FParams.ParamByName(AParamName); +end; + +function TCustomSQLStatement.RowsAffected: TRowsCount; +begin + Result := -1; + if not Assigned(Database) then + Exit; + Result:=Database.RowsAffected(FCursor); +end; + { TSQLConnection } function TSQLConnection.StrToStatementType(s : string) : TStatementType; @@ -577,11 +981,20 @@ begin end; procedure TSQLConnection.DoInternalDisconnect; + +Var + I : integer; + begin + For I:=0 to FStatements.Count-1 do + TCustomSQLStatement(FStatements[i]).Unprepare; + FStatements.Clear; end; destructor TSQLConnection.Destroy; begin + Connected:=False; // needed because we want to de-allocate statements + FreeAndNil(FStatements); inherited Destroy; end; @@ -601,13 +1014,14 @@ begin Transaction.EndTransaction; end; -Procedure TSQLConnection.ExecuteDirect(SQL: String); +procedure TSQLConnection.ExecuteDirect(SQL: String); begin ExecuteDirect(SQL,FTransaction); end; -Procedure TSQLConnection.ExecuteDirect(SQL: String; ATransaction : TSQLTransaction); +procedure TSQLConnection.ExecuteDirect(SQL: String; + ATransaction: TSQLTransaction); var Cursor : TSQLCursor; @@ -625,8 +1039,8 @@ begin Cursor := AllocateCursorHandle; Cursor.FStatementType := stUnknown; - PrepareStatement(cursor,ATransaction,SQL,Nil); - execute(cursor,ATransaction, Nil); + PrepareStatement(Cursor,ATransaction,SQL,Nil); + Execute(Cursor,ATransaction, Nil); UnPrepareStatement(Cursor); finally; DeAllocateCursorHandle(Cursor); @@ -638,10 +1052,10 @@ begin result := StrToIntDef(Params.Values['Port'],0); end; -procedure TSQLConnection.Setport(const AValue: cardinal); +procedure TSQLConnection.SetPort(const AValue: cardinal); begin if AValue<>0 then - params.Values['Port']:=IntToStr(AValue) + Params.Values['Port']:=IntToStr(AValue) else with params do if IndexOfName('Port') > -1 then Delete(IndexOfName('Port')); end; @@ -655,21 +1069,24 @@ begin DatabaseError(SErrConnTransactionnSet); qry := TCustomSQLQuery.Create(nil); - qry.transaction := Transaction; - qry.database := Self; - with qry do - begin - ParseSQL := False; - SetSchemaInfo(ASchemaType,ASchemaObjectName,''); - open; - AList.Clear; - while not eof do + try + qry.transaction := Transaction; + qry.database := Self; + with qry do begin - AList.Append(trim(fieldbyname(AReturnField).asstring)); - Next; + ParseSQL := False; + SetSchemaInfo(ASchemaType,ASchemaObjectName,''); + open; + AList.Clear; + while not eof do + begin + AList.Append(trim(fieldbyname(AReturnField).asstring)); + Next; + end; end; - end; - qry.free; + finally + qry.free; + end; end; function TSQLConnection.RowsAffected(cursor: TSQLCursor): TRowsCount; @@ -683,12 +1100,15 @@ begin inherited Create(AOwner); FSQLFormatSettings:=DefaultSQLFormatSettings; FFieldNameQuoteChars:=DoubleQuotes; + FStatements:=TFPList.Create; end; procedure TSQLConnection.GetTableNames(List: TStrings; SystemTables: Boolean); begin - if not systemtables then GetDBInfo(stTables,'','table_name',List) - else GetDBInfo(stSysTables,'','table_name',List); + if not SystemTables then + GetDBInfo(stTables,'','table_name',List) + else + GetDBInfo(stSysTables,'','table_name',List); end; procedure TSQLConnection.GetProcedureNames(List: TStrings); @@ -701,6 +1121,23 @@ begin GetDBInfo(stColumns,TableName,'column_name',List); end; +procedure TSQLConnection.GetSchemaNames(List: TStrings); +begin + GetDBInfo(stSchemata,'','SCHEMA_NAME',List); +end; + +function TSQLConnection.GetConnectionInfo(InfoType: TConnInfoType): string; +var i: TConnInfoType; +begin + Result:=''; + if InfoType = citAll then + for i:=citServerType to citClientVersion do + begin + if Result<>'' then Result:=Result+','; + Result:=Result+'"'+GetConnectionInfo(i)+'"'; + end; +end; + function TSQLConnection.GetAsSQLText(Field : TField) : string; begin @@ -767,6 +1204,18 @@ begin end; end; +procedure TSQLConnection.RegisterStatement(S: TCustomSQLStatement); +begin + if FStatements.IndexOf(S)=-1 then + FStatements.Add(S); +end; + +procedure TSQLConnection.UnRegisterStatement(S: TCustomSQLStatement); +begin + if Assigned(FStatements) then // Can be nil, when we are destroying and datasets are uncoupled. + FStatements.Remove(S); +end; + procedure TSQLConnection.FreeFldBuffers(cursor: TSQLCursor); begin // empty @@ -775,7 +1224,10 @@ end; function TSQLConnection.GetSchemaInfoSQL( SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; begin - DatabaseError(SMetadataUnavailable); + case SchemaType of + stSchemata: Result := 'SELECT * FROM INFORMATION_SCHEMA.SCHEMATA'; + else DatabaseError(SMetadataUnavailable); + end; end; procedure TSQLConnection.CreateDB; @@ -794,7 +1246,17 @@ end; procedure TSQLTransaction.EndTransaction; begin - rollback; + Case Action of + caCommit : + Commit; + caCommitRetaining : + CommitRetaining; + caNone, + caRollback : + RollBack; + caRollbackRetaining : + RollbackRetaining; + end; end; procedure TSQLTransaction.SetParams(const AValue: TStringList); @@ -881,11 +1343,13 @@ constructor TSQLTransaction.Create(AOwner : TComponent); begin inherited Create(AOwner); FParams := TStringList.Create; + Action:=caRollBack; end; destructor TSQLTransaction.Destroy; begin - Rollback; + EndTransaction; + FreeAndNil(FTrans); FreeAndNil(FParams); inherited Destroy; end; @@ -930,15 +1394,15 @@ begin end; { TCustomSQLQuery } +(* procedure TCustomSQLQuery.OnChangeSQL(Sender : TObject); var ConnOptions : TConnOptions; NewParams: TParams; begin - UnPrepare; FSchemaType:=stNoSchema; - if (FSQL <> nil) then + if (FSQL <> nil) and ParamCheck then begin if assigned(DataBase) then ConnOptions := TSQLConnection(DataBase).ConnOptions @@ -953,12 +1417,11 @@ begin finally NewParams.Free; end; - If Assigned(FMasterLink) then - FMasterLink.RefreshParamNames; end; end; +*) -function TCustomSQLQuery.ParamByName(Const AParamName : String) : TParam; +function TCustomSQLQuery.ParamByName(const AParamName: String): TParam; begin Result:=Params.ParamByName(AParamName); @@ -970,11 +1433,13 @@ begin CheckInactive; end; -Procedure TCustomSQLQuery.SetTransaction(Value : TDBTransaction); +procedure TCustomSQLQuery.SetTransaction(Value: TDBTransaction); begin UnPrepare; inherited; + If Assigned(FStatement) then + FStatement.Transaction:=TSQLTransaction(Value); If (Transaction<>Nil) and (Database=Nil) then Database:=TSQLTransaction(Transaction).Database; end; @@ -989,22 +1454,30 @@ begin if assigned(value) and not (Value is TSQLConnection) then DatabaseErrorFmt(SErrNotASQLConnection,[value.Name],self); UnPrepare; - if assigned(FCursor) then TSQLConnection(DataBase).DeAllocateCursorHandle(FCursor); db := TSQLConnection(Value); + If Assigned(FStatement) then + FStatement.Database:=DB; inherited setdatabase(value); +(* + FStatement.Database:=Db, + if assigned(FCursor) then TSQLConnection(DataBase).DeAllocateCursorHandle(FCursor); +*) if assigned(value) and (Transaction = nil) and (Assigned(db.Transaction)) then transaction := Db.Transaction; - OnChangeSQL(Self); +// FStatement.OnChangeSQL(Self); end; end; -Function TCustomSQLQuery.IsPrepared : Boolean; +function TCustomSQLQuery.IsPrepared: Boolean; begin - Result := Assigned(FCursor) and FCursor.FPrepared; + if Assigned(Fstatement) then + Result := FStatement.Prepared + else + Result := False; end; -Function TCustomSQLQuery.AddFilter(SQLstr : string) : string; +function TCustomSQLQuery.AddFilter(SQLstr: string): string; begin if (FWhereStartPos > 0) and (FWhereStopPos > 0) then @@ -1028,22 +1501,16 @@ var S : String; begin FreeFldBuffers; - TSQLConnection(Database).UnPrepareStatement(FCursor); + FStatement.Unprepare; FIsEOF := False; - inherited internalclose; - - s := FSQLBuf; - - if ServerFiltered then s := AddFilter(s); - - TSQLConnection(Database).PrepareStatement(Fcursor,(transaction as tsqltransaction),S,FParams); - - Execute; + inherited InternalClose; + FStatement.DoPrepare; + FStatement.DoExecute; inherited InternalOpen; First; end; -Procedure TCustomSQLQuery.SetActive (Value : Boolean); +procedure TCustomSQLQuery.SetActive(Value: Boolean); begin inherited SetActive(Value); @@ -1056,11 +1523,13 @@ end; procedure TCustomSQLQuery.SetServerFiltered(Value: Boolean); begin - if Value and not FParseSQL then DatabaseErrorFmt(SNoParseSQL,['Filtering ']); + if Value and not ParseSQL then + DatabaseErrorFmt(SNoParseSQL,['Filtering ']); if (ServerFiltered <> Value) then begin FServerFiltered := Value; - if active then ApplyFilter; + if active then + ApplyFilter; end; end; @@ -1074,72 +1543,41 @@ begin end; procedure TCustomSQLQuery.Prepare; -var - db : tsqlconnection; - sqltr : tsqltransaction; - StmType: TStatementType; begin - if not IsPrepared then - begin - db := TSQLConnection(Database); - sqltr := (transaction as tsqltransaction); - if not assigned(Db) then - DatabaseError(SErrDatabasenAssigned); - if not assigned(sqltr) then - DatabaseError(SErrTransactionnSet); - - if not Db.Connected then db.Open; - if not sqltr.Active then sqltr.StartTransaction; - - if FSchemaType=stNoSchema then - FSQLBuf := TrimRight(FSQL.Text) - else - FSQLBuf := db.GetSchemaInfoSQL(FSchemaType, FSchemaObjectName, FSchemaPattern); - - if FSQLBuf = '' then - DatabaseError(SErrNoStatement); - - StmType:=SQLParser(FSQLBuf); - - // There may no error occur between the allocation of the cursor and - // the preparation of the cursor. Because internalclose (which is called in - // case of an exception) assumes that allocated cursors are also prepared, - // and thus calls unprepare. - // A call to unprepare while the cursor is not prepared at all can lead to - // unpredictable results. - if not assigned(fcursor) then - FCursor := Db.AllocateCursorHandle; - FCursor.FStatementType:=StmType; - FCursor.FSchemaType := FSchemaType; - if ServerFiltered then - begin - If LogEvent(detprepare) then - Log(detPrepare,AddFilter(FSQLBuf)); - Db.PrepareStatement(Fcursor,sqltr,AddFilter(FSQLBuf),FParams) - end - else - begin - If LogEvent(detprepare) then - Log(detPrepare,FSQLBuf); - Db.PrepareStatement(Fcursor,sqltr,FSQLBuf,FParams); - end; - if (FCursor.FStatementType in [stSelect,stExecProcedure]) then - FCursor.FInitFieldDef := True; - end; + FStatement.Prepare; + If Assigned(Fstatement.FCursor) then + With FStatement.FCursor do + FInitFieldDef:=FSelectable; end; procedure TCustomSQLQuery.UnPrepare; begin CheckInactive; - if IsPrepared then with TSQLConnection(DataBase) do - UnPrepareStatement(FCursor); + If Assigned(FStatement) then + FStatement.Unprepare; end; procedure TCustomSQLQuery.FreeFldBuffers; begin - if assigned(FCursor) then TSQLConnection(Database).FreeFldBuffers(FCursor); + if assigned(Cursor) then + TSQLConnection(Database).FreeFldBuffers(Cursor); +end; + +function TCustomSQLQuery.GetParamCheck: Boolean; +begin + Result:=FStatement.ParamCheck; +end; + +function TCustomSQLQuery.GetParams: TParams; +begin + Result:=FStatement.Params; +end; + +function TCustomSQLQuery.GetParseSQL: Boolean; +begin + Result:=FStatement.ParseSQL; end; function TCustomSQLQuery.GetServerIndexDefs: TServerIndexDefs; @@ -1147,36 +1585,42 @@ begin Result := FServerIndexDefs; end; +function TCustomSQLQuery.GetSQL: TStringlist; +begin + Result:=TStringList(Fstatement.SQL); +end; + function TCustomSQLQuery.Fetch : boolean; begin - if not (Fcursor.FStatementType in [stSelect,stExecProcedure]) then + if Not Assigned(Cursor) then Exit; - - if not FIsEof then FIsEOF := not TSQLConnection(Database).Fetch(Fcursor); + if not Cursor.FSelectable then + Exit; + If LogEvent(detFetch) then + Log(detFetch,FSQLBuf); + if not FIsEof then FIsEOF := not TSQLConnection(Database).Fetch(Cursor); Result := not FIsEOF; end; +function TCustomSQLQuery.Cursor: TSQLCursor; +begin + Result:=FStatement.Cursor; +end; + procedure TCustomSQLQuery.Execute; begin - If (FParams.Count>0) and Assigned(FMasterLink) then - FMasterLink.CopyParamsFromMaster(False); - If LogEvent(detExecute) then - Log(detExecute,FSQLBuf); - TSQLConnection(Database).execute(Fcursor,Transaction as tsqltransaction, FParams); + FStatement.Execute; end; function TCustomSQLQuery.LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; begin - result := TSQLConnection(Database).LoadField(FCursor,FieldDef,buffer, Createblob) + result := TSQLConnection(Database).LoadField(Cursor,FieldDef,buffer, Createblob) end; function TCustomSQLQuery.RowsAffected: TRowsCount; begin - Result := -1; - if not Assigned(Database) then Exit; - //assert(Database is TSQLConnection); - Result := TSQLConnection(Database).RowsAffected(FCursor); + Result:=Fstatement.RowsAffected; end; procedure TCustomSQLQuery.InternalAddRecord(Buffer: Pointer; AAppend: Boolean); @@ -1186,11 +1630,13 @@ end; procedure TCustomSQLQuery.InternalClose; begin - if not IsReadFromPacket then + if assigned(Cursor) then begin - if StatementType in [stSelect,stExecProcedure] then FreeFldBuffers; - // Database and FCursor could be nil, for example if the database is not assigned, and .open is called - if (not IsPrepared) and (assigned(database)) and (assigned(FCursor)) then TSQLConnection(database).UnPrepareStatement(FCursor); + if Cursor.FSelectable then + FreeFldBuffers; + // Some SQLConnections does not support statement [un]preparation, + // so let them do cleanup f.e. cancel pending queries and/or free resultset + if not Prepared then FStatement.DoUnprepare; end; if DefaultFields then DestroyFields; @@ -1199,7 +1645,7 @@ begin if assigned(FInsertQry) then FreeAndNil(FInsertQry); if assigned(FDeleteQry) then FreeAndNil(FDeleteQry); // FRecordSize := 0; - inherited internalclose; + inherited InternalClose; end; procedure TCustomSQLQuery.InternalInitFieldDefs; @@ -1212,15 +1658,35 @@ begin try FieldDefs.Clear; if not Assigned(Database) then DatabaseError(SErrDatabasenAssigned); - TSQLConnection(Database).AddFieldDefs(fcursor,FieldDefs); + TSQLConnection(Database).AddFieldDefs(Cursor,FieldDefs); finally FLoadingFieldDefs := False; - if Assigned(FCursor) then FCursor.FInitFieldDef := false; + if Assigned(Cursor) then Cursor.FInitFieldDef := false; end; end; + + +(* function TCustomSQLQuery.SQLParser(const ASQL : string) : TStatementType; +Var + I : TSQLStatementInfo; + +begin + I:=(Database as TSQLConnection).GetStatementInfo(ASQL,ParseSQL,SchemaType); + FTableName:=I.TableName; + FUpdateable:=I.Updateable; + FWhereStartPos:=I.WhereStartPos; + FWhereStopPos:=I.WhereStopPos; + Result:=I.StatementType; +end; +*) + +function TSQLConnection.GetStatementInfo(const ASQL: string; Full: Boolean; + ASchema: TSchemaType): TSQLStatementInfo; + + type TParsePart = (ppStart,ppWith,ppSelect,ppTableName,ppFrom,ppWhere,ppGroup,ppOrder,ppBogus); TPhraseSeparator = (sepNone, sepWhiteSpace, sepComma, sepComment, sepParentheses, sepDoubleQuote, sepEnd); TKeyword = (kwWITH, kwSELECT, kwINSERT, kwUPDATE, kwDELETE, kwFROM, kwJOIN, kwWHERE, kwGROUP, kwORDER, kwUNION, kwROWS, kwLIMIT, kwUnknown); @@ -1235,7 +1701,6 @@ var S : string; ParsePart : TParsePart; BracketCount : Integer; - ConnOptions : TConnOptions; Separator : TPhraseSeparator; Keyword, K : TKeyword; @@ -1246,13 +1711,10 @@ begin CurrentP := PSQL-1; PhraseP := PSQL; - FTableName := ''; - FUpdateable := False; - - FWhereStartPos := 0; - FWhereStopPos := 0; - - ConnOptions := TSQLConnection(DataBase).ConnOptions; + Result.TableName := ''; + Result.Updateable := False; + Result.WhereStartPos := 0; + Result.WhereStopPos := 0; repeat begin @@ -1279,7 +1741,7 @@ begin until (CurrentP^ = #0) or (BracketCount = 0); if CurrentP^ <> #0 then inc(CurrentP); end; - '"': + '"','`': if SkipComments(CurrentP, sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions) then Separator := sepDoubleQuote; else @@ -1311,24 +1773,24 @@ begin case ParsePart of ppStart : begin - Result := TSQLConnection(Database).StrToStatementType(s); + Result.StatementType := StrToStatementType(s); case Keyword of kwWITH : ParsePart := ppWith; kwSELECT: ParsePart := ppSelect; else break; end; - if not FParseSQL then break; + if not Full then break; end; ppWith : begin // WITH [RECURSIVE] CTE_name [ ( column_names ) ] AS ( CTE_query_definition ) [, ...] // { SELECT | INSERT | UPDATE | DELETE } ... case Keyword of - kwSELECT: Result := stSelect; - kwINSERT: Result := stInsert; - kwUPDATE: Result := stUpdate; - kwDELETE: Result := stDelete; + kwSELECT: Result.StatementType := stSelect; + kwINSERT: Result.StatementType := stInsert; + kwUPDATE: Result.StatementType := stUpdate; + kwDELETE: Result.StatementType := stDelete; end; - if Result <> stUnknown then break; + if Result.StatementType <> stUnknown then break; end; ppSelect : begin if Keyword = kwFROM then @@ -1339,11 +1801,11 @@ begin // Meta-data requests are never updateable // and select-statements from more then one table // and/or derived tables are also not updateable - if (FSchemaType = stNoSchema) and + if (ASchema = stNoSchema) and (Separator in [sepWhitespace, sepComment, sepDoubleQuote, sepEnd]) then begin - FTableName := s; - FUpdateable := True; + Result.TableName := s; + Result.Updateable := True; end; ParsePart := ppFrom; end; @@ -1358,15 +1820,15 @@ begin else ParsePart := ppBogus; end; - FWhereStartPos := PhraseP-PSQL+1; + Result.WhereStartPos := PhraseP-PSQL+1; PStatementPart := CurrentP; end else // joined table or user_defined_function (...) if (Keyword = kwJOIN) or (Separator in [sepComma, sepParentheses]) then begin - FTableName := ''; - FUpdateable := False; + Result.TableName := ''; + Result.Updateable := False; end; end; ppWhere : begin @@ -1374,16 +1836,16 @@ begin (Separator = sepEnd) then begin ParsePart := ppBogus; - FWhereStartPos := PStatementPart-PSQL; + Result.WhereStartPos := PStatementPart-PSQL; if (Separator = sepEnd) then - FWhereStopPos := CurrentP-PSQL+1 + Result.WhereStopPos := CurrentP-PSQL+1 else - FWhereStopPos := PhraseP-PSQL+1; + Result.WhereStopPos := PhraseP-PSQL+1; end else if (Keyword = kwUNION) then begin ParsePart := ppBogus; - FUpdateable := False; + Result.Updateable := False; end; end; end; {case} @@ -1401,70 +1863,71 @@ procedure TCustomSQLQuery.InternalOpen; var tel, fieldc : integer; f : TField; IndexFields : TStrings; - ReadFromFile: Boolean; begin - ReadFromFile:=IsReadFromPacket; - if ReadFromFile then + if IsReadFromPacket then begin - if not assigned(fcursor) then - FCursor := TSQLConnection(Database).AllocateCursorHandle; - FCursor.FStatementType:=stSelect; + // When we read from file there is no need for Cursor, also note that Database may not be assigned + //FStatement.AllocateCursor; + //Cursor.FSelectable:=True; + //Cursor.FStatementType:=stSelect; FUpdateable:=True; + BindFields(True); end else - Prepare; - if FCursor.FStatementType in [stSelect,stExecProcedure] then begin - if not ReadFromFile then + Prepare; + if not Cursor.FSelectable then + DatabaseError(SErrNoSelectStatement,Self); + + // Call UpdateServerIndexDefs before Execute, to avoid problems with connections + // which do not allow processing multiple recordsets at a time. (Microsoft + // calls this MARS, see bug 13241) + if DefaultFields and FUpdateable and FusePrimaryKeyAsKey and (not IsUniDirectional) then + UpdateServerIndexDefs; + + Execute; + if not Cursor.FSelectable then + DatabaseError(SErrNoSelectStatement,Self); + + // InternalInitFieldDef is only called after a prepare. i.e. not twice if + // a dataset is opened - closed - opened. + if Cursor.FInitFieldDef then InternalInitFieldDefs; + if DefaultFields then begin - // Call UpdateServerIndexDefs before Execute, to avoid problems with connections - // which do not allow processing multiple recordsets at a time. (Microsoft - // calls this MARS, see bug 13241) - if DefaultFields and FUpdateable and FusePrimaryKeyAsKey and (not IsUniDirectional) then - UpdateServerIndexDefs; - Execute; - // InternalInitFieldDef is only called after a prepare. i.e. not twice if - // a dataset is opened - closed - opened. - if FCursor.FInitFieldDef then InternalInitFieldDefs; - if DefaultFields then - begin - CreateFields; + CreateFields; - if FUpdateable and (not IsUniDirectional) then + if FUpdateable and (not IsUniDirectional) then + begin + if FusePrimaryKeyAsKey then begin - if FusePrimaryKeyAsKey then + for tel := 0 to ServerIndexDefs.count-1 do begin - for tel := 0 to ServerIndexDefs.count-1 do + if ixPrimary in ServerIndexDefs[tel].options then begin - if ixPrimary in ServerIndexDefs[tel].options then - begin - IndexFields := TStringList.Create; - ExtractStrings([';'],[' '],pchar(ServerIndexDefs[tel].fields),IndexFields); - for fieldc := 0 to IndexFields.Count-1 do - begin - F := Findfield(IndexFields[fieldc]); - if F <> nil then - F.ProviderFlags := F.ProviderFlags + [pfInKey]; - end; - IndexFields.Free; - end; + IndexFields := TStringList.Create; + ExtractStrings([';'],[' '],pchar(ServerIndexDefs[tel].fields),IndexFields); + for fieldc := 0 to IndexFields.Count-1 do + begin + F := Findfield(IndexFields[fieldc]); + if F <> nil then + F.ProviderFlags := F.ProviderFlags + [pfInKey]; + end; + IndexFields.Free; end; end; end; - end - else - BindFields(True); + end; end else BindFields(True); - if not ReadOnly and not FUpdateable and (FSchemaType=stNoSchema) then - begin - if (trim(FDeleteSQL.Text) <> '') or (trim(FUpdateSQL.Text) <> '') or - (trim(FInsertSQL.Text) <> '') then FUpdateable := True; - end - end - else - DatabaseError(SErrNoSelectStatement,Self); + end; + + if not ReadOnly and not FUpdateable and (FSchemaType=stNoSchema) then + begin + if (trim(FDeleteSQL.Text) <> '') or (trim(FUpdateSQL.Text) <> '') or + (trim(FInsertSQL.Text) <> '') then FUpdateable := True; + end; + inherited InternalOpen; end; @@ -1476,18 +1939,96 @@ begin Prepare; Execute; finally - // FCursor has to be assigned, or else the prepare went wrong before PrepareStatment was - // called, so UnPrepareStatement shoudn't be called either - if (not IsPrepared) and (assigned(database)) and (assigned(FCursor)) then TSQLConnection(database).UnPrepareStatement(Fcursor); + // Cursor has to be assigned, or else the prepare went wrong before PrepareStatment was + // called, so UnPrepareStatement shoudn't be called either + // Don't deallocate cursor; f.e. RowsAffected is requested later + if not Prepared and (assigned(Database)) and (assigned(Cursor)) then TSQLConnection(Database).UnPrepareStatement(Cursor); end; end; +Type + + { TQuerySQLStatement } + + TQuerySQLStatement = Class(TCustomSQLStatement) + protected + FQuery : TCustomSQLQuery; + Function CreateDataLink : TDataLink; override; + Function GetSchemaType : TSchemaType; override; + Function GetSchemaObjectName : String; override; + Function GetSchemaPattern: String; override; + procedure GetStatementInfo(Var ASQL: String; Full: Boolean; ASchema: TSchemaType; out Info: TSQLStatementInfo); override; + procedure OnChangeSQL(Sender : TObject); override; + end; + +{ TQuerySQLStatement } + +function TQuerySQLStatement.CreateDataLink: TDataLink; +begin + Result:=TMasterParamsDataLink.Create(FQuery); +end; + +function TQuerySQLStatement.GetSchemaType: TSchemaType; +begin + if Assigned(FQuery) then + Result:=FQuery.FSchemaType + else + Result:=stNoSchema; +end; + +function TQuerySQLStatement.GetSchemaObjectName: String; +begin + if Assigned(FQuery) then + Result:=FQuery.FSchemaObjectname + else + Result:=inherited GetSchemaObjectName; +end; + +function TQuerySQLStatement.GetSchemaPattern: String; +begin + if Assigned(FQuery) then + Result:=FQuery.FSchemaPattern + else + Result:=inherited GetSchemaPattern; +end; + +procedure TQuerySQLStatement.GetStatementInfo(var ASQL: String; Full: Boolean; + ASchema: TSchemaType; out Info: TSQLStatementInfo); +begin + inherited GetStatementInfo(ASQL, Full, ASchema, Info); + If Assigned(FQuery) then + begin + FQuery.FWhereStartPos:=Info.WhereStartPos; + FQuery.FWhereStopPos:=Info.WhereStopPos; + FQuery.FUpdateable:=info.Updateable; + FQuery.FTableName:=Info.TableName; + if FQuery.ServerFiltered then + ASQL:=FQuery.AddFilter(ASQL); + end; +end; + +procedure TQuerySQLStatement.OnChangeSQL(Sender: TObject); +begin + UnPrepare; + inherited OnChangeSQL(Sender); + If ParamCheck and Assigned(FDataLink) then + (FDataLink as TMasterParamsDataLink).RefreshParamNames; + FQuery.ServerIndexDefs.Updated:=false; +end; + constructor TCustomSQLQuery.Create(AOwner : TComponent); + +Var + F : TQuerySQLStatement; + begin inherited Create(AOwner); - FParams := TParams.create(self); - FSQL := TStringList.Create; - FSQL.OnChange := @OnChangeSQL; + F:=TQuerySQLStatement.Create(Self); + F.FQuery:=Self; + FStatement:=F; + + //FSQL := TStringList.Create; + // FSQL.OnChange := @OnChangeSQL; FUpdateSQL := TStringList.Create; FUpdateSQL.OnChange := @OnChangeModifySQL; @@ -1498,8 +2039,6 @@ begin FServerIndexDefs := TServerIndexDefs.Create(Self); - FParseSQL := True; - FServerFiltered := False; FServerFilterText := ''; @@ -1517,10 +2056,8 @@ destructor TCustomSQLQuery.Destroy; begin if Active then Close; UnPrepare; - if assigned(FCursor) then TSQLConnection(Database).DeAllocateCursorHandle(FCursor); - FreeAndNil(FMasterLink); - FreeAndNil(FParams); - FreeAndNil(FSQL); + FreeAndNil(Fstatement); +// FreeAndNil(FSQL); FreeAndNil(FInsertSQL); FreeAndNil(FDeleteSQL); FreeAndNil(FUpdateSQL); @@ -1539,18 +2076,14 @@ procedure TCustomSQLQuery.SetParseSQL(AValue : Boolean); begin CheckInactive; + FStatement.ParseSQL:=AValue; if not AValue then - begin FServerFiltered := False; - FParseSQL := False; - end - else - FParseSQL := True; end; procedure TCustomSQLQuery.SetSQL(const AValue: TStringlist); begin - FSQL.Assign(AValue); + FStatement.SQL.Assign(AValue); end; procedure TCustomSQLQuery.SetUpdateSQL(const AValue: TStringlist); @@ -1569,7 +2102,7 @@ begin end; end; -Procedure TCustomSQLQuery.UpdateServerIndexDefs; +procedure TCustomSQLQuery.UpdateServerIndexDefs; begin FServerIndexDefs.Clear; @@ -1577,7 +2110,7 @@ begin TSQLConnection(DataBase).UpdateIndexDefs(ServerIndexDefs,FTableName); end; -Procedure TCustomSQLQuery.ApplyRecUpdate(UpdateKind : TUpdateKind); +procedure TCustomSQLQuery.ApplyRecUpdate(UpdateKind: TUpdateKind); var FieldNamesQuoteChars : TQuoteChars; @@ -1619,7 +2152,7 @@ var FieldNamesQuoteChars : TQuoteChars; begin UpdateWherePart(sql_where,x); - if (pfInUpdate in Fields[x].ProviderFlags) then + if (pfInUpdate in Fields[x].ProviderFlags) and (not Fields[x].ReadOnly) then sql_set := sql_set +FieldNamesQuoteChars[0] + fields[x].FieldName + FieldNamesQuoteChars[1] +'=:"' + fields[x].FieldName + '",'; end; @@ -1642,7 +2175,7 @@ var FieldNamesQuoteChars : TQuoteChars; sql_values := ''; for x := 0 to Fields.Count -1 do begin - if (not fields[x].IsNull) and (pfInUpdate in Fields[x].ProviderFlags) then + if (not Fields[x].IsNull) and (pfInUpdate in Fields[x].ProviderFlags) and (not Fields[x].ReadOnly) then begin sql_fields := sql_fields + FieldNamesQuoteChars[0] + fields[x].FieldName + FieldNamesQuoteChars[1] + ','; sql_values := sql_values + ':"' + fields[x].FieldName + '",'; @@ -1717,11 +2250,11 @@ begin end; -Function TCustomSQLQuery.GetCanModify: Boolean; +function TCustomSQLQuery.GetCanModify: Boolean; begin - // the test for assigned(FCursor) is needed for the case that the dataset isn't opened - if assigned(FCursor) and (FCursor.FStatementType = stSelect) then + // the test for assigned(Cursor) is needed for the case that the dataset isn't opened + if assigned(Cursor) and (Cursor.FStatementType = stSelect) then Result:= FUpdateable and (not ReadOnly) and (not IsUniDirectional) else Result := False; @@ -1744,7 +2277,7 @@ end; procedure TCustomSQLQuery.LoadBlobIntoBuffer(FieldDef: TFieldDef; ABlobBuf: PBufBlobField); begin - TSQLConnection(DataBase).LoadBlobIntoBuffer(FieldDef, ABlobBuf, FCursor,(Transaction as tsqltransaction)); + TSQLConnection(DataBase).LoadBlobIntoBuffer(FieldDef, ABlobBuf, Cursor,(Transaction as TSQLTransaction)); end; procedure TCustomSQLQuery.BeforeRefreshOpenCursor; @@ -1754,7 +2287,7 @@ begin // problems because in SetActive(false) queries are always // unprepared. (which is also wrong, but has to be fixed later) if IsPrepared then with TSQLConnection(DataBase) do - UnPrepareStatement(FCursor); + UnPrepareStatement(Cursor); end; function TCustomSQLQuery.LogEvent(EventType: TDBEventType): Boolean; @@ -1780,10 +2313,15 @@ end; function TCustomSQLQuery.GetStatementType : TStatementType; begin - if assigned(FCursor) then - Result := FCursor.FStatementType + if Assigned(Cursor) then + Result:=Cursor.FStatementType else - Result := stUnknown; + Result:=stUnknown; +end; + +procedure TCustomSQLQuery.SetParamCheck(AValue: Boolean); +begin + FStatement.ParamCheck:=AValue; end; procedure TCustomSQLQuery.SetDeleteSQL(const AValue: TStringlist); @@ -1796,10 +2334,15 @@ begin FInsertSQL.Assign(AValue); end; -Procedure TCustomSQLQuery.SetDataSource(AVAlue : TDatasource); +procedure TCustomSQLQuery.SetParams(AValue: TParams); +begin + FStatement.Params.Assign(AValue); +end; + +procedure TCustomSQLQuery.SetDataSource(AValue: TDataSource); Var - DS : TDatasource; + DS : TDataSource; begin DS:=DataSource; @@ -1809,23 +2352,15 @@ begin DatabaseError(SErrCircularDataSourceReferenceNotAllowed,Self); If Assigned(DS) then DS.RemoveFreeNotification(Self); - If Assigned(AValue) then - begin - AValue.FreeNotification(Self); - If (FMasterLink=Nil) then - FMasterLink:=TMasterParamsDataLink.Create(Self); - FMasterLink.Datasource:=AValue; - end - else - FreeAndNil(FMasterLink); + FStatement.DataSource:=AValue; end; end; -Function TCustomSQLQuery.GetDataSource : TDatasource; +function TCustomSQLQuery.GetDataSource: TDataSource; begin - If Assigned(FMasterLink) then - Result:=FMasterLink.DataSource + If Assigned(FStatement) then + Result:=FStatement.DataSource else Result:=Nil; end; @@ -2258,6 +2793,11 @@ begin Result:=Nil; end; +class function TConnectionDef.LoadedLibraryName: string; +begin + Result:=''; +end; + procedure TConnectionDef.ApplyParams(Params: TStrings; AConnection: TSQLConnection); begin diff --git a/fpcsrc/packages/fcl-db/src/sqldb/sqlite/Makefile b/fpcsrc/packages/fcl-db/src/sqldb/sqlite/Makefile deleted file mode 100644 index 0e9111e0..00000000 --- a/fpcsrc/packages/fcl-db/src/sqldb/sqlite/Makefile +++ /dev/null @@ -1,2478 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=sqlite3conn sqlite3backup -endif -override INSTALL_FPCPACKAGE=y -ifeq ($(FULL_TARGET),i386-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-win32) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-os2) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-beos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-haiku) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-qnx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netware) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-emx) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-watcom) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-nativent) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-atari) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-palmos) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-wince) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-gba) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-nds) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),arm-symbian) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),avr-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override COMPILER_OPTIONS+=-S2 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override COMPILER_OPTIONS+=-S2 -endif -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -ifeq ($(OS_SOURCE),linux) -ifndef GCCLIBDIR -ifeq ($(CPU_TARGET),i386) -ifneq ($(findstring x86_64,$(shell uname -a)),) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`) -endif -endif -endif -ifeq ($(CPU_TARGET),powerpc64) -ifeq ($(BINUTILSPREFIX),) -GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`) -endif -endif -endif -ifndef GCCLIBDIR -CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(CROSSGCC),) -GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`) -endif -endif -ifndef OTHERLIBDIR -OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }') -endif -endif -ifdef inUnix -ifeq ($(OS_SOURCE),netbsd) -OTHERLIBDIR+=/usr/pkg/lib -endif -export GCCLIBDIR OTHERLIB -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl fcl-xml sqlite -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_FCL-BASE=1 -REQUIRE_PACKAGES_ICONVENC=1 -REQUIRE_PACKAGES_FCL-XML=1 -REQUIRE_PACKAGES_SQLITE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_ICONVENC -PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_ICONVENC),) -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),) -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX) -else -UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_ICONVENC=$(PACKAGEDIR_ICONVENC) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_ICONVENC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE) -endif -else -PACKAGEDIR_ICONVENC= -UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_ICONVENC),) -UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC)) -else -UNITDIR_ICONVENC= -endif -endif -ifdef UNITDIR_ICONVENC -override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC) -endif -ifdef UNITDIR_FPMAKE_ICONVENC -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ICONVENC) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-XML -PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-XML),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML) -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 -$(PACKAGEDIR_FCL-XML)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-XML= -UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-XML),) -UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML)) -else -UNITDIR_FCL-XML= -endif -endif -ifdef UNITDIR_FCL-XML -override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML) -endif -ifdef UNITDIR_FPMAKE_FCL-XML -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML) -endif -endif -ifdef REQUIRE_PACKAGES_SQLITE -PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_SQLITE),) -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX)),) -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX) -else -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE) -endif -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_SQLITE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_SQLITE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_SQLITE)/$(FPCMADE) -endif -else -PACKAGEDIR_SQLITE= -UNITDIR_SQLITE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_SQLITE),) -UNITDIR_SQLITE:=$(firstword $(UNITDIR_SQLITE)) -else -UNITDIR_SQLITE= -endif -endif -ifdef UNITDIR_SQLITE -override COMPILER_UNITDIR+=$(UNITDIR_SQLITE) -endif -ifdef UNITDIR_FPMAKE_SQLITE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_SQLITE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef GCCLIBDIR -override FPCOPT+=-Fl$(GCCLIBDIR) -endif -ifdef OTHERLIBDIR -override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR)) -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: diff --git a/fpcsrc/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp b/fpcsrc/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp index c688ef91..dec58429 100644 --- a/fpcsrc/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp +++ b/fpcsrc/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp @@ -76,7 +76,7 @@ type procedure FreeFldBuffers(cursor : TSQLCursor); override; function LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override; - //if bufsize < 0 -> buffer was to small, should be -bufsize + //if bufsize < 0 -> buffer was too small, should be -bufsize function GetTransactionHandle(trans : TSQLHandle): pointer; override; function Commit(trans : TSQLHandle) : boolean; override; function RollBack(trans : TSQLHandle) : boolean; override; @@ -86,14 +86,20 @@ type procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); override; // New methods procedure execsql(const asql: string); - procedure UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); override; // Differs from SQLDB. + procedure UpdateIndexDefs(IndexDefs : TIndexDefs; TableName : string); override; function RowsAffected(cursor: TSQLCursor): TRowsCount; override; function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; override; function StrToStatementType(s : string) : TStatementType; override; public constructor Create(AOwner : TComponent); override; - function GetInsertID: int64; procedure GetFieldNames(const TableName : string; List : TStrings); override; + function GetConnectionInfo(InfoType:TConnInfoType): string; override; + function GetInsertID: int64; + // See http://www.sqlite.org/c3ref/create_collation.html for detailed information + // If eTextRep=0 a default UTF-8 compare function is used (UTF8CompareCallback) + // Warning: UTF8CompareCallback needs a wide string manager on linux such as cwstring + // Warning: CollationName has to be a UTF-8 string + procedure CreateCollation(const CollationName: string; eTextRep: integer; Arg: Pointer=nil; Compare: xCompare=nil); procedure LoadExtension(LibraryFile: string); published property Options: TSqliteOptions read FOptions write SetOptions; @@ -105,18 +111,21 @@ type class function TypeName: string; override; class function ConnectionClass: TSQLConnectionClass; override; class function Description: string; override; + class function LoadedLibraryName: string; override; end; Var - SQLiteLibraryName : String = sqlite3lib; + SQLiteLibraryName : String absolute sqlite3dyn.SQLiteDefaultLibrary deprecated 'use sqlite3dyn.SQLiteDefaultLibrary instead'; implementation uses dbconst, sysutils, dateutils, FmtBCD; +{$IF NOT DECLARED(JulianEpoch)} // sysutils/datih.inc const - JulianDateShift = 2415018.5; //distance from "julian day 0" (January 1, 4713 BC 12:00AM) to "1899-12-30 00:00AM" + JulianEpoch = TDateTime(-2415018.5); // "julian day 0" is January 1, 4713 BC 12:00AM +{$ENDIF} type @@ -132,7 +141,7 @@ type fparambinding: array of Integer; procedure checkerror(const aerror: integer); procedure bindparams(AParams : TParams); - Procedure Prepare(Buf : String; APArams : TParams); + Procedure Prepare(Buf : String; AParams : TParams); Procedure UnPrepare; Procedure Execute; Function Fetch : Boolean; @@ -171,37 +180,34 @@ Procedure TSQLite3Cursor.bindparams(AParams : TParams); Var I : Integer; P : TParam; - pc : pchar; str1: string; - cu1: currency; do1: double; - parms : array of Integer; wstr1: widestring; begin - for I:=1 to high(fparambinding)+1 do + for I:=1 to high(fparambinding)+1 do begin - P:=aparams[fparambinding[I-1]]; - if P.isnull then + P:=AParams[fparambinding[I-1]]; + if P.IsNull then checkerror(sqlite3_bind_null(fstatement,I)) else case P.datatype of - ftinteger, - ftboolean, - ftsmallint: checkerror(sqlite3_bind_int(fstatement,I,p.asinteger)); - ftword: checkerror(sqlite3_bind_int(fstatement,I,P.asword)); - ftlargeint: checkerror(sqlite3_bind_int64(fstatement,I,P.aslargeint)); - ftbcd, - ftfloat, - ftcurrency: + ftInteger, + ftBoolean, + ftSmallint: checkerror(sqlite3_bind_int(fstatement,I,P.AsInteger)); + ftWord: checkerror(sqlite3_bind_int(fstatement,I,P.AsWord)); + ftLargeint: checkerror(sqlite3_bind_int64(fstatement,I,P.AsLargeint)); + ftBcd, + ftFloat, + ftCurrency: begin do1:= P.AsFloat; checkerror(sqlite3_bind_double(fstatement,I,do1)); end; - ftdatetime, - ftdate, - fttime: begin - do1:= P.AsFloat + JulianDateShift; + ftDateTime, + ftDate, + ftTime: begin + do1:= P.AsFloat - JulianEpoch; checkerror(sqlite3_bind_double(fstatement,I,do1)); end; ftFMTBcd: @@ -209,9 +215,9 @@ begin str1:=BCDToStr(P.AsFMTBCD, Fconnection.FSQLFormatSettings); checkerror(sqlite3_bind_text(fstatement, I, PChar(str1), length(str1), sqlite3_destructor_type(SQLITE_TRANSIENT))); end; - ftstring, + ftString, ftFixedChar, - ftmemo: begin // According to SQLite documentation, CLOB's (ftMemo) have the Text affinity + ftMemo: begin // According to SQLite documentation, CLOB's (ftMemo) have the Text affinity str1:= p.asstring; checkerror(sqlite3_bind_text(fstatement,I,pcharstr(str1), length(str1),@freebindstring)); end; @@ -232,12 +238,12 @@ begin end; end; -Procedure TSQLite3Cursor.Prepare(Buf : String; APArams : TParams); +Procedure TSQLite3Cursor.Prepare(Buf : String; AParams : TParams); begin - if assigned(aparams) and (aparams.count > 0) then - buf := aparams.parsesql(buf,false,false,false,psinterbase,fparambinding); - checkerror(sqlite3_prepare(fhandle,pchar(buf),length(buf),@fstatement,@ftail)); + if assigned(AParams) and (AParams.Count > 0) then + Buf := AParams.ParseSQL(Buf,false,false,false,psInterbase,fparambinding); + checkerror(sqlite3_prepare(fhandle,pchar(Buf),length(Buf),@fstatement,@ftail)); FPrepared:=True; end; @@ -267,8 +273,9 @@ begin {$endif} if (fstate<=sqliteerrormax) then checkerror(sqlite3_reset(fstatement)); + FSelectable :=sqlite3_column_count(fstatement)>0; RowsAffected:=sqlite3_changes(fhandle); - if (fstate=sqlite_row) then + if (fstate=sqlite_row) then fstate:= sqliteerrormax; //first row end; @@ -367,13 +374,14 @@ Type end; Const - FieldMapCount = 26; + FieldMapCount = 28; FieldMap : Array [1..FieldMapCount] of TFieldMap = ( (n:'INT'; t: ftInteger), - (n:'LARGEINT'; t:ftlargeInt), - (n:'BIGINT'; t:ftlargeInt), - (n:'WORD'; t: ftWord), + (n:'LARGEINT'; t:ftLargeInt), + (n:'BIGINT'; t:ftLargeInt), (n:'SMALLINT'; t: ftSmallint), + (n:'TINYINT'; t: ftSmallint), + (n:'WORD'; t: ftWord), (n:'BOOLEAN'; t: ftBoolean), (n:'REAL'; t: ftFloat), (n:'FLOAT'; t: ftFloat), @@ -383,12 +391,13 @@ Const (n:'DATE'; t: ftDate), (n:'TIME'; t: ftTime), (n:'CURRENCY'; t: ftCurrency), + (n:'MONEY'; t: ftCurrency), (n:'VARCHAR'; t: ftString), (n:'CHAR'; t: ftFixedChar), (n:'NUMERIC'; t: ftBCD), (n:'DECIMAL'; t: ftBCD), - (n:'TEXT'; t: ftmemo), - (n:'CLOB'; t: ftmemo), + (n:'TEXT'; t: ftMemo), + (n:'CLOB'; t: ftMemo), (n:'BLOB'; t: ftBlob), (n:'NCHAR'; t: ftFixedWideChar), (n:'NVARCHAR'; t: ftWideString), @@ -407,7 +416,6 @@ var FN,FD : string; ft1 : tfieldtype; size1, size2 : integer; - ar1 : TStringArray; fi : integer; st : psqlite3_stmt; @@ -471,7 +479,7 @@ begin size1 := 255; //sql: if length is omitted then length is 1 size2 := 0; ExtractPrecisionAndScale(FD, size1, size2); - if size1 > dsMaxStringSize then size1 := dsMaxStringSize; + if size1 > MaxSmallint then size1 := MaxSmallint; end; ftBCD: begin size2 := MaxBCDPrecision; //sql: if a precision is omitted, then use implementation-defined @@ -614,7 +622,7 @@ begin begin PDateTime(buffer)^ := sqlite3_column_double(st,fnum); if PDateTime(buffer)^ > 1721059.5 {Julian 01/01/0000} then - PDateTime(buffer)^ := PDateTime(buffer)^ - JulianDateShift; //backward compatibility hack + PDateTime(buffer)^ := PDateTime(buffer)^ + JulianEpoch; //backward compatibility hack end; ftFixedChar, ftString: begin @@ -623,6 +631,7 @@ begin int1:=FieldDef.Size; if int1 > 0 then move(sqlite3_column_text(st,fnum)^,buffer^,int1); + PAnsiChar(buffer + int1)^ := #0; end; ftFmtBCD: begin int1:= sqlite3_column_bytes(st,fnum); @@ -643,11 +652,12 @@ begin ftFixedWideChar, ftWideString: begin - int1 := sqlite3_column_bytes16(st,fnum)+2; //The value returned does not include the zero terminator at the end of the string - if int1>(FieldDef.Size+1)*2 then - int1:=(FieldDef.Size+1)*2; + int1 := sqlite3_column_bytes16(st,fnum); //The value returned does not include the zero terminator at the end of the string + if int1>FieldDef.Size*2 then + int1:=FieldDef.Size*2; if int1 > 0 then move(sqlite3_column_text16(st,fnum)^, buffer^, int1); //Strings returned by sqlite3_column_text() and sqlite3_column_text16(), even empty strings, are always zero terminated. + PWideChar(buffer + int1)^ := #0; end; ftVarBytes, ftBytes: @@ -722,9 +732,10 @@ procedure TSQLite3Connection.DoInternalConnect; var str1: string; begin + Inherited; if Length(databasename)=0 then DatabaseError(SErrNoDatabaseName,self); - InitializeSqlite(SQLiteLibraryName); + InitializeSqlite(SQLiteDefaultLibrary); str1:= databasename; checkerror(sqlite3_open(pchar(str1),@fhandle)); if (Length(Password)>0) and assigned(sqlite3_key) then @@ -736,6 +747,7 @@ end; procedure TSQLite3Connection.DoInternalDisconnect; begin + Inherited; if fhandle <> nil then begin checkerror(sqlite3_close(fhandle)); @@ -877,10 +889,10 @@ begin IXFields:=TStringList.Create; IXFields.Delimiter:=';'; - //primary key fields + //primary key fields; 5th column "pk" is zero for columns that are not part of PK artableinfo := stringsquery('PRAGMA table_info('+TableName+');'); for ii:=low(artableinfo) to high(artableinfo) do - if (high(artableinfo[ii]) >= 5) and (artableinfo[ii][5] = '1') then + if (high(artableinfo[ii]) >= 5) and (artableinfo[ii][5] >= '1') then PKFields.Add(artableinfo[ii][1]); //list of all table indexes @@ -921,7 +933,50 @@ begin GetDBInfo(stColumns,TableName,'name',List); end; -procedure Tsqlite3connection.LoadExtension(Libraryfile: String); +function TSQLite3Connection.GetConnectionInfo(InfoType: TConnInfoType): string; +begin + Result:=''; + try + InitializeSqlite(SQLiteDefaultLibrary); + case InfoType of + citServerType: + Result:=TSQLite3ConnectionDef.TypeName; + citServerVersion, + citClientVersion: + Result:=inttostr(sqlite3_libversion_number()); + citServerVersionString: + Result:=sqlite3_libversion(); + citClientName: + Result:=TSQLite3ConnectionDef.LoadedLibraryName; + else + Result:=inherited GetConnectionInfo(InfoType); + end; + finally + ReleaseSqlite; + end; +end; + +function UTF8CompareCallback(user: pointer; len1: longint; data1: pointer; len2: longint; data2: pointer): longint; cdecl; +var S1, S2: AnsiString; +begin + SetString(S1, data1, len1); + SetString(S2, data2, len2); + Result := UnicodeCompareStr(UTF8Decode(S1), UTF8Decode(S2)); +end; + +procedure TSQLite3Connection.CreateCollation(const CollationName: string; + eTextRep: integer; Arg: Pointer; Compare: xCompare); +begin + if eTextRep = 0 then + begin + eTextRep := SQLITE_UTF8; + Compare := @UTF8CompareCallback; + end; + CheckConnected; + CheckError(sqlite3_create_collation(fhandle, PChar(CollationName), eTextRep, Arg, Compare)); +end; + +procedure TSQLite3Connection.LoadExtension(LibraryFile: String); var LoadResult: integer; begin @@ -972,6 +1027,11 @@ begin Result := 'Connect to a SQLite3 database directly via the client library'; end; +class function TSQLite3ConnectionDef.LoadedLibraryName: string; +begin + Result := SQLiteLoadedLibrary; +end; + initialization RegisterConnection(TSQLite3ConnectionDef); diff --git a/fpcsrc/packages/fcl-db/src/sqlite/Makefile b/fpcsrc/packages/fcl-db/src/sqlite/Makefile deleted file mode 100644 index cadfac74..00000000 --- a/fpcsrc/packages/fcl-db/src/sqlite/Makefile +++ /dev/null @@ -1,2085 +0,0 @@ -# -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2013/01/27] -# -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 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 avr-embedded armeb-linux armeb-embedded mipsel-linux -BSDs = freebsd netbsd openbsd darwin -UNIXs = linux $(BSDs) solaris qnx haiku -LIMIT83fs = go32v2 os2 emx watcom -OSNeedsComspecToRunBatch = go32v2 watcom -FORCE: -.PHONY: FORCE -override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) -ifneq ($(findstring darwin,$(OSTYPE)),) -inUnix=1 #darwin -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -ifeq ($(findstring ;,$(PATH)),) -inUnix=1 -SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) -else -SEARCHPATH:=$(subst ;, ,$(PATH)) -endif -endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) -PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) -ifeq ($(PWD),) -PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) -ifeq ($(PWD),) -$(error You need the GNU utils package to use this Makefile) -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT= -endif -else -PWD:=$(firstword $(PWD)) -SRCEXEEXT=.exe -endif -ifndef inUnix -ifeq ($(OS),Windows_NT) -inWinNT=1 -else -ifdef OS2_SHELL -inOS2=1 -endif -endif -else -ifneq ($(findstring cygdrive,$(PATH)),) -inCygWin=1 -endif -endif -ifdef inUnix -SRCBATCHEXT=.sh -else -ifdef inOS2 -SRCBATCHEXT=.cmd -else -SRCBATCHEXT=.bat -endif -endif -ifdef COMSPEC -ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) -ifndef RUNBATCH -RUNBATCH=$(COMSPEC) /C -endif -endif -endif -ifdef inUnix -PATHSEP=/ -else -PATHSEP:=$(subst /,\,/) -ifdef inCygWin -PATHSEP=/ -endif -endif -ifdef PWD -BASEDIR:=$(subst \,/,$(shell $(PWD))) -ifdef inCygWin -ifneq ($(findstring /cygdrive/,$(BASEDIR)),) -BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR)) -BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR))) -BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR)) -endif -endif -else -BASEDIR=. -endif -ifdef inOS2 -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO=echo -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -endif -override DEFAULT_FPCDIR=../../../.. -ifndef FPC -ifdef PP -FPC=$(PP) -endif -endif -ifndef FPC -FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) -ifneq ($(FPCPROG),) -FPCPROG:=$(firstword $(FPCPROG)) -ifneq ($(CPU_TARGET),) -FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) -else -FPC:=$(shell $(FPCPROG) -PB) -endif -ifneq ($(findstring Error,$(FPC)),) -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -else -ifeq ($(strip $(wildcard $(FPC))),) -FPC:=$(firstword $(FPCPROG)) -endif -endif -else -override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) -endif -endif -override FPC:=$(subst $(SRCEXEEXT),,$(FPC)) -override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT) -FOUNDFPC:=$(strip $(wildcard $(FPC))) -ifeq ($(FOUNDFPC),) -FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))) -ifeq ($(FOUNDFPC),) -$(error Compiler $(FPC) not found) -endif -endif -ifndef FPC_COMPILERINFO -FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO) -endif -ifndef FPC_VERSION -FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO)) -endif -export FPC FPC_VERSION FPC_COMPILERINFO -unexport CHECKDEPEND ALLDEPENDENCIES -ifndef CPU_TARGET -ifdef CPU_TARGET_DEFAULT -CPU_TARGET=$(CPU_TARGET_DEFAULT) -endif -endif -ifndef OS_TARGET -ifdef OS_TARGET_DEFAULT -OS_TARGET=$(OS_TARGET_DEFAULT) -endif -endif -ifndef CPU_SOURCE -CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO)) -endif -ifndef CPU_TARGET -CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO)) -endif -ifndef OS_SOURCE -OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO)) -endif -ifndef OS_TARGET -OS_TARGET:=$(word 5,$(FPC_COMPILERINFO)) -endif -FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifeq ($(CPU_TARGET),armeb) -ARCH=arm -override FPCOPT+=-Cb -else -ifeq ($(CPU_TARGET),armel) -ARCH=arm -override FPCOPT+=-CaEABI -else -ARCH=$(CPU_TARGET) -endif -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -SOURCESUFFIX=$(OS_SOURCE) -else -ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),) -TARGETSUFFIX=$(OS_TARGET) -else -TARGETSUFFIX=$(FULL_TARGET) -endif -SOURCESUFFIX=$(FULL_SOURCE) -endif -ifneq ($(FULL_TARGET),$(FULL_SOURCE)) -CROSSCOMPILE=1 -endif -ifeq ($(findstring makefile,$(MAKECMDGOALS)),) -ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),) -$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first) -endif -endif -ifneq ($(findstring $(OS_TARGET),$(BSDs)),) -BSDhier=1 -endif -ifeq ($(OS_TARGET),linux) -linuxHier=1 -endif -export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE -ifdef FPCDIR -override FPCDIR:=$(subst \,/,$(FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -else -override FPCDIR=wrong -endif -ifdef DEFAULT_FPCDIR -ifeq ($(FPCDIR),wrong) -override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR)) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=wrong -endif -endif -endif -ifeq ($(FPCDIR),wrong) -ifdef inUnix -override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION) -ifeq ($(wildcard $(FPCDIR)/units),) -override FPCDIR=/usr/lib/fpc/$(FPC_VERSION) -endif -else -override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH)))))) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(FPCDIR)/.. -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR:=$(BASEDIR) -ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),) -override FPCDIR=c:/pp -endif -endif -endif -endif -endif -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)) -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -ifeq ($(OS_SOURCE),darwin) -DARWIN2DARWIN=1 -endif -endif -ifndef BINUTILSPREFIX -ifndef CROSSBINDIR -ifdef CROSSCOMPILE -ifndef DARWIN2DARWIN -BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)- -endif -endif -endif -endif -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX)) -ifeq ($(UNITSDIR),) -UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)) -endif -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 -PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) -ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-haiku) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-nativent) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc-wii) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-darwin) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -ifeq ($(FULL_TARGET),mipsel-linux) -override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds -endif -override INSTALL_FPCPACKAGE=y -ifdef REQUIRE_UNITSDIR -override UNITSDIR+=$(REQUIRE_UNITSDIR) -endif -ifdef REQUIRE_PACKAGESDIR -override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) -endif -ifdef ZIPINSTALL -ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) -UNIXHier=1 -endif -else -ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) -UNIXHier=1 -endif -endif -ifndef INSTALL_PREFIX -ifdef PREFIX -INSTALL_PREFIX=$(PREFIX) -endif -endif -ifndef INSTALL_PREFIX -ifdef UNIXHier -INSTALL_PREFIX=/usr/local -else -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=/pp -else -INSTALL_BASEDIR:=/$(PACKAGE_NAME) -endif -endif -endif -export INSTALL_PREFIX -ifdef INSTALL_FPCSUBDIR -export INSTALL_FPCSUBDIR -endif -ifndef DIST_DESTDIR -DIST_DESTDIR:=$(BASEDIR) -endif -export DIST_DESTDIR -ifndef COMPILER_UNITTARGETDIR -ifdef PACKAGEDIR_MAIN -COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) -else -COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) -endif -endif -ifndef COMPILER_TARGETDIR -COMPILER_TARGETDIR=. -endif -ifndef INSTALL_BASEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) -endif -else -INSTALL_BASEDIR:=$(INSTALL_PREFIX) -endif -endif -ifndef INSTALL_BINDIR -ifdef UNIXHier -INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -else -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -ifdef INSTALL_FPCPACKAGE -ifdef CROSSCOMPILE -ifdef CROSSINSTALL -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -else -INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) -endif -endif -endif -endif -ifndef INSTALL_UNITDIR -INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) -ifdef INSTALL_FPCPACKAGE -ifdef PACKAGE_NAME -INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) -endif -endif -endif -ifndef INSTALL_LIBDIR -ifdef UNIXHier -INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib -else -INSTALL_LIBDIR:=$(INSTALL_UNITDIR) -endif -endif -ifndef INSTALL_SOURCEDIR -ifdef UNIXHier -ifdef BSDhier -SRCPREFIXDIR=share/src -else -ifdef linuxHier -SRCPREFIXDIR=share/src -else -SRCPREFIXDIR=src -endif -endif -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -ifdef INSTALL_FPCSUBDIR -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) -endif -else -INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source -endif -endif -endif -ifndef INSTALL_DOCDIR -ifdef UNIXHier -ifdef BSDhier -DOCPREFIXDIR=share/doc -else -ifdef linuxHier -DOCPREFIXDIR=share/doc -else -DOCPREFIXDIR=doc -endif -endif -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) -else -INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc -endif -endif -endif -ifndef INSTALL_EXAMPLEDIR -ifdef UNIXHier -ifdef INSTALL_FPCPACKAGE -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) -endif -endif -else -ifdef BSDhier -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -ifdef linuxHier -INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) -endif -endif -endif -else -ifdef INSTALL_FPCPACKAGE -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) -else -INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples -endif -endif -endif -ifndef INSTALL_DATADIR -INSTALL_DATADIR=$(INSTALL_BASEDIR) -endif -ifndef INSTALL_SHAREDDIR -INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib -endif -ifdef CROSSCOMPILE -ifndef CROSSBINDIR -CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) -ifeq ($(CROSSBINDIR),) -CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) -endif -endif -else -CROSSBINDIR= -endif -BATCHEXT=.bat -LOADEREXT=.as -EXEEXT=.exe -PPLEXT=.ppl -PPUEXT=.ppu -OEXT=.o -ASMEXT=.s -SMARTEXT=.sl -STATICLIBEXT=.a -SHAREDLIBEXT=.so -SHAREDLIBPREFIX=libfp -STATICLIBPREFIX=libp -IMPORTLIBPREFIX=libimp -RSTEXT=.rst -EXEDBGEXT=.dbg -ifeq ($(OS_TARGET),go32v1) -STATICLIBPREFIX= -SHORTSUFFIX=v1 -endif -ifeq ($(OS_TARGET),go32v2) -STATICLIBPREFIX= -SHORTSUFFIX=dos -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -SHORTSUFFIX=wat -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),linux) -BATCHEXT=.sh -EXEEXT= -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) -SHAREDLIBEXT=.dll -SHORTSUFFIX=w32 -endif -ifeq ($(OS_TARGET),os2) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=os2 -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),emx) -BATCHEXT=.cmd -AOUTEXT=.out -STATICLIBPREFIX= -SHAREDLIBEXT=.dll -SHORTSUFFIX=emx -ECHO=echo -IMPORTLIBPREFIX= -endif -ifeq ($(OS_TARGET),amiga) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=amg -endif -ifeq ($(OS_TARGET),morphos) -EXEEXT= -SHAREDLIBEXT=.library -SHORTSUFFIX=mos -endif -ifeq ($(OS_TARGET),atari) -EXEEXT=.ttp -SHORTSUFFIX=ata -endif -ifeq ($(OS_TARGET),beos) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=be -endif -ifeq ($(OS_TARGET),haiku) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=hai -endif -ifeq ($(OS_TARGET),solaris) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=sun -endif -ifeq ($(OS_TARGET),qnx) -BATCHEXT=.sh -EXEEXT= -SHORTSUFFIX=qnx -endif -ifeq ($(OS_TARGET),netware) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nw -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),netwlibc) -EXEEXT=.nlm -STATICLIBPREFIX= -SHORTSUFFIX=nwl -IMPORTLIBPREFIX=imp -endif -ifeq ($(OS_TARGET),macos) -BATCHEXT= -EXEEXT= -DEBUGSYMEXT=.xcoff -SHORTSUFFIX=mac -IMPORTLIBPREFIX=imp -endif -ifneq ($(findstring $(OS_TARGET),darwin iphonesim),) -BATCHEXT=.sh -EXEEXT= -HASSHAREDLIB=1 -SHORTSUFFIX=dwn -EXEDBGEXT=.dSYM -endif -ifeq ($(OS_TARGET),gba) -EXEEXT=.gba -SHAREDLIBEXT=.so -SHORTSUFFIX=gba -endif -ifeq ($(OS_TARGET),symbian) -SHAREDLIBEXT=.dll -SHORTSUFFIX=symbian -endif -ifeq ($(OS_TARGET),NativeNT) -SHAREDLIBEXT=.dll -SHORTSUFFIX=nativent -endif -ifeq ($(OS_TARGET),wii) -EXEEXT=.dol -SHAREDLIBEXT=.so -SHORTSUFFIX=wii -endif -ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) -FPCMADE=fpcmade.$(SHORTSUFFIX) -ZIPSUFFIX=$(SHORTSUFFIX) -ZIPCROSSPREFIX= -ZIPSOURCESUFFIX=src -ZIPEXAMPLESUFFIX=exm -else -FPCMADE=fpcmade.$(TARGETSUFFIX) -ZIPSOURCESUFFIX=.source -ZIPEXAMPLESUFFIX=.examples -ifdef CROSSCOMPILE -ZIPSUFFIX=.$(SOURCESUFFIX) -ZIPCROSSPREFIX=$(TARGETSUFFIX)- -else -ZIPSUFFIX=.$(TARGETSUFFIX) -ZIPCROSSPREFIX= -endif -endif -ifndef ECHO -ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ECHO),) -ECHO= __missing_command_ECHO -else -ECHO:=$(firstword $(ECHO)) -endif -else -ECHO:=$(firstword $(ECHO)) -endif -endif -export ECHO -ifndef DATE -DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(DATE),) -DATE= __missing_command_DATE -else -DATE:=$(firstword $(DATE)) -endif -else -DATE:=$(firstword $(DATE)) -endif -endif -export DATE -ifndef GINSTALL -GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(GINSTALL),) -GINSTALL= __missing_command_GINSTALL -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -else -GINSTALL:=$(firstword $(GINSTALL)) -endif -endif -export GINSTALL -ifndef CPPROG -CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(CPPROG),) -CPPROG= __missing_command_CPPROG -else -CPPROG:=$(firstword $(CPPROG)) -endif -endif -export CPPROG -ifndef RMPROG -RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(RMPROG),) -RMPROG= __missing_command_RMPROG -else -RMPROG:=$(firstword $(RMPROG)) -endif -endif -export RMPROG -ifndef MVPROG -MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MVPROG),) -MVPROG= __missing_command_MVPROG -else -MVPROG:=$(firstword $(MVPROG)) -endif -endif -export MVPROG -ifndef MKDIRPROG -MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(MKDIRPROG),) -MKDIRPROG= __missing_command_MKDIRPROG -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -else -MKDIRPROG:=$(firstword $(MKDIRPROG)) -endif -endif -export MKDIRPROG -ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif -endif -ifndef COPY -COPY:=$(CPPROG) -fp -endif -ifndef COPYTREE -COPYTREE:=$(CPPROG) -Rfp -endif -ifndef MKDIRTREE -MKDIRTREE:=$(MKDIRPROG) -p -endif -ifndef MOVE -MOVE:=$(MVPROG) -f -endif -ifndef DEL -DEL:=$(RMPROG) -f -endif -ifndef DELTREE -DELTREE:=$(RMPROG) -rf -endif -ifndef INSTALL -ifdef inUnix -INSTALL:=$(GINSTALL) -c -m 644 -else -INSTALL:=$(COPY) -endif -endif -ifndef INSTALLEXE -ifdef inUnix -INSTALLEXE:=$(GINSTALL) -c -m 755 -else -INSTALLEXE:=$(COPY) -endif -endif -ifndef MKDIR -MKDIR:=$(GINSTALL) -m 755 -d -endif -export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR -ifndef PPUMOVE -PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(PPUMOVE),) -PPUMOVE= __missing_command_PPUMOVE -else -PPUMOVE:=$(firstword $(PPUMOVE)) -endif -endif -export PPUMOVE -ifndef FPCMAKE -FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(FPCMAKE),) -FPCMAKE= __missing_command_FPCMAKE -else -FPCMAKE:=$(firstword $(FPCMAKE)) -endif -endif -export FPCMAKE -ifndef ZIPPROG -ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(ZIPPROG),) -ZIPPROG= __missing_command_ZIPPROG -else -ZIPPROG:=$(firstword $(ZIPPROG)) -endif -endif -export ZIPPROG -ifndef TARPROG -TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) -ifeq ($(TARPROG),) -TARPROG= __missing_command_TARPROG -else -TARPROG:=$(firstword $(TARPROG)) -endif -else -TARPROG:=$(firstword $(TARPROG)) -endif -endif -export TARPROG -ASNAME=$(BINUTILSPREFIX)as -LDNAME=$(BINUTILSPREFIX)ld -ARNAME=$(BINUTILSPREFIX)ar -RCNAME=$(BINUTILSPREFIX)rc -ifndef ASPROG -ifdef CROSSBINDIR -ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) -else -ASPROG=$(ASNAME) -endif -endif -ifndef LDPROG -ifdef CROSSBINDIR -LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) -else -LDPROG=$(LDNAME) -endif -endif -ifndef RCPROG -ifdef CROSSBINDIR -RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) -else -RCPROG=$(RCNAME) -endif -endif -ifndef ARPROG -ifdef CROSSBINDIR -ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) -else -ARPROG=$(ARNAME) -endif -endif -AS=$(ASPROG) -LD=$(LDPROG) -RC=$(RCPROG) -AR=$(ARPROG) -PPAS=ppas$(SRCBATCHEXT) -ifdef inUnix -LDCONFIG=ldconfig -else -LDCONFIG= -endif -ifdef DATE -DATESTR:=$(shell $(DATE) +%Y%m%d) -else -DATESTR= -endif -ZIPOPT=-9 -ZIPEXT=.zip -ifeq ($(USETAR),bz2) -TAROPT=vj -TAREXT=.tar.bz2 -else -TAROPT=vz -TAREXT=.tar.gz -endif -override REQUIRE_PACKAGES=rtl sqlite fcl-base -ifeq ($(FULL_TARGET),i386-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-go32v2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-win32) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-os2) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-beos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-haiku) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-qnx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netware) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wdosx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-emx) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-watcom) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-nativent) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),i386-iphonesim) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-atari) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),m68k-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-macos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc-wii) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),sparc-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-netbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-solaris) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-openbsd) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-win64) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-palmos) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-wince) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-gba) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-nds) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),arm-symbian) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_UNIVINT=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),avr-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),armeb-embedded) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifeq ($(FULL_TARGET),mipsel-linux) -REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_SQLITE=1 -REQUIRE_PACKAGES_FCL-BASE=1 -endif -ifdef REQUIRE_PACKAGES_RTL -PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_RTL),) -ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) -UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) -else -UNITDIR_RTL=$(PACKAGEDIR_RTL) -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 -$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) -endif -else -PACKAGEDIR_RTL= -UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_RTL),) -UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) -else -UNITDIR_RTL= -endif -endif -ifdef UNITDIR_RTL -override COMPILER_UNITDIR+=$(UNITDIR_RTL) -endif -ifdef UNITDIR_FPMAKE_RTL -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) -endif -endif -ifdef REQUIRE_PACKAGES_SQLITE -PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_SQLITE),) -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX)),) -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX) -else -UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE) -endif -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_SQLITE=$(PACKAGEDIR_SQLITE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_SQLITE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_SQLITE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_SQLITE)/$(FPCMADE) -endif -else -PACKAGEDIR_SQLITE= -UNITDIR_SQLITE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_SQLITE),) -UNITDIR_SQLITE:=$(firstword $(UNITDIR_SQLITE)) -else -UNITDIR_SQLITE= -endif -endif -ifdef UNITDIR_SQLITE -override COMPILER_UNITDIR+=$(UNITDIR_SQLITE) -endif -ifdef UNITDIR_FPMAKE_SQLITE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_SQLITE) -endif -endif -ifdef REQUIRE_PACKAGES_FCL-BASE -PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_FCL-BASE),) -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),) -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX) -else -UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_FCL-BASE=$(PACKAGEDIR_FCL-BASE) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_FCL-BASE)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE) -endif -else -PACKAGEDIR_FCL-BASE= -UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_FCL-BASE),) -UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE)) -else -UNITDIR_FCL-BASE= -endif -endif -ifdef UNITDIR_FCL-BASE -override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE) -endif -ifdef UNITDIR_FPMAKE_FCL-BASE -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-BASE) -endif -endif -ifdef REQUIRE_PACKAGES_UNIVINT -PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_UNIVINT),) -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),) -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX) -else -UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(SOURCESUFFIX) -else -ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX)),) -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT)/units_bs/$(SOURCESUFFIX) -else -UNITDIR_FPMAKE_UNIVINT=$(PACKAGEDIR_UNIVINT) -endif -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_UNIVINT)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE) -endif -else -PACKAGEDIR_UNIVINT= -UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_UNIVINT),) -UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT)) -else -UNITDIR_UNIVINT= -endif -endif -ifdef UNITDIR_UNIVINT -override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT) -endif -ifdef UNITDIR_FPMAKE_UNIVINT -override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_UNIVINT) -endif -endif -ifndef NOCPUDEF -override FPCOPTDEF=$(ARCH) -endif -ifneq ($(OS_TARGET),$(OS_SOURCE)) -override FPCOPT+=-T$(OS_TARGET) -endif -ifneq ($(CPU_TARGET),$(CPU_SOURCE)) -override FPCOPT+=-P$(ARCH) -endif -ifeq ($(OS_SOURCE),openbsd) -override FPCOPT+=-FD$(NEW_BINUTILS_PATH) -override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) -endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif -ifndef CROSSCOMPILE -ifneq ($(BINUTILSPREFIX),) -override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) -endif -endif -ifdef UNITDIR -override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) -endif -ifdef LIBDIR -override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) -endif -ifdef OBJDIR -override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) -endif -ifdef INCDIR -override FPCOPT+=$(addprefix -Fi,$(INCDIR)) -endif -ifdef LINKSMART -override FPCOPT+=-XX -endif -ifdef CREATESMART -override FPCOPT+=-CX -endif -ifdef DEBUG -override FPCOPT+=-gl -override FPCOPTDEF+=DEBUG -endif -ifdef RELEASE -ifneq ($(findstring 2.0.,$(FPC_VERSION)),) -ifeq ($(CPU_TARGET),i386) -FPCCPUOPT:=-OG2p3 -endif -ifeq ($(CPU_TARGET),powerpc) -FPCCPUOPT:=-O1r -endif -else -FPCCPUOPT:=-O2 -endif -override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n -override FPCOPTDEF+=RELEASE -endif -ifdef STRIP -override FPCOPT+=-Xs -endif -ifdef OPTIMIZE -override FPCOPT+=-O2 -endif -ifdef VERBOSE -override FPCOPT+=-vwni -endif -ifdef COMPILER_OPTIONS -override FPCOPT+=$(COMPILER_OPTIONS) -endif -ifdef COMPILER_UNITDIR -override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) -endif -ifdef COMPILER_LIBRARYDIR -override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) -endif -ifdef COMPILER_OBJECTDIR -override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) -endif -ifdef COMPILER_INCLUDEDIR -override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) -endif -ifdef CROSSBINDIR -override FPCOPT+=-FD$(CROSSBINDIR) -endif -ifdef COMPILER_TARGETDIR -override FPCOPT+=-FE$(COMPILER_TARGETDIR) -ifeq ($(COMPILER_TARGETDIR),.) -override TARGETDIRPREFIX= -else -override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ -endif -endif -ifdef COMPILER_UNITTARGETDIR -override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) -ifeq ($(COMPILER_UNITTARGETDIR),.) -override UNITTARGETDIRPREFIX= -else -override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ -endif -else -ifdef COMPILER_TARGETDIR -override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) -override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) -endif -endif -ifdef CREATESHARED -override FPCOPT+=-Cg -ifeq ($(CPU_TARGET),i386) -override FPCOPT+=-Aas -endif -endif -ifeq ($(findstring 2.0.,$(FPC_VERSION)),) -ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),) -ifeq ($(CPU_TARGET),x86_64) -override FPCOPT+=-Cg -endif -endif -endif -ifdef LINKSHARED -endif -ifdef OPT -override FPCOPT+=$(OPT) -endif -ifdef FPCOPTDEF -override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) -endif -ifdef CFGFILE -override FPCOPT+=@$(CFGFILE) -endif -ifdef USEENV -override FPCEXTCMD:=$(FPCOPT) -override FPCOPT:=!FPCEXTCMD -export FPCEXTCMD -endif -override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) -override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) -ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) -override ACROSSCOMPILE=1 -endif -ifdef ACROSSCOMPILE -override FPCOPT+=$(CROSSOPT) -endif -override COMPILER:=$(FPC) $(FPCOPT) -ifeq (,$(findstring -s ,$(COMPILER))) -EXECPPAS= -else -ifeq ($(FULL_SOURCE),$(FULL_TARGET)) -ifdef RUNBATCH -EXECPPAS:=@$(RUNBATCH) $(PPAS) -else -EXECPPAS:=@$(PPAS) -endif -endif -endif -.PHONY: fpc_units -ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),) -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 %.inc $(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)) -endif -ifdef INSTALL_BUILDUNIT -override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) -endif -ifdef INSTALLPPUFILES -override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) -ifneq ($(UNITTARGETDIRPREFIX),) -override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) -override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) -endif -override INSTALL_CREATEPACKAGEFPC=1 -endif -ifdef INSTALLEXEFILES -ifneq ($(TARGETDIRPREFIX),) -override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) -endif -endif -fpc_install: all $(INSTALLTARGET) -ifdef INSTALLEXEFILES - $(MKDIR) $(INSTALL_BINDIR) - $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) -endif -ifdef INSTALL_CREATEPACKAGEFPC -ifdef FPCMAKE -ifdef PACKAGE_VERSION -ifneq ($(wildcard Makefile.fpc),) - $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) Package.fpc $(INSTALL_UNITDIR) -endif -endif -endif -endif -ifdef INSTALLPPUFILES - $(MKDIR) $(INSTALL_UNITDIR) - $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) -ifneq ($(INSTALLPPULINKFILES),) - $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) -endif -ifneq ($(wildcard $(LIB_FULLNAME)),) - $(MKDIR) $(INSTALL_LIBDIR) - $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) -ifdef inUnix - ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) -endif -endif -endif -ifdef INSTALL_FILES - $(MKDIR) $(INSTALL_DATADIR) - $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) -endif -fpc_sourceinstall: distclean - $(MKDIR) $(INSTALL_SOURCEDIR) - $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) -fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) -ifdef HASEXAMPLES - $(MKDIR) $(INSTALL_EXAMPLEDIR) -endif -ifdef EXAMPLESOURCEFILES - $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) -endif -ifdef TARGET_EXAMPLEDIRS - $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) -endif -.PHONY: fpc_clean fpc_cleanall fpc_distclean -ifdef EXEFILES -override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) -override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) -endif -ifdef CLEAN_PROGRAMS -override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) -override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) -endif -ifdef CLEAN_UNITS -override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) -endif -ifdef CLEANPPUFILES -override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) -ifdef DEBUGSYMEXT -override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) -endif -override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) -override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) -endif -fpc_clean: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef CLEANEXEDBGFILES - -$(DELTREE) $(CLEANEXEDBGFILES) -endif -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif -ifdef LIB_NAME - -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) -endif - -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) -fpc_cleanall: $(CLEANTARGET) -ifdef CLEANEXEFILES - -$(DEL) $(CLEANEXEFILES) -endif -ifdef COMPILER_UNITTARGETDIR -ifdef CLEANPPUFILES - -$(DEL) $(CLEANPPUFILES) -endif -ifneq ($(CLEANPPULINKFILES),) - -$(DEL) $(CLEANPPULINKFILES) -endif -ifdef CLEANRSTFILES - -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) -endif -endif -ifdef CLEAN_FILES - -$(DEL) $(CLEAN_FILES) -endif - -$(DELTREE) units - -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) -ifneq ($(PPUEXT),.ppu) - -$(DEL) *.o *.ppu *.a -endif - -$(DELTREE) *$(SMARTEXT) - -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) - -$(DEL) *_ppas$(BATCHEXT) -ifdef AOUTEXT - -$(DEL) *$(AOUTEXT) -endif -ifdef DEBUGSYMEXT - -$(DEL) *$(DEBUGSYMEXT) -endif -fpc_distclean: cleanall -.PHONY: fpc_baseinfo -override INFORULES+=fpc_baseinfo -fpc_baseinfo: - @$(ECHO) - @$(ECHO) == Package info == - @$(ECHO) Package Name..... $(PACKAGE_NAME) - @$(ECHO) Package Version.. $(PACKAGE_VERSION) - @$(ECHO) - @$(ECHO) == Configuration info == - @$(ECHO) - @$(ECHO) FPC.......... $(FPC) - @$(ECHO) FPC Version.. $(FPC_VERSION) - @$(ECHO) Source CPU... $(CPU_SOURCE) - @$(ECHO) Target CPU... $(CPU_TARGET) - @$(ECHO) Source OS.... $(OS_SOURCE) - @$(ECHO) Target OS.... $(OS_TARGET) - @$(ECHO) Full Source.. $(FULL_SOURCE) - @$(ECHO) Full Target.. $(FULL_TARGET) - @$(ECHO) SourceSuffix. $(SOURCESUFFIX) - @$(ECHO) TargetSuffix. $(TARGETSUFFIX) - @$(ECHO) FPC fpmake... $(FPCFPMAKE) - @$(ECHO) - @$(ECHO) == Directory info == - @$(ECHO) - @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) - @$(ECHO) - @$(ECHO) Basedir......... $(BASEDIR) - @$(ECHO) FPCDir.......... $(FPCDIR) - @$(ECHO) CrossBinDir..... $(CROSSBINDIR) - @$(ECHO) UnitsDir........ $(UNITSDIR) - @$(ECHO) PackagesDir..... $(PACKAGESDIR) - @$(ECHO) - @$(ECHO) GCC library..... $(GCCLIBDIR) - @$(ECHO) Other library... $(OTHERLIBDIR) - @$(ECHO) - @$(ECHO) == Tools info == - @$(ECHO) - @$(ECHO) As........ $(AS) - @$(ECHO) Ld........ $(LD) - @$(ECHO) Ar........ $(AR) - @$(ECHO) Rc........ $(RC) - @$(ECHO) - @$(ECHO) Mv........ $(MVPROG) - @$(ECHO) Cp........ $(CPPROG) - @$(ECHO) Rm........ $(RMPROG) - @$(ECHO) GInstall.. $(GINSTALL) - @$(ECHO) Echo...... $(ECHO) - @$(ECHO) Shell..... $(SHELL) - @$(ECHO) Date...... $(DATE) - @$(ECHO) FPCMake... $(FPCMAKE) - @$(ECHO) PPUMove... $(PPUMOVE) - @$(ECHO) Zip....... $(ZIPPROG) - @$(ECHO) - @$(ECHO) == Object info == - @$(ECHO) - @$(ECHO) Target Loaders........ $(TARGET_LOADERS) - @$(ECHO) Target Units.......... $(TARGET_UNITS) - @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) - @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) - @$(ECHO) Target Dirs........... $(TARGET_DIRS) - @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) - @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) - @$(ECHO) - @$(ECHO) Clean Units......... $(CLEAN_UNITS) - @$(ECHO) Clean Files......... $(CLEAN_FILES) - @$(ECHO) - @$(ECHO) Install Units....... $(INSTALL_UNITS) - @$(ECHO) Install Files....... $(INSTALL_FILES) - @$(ECHO) - @$(ECHO) == Install info == - @$(ECHO) - @$(ECHO) DateStr.............. $(DATESTR) - @$(ECHO) ZipName.............. $(ZIPNAME) - @$(ECHO) ZipPrefix............ $(ZIPPREFIX) - @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) - @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) - @$(ECHO) FullZipName.......... $(FULLZIPNAME) - @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) - @$(ECHO) - @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) - @$(ECHO) Install binary dir... $(INSTALL_BINDIR) - @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) - @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) - @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) - @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) - @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) - @$(ECHO) Install data dir..... $(INSTALL_DATADIR) - @$(ECHO) - @$(ECHO) Dist destination dir. $(DIST_DESTDIR) - @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) - @$(ECHO) -.PHONY: fpc_info -fpc_info: $(INFORULES) -.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ - fpc_makefile_dirs -fpc_makefile: - $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc -fpc_makefile_sub1: -ifdef TARGET_DIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) -endif -ifdef TARGET_EXAMPLEDIRS - $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) -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: fpc_all -debug: fpc_debug -smart: fpc_smart -release: fpc_release -units: fpc_units -examples: -shared: fpc_shared -install: fpc_install -sourceinstall: fpc_sourceinstall -exampleinstall: fpc_exampleinstall -distinstall: -zipinstall: -zipsourceinstall: -zipexampleinstall: -zipdistinstall: -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 -ifneq ($(wildcard fpcmake.loc),) -include fpcmake.loc -endif -.NOTPARALLEL: -- cgit v1.2.3