Переглянути джерело

* makefile adaption to be able to cycle compiler and RTL on PowerPC64 target
* some fixes for PowerPC64 target in the code generator and the RTL
* stabs generation for PowerPC64 is okay now (untested)

git-svn-id: trunk@1337 -

tom_at_work 20 роки тому
батько
коміт
f7f0f9c426
100 змінених файлів з 1444 додано та 3659 видалено
  1. 2 2
      .gitattributes
  2. 18 2
      Makefile
  3. 3 0
      Makefile.fpc
  4. 33 3
      compiler/Makefile
  5. 8 2
      compiler/Makefile.fpc
  6. 0 1532
      compiler/dbgstabs.pas
  7. 0 1625
      compiler/powerpc64/cgcpu.pas
  8. 0 309
      compiler/powerpc64/nppccnv.pas
  9. 17 2
      compiler/utils/Makefile
  10. 50 2
      fcl/Makefile
  11. 36 2
      fcl/db/Makefile
  12. 11 2
      fcl/db/dbase/Makefile
  13. 18 2
      fcl/db/interbase/Makefile
  14. 14 2
      fcl/db/memds/Makefile
  15. 21 2
      fcl/db/mysql/Makefile
  16. 11 2
      fcl/db/sdf/Makefile
  17. 25 2
      fcl/db/sqldb/Makefile
  18. 12 2
      fcl/db/sqldb/interbase/Makefile
  19. 12 2
      fcl/db/sqldb/mysql/Makefile
  20. 15 2
      fcl/db/sqldb/postgres/Makefile
  21. 9 2
      fcl/db/sqlite/Makefile
  22. 21 2
      fcl/db/tests/Makefile
  23. 20 2
      fcl/fpcunit/Makefile
  24. 14 2
      fcl/fpcunit/exampletests/Makefile
  25. 16 2
      fcl/image/Makefile
  26. 25 2
      fcl/net/Makefile
  27. 24 2
      fcl/net/tests/Makefile
  28. 14 2
      fcl/passrc/Makefile
  29. 17 2
      fcl/shedit/Makefile
  30. 24 2
      fcl/shedit/gtk/Makefile
  31. 21 2
      fcl/tests/Makefile
  32. 14 2
      fcl/xml/Makefile
  33. 20 2
      fv/Makefile
  34. 9 2
      fv/test/Makefile
  35. 20 2
      ide/Makefile
  36. 17 2
      ide/compiler/Makefile
  37. 19 2
      installer/Makefile
  38. 9 2
      packages/Makefile
  39. 22 2
      packages/base/Makefile
  40. 17 2
      packages/base/gdbint/Makefile
  41. 11 2
      packages/base/ibase/Makefile
  42. 11 2
      packages/base/libasync/Makefile
  43. 8 2
      packages/base/libc/Makefile
  44. 11 2
      packages/base/md5/Makefile
  45. 11 2
      packages/base/mysql/Makefile
  46. 11 2
      packages/base/netdb/Makefile
  47. 11 2
      packages/base/odbc/Makefile
  48. 14 2
      packages/base/oracle/Makefile
  49. 22 2
      packages/base/oracle/example/Makefile
  50. 11 2
      packages/base/pasjpeg/Makefile
  51. 11 2
      packages/base/paszlib/Makefile
  52. 11 2
      packages/base/postgres/Makefile
  53. 8 2
      packages/base/pthreads/Makefile
  54. 14 2
      packages/base/regexpr/Makefile
  55. 8 2
      packages/base/sqlite/Makefile
  56. 31 2
      packages/extra/Makefile
  57. 15 2
      packages/extra/amunits/Makefile
  58. 17 2
      packages/extra/amunits/units/Makefile
  59. 17 2
      packages/extra/amunits/utilunits/Makefile
  60. 8 2
      packages/extra/bfd/Makefile
  61. 14 2
      packages/extra/cdrom/Makefile
  62. 18 2
      packages/extra/forms/Makefile
  63. 10 2
      packages/extra/forms/demo/Makefile
  64. 24 2
      packages/extra/fpgtk/Makefile
  65. 11 2
      packages/extra/gdbm/Makefile
  66. 11 2
      packages/extra/ggi/Makefile
  67. 10 2
      packages/extra/gnome1/Makefile
  68. 20 2
      packages/extra/gnome1/gconf/Makefile
  69. 15 2
      packages/extra/gnome1/gconf/examples/Makefile
  70. 15 2
      packages/extra/gnome1/gnome/Makefile
  71. 21 2
      packages/extra/gnome1/zvt/Makefile
  72. 17 2
      packages/extra/gnome1/zvt/examples/Makefile
  73. 25 2
      packages/extra/gtk/Makefile
  74. 20 2
      packages/extra/gtk/examples/Makefile
  75. 7 2
      packages/extra/gtk/examples/tutorial/Makefile
  76. 13 2
      packages/extra/gtk/gtkgl/Makefile
  77. 20 2
      packages/extra/gtk2/Makefile
  78. 19 2
      packages/extra/gtk2/examples/Makefile
  79. 9 2
      packages/extra/gtk2/examples/gettingstarted/Makefile
  80. 9 2
      packages/extra/gtk2/examples/gtk_demo/Makefile
  81. 11 2
      packages/extra/gtk2/examples/gtkglext/Makefile
  82. 9 2
      packages/extra/gtk2/examples/helloworld/Makefile
  83. 9 2
      packages/extra/gtk2/examples/helloworld2/Makefile
  84. 9 2
      packages/extra/gtk2/examples/plugins/Makefile
  85. 9 2
      packages/extra/gtk2/examples/scribble_simple/Makefile
  86. 14 2
      packages/extra/imlib/Makefile
  87. 11 2
      packages/extra/libgd/Makefile
  88. 9 2
      packages/extra/libpng/Makefile
  89. 11 2
      packages/extra/ncurses/Makefile
  90. 11 2
      packages/extra/newt/Makefile
  91. 15 2
      packages/extra/opengl/Makefile
  92. 13 2
      packages/extra/opengl/examples/Makefile
  93. 12 2
      packages/extra/os2units/Makefile
  94. 11 2
      packages/extra/os2units/clkdll/Makefile
  95. 11 2
      packages/extra/os2units/ftpapi/Makefile
  96. 8 2
      packages/extra/os2units/hwvideo/Makefile
  97. 14 2
      packages/extra/os2units/lvm/Makefile
  98. 8 2
      packages/extra/os2units/lvm/tests/Makefile
  99. 14 2
      packages/extra/os2units/mmtk/Makefile
  100. 8 2
      packages/extra/os2units/mmtk/tests/Makefile

+ 2 - 2
.gitattributes

@@ -4084,7 +4084,6 @@ rtl/powerpc/makefile.cpu -text
 rtl/powerpc/math.inc svneol=native#text/plain
 rtl/powerpc/mathu.inc svneol=native#text/plain
 rtl/powerpc/mathuh.inc svneol=native#text/plain
-rtl/powerpc/powerpc.inc svneol=native#text/plain
 rtl/powerpc/set.inc svneol=native#text/plain
 rtl/powerpc/setjump.inc svneol=native#text/plain
 rtl/powerpc/setjumph.inc svneol=native#text/plain
@@ -4094,10 +4093,11 @@ rtl/powerpc/strlen.inc svneol=native#text/plain
 rtl/powerpc/strpas.inc svneol=native#text/plain
 rtl/powerpc/sysutilp.inc svneol=native#text/plain
 rtl/powerpc64/int64p.inc svneol=native#text/plain
+rtl/powerpc64/makefile.cpu -text
 rtl/powerpc64/math.inc svneol=native#text/plain
 rtl/powerpc64/mathu.inc svneol=native#text/plain
 rtl/powerpc64/mathuh.inc svneol=native#text/plain
-rtl/powerpc64/powerpc.inc svneol=native#text/plain
+rtl/powerpc64/powerpc64.inc -text
 rtl/powerpc64/set.inc svneol=native#text/plain
 rtl/powerpc64/setjump.inc svneol=native#text/plain
 rtl/powerpc64/setjumph.inc svneol=native#text/plain

+ 18 - 2
Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/09/02]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: help
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -255,6 +255,9 @@ endif
 ifeq ($(CPU_TARGET),powerpc)
 PPSUF=ppc
 endif
+ifeq ($(CPU_TARGET),powerpc64)
+PPSUF=ppc64
+endif
 ifeq ($(CPU_TARGET),alpha)
 PPSUF=axp
 endif
@@ -436,6 +439,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1983,6 +1989,16 @@ TARGET_DIRS_PACKAGES=1
 TARGET_DIRS_IDE=1
 TARGET_DIRS_INSTALLER=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_FCL=1
+TARGET_DIRS_FV=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_IDE=1
+TARGET_DIRS_INSTALLER=1
+endif
 ifdef TARGET_DIRS_COMPILER
 compiler_all:
 	$(MAKE) -C compiler all

+ 3 - 0
Makefile.fpc

@@ -48,6 +48,9 @@ endif
 ifeq ($(CPU_TARGET),powerpc)
 PPSUF=ppc
 endif
+ifeq ($(CPU_TARGET),powerpc64)
+PPSUF=ppc64
+endif
 ifeq ($(CPU_TARGET),alpha)
 PPSUF=axp
 endif

+ 33 - 3
compiler/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/09/08]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -233,7 +233,7 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/ext
 override PACKAGE_NAME=compiler
 override PACKAGE_VERSION=2.0.0
 unexport FPC_VERSION FPC_COMPILERINFO
-CYCLETARGETS=i386 powerpc sparc arm x86_64
+CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64
 ALLTARGETS=$(CYCLETARGETS) m68k
 ifdef ALPHA
 PPC_TARGET=alpha
@@ -241,6 +241,9 @@ endif
 ifdef POWERPC
 PPC_TARGET=powerpc
 endif
+ifdef POWERPC64
+PPC_TARGET=powerpc64
+endif
 ifdef SPARC
 PPC_TARGET=sparc
 endif
@@ -289,6 +292,9 @@ endif
 ifeq ($(PPC_TARGET),powerpc)
 CPUSUF=ppc
 endif
+ifeq ($(PPC_TARGET),powerpc64)
+CPUSUF=ppc64
+endif
 ifeq ($(PPC_TARGET),sparc)
 CPUSUF=sparc
 endif
@@ -442,6 +448,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=utils
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=utils
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_PROGRAMS+=pp
 endif
@@ -550,6 +559,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=pp
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=pp
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(PPC_TARGET)
@@ -659,6 +671,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_INCLUDEDIR+=$(PPC_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=$(PPC_TARGET)
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
@@ -767,6 +782,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -875,6 +893,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
@@ -983,6 +1004,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1820,6 +1844,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2470,6 +2497,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_UTILS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_UTILS=1
+endif
 ifdef TARGET_DIRS_UTILS
 utils_all:
 	$(MAKE) -C utils all

+ 8 - 2
compiler/Makefile.fpc

@@ -32,18 +32,21 @@ fpcdir=..
 unexport FPC_VERSION FPC_COMPILERINFO
 
 # Which platforms are ready for inclusion in the cycle
-CYCLETARGETS=i386 powerpc sparc arm x86_64
+CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64
 
 # All supported targets used for clean
 ALLTARGETS=$(CYCLETARGETS) m68k
 
-# Allow ALPHA, POWERPC, M68K, I386 defines for target cpu
+# Allow ALPHA, POWERPC, POWERPC64, M68K, I386 defines for target cpu
 ifdef ALPHA
 PPC_TARGET=alpha
 endif
 ifdef POWERPC
 PPC_TARGET=powerpc
 endif
+ifdef POWERPC64
+PPC_TARGET=powerpc64
+endif
 ifdef SPARC
 PPC_TARGET=sparc
 endif
@@ -118,6 +121,9 @@ endif
 ifeq ($(PPC_TARGET),powerpc)
 CPUSUF=ppc
 endif
+ifeq ($(PPC_TARGET),powerpc64)
+CPUSUF=ppc64
+endif
 ifeq ($(PPC_TARGET),sparc)
 CPUSUF=sparc
 endif

+ 0 - 1532
compiler/dbgstabs.pas

@@ -1,1532 +0,0 @@
-{
-    Copyright (c) 2003-2004 by Peter Vreman and Florian Klaempfl
-
-    This units contains support for STABS debug info generation
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- ****************************************************************************
-}
-unit dbgstabs;
-
-{$i fpcdefs.inc}
-
-interface
-
-    uses
-      cclasses,
-      dbgbase,
-      symtype,symdef,symsym,symtable,symbase,
-      aasmtai;
-
-    type
-      TDebugInfoStabs=class(TDebugInfo)
-      private
-        writing_def_stabs  : boolean;
-        global_stab_number : word;
-        { tsym writing }
-        function  sym_var_value(const s:string;arg:pointer):string;
-        function  sym_stabstr_evaluate(sym:tsym;const s:string;const vars:array of string):Pchar;
-        procedure write_symtable_syms(list:taasmoutput;st:tsymtable);
-        { tdef writing }
-        function  def_stab_number(def:tdef):string;
-        function  def_stab_classnumber(def:tobjectdef):string;
-        function  def_var_value(const s:string;arg:pointer):string;
-        function  def_stabstr_evaluate(def:tdef;const s:string;const vars:array of string):Pchar;
-        procedure field_add_stabstr(p:Tnamedindexitem;arg:pointer);
-        procedure method_add_stabstr(p:Tnamedindexitem;arg:pointer);
-        function  def_stabstr(def:tdef):pchar;
-        procedure write_def_stabstr(list:taasmoutput;def:tdef);
-        procedure field_write_defs(p:Tnamedindexitem;arg:pointer);
-        procedure method_write_defs(p :tnamedindexitem;arg:pointer);
-        procedure write_symtable_defs(list:taasmoutput;st:tsymtable);
-      public
-        procedure insertsym(list:taasmoutput;sym:tsym);override;
-        procedure insertdef(list:taasmoutput;def:tdef);override;
-        procedure insertvmt(list:taasmoutput;objdef:tobjectdef);override;
-        procedure insertmoduletypes(list:taasmoutput);override;
-        procedure insertprocstart(list:taasmoutput);override;
-        procedure insertprocend(list:taasmoutput);override;
-        procedure insertmodulestart(list:taasmoutput);override;
-        procedure insertmoduleend(list:taasmoutput);override;
-        procedure insertlineinfo(list:taasmoutput);override;
-        procedure referencesections(list:taasmoutput);override;
-      end;
-
-implementation
-
-    uses
-      strings,cutils,
-      systems,globals,globtype,verbose,
-      symconst,defutil,
-      cpuinfo,cpubase,cgbase,paramgr,
-      aasmbase,procinfo,
-      finput,fmodule,ppu;
-
-    const
-      memsizeinc = 512;
-
-      N_GSYM = $20;
-      N_STSYM = 38;     { initialized const }
-      N_LCSYM = 40;     { non initialized variable}
-      N_Function = $24; { function or const }
-      N_TextLine = $44;
-      N_DataLine = $46;
-      N_BssLine = $48;
-      N_RSYM = $40;     { register variable }
-      N_LSYM = $80;
-      N_tsym = 160;
-      N_SourceFile = $64;
-      N_IncludeFile = $84;
-      N_BINCL = $82;
-      N_EINCL = $A2;
-      N_EXCL  = $C2;
-
-      tagtypes = [
-        recorddef,
-        enumdef,
-        stringdef,
-        filedef,
-        objectdef
-      ];
-
-    type
-       get_var_value_proc=function(const s:string;arg:pointer):string of object;
-
-       Trecord_stabgen_state=record
-          stabstring:Pchar;
-          stabsize,staballoc,recoffset:integer;
-       end;
-       Precord_stabgen_state=^Trecord_stabgen_state;
-
-
-    function string_evaluate(s:string;get_var_value:get_var_value_proc;
-                             get_var_value_arg:pointer;
-                             const vars:array of string):Pchar;
-
-    (*
-     S contains a prototype of a result. Stabstr_evaluate will expand
-     variables and parameters.
-
-     Output is s in ASCIIZ format, with the following expanded:
-
-     ${varname}   - The variable name is expanded.
-     $n           - The parameter n is expanded.
-     $$           - Is expanded to $
-    *)
-
-    const maxvalue=9;
-          maxdata=1023;
-
-    var i,j:byte;
-        varname:string[63];
-        varno,varcounter:byte;
-        varvalues:array[0..9] of Pstring;
-        {1 kb of parameters is the limit. 256 extra bytes are allocated to
-         ensure buffer integrity.}
-        varvaluedata:array[0..maxdata+256] of char;
-        varptr:Pchar;
-        varidx : byte;
-        len:cardinal;
-        r:Pchar;
-
-    begin
-      {Two pass approach, first, calculate the length and receive variables.}
-      i:=1;
-      len:=0;
-      varcounter:=0;
-      varptr:=@varvaluedata;
-      while i<=length(s) do
-        begin
-          if (s[i]='$') and (i<length(s)) then
-            begin
-             if s[i+1]='$' then
-               begin
-                 inc(len);
-                 inc(i);
-               end
-             else if (s[i+1]='{') and (length(s)>2) and (i<length(s)-2) then
-               begin
-                 varname:='';
-                 inc(i,2);
-                 repeat
-                   inc(varname[0]);
-                   varname[length(varname)]:=s[i];
-                   s[i]:=char(varcounter);
-                   inc(i);
-                 until s[i]='}';
-                 varvalues[varcounter]:=Pstring(varptr);
-                 if varptr>@varvaluedata+maxdata then
-                   internalerrorproc(200411152);
-                 Pstring(varptr)^:=get_var_value(varname,get_var_value_arg);
-                 inc(len,length(Pstring(varptr)^));
-                 inc(varptr,length(Pstring(varptr)^)+1);
-                 inc(varcounter);
-               end
-             else if s[i+1] in ['1'..'9'] then
-               begin
-                 varidx:=byte(s[i+1])-byte('1');
-                 if varidx>high(vars) then
-                   internalerror(200509263);
-                 inc(len,length(vars[varidx]));
-                 inc(i);
-               end;
-            end
-          else
-            inc(len);
-          inc(i);
-        end;
-
-      {Second pass, writeout result.}
-      getmem(r,len+1);
-      string_evaluate:=r;
-      i:=1;
-      while i<=length(s) do
-        begin
-          if (s[i]='$') and (i<length(s)) then
-            begin
-             if s[i+1]='$' then
-               begin
-                 r^:='$';
-                 inc(r);
-                 inc(i);
-               end
-             else if (s[i+1]='{') and (length(s)>2) and (i<length(s)-2) then
-               begin
-                 varname:='';
-                 inc(i,2);
-                 varno:=byte(s[i]);
-                 repeat
-                   inc(i);
-                 until s[i]='}';
-                 for j:=1 to length(varvalues[varno]^) do
-                   begin
-                     r^:=varvalues[varno]^[j];
-                     inc(r);
-                   end;
-               end
-             else if s[i+1] in ['0'..'9'] then
-               begin
-                 for j:=1 to length(vars[byte(s[i+1])-byte('1')]) do
-                   begin
-                     r^:=vars[byte(s[i+1])-byte('1')][j];
-                     inc(r);
-                   end;
-                 inc(i);
-               end
-            end
-          else
-            begin
-              r^:=s[i];
-              inc(r);
-            end;
-          inc(i);
-        end;
-      r^:=#0;
-    end;
-
-
-{****************************************************************************
-                               TDef support
-****************************************************************************}
-
-    function TDebugInfoStabs.def_stab_number(def:tdef):string;
-      begin
-        { procdefs only need a number, mark them as already written
-          so they won't be written implicitly }
-        if (def.deftype=procdef) then
-          def.stab_state:=stab_state_written;
-        { Stab must already be written, or we must be busy writing it }
-        if writing_def_stabs and
-           not(def.stab_state in [stab_state_writing,stab_state_written]) then
-          internalerror(200403091);
-        { Keep track of used stabs, this info is only usefull for stabs
-          referenced by the symbols. Definitions will always include all
-          required stabs }
-        if def.stab_state=stab_state_unused then
-          def.stab_state:=stab_state_used;
-        { Need a new number? }
-        if def.stab_number=0 then
-          begin
-            inc(global_stab_number);
-            { classes require 2 numbers }
-            if is_class(def) then
-              inc(global_stab_number);
-            def.stab_number:=global_stab_number;
-          end;
-        result:=tostr(def.stab_number);
-      end;
-
-
-    function TDebugInfoStabs.def_stab_classnumber(def:tobjectdef):string;
-      begin
-        if def.stab_number=0 then
-          def_stab_number(def);
-        result:=tostr(def.stab_number-1);
-      end;
-
-
-    function TDebugInfoStabs.def_var_value(const s:string;arg:pointer):string;
-      var
-        def : tdef;
-      begin
-        def:=tdef(arg);
-        result:='';
-        if s='numberstring' then
-          result:=def_stab_number(def)
-        else if s='sym_name' then
-          begin
-            if assigned(def.typesym) then
-               result:=Ttypesym(def.typesym).name;
-          end
-        else if s='N_LSYM' then
-          result:=tostr(N_LSYM)
-        else if s='savesize' then
-          result:=tostr(def.size);
-      end;
-
-
-    function TDebugInfoStabs.def_stabstr_evaluate(def:tdef;const s:string;const vars:array of string):Pchar;
-      begin
-        result:=string_evaluate(s,@def_var_value,def,vars);
-      end;
-
-
-    procedure TDebugInfoStabs.field_add_stabstr(p:Tnamedindexitem;arg:pointer);
-      var
-        newrec  : Pchar;
-        spec    : string[3];
-        varsize : aint;
-        state   : Precord_stabgen_state;
-      begin
-        state:=arg;
-        { static variables from objects are like global objects }
-        if (Tsym(p).typ=fieldvarsym) and
-           not(sp_static in Tsym(p).symoptions) then
-          begin
-            if ([sp_protected,sp_strictprotected]*tsym(p).symoptions)<>[] then
-              spec:='/1'
-            else if ([sp_private,sp_strictprivate]*tsym(p).symoptions)<>[] then
-              spec:='/0'
-            else
-              spec:='';
-            varsize:=tfieldvarsym(p).vartype.def.size;
-            { open arrays made overflows !! }
-            if varsize>$fffffff then
-              varsize:=$fffffff;
-            newrec:=def_stabstr_evaluate(nil,'$1:$2,$3,$4;',[p.name,
-                                     spec+def_stab_number(tfieldvarsym(p).vartype.def),
-                                     tostr(tfieldvarsym(p).fieldoffset*8),tostr(varsize*8)]);
-            if state^.stabsize+strlen(newrec)>=state^.staballoc-256 then
-              begin
-                inc(state^.staballoc,memsizeinc);
-                reallocmem(state^.stabstring,state^.staballoc);
-              end;
-            strcopy(state^.stabstring+state^.stabsize,newrec);
-            inc(state^.stabsize,strlen(newrec));
-            strdispose(newrec);
-            {This should be used for case !!}
-            inc(state^.recoffset,Tfieldvarsym(p).vartype.def.size);
-          end;
-      end;
-
-
-    procedure TDebugInfoStabs.method_add_stabstr(p:Tnamedindexitem;arg:pointer);
-      var virtualind,argnames : string;
-          newrec : pchar;
-          pd     : tprocdef;
-          lindex : longint;
-          arglength : byte;
-          sp : char;
-          state:^Trecord_stabgen_state;
-          olds:integer;
-          i : integer;
-          parasym : tparavarsym;
-      begin
-        state:=arg;
-        if tsym(p).typ = procsym then
-         begin
-           pd := tprocsym(p).first_procdef;
-           if (po_virtualmethod in pd.procoptions) then
-             begin
-               lindex := pd.extnumber;
-               {doesnt seem to be necessary
-               lindex := lindex or $80000000;}
-               virtualind := '*'+tostr(lindex)+';'+def_stab_classnumber(pd._class)+';'
-             end
-            else
-             virtualind := '.';
-
-            { used by gdbpas to recognize constructor and destructors }
-            if (pd.proctypeoption=potype_constructor) then
-              argnames:='__ct__'
-            else if (pd.proctypeoption=potype_destructor) then
-              argnames:='__dt__'
-            else
-              argnames := '';
-
-           { arguments are not listed here }
-           {we don't need another definition}
-            for i:=0 to pd.paras.count-1 do
-              begin
-                parasym:=tparavarsym(pd.paras[i]);
-                if Parasym.vartype.def.deftype = formaldef then
-                  begin
-                    case Parasym.varspez of
-                      vs_var :
-                        argnames := argnames+'3var';
-                      vs_const :
-                        argnames:=argnames+'5const';
-                      vs_out :
-                        argnames:=argnames+'3out';
-                    end;
-                  end
-                else
-                  begin
-                    { if the arg definition is like (v: ^byte;..
-                    there is no sym attached to data !!! }
-                    if assigned(Parasym.vartype.def.typesym) then
-                      begin
-                        arglength := length(Parasym.vartype.def.typesym.name);
-                        argnames := argnames + tostr(arglength)+Parasym.vartype.def.typesym.name;
-                      end
-                    else
-                      argnames:=argnames+'11unnamedtype';
-                  end;
-              end;
-           { here 2A must be changed for private and protected }
-           { 0 is private 1 protected and 2 public }
-           if ([sp_private,sp_strictprivate]*tsym(p).symoptions)<>[] then
-             sp:='0'
-           else if ([sp_protected,sp_strictprotected]*tsym(p).symoptions)<>[] then
-             sp:='1'
-           else
-             sp:='2';
-           newrec:=def_stabstr_evaluate(nil,'$1::$2=##$3;:$4;$5A$6;',[p.name,def_stab_number(pd),
-                                    def_stab_number(pd.rettype.def),argnames,sp,
-                                    virtualind]);
-           { get spare place for a string at the end }
-           olds:=state^.stabsize;
-           inc(state^.stabsize,strlen(newrec));
-           if state^.stabsize>=state^.staballoc-256 then
-             begin
-                inc(state^.staballoc,memsizeinc);
-                reallocmem(state^.stabstring,state^.staballoc);
-             end;
-           strcopy(state^.stabstring+olds,newrec);
-           strdispose(newrec);
-           {This should be used for case !!
-           RecOffset := RecOffset + pd.size;}
-         end;
-      end;
-
-
-    function TDebugInfoStabs.def_stabstr(def:tdef):pchar;
-
-        function stringdef_stabstr(def:tstringdef):pchar;
-          var
-            slen : aint;
-            bytest,charst,longst : string;
-          begin
-            case def.string_typ of
-              st_shortstring:
-                begin
-                  { fix length of openshortstring }
-                  slen:=def.len;
-                  if slen=0 then
-                    slen:=255;
-                  charst:=def_stab_number(cchartype.def);
-                  bytest:=def_stab_number(u8inttype.def);
-                  result:=def_stabstr_evaluate(def,'s$1length:$2,0,8;st:ar$2;1;$3;$4,8,$5;;',
-                              [tostr(slen+1),bytest,tostr(slen),charst,tostr(slen*8)]);
-                end;
-              st_longstring:
-                begin
-                  charst:=def_stab_number(cchartype.def);
-                  bytest:=def_stab_number(u8inttype.def);
-                  longst:=def_stab_number(u32inttype.def);
-                  result:=def_stabstr_evaluate(def,'s$1length:$2,0,32;dummy:$6,32,8;st:ar$2;1;$3;$4,40,$5;;',
-                              [tostr(def.len+5),longst,tostr(def.len),charst,tostr(def.len*8),bytest]);
-               end;
-             st_ansistring:
-               begin
-                 { looks like a pchar }
-                 charst:=def_stab_number(cchartype.def);
-                 result:=strpnew('*'+charst);
-               end;
-             st_widestring:
-               begin
-                 { looks like a pwidechar }
-                 charst:=def_stab_number(cwidechartype.def);
-                 result:=strpnew('*'+charst);
-               end;
-            end;
-          end;
-
-        function enumdef_stabstr(def:tenumdef):pchar;
-          var
-            st : Pchar;
-            p : Tenumsym;
-            s : string;
-            memsize,
-            stl : aint;
-          begin
-            memsize:=memsizeinc;
-            getmem(st,memsize);
-            { we can specify the size with @s<size>; prefix PM }
-            if def.size <> std_param_align then
-              strpcopy(st,'@s'+tostr(def.size*8)+';e')
-            else
-              strpcopy(st,'e');
-            p := tenumsym(def.firstenum);
-            stl:=strlen(st);
-            while assigned(p) do
-              begin
-                s :=p.name+':'+tostr(p.value)+',';
-                { place for the ending ';' also }
-                if (stl+length(s)+1>=memsize) then
-                  begin
-                    inc(memsize,memsizeinc);
-                    reallocmem(st,memsize);
-                  end;
-                strpcopy(st+stl,s);
-                inc(stl,length(s));
-                p:=p.nextenum;
-              end;
-            st[stl]:=';';
-            st[stl+1]:=#0;
-            reallocmem(st,stl+2);
-            result:=st;
-          end;
-
-        function orddef_stabstr(def:torddef):pchar;
-          begin
-            if cs_gdb_valgrind in aktglobalswitches then
-              begin
-                case def.typ of
-                  uvoid :
-                    result:=strpnew(def_stab_number(def));
-                  bool8bit,
-                  bool16bit,
-                  bool32bit :
-                    result:=def_stabstr_evaluate(def,'r${numberstring};0;255;',[]);
-                  u32bit,
-                  s64bit,
-                  u64bit :
-                    result:=def_stabstr_evaluate(def,'r${numberstring};0;-1;',[]);
-                  else
-                    result:=def_stabstr_evaluate(def,'r${numberstring};$1;$2;',[tostr(longint(def.low)),tostr(longint(def.high))]);
-                end;
-              end
-            else
-              begin
-                case def.typ of
-                  uvoid :
-                    result:=strpnew(def_stab_number(def));
-                  uchar :
-                    result:=strpnew('-20;');
-                  uwidechar :
-                    result:=strpnew('-30;');
-                  bool8bit :
-                    result:=strpnew('-21;');
-                  bool16bit :
-                    result:=strpnew('-22;');
-                  bool32bit :
-                    result:=strpnew('-23;');
-                  u64bit :
-                    result:=strpnew('-32;');
-                  s64bit :
-                    result:=strpnew('-31;');
-                  {u32bit : result:=def_stab_number(s32inttype.def)+';0;-1;'); }
-                  else
-                    result:=def_stabstr_evaluate(def,'r${numberstring};$1;$2;',[tostr(longint(def.low)),tostr(longint(def.high))]);
-                end;
-             end;
-          end;
-
-        function floatdef_stabstr(def:tfloatdef):Pchar;
-          begin
-            case def.typ of
-              s32real,
-              s64real,
-              s80real:
-                result:=def_stabstr_evaluate(def,'r$1;${savesize};0;',[def_stab_number(s32inttype.def)]);
-              s64currency,
-              s64comp:
-                result:=def_stabstr_evaluate(def,'r$1;-${savesize};0;',[def_stab_number(s32inttype.def)]);
-              else
-                internalerror(200509261);
-            end;
-          end;
-
-        function filedef_stabstr(def:tfiledef):pchar;
-          begin
-{$ifdef cpu64bit}
-            result:=def_stabstr_evaluate(def,'s${savesize}HANDLE:$1,0,32;MODE:$1,32,32;RECSIZE:$2,64,64;'+
-                                     '_PRIVATE:ar$1;1;64;$3,128,256;USERDATA:ar$1;1;16;$3,384,128;'+
-                                     'NAME:ar$1;0;255;$4,512,2048;;',[def_stab_number(s32inttype.def),
-                                     def_stab_number(s64inttype.def),
-                                     def_stab_number(u8inttype.def),
-                                     def_stab_number(cchartype.def)]);
-{$else cpu64bit}
-            result:=def_stabstr_evaluate(def,'s${savesize}HANDLE:$1,0,32;MODE:$1,32,32;RECSIZE:$1,64,32;'+
-                                     '_PRIVATE:ar$1;1;32;$3,96,256;USERDATA:ar$1;1;16;$2,352,128;'+
-                                     'NAME:ar$1;0;255;$3,480,2048;;',[def_stab_number(s32inttype.def),
-                                     def_stab_number(u8inttype.def),
-                                     def_stab_number(cchartype.def)]);
-{$endif cpu64bit}
-          end;
-
-        function procdef_stabstr(def:tprocdef):pchar;
-          Var
-            RType : Char;
-            Obj,Info : String;
-            stabsstr : string;
-            p : pchar;
-          begin
-            obj := def.procsym.name;
-            info := '';
-            if (po_global in def.procoptions) then
-              RType := 'F'
-            else
-              RType := 'f';
-            if assigned(def.owner) then
-             begin
-               if (def.owner.symtabletype = objectsymtable) then
-                 obj := def.owner.name^+'__'+def.procsym.name;
-               if not(cs_gdb_valgrind in aktglobalswitches) and
-                  (def.owner.symtabletype=localsymtable) and
-                  assigned(def.owner.defowner) and
-                  assigned(tprocdef(def.owner.defowner).procsym) then
-                 info := ','+def.procsym.name+','+tprocdef(def.owner.defowner).procsym.name;
-             end;
-            stabsstr:=def.mangledname;
-            getmem(p,length(stabsstr)+255);
-            strpcopy(p,'"'+obj+':'+RType
-                  +def_stab_number(def.rettype.def)+info+'",'+tostr(n_function)
-                  +',0,'+
-                  tostr(def.fileinfo.line)
-                  +',');
-            strpcopy(strend(p),stabsstr);
-            result:=strnew(p);
-            freemem(p,length(stabsstr)+255);
-          end;
-
-        function recorddef_stabstr(def:trecorddef):pchar;
-          var
-            state : Trecord_stabgen_state;
-          begin
-            getmem(state.stabstring,memsizeinc);
-            state.staballoc:=memsizeinc;
-            strpcopy(state.stabstring,'s'+tostr(def.size));
-            state.recoffset:=0;
-            state.stabsize:=strlen(state.stabstring);
-            def.symtable.foreach(@field_add_stabstr,@state);
-            state.stabstring[state.stabsize]:=';';
-            state.stabstring[state.stabsize+1]:=#0;
-            reallocmem(state.stabstring,state.stabsize+2);
-            result:=state.stabstring;
-          end;
-
-        function objectdef_stabstr(def:tobjectdef):pchar;
-          var
-            anc    : tobjectdef;
-            state  :Trecord_stabgen_state;
-            ts     : string;
-          begin
-            { Write the invisible pointer for the class? }
-            if (def.objecttype=odt_class) and
-               (not def.writing_class_record_stab) then
-              begin
-                result:=strpnew('*'+def_stab_classnumber(def));
-                exit;
-              end;
-
-            state.staballoc:=memsizeinc;
-            getmem(state.stabstring,state.staballoc);
-            strpcopy(state.stabstring,'s'+tostr(tobjectsymtable(def.symtable).datasize));
-            if assigned(def.childof) then
-              begin
-                {only one ancestor not virtual, public, at base offset 0 }
-                {       !1           ,    0       2         0    ,       }
-                strpcopy(strend(state.stabstring),'!1,020,'+def_stab_classnumber(def.childof)+';');
-              end;
-            {virtual table to implement yet}
-            state.recoffset:=0;
-            state.stabsize:=strlen(state.stabstring);
-            def.symtable.foreach(@field_add_stabstr,@state);
-            if (oo_has_vmt in def.objectoptions) then
-              if not assigned(def.childof) or not(oo_has_vmt in def.childof.objectoptions) then
-                 begin
-                    ts:='$vf'+def_stab_classnumber(def)+':'+def_stab_number(vmtarraytype.def)+','+tostr(def.vmt_offset*8)+';';
-                    strpcopy(state.stabstring+state.stabsize,ts);
-                    inc(state.stabsize,length(ts));
-                 end;
-            def.symtable.foreach(@method_add_stabstr,@state);
-            if (oo_has_vmt in def.objectoptions) then
-              begin
-                 anc := def;
-                 while assigned(anc.childof) and (oo_has_vmt in anc.childof.objectoptions) do
-                   anc := anc.childof;
-                 { just in case anc = self }
-                 ts:=';~%'+def_stab_classnumber(anc)+';';
-              end
-            else
-              ts:=';';
-            strpcopy(state.stabstring+state.stabsize,ts);
-            inc(state.stabsize,length(ts));
-            reallocmem(state.stabstring,state.stabsize+1);
-            result:=state.stabstring;
-          end;
-
-      begin
-        result:=nil;
-        case def.deftype of
-          stringdef :
-            result:=stringdef_stabstr(tstringdef(def));
-          enumdef :
-            result:=enumdef_stabstr(tenumdef(def));
-          orddef :
-            result:=orddef_stabstr(torddef(def));
-          floatdef :
-            result:=floatdef_stabstr(tfloatdef(def));
-          filedef :
-            result:=filedef_stabstr(tfiledef(def));
-          recorddef :
-            result:=recorddef_stabstr(trecorddef(def));
-          variantdef :
-            result:=def_stabstr_evaluate(def,'formal${numberstring};',[]);
-          pointerdef :
-            result:=strpnew('*'+def_stab_number(tpointerdef(def).pointertype.def));
-          classrefdef :
-            result:=strpnew(def_stab_number(pvmttype.def));
-          setdef :
-            result:=def_stabstr_evaluate(def,'@s$1;S$2',[tostr(def.size*8),def_stab_number(tsetdef(def).elementtype.def)]);
-          formaldef :
-            result:=def_stabstr_evaluate(def,'formal${numberstring};',[]);
-          arraydef :
-            result:=def_stabstr_evaluate(def,'ar$1;$2;$3;$4',[def_stab_number(tarraydef(def).rangetype.def),
-               tostr(tarraydef(def).lowrange),tostr(tarraydef(def).highrange),def_stab_number(tarraydef(def).elementtype.def)]);
-          procdef :
-            result:=procdef_stabstr(tprocdef(def));
-          procvardef :
-            result:=strpnew('*f'+def_stab_number(tprocvardef(def).rettype.def));
-          objectdef :
-            begin
-              if tobjectdef(def).writing_class_record_stab then
-                result:=objectdef_stabstr(tobjectdef(def))
-              else
-                result:=strpnew('*'+def_stab_classnumber(tobjectdef(def)));
-            end;
-        end;
-      end;
-
-
-    procedure TDebugInfoStabs.write_def_stabstr(list:taasmoutput;def:tdef);
-      var
-        stabchar : string[2];
-        ss,st,su : pchar;
-      begin
-        { procdefs require a different stabs style, handle them separately }
-        if def.deftype<>procdef then
-          begin
-            { type prefix }
-            if def.deftype in tagtypes then
-              stabchar := 'Tt'
-            else
-              stabchar := 't';
-            { Here we maybe generate a type, so we have to use numberstring }
-            if is_class(def) and
-               tobjectdef(def).writing_class_record_stab then
-              st:=def_stabstr_evaluate(def,'"${sym_name}:$1$2=',[stabchar,def_stab_classnumber(tobjectdef(def))])
-            else
-              st:=def_stabstr_evaluate(def,'"${sym_name}:$1$2=',[stabchar,def_stab_number(def)]);
-            ss:=def_stabstr(def);
-            reallocmem(st,strlen(ss)+512);
-            { line info is set to 0 for all defs, because the def can be in an other
-              unit and then the linenumber is invalid in the current sourcefile }
-            su:=def_stabstr_evaluate(def,'",${N_LSYM},0,0,0',[]);
-            strcopy(strecopy(strend(st),ss),su);
-            reallocmem(st,strlen(st)+1);
-            strdispose(ss);
-            strdispose(su);
-          end
-        else
-          st:=def_stabstr(def);
-        { add to list }
-        list.concat(Tai_stab.create(stab_stabs,st));
-      end;
-
-
-    procedure TDebugInfoStabs.field_write_defs(p:Tnamedindexitem;arg:pointer);
-      begin
-        if (Tsym(p).typ=fieldvarsym) and
-           not(sp_static in Tsym(p).symoptions) then
-          insertdef(taasmoutput(arg),tfieldvarsym(p).vartype.def);
-      end;
-
-
-    procedure TDebugInfoStabs.method_write_defs(p :tnamedindexitem;arg:pointer);
-      var
-        pd : tprocdef;
-      begin
-        if tsym(p).typ = procsym then
-          begin
-            pd:=tprocsym(p).first_procdef;
-            insertdef(taasmoutput(arg),pd.rettype.def);
-          end;
-      end;
-
-
-    procedure TDebugInfoStabs.insertdef(list:taasmoutput;def:tdef);
-      var
-        anc : tobjectdef;
-        oldtypesym : tsym;
-//        nb  : string[12];
-      begin
-        if (def.stab_state in [stab_state_writing,stab_state_written]) then
-          exit;
-        { to avoid infinite loops }
-        def.stab_state := stab_state_writing;
-        { write dependencies first }
-        case def.deftype of
-          stringdef :
-            begin
-              if tstringdef(def).string_typ=st_widestring then
-                insertdef(list,cwidechartype.def)
-              else
-                begin
-                  insertdef(list,cchartype.def);
-                  insertdef(list,u8inttype.def);
-                end;
-            end;
-          floatdef :
-            insertdef(list,s32inttype.def);
-          filedef :
-            begin
-              insertdef(list,s32inttype.def);
-{$ifdef cpu64bit}
-              insertdef(list,s64inttype.def);
-{$endif cpu64bit}
-              insertdef(list,u8inttype.def);
-              insertdef(list,cchartype.def);
-            end;
-          classrefdef,
-          pointerdef :
-            insertdef(list,tpointerdef(def).pointertype.def);
-          setdef :
-            insertdef(list,tsetdef(def).elementtype.def);
-          procvardef,
-          procdef :
-            insertdef(list,tprocdef(def).rettype.def);
-          arraydef :
-            begin
-              insertdef(list,tarraydef(def).rangetype.def);
-              insertdef(list,tarraydef(def).elementtype.def);
-            end;
-          recorddef :
-            trecorddef(def).symtable.foreach(@field_write_defs,list);
-          objectdef :
-            begin
-              insertdef(list,vmtarraytype.def);
-              { first the parents }
-              anc:=tobjectdef(def);
-              while assigned(anc.childof) do
-                begin
-                  anc:=anc.childof;
-                  insertdef(list,anc);
-                end;
-              tobjectdef(def).symtable.foreach(@field_write_defs,list);
-              tobjectdef(def).symtable.foreach(@method_write_defs,list);
-            end;
-        end;
-(*
-        { Handle pointerdefs to records and objects to avoid recursion }
-        if (def.deftype=pointerdef) and
-           (tpointerdef(def).pointertype.def.deftype in [recorddef,objectdef]) then
-          begin
-            def.stab_state:=stab_state_used;
-            write_def_stabstr(list,def);
-            {to avoid infinite recursion in record with next-like fields }
-            if tdef(tpointerdef(def).pointertype.def).stab_state=stab_state_writing then
-              begin
-                if assigned(tpointerdef(def).pointertype.def.typesym) then
-                  begin
-                    if is_class(tpointerdef(def).pointertype.def) then
-                      nb:=def_stab_classnumber(tobjectdef(tpointerdef(def).pointertype.def))
-                    else
-                      nb:=def_stab_number(tpointerdef(def).pointertype.def);
-                    list.concat(Tai_stab.create(stab_stabs,def_stabstr_evaluate(
-                            def,'"${sym_name}:t${numberstring}=*$1=xs$2:",${N_LSYM},0,0,0',
-                            [nb,tpointerdef(def).pointertype.def.typesym.name])));
-                  end;
-                def.stab_state:=stab_state_written;
-              end
-          end
-        else
-*)
-        { classes require special code to write the record and the invisible pointer }
-          if is_class(def) then
-            begin
-              { Write the record class itself }
-              tobjectdef(def).writing_class_record_stab:=true;
-              write_def_stabstr(list,def);
-              tobjectdef(def).writing_class_record_stab:=false;
-              { Write the invisible pointer class }
-              oldtypesym:=def.typesym;
-              def.typesym:=nil;
-              write_def_stabstr(list,def);
-              def.typesym:=oldtypesym;
-            end
-        { normal def }
-        else
-          write_def_stabstr(list,def);
-
-        def.stab_state := stab_state_written;
-      end;
-
-
-    procedure TDebugInfoStabs.write_symtable_defs(list:taasmoutput;st:tsymtable);
-
-       procedure dowritestabs(list:taasmoutput;st:tsymtable);
-         var
-           p : tdef;
-         begin
-           p:=tdef(st.defindex.first);
-           while assigned(p) do
-             begin
-               { also insert local types for the current unit }
-               if st.iscurrentunit then
-                 begin
-                   case p.deftype of
-                     procdef :
-                       if assigned(tprocdef(p).localst) then
-                         dowritestabs(list,tprocdef(p).localst);
-                     objectdef :
-                       dowritestabs(list,tobjectdef(p).symtable);
-                   end;
-                 end;
-               if (p.stab_state=stab_state_used) then
-                 insertdef(list,p);
-               p:=tdef(p.indexnext);
-             end;
-         end;
-
-      var
-        old_writing_def_stabs : boolean;
-      begin
-        if st.symtabletype=globalsymtable then
-          list.concat(tai_comment.Create(strpnew('Begin unit '+st.name^+' has index '+tostr(st.moduleid))));
-        old_writing_def_stabs:=writing_def_stabs;
-        writing_def_stabs:=true;
-        dowritestabs(list,st);
-        writing_def_stabs:=old_writing_def_stabs;
-        if st.symtabletype=globalsymtable then
-          list.concat(tai_comment.Create(strpnew('End unit '+st.name^+' has index '+tostr(st.moduleid))));
-      end;
-
-
-{****************************************************************************
-                               TSym support
-****************************************************************************}
-
-    function TDebugInfoStabs.sym_var_value(const s:string;arg:pointer):string;
-      var
-        sym : tsym;
-      begin
-        sym:=tsym(arg);
-        result:='';
-        if s='name' then
-          result:=sym.name
-        else if s='mangledname' then
-          result:=sym.mangledname
-        else if s='ownername' then
-          result:=sym.owner.name^
-        else if s='line' then
-          result:=tostr(sym.fileinfo.line)
-        else if s='N_LSYM' then
-          result:=tostr(N_LSYM)
-        else if s='N_LCSYM' then
-          result:=tostr(N_LCSYM)
-        else if s='N_RSYM' then
-          result:=tostr(N_RSYM)
-        else if s='N_TSYM' then
-          result:=tostr(N_TSYM)
-        else if s='N_STSYM' then
-          result:=tostr(N_STSYM)
-        else if s='N_FUNCTION' then
-          result:=tostr(N_FUNCTION)
-        else
-          internalerror(200401152);
-      end;
-
-
-    function TDebugInfoStabs.sym_stabstr_evaluate(sym:tsym;const s:string;const vars:array of string):Pchar;
-      begin
-        result:=string_evaluate(s,@sym_var_value,sym,vars);
-      end;
-
-
-    procedure TDebugInfoStabs.insertsym(list:taasmoutput;sym:tsym);
-
-        function fieldvarsym_stabstr(sym:tfieldvarsym):Pchar;
-          begin
-            result:=nil;
-            if (sym.owner.symtabletype=objectsymtable) and
-               (sp_static in sym.symoptions) then
-              result:=sym_stabstr_evaluate(sym,'"${ownername}__${name}:S$1",${N_LCSYM},0,${line},${mangledname}',
-                  [def_stab_number(sym.vartype.def)]);
-          end;
-
-        function globalvarsym_stabstr(sym:tglobalvarsym):Pchar;
-          var
-            st : string;
-            threadvaroffset : string;
-            regidx : Tregisterindex;
-          begin
-            result:=nil;
-            st:=def_stab_number(sym.vartype.def);
-            case sym.localloc.loc of
-              LOC_REGISTER,
-              LOC_CREGISTER,
-              LOC_MMREGISTER,
-              LOC_CMMREGISTER,
-              LOC_FPUREGISTER,
-              LOC_CFPUREGISTER :
-                begin
-                  regidx:=findreg_by_number(sym.localloc.register);
-                  { "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi", "eip", "ps", "cs", "ss", "ds", "es", "fs", "gs", }
-                  { this is the register order for GDB}
-                  if regidx<>0 then
-                    result:=sym_stabstr_evaluate(sym,'"${name}:r$1",${N_RSYM},0,${line},$2',[st,tostr(regstabs_table[regidx])]);
-                end;
-              else
-                begin
-                  if (vo_is_thread_var in sym.varoptions) then
-                    threadvaroffset:='+'+tostr(sizeof(aint))
-                  else
-                    threadvaroffset:='';
-                  { Here we used S instead of
-                    because with G GDB doesn't look at the address field
-                    but searches the same name or with a leading underscore
-                    but these names don't exist in pascal !}
-                  st:='S'+st;
-                  result:=sym_stabstr_evaluate(sym,'"${name}:$1",${N_LCSYM},0,${line},${mangledname}$2',[st,threadvaroffset]);
-                end;
-            end;
-          end;
-
-        function localvarsym_stabstr(sym:tlocalvarsym):Pchar;
-          var
-            st : string;
-            regidx : Tregisterindex;
-          begin
-            result:=nil;
-            { There is no space allocated for not referenced locals }
-            if (sym.owner.symtabletype=localsymtable) and (sym.refs=0) then
-              exit;
-
-            st:=def_stab_number(sym.vartype.def);
-            case sym.localloc.loc of
-              LOC_REGISTER,
-              LOC_CREGISTER,
-              LOC_MMREGISTER,
-              LOC_CMMREGISTER,
-              LOC_FPUREGISTER,
-              LOC_CFPUREGISTER :
-                begin
-                  regidx:=findreg_by_number(sym.localloc.register);
-                  { "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi", "eip", "ps", "cs", "ss", "ds", "es", "fs", "gs", }
-                  { this is the register order for GDB}
-                  if regidx<>0 then
-                    result:=sym_stabstr_evaluate(sym,'"${name}:r$1",${N_RSYM},0,${line},$2',[st,tostr(regstabs_table[regidx])]);
-                end;
-              LOC_REFERENCE :
-                { offset to ebp => will not work if the framepointer is esp
-                  so some optimizing will make things harder to debug }
-                result:=sym_stabstr_evaluate(sym,'"${name}:$1",${N_TSYM},0,${line},$2',[st,tostr(sym.localloc.reference.offset)])
-              else
-                internalerror(2003091814);
-            end;
-          end;
-
-        function paravarsym_stabstr(sym:tparavarsym):Pchar;
-          var
-            st : string;
-            regidx : Tregisterindex;
-            c : char;
-          begin
-            result:=nil;
-            { set loc to LOC_REFERENCE to get somewhat usable debugging info for -Or }
-            { while stabs aren't adapted for regvars yet                             }
-            if (vo_is_self in sym.varoptions) then
-              begin
-                case sym.localloc.loc of
-                  LOC_REGISTER,
-                  LOC_CREGISTER:
-                    regidx:=findreg_by_number(sym.localloc.register);
-                  LOC_REFERENCE: ;
-                  else
-                    internalerror(2003091815);
-                end;
-                if (po_classmethod in current_procinfo.procdef.procoptions) or
-                   (po_staticmethod in current_procinfo.procdef.procoptions) then
-                  begin
-                    if (sym.localloc.loc=LOC_REFERENCE) then
-                      result:=sym_stabstr_evaluate(sym,'"pvmt:p$1",${N_TSYM},0,0,$2',
-                        [def_stab_number(pvmttype.def),tostr(sym.localloc.reference.offset)]);
-      (*            else
-                      result:=sym_stabstr_evaluate(sym,'"pvmt:r$1",${N_RSYM},0,0,$2',
-                        [def_stab_number(pvmttype.def),tostr(regstabs_table[regidx])]) *)
-                    end
-                else
-                  begin
-                    if not(is_class(current_procinfo.procdef._class)) then
-                      c:='v'
-                    else
-                      c:='p';
-                    if (sym.localloc.loc=LOC_REFERENCE) then
-                      result:=sym_stabstr_evaluate(sym,'"$$t:$1",${N_TSYM},0,0,$2',
-                            [c+def_stab_number(current_procinfo.procdef._class),tostr(sym.localloc.reference.offset)]);
-      (*            else
-                      result:=sym_stabstr_evaluate(sym,'"$$t:r$1",${N_RSYM},0,0,$2',
-                            [c+def_stab_number(current_procinfo.procdef._class),tostr(regstabs_table[regidx])]); *)
-                  end;
-              end
-            else
-              begin
-                st:=def_stab_number(sym.vartype.def);
-
-                if paramanager.push_addr_param(sym.varspez,sym.vartype.def,tprocdef(sym.owner.defowner).proccalloption) and
-                   not(vo_has_local_copy in sym.varoptions) and
-                   not is_open_string(sym.vartype.def) then
-                  st := 'v'+st { should be 'i' but 'i' doesn't work }
-                else
-                  st := 'p'+st;
-                case sym.localloc.loc of
-                  LOC_REGISTER,
-                  LOC_CREGISTER,
-                  LOC_MMREGISTER,
-                  LOC_CMMREGISTER,
-                  LOC_FPUREGISTER,
-                  LOC_CFPUREGISTER :
-                    begin
-                      regidx:=findreg_by_number(sym.localloc.register);
-                      { "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi", "eip", "ps", "cs", "ss", "ds", "es", "fs", "gs", }
-                      { this is the register order for GDB}
-                      if regidx<>0 then
-                        result:=sym_stabstr_evaluate(sym,'"${name}:r$1",${N_RSYM},0,${line},$2',[st,tostr(longint(regstabs_table[regidx]))]);
-                    end;
-                  LOC_REFERENCE :
-                    { offset to ebp => will not work if the framepointer is esp
-                      so some optimizing will make things harder to debug }
-                    result:=sym_stabstr_evaluate(sym,'"${name}:$1",${N_TSYM},0,${line},$2',[st,tostr(sym.localloc.reference.offset)])
-                  else
-                    internalerror(2003091814);
-                end;
-              end;
-          end;
-
-        function constsym_stabstr(sym:tconstsym):Pchar;
-          var
-            st : string;
-          begin
-            case sym.consttyp of
-              conststring:
-                st:='s'''+backspace_quote(octal_quote(strpas(pchar(sym.value.valueptr)),[#0..#9,#11,#12,#14..#31,'''']),['"','\',#10,#13])+'''';
-              constord:
-                st:='i'+tostr(sym.value.valueord);
-              constpointer:
-                st:='i'+tostr(sym.value.valueordptr);
-              constreal:
-                begin
-                  system.str(pbestreal(sym.value.valueptr)^,st);
-                  st := 'r'+st;
-                end;
-              else
-                begin
-                  { if we don't know just put zero !! }
-                  st:='i0';
-                end;
-            end;
-            { valgrind does not support constants }
-            if cs_gdb_valgrind in aktglobalswitches then
-              result:=nil
-            else
-              result:=sym_stabstr_evaluate(sym,'"${name}:c=$1;",${N_FUNCTION},0,${line},0',[st]);
-          end;
-
-        function typesym_stabstr(sym:ttypesym) : pchar;
-          var
-            stabchar : string[2];
-          begin
-            result:=nil;
-            if not assigned(sym.restype.def) then
-              internalerror(200509262);
-            if sym.restype.def.deftype in tagtypes then
-              stabchar:='Tt'
-            else
-              stabchar:='t';
-            result:=sym_stabstr_evaluate(sym,'"${name}:$1$2",${N_LSYM},0,${line},0',[stabchar,def_stab_number(sym.restype.def)]);
-          end;
-
-      var
-        stabstr : Pchar;
-      begin
-        stabstr:=nil;
-        case sym.typ of
-          labelsym :
-            stabstr:=sym_stabstr_evaluate(sym,'"${name}",${N_LSYM},0,${line},0',[]);
-          procsym :
-            internalerror(200111171);
-          fieldvarsym :
-            stabstr:=fieldvarsym_stabstr(tfieldvarsym(sym));
-          globalvarsym :
-            stabstr:=globalvarsym_stabstr(tglobalvarsym(sym));
-          localvarsym :
-            stabstr:=localvarsym_stabstr(tlocalvarsym(sym));
-          paravarsym :
-            stabstr:=paravarsym_stabstr(tparavarsym(sym));
-          typedconstsym :
-            stabstr:=sym_stabstr_evaluate(sym,'"${name}:S$1",${N_STSYM},0,${line},${mangledname}',
-                [def_stab_number(ttypedconstsym(sym).typedconsttype.def)]);
-          constsym :
-            stabstr:=constsym_stabstr(tconstsym(sym));
-          typesym :
-            stabstr:=typesym_stabstr(ttypesym(sym));
-        end;
-        if stabstr<>nil then
-          list.concat(Tai_stab.create(stab_stabs,stabstr));
-        sym.isstabwritten:=true;
-      end;
-
-
-    procedure TDebugInfoStabs.write_symtable_syms(list:taasmoutput;st:tsymtable);
-      var
-        p : tsym;
-      begin
-        p:=tsym(st.symindex.first);
-        while assigned(p) do
-          begin
-            { Procsym and typesym are already written }
-            if not(Tsym(p).typ in [procsym,typesym]) then
-              begin
-                if not Tsym(p).isstabwritten then
-                  insertsym(list,tsym(p));
-              end;
-            p:=tsym(p.indexnext);
-          end;
-      end;
-
-{****************************************************************************
-                             Proc/Module support
-****************************************************************************}
-
-    procedure tdebuginfostabs.insertvmt(list:taasmoutput;objdef:tobjectdef);
-      begin
-        if assigned(objdef.owner) and
-           assigned(objdef.owner.name) then
-          list.concat(Tai_stab.create(stab_stabs,strpnew('"vmt_'+objdef.owner.name^+objdef.name+':S'+
-                 def_stab_number(vmttype.def)+'",'+tostr(N_STSYM)+',0,0,'+objdef.vmt_mangledname)));
-      end;
-
-
-    procedure tdebuginfostabs.insertmoduletypes(list:taasmoutput);
-
-       procedure reset_unit_type_info;
-       var
-         hp : tmodule;
-       begin
-         hp:=tmodule(loaded_units.first);
-         while assigned(hp) do
-           begin
-             hp.is_stab_written:=false;
-             hp:=tmodule(hp.next);
-           end;
-       end;
-
-       procedure write_used_unit_type_info(list:taasmoutput;hp:tmodule);
-       var
-         pu : tused_unit;
-       begin
-         pu:=tused_unit(hp.used_units.first);
-         while assigned(pu) do
-           begin
-             if not pu.u.is_stab_written then
-               begin
-                 { prevent infinte loop for circular dependencies }
-                 pu.u.is_stab_written:=true;
-                 { write type info from used units, use a depth first
-                   strategy to reduce the recursion in writing all
-                   dependent stabs }
-                 write_used_unit_type_info(list,pu.u);
-                 if assigned(pu.u.globalsymtable) then
-                   write_symtable_defs(list,pu.u.globalsymtable);
-               end;
-             pu:=tused_unit(pu.next);
-           end;
-       end;
-
-      var
-        temptypestabs : taasmoutput;
-        storefilepos : tfileposinfo;
-        st : tsymtable;
-      begin
-        global_stab_number:=0;
-
-        storefilepos:=aktfilepos;
-        aktfilepos:=current_module.mainfilepos;
-        { include symbol that will be referenced from the program to be sure to
-          include this debuginfo .o file }
-        if current_module.is_unit then
-          begin
-            current_module.flags:=current_module.flags or uf_has_debuginfo;
-            st:=current_module.globalsymtable;
-          end
-        else
-          st:=current_module.localsymtable;
-        new_section(list,sec_data,st.name^,0);
-        list.concat(tai_symbol.Createname_global(make_mangledname('DEBUGINFO',st,''),AT_DATA,0));
-        { first write all global/local symbols again to a temp list. This will flag
-          all required tdefs. After that the temp list can be removed since the debuginfo is already
-          written to the stabs when the variables/consts were written }
-{$warning Hack to get all needed types}
-        temptypestabs:=taasmoutput.create;
-        if assigned(current_module.globalsymtable) then
-          write_symtable_syms(temptypestabs,current_module.globalsymtable);
-        if assigned(current_module.localsymtable) then
-          write_symtable_syms(temptypestabs,current_module.localsymtable);
-        temptypestabs.free;
-        { reset unit type info flag }
-        reset_unit_type_info;
-        { write used types from the used units }
-        write_used_unit_type_info(list,current_module);
-        { last write the types from this unit }
-        if assigned(current_module.globalsymtable) then
-          write_symtable_defs(list,current_module.globalsymtable);
-        if assigned(current_module.localsymtable) then
-          write_symtable_defs(list,current_module.localsymtable);
-        aktfilepos:=storefilepos;
-      end;
-
-
-    procedure tdebuginfostabs.insertlineinfo(list:taasmoutput);
-      var
-        currfileinfo,
-        lastfileinfo : tfileposinfo;
-        currfuncname : pstring;
-        currsectype  : tasmsectiontype;
-        hlabel       : tasmlabel;
-        hp : tai;
-        infile : tinputfile;
-      begin
-        FillChar(lastfileinfo,sizeof(lastfileinfo),0);
-        currfuncname:=nil;
-        currsectype:=sec_code;
-        hp:=Tai(list.first);
-        while assigned(hp) do
-          begin
-            case hp.typ of
-              ait_section :
-                currsectype:=tai_section(hp).sectype;
-              ait_function_name :
-                currfuncname:=tai_function_name(hp).funcname;
-              ait_force_line :
-                lastfileinfo.line:=-1;
-            end;
-
-            if (currsectype=sec_code) and
-               (hp.typ=ait_instruction) then
-              begin
-                currfileinfo:=tailineinfo(hp).fileinfo;
-                { file changed ? (must be before line info) }
-                if (currfileinfo.fileindex<>0) and
-                   (lastfileinfo.fileindex<>currfileinfo.fileindex) then
-                  begin
-                    infile:=current_module.sourcefiles.get_file(currfileinfo.fileindex);
-                    if assigned(infile) then
-                      begin
-                        objectlibrary.getlabel(hlabel,alt_dbgfile);
-                        { emit stabs }
-                        if (infile.path^<>'') then
-                          list.insertbefore(Tai_stab.Create_str(stab_stabs,'"'+BsToSlash(FixPath(infile.path^,false))+'",'+tostr(n_includefile)+
-                                            ',0,0,'+hlabel.name),hp);
-                        list.insertbefore(Tai_stab.Create_str(stab_stabs,'"'+FixFileName(infile.name^)+'",'+tostr(n_includefile)+
-                                          ',0,0,'+hlabel.name),hp);
-                        list.insertbefore(tai_label.create(hlabel),hp);
-                        { force new line info }
-                        lastfileinfo.line:=-1;
-                      end;
-                  end;
-
-                { line changed ? }
-                if (lastfileinfo.line<>currfileinfo.line) and (currfileinfo.line<>0) then
-                  begin
-                     if assigned(currfuncname) and
-                        (target_info.use_function_relative_addresses) then
-                      begin
-                        objectlibrary.getlabel(hlabel,alt_dbgline);
-                        list.insertbefore(Tai_stab.Create_str(stab_stabn,tostr(n_textline)+',0,'+tostr(currfileinfo.line)+','+
-                                          hlabel.name+' - '+currfuncname^),hp);
-                        list.insertbefore(tai_label.create(hlabel),hp);
-                      end
-                     else
-                      list.insertbefore(Tai_stab.Create_str(stab_stabd,tostr(n_textline)+',0,'+tostr(currfileinfo.line)),hp);
-                  end;
-                lastfileinfo:=currfileinfo;
-              end;
-
-            hp:=tai(hp.next);
-          end;
-      end;
-
-
-    procedure tdebuginfostabs.insertprocstart(list:taasmoutput);
-      begin
-        insertdef(list,current_procinfo.procdef);
-        Tprocsym(current_procinfo.procdef.procsym).isstabwritten:=true;
-        { write local symtables }
-        if not(po_external in current_procinfo.procdef.procoptions) then
-          begin
-            if assigned(current_procinfo.procdef.parast) then
-              write_symtable_syms(list,current_procinfo.procdef.parast);
-            { local type defs and vars should not be written
-              inside the main proc stab }
-            if assigned(current_procinfo.procdef.localst) and
-               (current_procinfo.procdef.localst.symtabletype=localsymtable) then
-              write_symtable_syms(list,current_procinfo.procdef.localst);
-          end;
-      end;
-
-
-    procedure tdebuginfostabs.insertprocend(list:taasmoutput);
-      var
-        stabsendlabel : tasmlabel;
-        mangled_length : longint;
-        p : pchar;
-        hs : string;
-      begin
-        objectlibrary.getlabel(stabsendlabel,alt_dbgtype);
-        list.concat(tai_label.create(stabsendlabel));
-
-        if assigned(current_procinfo.procdef.funcretsym) and
-           (tabstractnormalvarsym(current_procinfo.procdef.funcretsym).refs>0) then
-          begin
-            if tabstractnormalvarsym(current_procinfo.procdef.funcretsym).localloc.loc=LOC_REFERENCE then
-              begin
-{$warning Need to add gdb support for ret in param register calling}
-                if paramanager.ret_in_param(current_procinfo.procdef.rettype.def,current_procinfo.procdef.proccalloption) then
-                  hs:='X*'
-                else
-                  hs:='X';
-                list.concat(Tai_stab.create(stab_stabs,strpnew(
-                   '"'+current_procinfo.procdef.procsym.name+':'+hs+def_stab_number(current_procinfo.procdef.rettype.def)+'",'+
-                   tostr(N_tsym)+',0,0,'+tostr(tabstractnormalvarsym(current_procinfo.procdef.funcretsym).localloc.reference.offset))));
-                if (m_result in aktmodeswitches) then
-                  list.concat(Tai_stab.create(stab_stabs,strpnew(
-                     '"RESULT:'+hs+def_stab_number(current_procinfo.procdef.rettype.def)+'",'+
-                     tostr(N_tsym)+',0,0,'+tostr(tabstractnormalvarsym(current_procinfo.procdef.funcretsym).localloc.reference.offset))));
-              end;
-          end;
-        mangled_length:=length(current_procinfo.procdef.mangledname);
-        getmem(p,2*mangled_length+50);
-        strpcopy(p,'192,0,0,');
-        strpcopy(strend(p),current_procinfo.procdef.mangledname);
-        if (target_info.use_function_relative_addresses) then
-          begin
-            strpcopy(strend(p),'-');
-            strpcopy(strend(p),current_procinfo.procdef.mangledname);
-          end;
-        list.concat(Tai_stab.Create(stab_stabn,strnew(p)));
-        strpcopy(p,'224,0,0,'+stabsendlabel.name);
-        if (target_info.use_function_relative_addresses) then
-          begin
-            strpcopy(strend(p),'-');
-            strpcopy(strend(p),current_procinfo.procdef.mangledname);
-          end;
-        list.concat(Tai_stab.Create(stab_stabn,strnew(p)));
-        freemem(p,2*mangled_length+50);
-      end;
-
-
-    procedure tdebuginfostabs.insertmodulestart(list:taasmoutput);
-      var
-        hlabel : tasmlabel;
-        infile : tinputfile;
-        templist:taasmoutput;
-      begin
-        { emit main source n_sourcefile }
-        objectlibrary.getlabel(hlabel,alt_dbgfile);
-        infile:=current_module.sourcefiles.get_file(1);
-        templist:=taasmoutput.create;
-        new_section(templist,sec_code,'',0);
-        if (infile.path^<>'') then
-          templist.concat(Tai_stab.Create_str(stab_stabs,'"'+BsToSlash(FixPath(infile.path^,false))+'",'+tostr(n_sourcefile)+
-                      ',0,0,'+hlabel.name));
-        templist.concat(Tai_stab.Create_str(stab_stabs,'"'+FixFileName(infile.name^)+'",'+tostr(n_sourcefile)+
-                    ',0,0,'+hlabel.name));
-        templist.concat(tai_label.create(hlabel));
-        list.insertlist(templist);
-        templist.free;
-      end;
-
-
-    procedure tdebuginfostabs.insertmoduleend(list:taasmoutput);
-      var
-        hlabel : tasmlabel;
-        templist:taasmoutput;
-      begin
-        { emit empty n_sourcefile }
-        objectlibrary.getlabel(hlabel,alt_dbgfile);
-        templist:=taasmoutput.create;
-        new_section(templist,sec_code,'',0);
-        templist.concat(Tai_stab.Create_str(stab_stabs,'"",'+tostr(n_sourcefile)+',0,0,'+hlabel.name));
-        templist.concat(tai_label.create(hlabel));
-        list.insertlist(templist);
-        templist.free;
-      end;
-
-
-    procedure tdebuginfostabs.referencesections(list:taasmoutput);
-      var
-        hp   : tused_unit;
-      begin
-        { Reference all DEBUGINFO sections from the main .text section }
-        if (target_info.system <> system_powerpc_macos) then
-          begin
-            { include reference to all debuginfo sections of used units }
-            hp:=tused_unit(usedunits.first);
-            while assigned(hp) do
-              begin
-                If (hp.u.flags and uf_has_debuginfo)=uf_has_debuginfo then
-                  list.concat(Tai_const.Createname(make_mangledname('DEBUGINFO',hp.u.globalsymtable,''),AT_DATA,0));
-                hp:=tused_unit(hp.next);
-              end;
-            { include reference to debuginfo for this program }
-            list.concat(Tai_const.Createname(make_mangledname('DEBUGINFO',current_module.localsymtable,''),AT_DATA,0));
-          end;
-      end;
-
-
-    const
-      dbg_stabs_info : tdbginfo =
-         (
-           id     : dbg_stabs;
-           idtxt  : 'STABS';
-         );
-
-initialization
-  RegisterDebugInfo(dbg_stabs_info,TDebugInfoStabs);
-end.

+ 0 - 1625
compiler/powerpc64/cgcpu.pas

@@ -1,1625 +0,0 @@
-{
-    Copyright (c) 1998-2002 by Florian Klaempfl
-
-    This unit implements the code generator for the PowerPC
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- ****************************************************************************
-}
-unit cgcpu;
-
-{$I fpcdefs.inc}
-
-interface
-
-uses
-  globtype, symtype, symdef,
-  cgbase, cgobj,
-  aasmbase, aasmcpu, aasmtai,
-  cpubase, cpuinfo, cgutils, rgcpu,
-  parabase;
-
-type
-  tcgppc = class(tcg)
-    procedure init_register_allocators; override;
-    procedure done_register_allocators; override;
-
-    { passing parameters, per default the parameter is pushed }
-    { nr gives the number of the parameter (enumerated from   }
-    { left to right), this allows to move the parameter to    }
-    { register, if the cpu supports register calling          }
-    { conventions                                             }
-    procedure a_param_const(list: taasmoutput; size: tcgsize; a: aint; const
-      paraloc: tcgpara); override;
-    procedure a_param_ref(list: taasmoutput; size: tcgsize; const r: treference;
-      const paraloc: tcgpara); override;
-    procedure a_paramaddr_ref(list: taasmoutput; const r: treference; const
-      paraloc: tcgpara); override;
-
-    procedure a_call_name(list: taasmoutput; const s: string); override;
-        procedure a_call_name_direct(list: taasmoutput; s: string; prependDot : boolean);
-
-    procedure a_call_reg(list: taasmoutput; reg: tregister); override;
-
-    procedure a_op_const_reg(list: taasmoutput; Op: TOpCG; size: TCGSize; a:
-      aint; reg: TRegister); override;
-    procedure a_op_reg_reg(list: taasmoutput; Op: TOpCG; size: TCGSize; src,
-      dst: TRegister); override;
-
-    procedure a_op_const_reg_reg(list: taasmoutput; op: TOpCg;
-      size: tcgsize; a: aint; src, dst: tregister); override;
-    procedure a_op_reg_reg_reg(list: taasmoutput; op: TOpCg;
-      size: tcgsize; src1, src2, dst: tregister); override;
-
-    { move instructions }
-    procedure a_load_const_reg(list: taasmoutput; size: tcgsize; a: aint; reg:
-      tregister); override;
-    procedure a_load_reg_ref(list: taasmoutput; fromsize, tosize: tcgsize; reg:
-      tregister; const ref: treference); override;
-    procedure a_load_ref_reg(list: taasmoutput; fromsize, tosize: tcgsize; const
-      Ref: treference; reg: tregister); override;
-    procedure a_load_reg_reg(list: taasmoutput; fromsize, tosize: tcgsize; reg1,
-      reg2: tregister); override;
-
-    { fpu move instructions }
-    procedure a_loadfpu_reg_reg(list: taasmoutput; size: tcgsize; reg1, reg2:
-      tregister); override;
-    procedure a_loadfpu_ref_reg(list: taasmoutput; size: tcgsize; const ref:
-      treference; reg: tregister); override;
-    procedure a_loadfpu_reg_ref(list: taasmoutput; size: tcgsize; reg:
-      tregister; const ref: treference); override;
-
-    {  comparison operations }
-    procedure a_cmp_const_reg_label(list: taasmoutput; size: tcgsize; cmp_op:
-      topcmp; a: aint; reg: tregister;
-      l: tasmlabel); override;
-    procedure a_cmp_reg_reg_label(list: taasmoutput; size: tcgsize; cmp_op:
-      topcmp; reg1, reg2: tregister; l: tasmlabel); override;
-
-    procedure a_jmp_name(list: taasmoutput; const s: string); override;
-    procedure a_jmp_always(list: taasmoutput; l: tasmlabel); override;
-    procedure a_jmp_flags(list: taasmoutput; const f: TResFlags; l: tasmlabel);
-      override;
-
-    procedure g_flags2reg(list: taasmoutput; size: TCgSize; const f: TResFlags;
-      reg: TRegister); override;
-
-    procedure g_proc_entry(list: taasmoutput; localsize: longint; nostackframe:
-      boolean); override;
-    procedure g_proc_exit(list: taasmoutput; parasize: longint; nostackframe:
-      boolean); override;
-    procedure g_save_standard_registers(list: Taasmoutput); override;
-    procedure g_restore_standard_registers(list: Taasmoutput); override;
-
-    procedure a_loadaddr_ref_reg(list: taasmoutput; const ref: treference; r:
-      tregister); override;
-
-    procedure g_concatcopy(list: taasmoutput; const source, dest: treference;
-      len: aint); override;
-
-    procedure g_overflowcheck(list: taasmoutput; const l: tlocation; def: tdef);
-      override;
-    procedure a_jmp_cond(list: taasmoutput; cond: TOpCmp; l: tasmlabel);
-
-    procedure g_intf_wrapper(list: TAAsmoutput; procdef: tprocdef; const
-      labelname: string; ioffset: longint); override;
-
-  private
-
-    { Make sure ref is a valid reference for the PowerPC and sets the }
-    { base to the value of the index if (base = R_NO).                }
-    { Returns true if the reference contained a base, index and an    }
-    { offset or symbol, in which case the base will have been changed }
-    { to a tempreg (which has to be freed by the caller) containing   }
-    { the sum of part of the original reference                       }
-    function fixref(list: taasmoutput; var ref: treference): boolean;
-
-    { returns whether a reference can be used immediately in a powerpc }
-    { instruction                                                      }
-    function issimpleref(const ref: treference): boolean;
-
-    { contains the common code of a_load_reg_ref and a_load_ref_reg }
-    procedure a_load_store(list: taasmoutput; op: tasmop; reg: tregister;
-      ref: treference);
-
-    { creates the correct branch instruction for a given combination }
-    { of asmcondflags and destination addressing mode                }
-    procedure a_jmp(list: taasmoutput; op: tasmop;
-      c: tasmcondflag; crval: longint; l: tasmlabel);
-  end;
-
-const
-  TOpCG2AsmOpConstLo: array[topcg] of TAsmOp = (A_NONE, A_ADDI, A_ANDI_,
-    A_DIVWU,
-    A_DIVW, A_MULLW, A_MULLW, A_NONE, A_NONE, A_ORI,
-    A_SRAWI, A_SLWI, A_SRWI, A_SUBI, A_XORI);
-  TOpCG2AsmOpConstHi: array[topcg] of TAsmOp = (A_NONE, A_ADDIS, A_ANDIS_,
-    A_DIVWU, A_DIVW, A_MULLW, A_MULLW, A_NONE, A_NONE,
-    A_ORIS, A_NONE, A_NONE, A_NONE, A_SUBIS, A_XORIS);
-
-  TShiftOpCG2AsmOpConst32 : array[OP_SAR..OP_SHR] of TAsmOp = (A_SRAWI, A_SLWI, A_SRWI);
-  TShiftOpCG2AsmOpConst64 : array[OP_SAR..OP_SHR] of TAsmOp = (A_SRADI, A_SLDI, A_SRDI);
-
-  TOpCmp2AsmCond: array[topcmp] of TAsmCondFlag = (C_NONE, C_EQ, C_GT,
-    C_LT, C_GE, C_LE, C_NE, C_LE, C_LT, C_GE, C_GT);
-
-implementation
-
-uses
-  sysutils,
-  globals, verbose, systems, cutils,
-  symconst, symsym, fmodule,
-  rgobj, tgobj, cpupi, procinfo, paramgr;
-
-procedure tcgppc.init_register_allocators;
-begin
-  inherited init_register_allocators;
-  rg[R_INTREGISTER] := trgcpu.create(R_INTREGISTER, R_SUBWHOLE,
-    [RS_R3, RS_R4, RS_R5, RS_R6, RS_R7, RS_R8,
-      RS_R9, RS_R10, RS_R11, RS_R12, RS_R31, RS_R30, RS_R29,
-      RS_R28, RS_R27, RS_R26, RS_R25, RS_R24, RS_R23, RS_R22,
-      RS_R21, RS_R20, RS_R19, RS_R18, RS_R17, RS_R16, RS_R15,
-      RS_R14, RS_R13], first_int_imreg, []);
-  rg[R_FPUREGISTER] := trgcpu.create(R_FPUREGISTER, R_SUBNONE,
-    [RS_F0, RS_F1, RS_F2, RS_F3, RS_F4, RS_F5, RS_F6, RS_F7, RS_F8, RS_F9,
-    RS_F10, RS_F11, RS_F12, RS_F13, RS_F31, RS_F30, RS_F29, RS_F28, RS_F27,
-      RS_F26, RS_F25, RS_F24, RS_F23, RS_F22, RS_F21, RS_F20, RS_F19, RS_F18,
-      RS_F17, RS_F16, RS_F15, RS_F14], first_fpu_imreg, []);
-{$WARNING FIX ME}
-  rg[R_MMREGISTER] := trgcpu.create(R_MMREGISTER, R_SUBNONE,
-    [RS_M0, RS_M1, RS_M2], first_mm_imreg, []);
-end;
-
-procedure tcgppc.done_register_allocators;
-begin
-  rg[R_INTREGISTER].free;
-  rg[R_FPUREGISTER].free;
-  rg[R_MMREGISTER].free;
-  inherited done_register_allocators;
-end;
-
-procedure tcgppc.a_param_const(list: taasmoutput; size: tcgsize; a: aint; const
-  paraloc: tcgpara);
-var
-  ref: treference;
-begin
-  paraloc.check_simple_location;
-  case paraloc.location^.loc of
-    LOC_REGISTER, LOC_CREGISTER:
-      a_load_const_reg(list, size, a, paraloc.location^.register);
-    LOC_REFERENCE:
-      begin
-        reference_reset(ref);
-        ref.base := paraloc.location^.reference.index;
-        ref.offset := paraloc.location^.reference.offset;
-        a_load_const_ref(list, size, a, ref);
-      end;
-  else
-    internalerror(2002081101);
-  end;
-end;
-
-procedure tcgppc.a_param_ref(list: taasmoutput; size: tcgsize; const r:
-  treference; const paraloc: tcgpara);
-
-var
-  tmpref, ref: treference;
-  location: pcgparalocation;
-  sizeleft: aint;
-
-begin
-  location := paraloc.location;
-  tmpref := r;
-  sizeleft := paraloc.intsize;
-  while assigned(location) do
-  begin
-    case location^.loc of
-      LOC_REGISTER, LOC_CREGISTER:
-        begin
-          a_load_ref_reg(list, location^.size, location^.size, tmpref,
-            location^.register);
-        end;
-      LOC_REFERENCE:
-        begin
-          reference_reset_base(ref, location^.reference.index,
-            location^.reference.offset);
-          g_concatcopy(list, tmpref, ref, sizeleft);
-          if assigned(location^.next) then
-            internalerror(2005010710);
-        end;
-      LOC_FPUREGISTER, LOC_CFPUREGISTER:
-        case location^.size of
-          OS_F32, OS_F64:
-            a_loadfpu_ref_reg(list, location^.size, tmpref, location^.register);
-        else
-          internalerror(2002072801);
-        end;
-      LOC_VOID:
-        begin
-          // nothing to do
-        end;
-    else
-      internalerror(2002081103);
-    end;
-    inc(tmpref.offset, tcgsize2size[location^.size]);
-    dec(sizeleft, tcgsize2size[location^.size]);
-    location := location^.next;
-  end;
-end;
-
-procedure tcgppc.a_paramaddr_ref(list: taasmoutput; const r: treference; const
-  paraloc: tcgpara);
-var
-  ref: treference;
-  tmpreg: tregister;
-
-begin
-  paraloc.check_simple_location;
-  case paraloc.location^.loc of
-    LOC_REGISTER, LOC_CREGISTER:
-      a_loadaddr_ref_reg(list, r, paraloc.location^.register);
-    LOC_REFERENCE:
-      begin
-        reference_reset(ref);
-        ref.base := paraloc.location^.reference.index;
-        ref.offset := paraloc.location^.reference.offset;
-        tmpreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-        a_loadaddr_ref_reg(list, r, tmpreg);
-        a_load_reg_ref(list, OS_ADDR, OS_ADDR, tmpreg, ref);
-      end;
-  else
-    internalerror(2002080701);
-  end;
-end;
-
-{ calling a procedure by name }
-
-procedure tcgppc.a_call_name(list: taasmoutput; const s: string);
-begin
-        a_call_name_direct(list, s, true);
-end;
-
-procedure tcgppc.a_call_name_direct(list: taasmoutput; s: string; prependDot : boolean);
-begin
-  if (prependDot) then begin
-        s := '.' + s;
-  end;
-  list.concat(taicpu.op_sym(A_BL, objectlibrary.newasmsymbol(s, AB_EXTERNAL,
-    AT_FUNCTION)));
-  list.concat(taicpu.op_none(A_NOP));
-  {
-         the compiler does not properly set this flag anymore in pass 1, and
-         for now we only need it after pass 2 (I hope) (JM)
-           if not(pi_do_call in current_procinfo.flags) then
-             internalerror(2003060703);
-  }
-  include(current_procinfo.flags, pi_do_call);
-end;
-
-
-{ calling a procedure by address }
-
-procedure tcgppc.a_call_reg(list: taasmoutput; reg: tregister);
-
-var
-  tmpreg: tregister;
-  tmpref: treference;
-
-  gotref : treference;
-
-begin
-  tmpreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-
-  reference_reset(tmpref);
-  tmpref.offset := 0;
-  tmpref.base := reg;
-  list.concat(taicpu.op_reg_ref(A_LD, tmpreg, tmpref));
-
-//  TODO: GOT change
-
-//  reference_reset(gotref);
-//  tmpref.offset := 40;
-//  tmpref.base := rg[R_INTREGISTER].getregister(list, NR_STACK_POINTER_REG);
-
-//  taicpu.op_load_reg_ref(list, OS_INT, OS_INT,
-  list.concat(taicpu.op_reg(A_MTCTR, tmpreg));
-
-
-  list.concat(taicpu.op_none(A_BCTRL));
-  //if target_info.system=system_powerpc_macos then
-  //  //NOP is not needed here.
-  //  list.concat(taicpu.op_none(A_NOP));
-  include(current_procinfo.flags, pi_do_call);
-end;
-
-{********************** load instructions ********************}
-
-procedure tcgppc.a_load_const_reg(list: taasmoutput; size: TCGSize; a: aint;
-  reg: TRegister);
-
-var
-  scratchreg : TRegister;
-
-  procedure load32bitconstant(list : taasmoutput; size : TCGSize; a : longint;
-    reg : TRegister);
-  var is_half_signed : boolean;
-  begin
-(*
-    // ts: test optimized code using LI/ADDIS
-
-    if (smallint(a) = 0) and ((a shr 16) <> 0) then begin
-      list.concat(taicpu.op_reg_const(A_LIS, reg, smallint(a shr 16)));
-    end else begin
-      is_half_signed := smallint(a) < 0;
-      list.concat(taicpu.op_reg_const(A_LI, reg, smallint(a)));
-      if smallint((a shr 16) + ord(is_half_signed)) <> 0 then begin
-        list.concat(taicpu.op_reg_reg_const(A_ADDIS, reg, reg, smallint((a shr 16) + ord(is_half_signed))));
-      end;
-    end;
-*)
-    // only 16 bit constant? (-2^15 <= a <= +2^15-1)
-    if (a >= low(smallint)) and (a <= high(smallint)) then begin
-      list.concat(taicpu.op_reg_const(A_LI, reg, smallint(a)));
-    end else begin
-      { check if we have to start with LI or LIS, load as 32 bit constant }
-      if ((a and $FFFF) <> 0) then begin
-        list.concat(taicpu.op_reg_const(A_LIS, reg, smallint(a shr 16)));
-        list.concat(taicpu.op_reg_reg_const(A_ORI, reg, reg, word(a)));
-
-      end else begin
-        list.concat(taicpu.op_reg_const(A_LIS, reg, smallint(a shr 16)));
-      end;
-    end;
-
-  end;
-var
-  astring : string;
-
-begin
-  astring := 'a_load_const reg ' + inttostr(a) + ' ' + inttostr(tcgsize2size[size]);
-  list.concat(tai_comment.create(strpnew(astring)));
-  if not (size in [OS_8, OS_S8, OS_16, OS_S16, OS_32, OS_S32, OS_64, OS_S64]) then
-    internalerror(2002090902);
-  // load low 32 bit (as signed number)
-  load32bitconstant(list, size, lo(a), reg);
-
-  // load high 32 bit if needed :( (the second expression is optimization, to be enabled and tested later!)
-  if (size in [OS_64, OS_S64]) {and (hi(a) <> 0)} then begin
-    // allocate scratch reg (=R0 because it might be called at places where register
-    // allocation has already happened - either procedure entry/exit, and stack check
-    // code generation)
-    // Note: I hope this restriction can be lifted at some time
-
-    //scratchreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-    // load high 32 bit
-    load32bitconstant(list, size, hi(a), NR_R0);
-    // combine both registers
-    list.concat(taicpu.op_reg_reg_const_const(A_RLDIMI, reg, NR_R0, 32, 0));
-  end;
-(*
-  // for 16/32 bit unsigned constants we need to make sure that the difference from this size to
-  // 32 bits is cleared (since we optimize loading them as signed 16 bit parts, but 32 bit ops are
-  // used for them.
-  // e.g. for 16 bit there's a problem if the (unsigned) constant is of the form
-  //   xx..xx xx..xx 00..00 1x..xx
-  // same problem as above for 32 bit: unsigned constants of the form
-  //   xx..xx xx..xx 00..00 1x..xx
-  // cause troubles. Signed are ok.
-  // for now, just clear the upper 48/32 bits (also because full 32 bit op usage isn't done yet)
-  if (size in [OS_16, OS_32]) {and (lo(a) < 0)} then begin
-    a_load_reg_reg(list, size, size, reg, reg);
-  end; *)
-  // need to clear MSB for unsigned 64 bit int because we did not load the upper
-  // 32 bit at all (second expression is optimization: enable and test later!)
-  // e.g. constants of the form 00..00 00..00 1x..xx xx..xx
-  if (size in [OS_64]) and (hi(a) = 0) then begin
-        list.concat(taicpu.op_reg_reg_const_const(A_RLDICL, reg, reg, 0, 32));
-  end;
-end;
-
-procedure tcgppc.a_load_reg_ref(list: taasmoutput; fromsize, tosize: TCGSize;
-  reg: tregister; const ref: treference);
-
-const
-  StoreInstr: array[OS_8..OS_64, boolean, boolean] of TAsmOp =
-  { indexed? updating?}
-  (((A_STB, A_STBU), (A_STBX, A_STBUX)),
-    ((A_STH, A_STHU), (A_STHX, A_STHUX)),
-    ((A_STW, A_STWU), (A_STWX, A_STWUX)),
-    ((A_STD, A_STDU), (A_STDX, A_STDUX))
-    );
-var
-  op: TAsmOp;
-  ref2: TReference;
-begin
-  ref2 := ref;
-  fixref(list, ref2);
-  if tosize in [OS_S8..OS_S64] then
-    { storing is the same for signed and unsigned values }
-    tosize := tcgsize(ord(tosize) - (ord(OS_S8) - ord(OS_8)));
-  op := storeinstr[tcgsize2unsigned[tosize], ref2.index <> NR_NO, false];
-  a_load_store(list, op, reg, ref2);
-end;
-
-procedure tcgppc.a_load_ref_reg(list: taasmoutput; fromsize, tosize: tcgsize;
-  const ref: treference; reg: tregister);
-
-const
-  LoadInstr: array[OS_8..OS_S64, boolean, boolean] of TAsmOp =
-  { indexed? updating?}
-  (((A_LBZ, A_LBZU), (A_LBZX, A_LBZUX)),
-    ((A_LHZ, A_LHZU), (A_LHZX, A_LHZUX)),
-    ((A_LWZ, A_LWZU), (A_LWZX, A_LWZUX)),
-    ((A_LD, A_LDU), (A_LDX, A_LDUX)),
-    { 128bit stuff too }
-    ((A_NONE, A_NONE), (A_NONE, A_NONE)),
-    { there's no load-byte-with-sign-extend :( }
-    ((A_LBZ, A_LBZU), (A_LBZX, A_LBZUX)),
-    ((A_LHA, A_LHAU), (A_LHAX, A_LHAUX)),
-    { there's no load-word-arithmetic-indexed with update, simulate it in code :( }
-    ((A_LWA, A_LWAU), (A_LWAX, A_LWAUX)),
-    ((A_LD, A_LDU), (A_LDX, A_LDUX))
-    );
-var
-  op: tasmop;
-  ref2: treference;
-
-begin
-  { TODO: optimize/take into consideration fromsize/tosize. Will }
-  { probably only matter for OS_S8 loads though                  }
-  if not (fromsize in [OS_8, OS_S8, OS_16, OS_S16, OS_32, OS_S32, OS_64, OS_S64]) then
-    internalerror(2002090902);
-  ref2 := ref;
-  fixref(list, ref2);
-  { the caller is expected to have adjusted the reference already }
-  { in this case                                                  }
-  if (TCGSize2Size[fromsize] >= TCGSize2Size[tosize]) then
-    fromsize := tosize;
-  op := loadinstr[fromsize, ref2.index <> NR_NO, false];
-  // there is no LWAU instruction, simulate using ADDI and LWA
-  if (op = A_LWAU) then begin
-        list.concat(taicpu.op_reg_reg_const(A_ADDI, reg, reg, ref2.offset));
-        ref2.offset := 0;
-        op := A_LWA;
-  end;
-  a_load_store(list, op, reg, ref2);
-  // sign extend shortint if necessary, since there is no
-  // load instruction that does that automatically (JM)
-  if fromsize = OS_S8 then
-    list.concat(taicpu.op_reg_reg(A_EXTSB, reg, reg));
-end;
-
-procedure tcgppc.a_load_reg_reg(list: taasmoutput; fromsize, tosize: tcgsize;
-  reg1, reg2: tregister);
-
-const
-  movemap : array[OS_8..OS_S128, OS_8..OS_S128] of tasmop = (
-{     to  -> OS_8      OS_16     OS_32     OS_64     OS_128    OS_S8     OS_S16    OS_S32    OS_S64    OS_S128 }
-{ from }
-{ OS_8    } (A_MR,     A_RLDICL, A_RLDICL, A_RLDICL, A_NONE,   A_RLDICL, A_RLDICL, A_RLDICL, A_RLDICL, A_NOP   ),
-{ OS_16   } (A_RLDICL, A_MR,     A_RLDICL, A_RLDICL, A_NONE,   A_RLDICL, A_RLDICL, A_RLDICL, A_RLDICL, A_NOP   ),
-{ OS_32   } (A_RLDICL, A_RLDICL, A_MR,     A_RLDICL, A_NONE,   A_RLDICL, A_RLDICL, A_RLDICL, A_RLDICL, A_NOP   ),
-{ OS_64   } (A_RLDICL, A_RLDICL, A_RLDICL, A_MR,     A_NONE,   A_RLDICL, A_RLDICL, A_RLDICL, A_RLDICL, A_NOP   ),
-{ OS_128  } (A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NOP   ),
-{ OS_S8   } (A_EXTSB,  A_EXTSB,  A_EXTSB,  A_EXTSB,  A_NONE,   A_MR,     A_EXTSB,  A_EXTSB,  A_EXTSB,  A_NOP   ),
-{ OS_S16  } (A_RLDICL, A_EXTSH,  A_EXTSH,  A_EXTSH,  A_NONE,   A_EXTSB,  A_MR,     A_EXTSH,  A_EXTSH,  A_NOP   ),
-{ OS_S32  } (A_RLDICL, A_RLDICL, A_EXTSW,  A_EXTSW,  A_NONE,   A_EXTSB,  A_EXTSH,  A_MR,     A_EXTSW,  A_NOP   ),
-{ OS_S64  } (A_RLDICL, A_RLDICL, A_RLDICL, A_MR,     A_NONE,   A_EXTSB,  A_EXTSH,  A_EXTSW,  A_MR,     A_NOP   ),
-{ OS_S128 } (A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NONE,   A_NOP   )
-);
-
-var
-  instr: taicpu;
-  op : tasmop;
-begin
-  op := movemap[fromsize, tosize];
-  case op of
-        A_MR, A_EXTSB, A_EXTSH, A_EXTSW : instr := taicpu.op_reg_reg(op, reg2, reg1);
-        A_RLDICL : instr := taicpu.op_reg_reg_const_const(A_RLDICL, reg2, reg1, 0, (8-tcgsize2size[fromsize])*8);
-  else
-    internalerror(2002090901);
-  end;
-  list.concat(instr);
-  rg[R_INTREGISTER].add_move_instruction(instr);
-end;
-
-procedure tcgppc.a_loadfpu_reg_reg(list: taasmoutput; size: tcgsize; reg1, reg2:
-  tregister);
-var
-  instr: taicpu;
-begin
-  instr := taicpu.op_reg_reg(A_FMR, reg2, reg1);
-  list.concat(instr);
-  rg[R_FPUREGISTER].add_move_instruction(instr);
-end;
-
-procedure tcgppc.a_loadfpu_ref_reg(list: taasmoutput; size: tcgsize; const ref:
-  treference; reg: tregister);
-const
-  FpuLoadInstr: array[OS_F32..OS_F64, boolean, boolean] of TAsmOp =
-  { indexed? updating?}
-  (((A_LFS, A_LFSU), (A_LFSX, A_LFSUX)),
-   ((A_LFD, A_LFDU), (A_LFDX, A_LFDUX)));
-var
-  op: tasmop;
-  ref2: treference;
-
-begin
-  { several functions call this procedure with OS_32 or OS_64 }
-  { so this makes life easier (FK)                            }
-  case size of
-    OS_32, OS_F32:
-      size := OS_F32;
-    OS_64, OS_F64, OS_C64:
-      size := OS_F64;
-  else
-    internalerror(200201121);
-  end;
-  ref2 := ref;
-  fixref(list, ref2);
-  op := fpuloadinstr[size, ref2.index <> NR_NO, false];
-  a_load_store(list, op, reg, ref2);
-end;
-
-procedure tcgppc.a_loadfpu_reg_ref(list: taasmoutput; size: tcgsize; reg:
-  tregister; const ref: treference);
-
-const
-  FpuStoreInstr: array[OS_F32..OS_F64, boolean, boolean] of TAsmOp =
-  { indexed? updating?}
-  (((A_STFS, A_STFSU), (A_STFSX, A_STFSUX)),
-   ((A_STFD, A_STFDU), (A_STFDX, A_STFDUX)));
-var
-  op: tasmop;
-  ref2: treference;
-
-begin
-  if not (size in [OS_F32, OS_F64]) then
-    internalerror(200201122);
-  ref2 := ref;
-  fixref(list, ref2);
-  op := fpustoreinstr[size, ref2.index <> NR_NO, false];
-  a_load_store(list, op, reg, ref2);
-end;
-
-procedure tcgppc.a_op_const_reg(list: taasmoutput; Op: TOpCG; size: TCGSize; a:
-  aint; reg: TRegister);
-begin
-  a_op_const_reg_reg(list, op, size, a, reg, reg);
-end;
-
-procedure tcgppc.a_op_reg_reg(list: taasmoutput; Op: TOpCG; size: TCGSize; src,
-  dst: TRegister);
-begin
-  a_op_reg_reg_reg(list, op, size, src, dst, dst);
-end;
-
-procedure tcgppc.a_op_const_reg_reg(list: taasmoutput; op: TOpCg;
-  size: tcgsize; a: aint; src, dst: tregister);
-var
-  l1, l2: longint;
-  oplo, ophi: tasmop;
-  scratchreg: tregister;
-  useReg : boolean;
-  shiftmask : longint;
-
-  procedure do_lo_hi;
-  begin
-    usereg := false;
-    if (size in [OS_64, OS_S64]) then begin
-      // ts: use register method for 64 bit consts. Sloooooow
-      usereg := true;
-    end else if (size in [OS_32, OS_S32]) then begin
-      list.concat(taicpu.op_reg_reg_const(oplo, dst, src, word(a)));
-      list.concat(taicpu.op_reg_reg_const(ophi, dst, dst, word(a shr 16)));
-    end else begin
-      list.concat(taicpu.op_reg_reg_const(oplo, dst, src, word(a)));
-    end;
-  end;
-
-begin
-  if op = OP_SUB then begin
-    a_op_const_reg_reg(list, OP_ADD, size, -a, src, dst);
-    exit;
-  end;
-  ophi := TOpCG2AsmOpConstHi[op];
-  oplo := TOpCG2AsmOpConstLo[op];
-  // peephole optimizations for AND, OR, XOR - can't this be done at
-  // some higher level, independent of architecture?
-  if (op in [OP_AND, OP_OR, OP_XOR]) then begin
-    if (a = 0) then begin
-      if op = OP_AND then
-        list.concat(taicpu.op_reg_const(A_LI, dst, 0))
-      else
-        a_load_reg_reg(list, size, size, src, dst);
-      exit;
-    end else if (a = -1) then begin
-      case op of
-        OP_OR:
-          list.concat(taicpu.op_reg_const(A_LI, dst, -1));
-        OP_XOR:
-          list.concat(taicpu.op_reg_reg(A_NOT, dst, src));
-        OP_AND:
-          a_load_reg_reg(list, size, size, src, dst);
-      end;
-      exit;
-    end;
-  { optimization for add }
-  end else if (op = OP_ADD) then
-    if a = 0 then begin
-      a_load_reg_reg(list, size, size, src, dst);
-      exit;
-    end else if (a >= low(smallint)) and (a <= high(smallint)) then begin
-      list.concat(taicpu.op_reg_reg_const(A_ADDI, dst, src, smallint(a)));
-      exit;
-    end;
-
-  { otherwise, the instructions we can generate depend on the }
-  { operation                                                 }
-  useReg := false;
-  case op of
-    OP_DIV, OP_IDIV:
-      if (a = 0) then
-        internalerror(200208103)
-      else if (a = 1) then begin
-        a_load_reg_reg(list, OS_INT, OS_INT, src, dst);
-        exit
-      end else if false {and ispowerof2(a, l1)} then begin
-        internalerror(200208103);
-        case op of
-          OP_DIV: begin
-            list.concat(taicpu.op_reg_reg_const(A_SRDI, dst, src, l1));
-          end;
-          OP_IDIV:
-            begin
-              list.concat(taicpu.op_reg_reg_const(A_SRADI, dst, src, l1));
-              list.concat(taicpu.op_reg_reg(A_ADDZE, dst, dst));
-            end;
-        end;
-        exit;
-      end else
-        usereg := true;
-    OP_IMUL, OP_MUL:
-      if (a = 0) then begin
-        list.concat(taicpu.op_reg_const(A_LI, dst, 0));
-        exit
-      end else if (a = -1) then begin
-        list.concat(taicpu.op_reg_reg(A_NEG, dst, dst));
-      end else if (a = 1) then begin
-        a_load_reg_reg(list, OS_INT, OS_INT, src, dst);
-        exit
-      end else if ispowerof2(a, l1) then
-        list.concat(taicpu.op_reg_reg_const(A_SLDI, dst, src, l1))
-      else if (a >= low(smallint)) and (a <= high(smallint)) then
-        list.concat(taicpu.op_reg_reg_const(A_MULLI, dst, src,
-          smallint(a)))
-      else
-        usereg := true;
-    OP_ADD:
-      do_lo_hi;
-    OP_OR:
-      do_lo_hi;
-    OP_AND:
-      useReg := true;
-    OP_XOR:
-      do_lo_hi;
-    OP_SHL, OP_SHR, OP_SAR:
-      begin
-        {$note ts: cleanup todo, fix remaining bugs}
-        if (size in [OS_64, OS_S64]) then begin
-          if (a and 63) <> 0 then
-            list.concat(taicpu.op_reg_reg_const(
-              TShiftOpCG2AsmOpConst64[Op], dst, src, a and 63))
-          else
-            a_load_reg_reg(list, size, size, src, dst);
-          if (a shr 6) <> 0 then
-            internalError(68991);
-        end else begin
-          if (a and 31) <> 0 then
-            list.concat(taicpu.op_reg_reg_const(
-              TShiftOpCG2AsmOpConst32[Op], dst, src, a and 31))
-          else
-            a_load_reg_reg(list, size, size, src, dst);
-          if (a shr 5) <> 0 then
-            internalError(68991);
-        end;
-      end
-  else
-    internalerror(200109091);
-  end;
-  { if all else failed, load the constant in a register and then }
-  { perform the operation                                        }
-  if useReg then begin
-    scratchreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-    a_load_const_reg(list, size, a, scratchreg);
-    a_op_reg_reg_reg(list, op, size, scratchreg, src, dst);
-  end;
-end;
-
-procedure tcgppc.a_op_reg_reg_reg(list: taasmoutput; op: TOpCg;
-  size: tcgsize; src1, src2, dst: tregister);
-
-const
-  op_reg_reg_opcg2asmop32: array[TOpCG] of tasmop =
-  (A_NONE, A_ADD, A_AND, A_DIVWU, A_DIVW, A_MULLW, A_MULLW, A_NEG, A_NOT, A_OR,
-   A_SRAW, A_SLW, A_SRW, A_SUB, A_XOR);
-  op_reg_reg_opcg2asmop64: array[TOpCG] of tasmop =
-  (A_NONE, A_ADD, A_AND, A_DIVDU, A_DIVD, A_MULLD, A_MULLD, A_NEG, A_NOT, A_OR,
-   A_SRAD, A_SLD, A_SRD, A_SUB, A_XOR);
-
-begin
-  case op of
-    OP_NEG, OP_NOT:
-      begin
-        list.concat(taicpu.op_reg_reg(op_reg_reg_opcg2asmop64[op], dst, src1));
-        if (op = OP_NOT) and
-          not (size in [OS_64, OS_S64]) then
-          { zero/sign extend result again, fromsize is not important here }
-          a_load_reg_reg(list, OS_S64, size, dst, dst)
-      end;
-  else
-  {$NOTE ts:testme}
-    if (size in [OS_64, OS_S64]) then begin
-      list.concat(taicpu.op_reg_reg_reg(op_reg_reg_opcg2asmop64[op], dst, src2,
-        src1));
-    end else begin
-      list.concat(taicpu.op_reg_reg_reg(op_reg_reg_opcg2asmop32[op], dst, src2,
-        src1));
-    end;
-  end;
-end;
-
-{*************** compare instructructions ****************}
-
-procedure tcgppc.a_cmp_const_reg_label(list: taasmoutput; size: tcgsize; cmp_op:
-  topcmp; a: aint; reg: tregister;
-  l: tasmlabel);
-
-var
-  scratch_register: TRegister;
-  signed: boolean;
-
-begin
-  signed := cmp_op in [OC_GT, OC_LT, OC_GTE, OC_LTE];
-  { in the following case, we generate more efficient code when }
-  { signed is true                                              }
-  if (cmp_op in [OC_EQ, OC_NE]) and
-    (aword(a) > $FFFF) then
-    signed := true;
-  if signed then
-    if (a >= low(smallint)) and (a <= high(smallint)) then
-      list.concat(taicpu.op_reg_reg_const(A_CMPDI, NR_CR0, reg, a))
-    else
-    begin
-      scratch_register := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-      a_load_const_reg(list, OS_64, a, scratch_register);
-      list.concat(taicpu.op_reg_reg_reg(A_CMPD, NR_CR0, reg, scratch_register));
-    end
-  else if (aword(a) <= $FFFF) then
-    list.concat(taicpu.op_reg_reg_const(A_CMPLDI, NR_CR0, reg, aword(a)))
-  else
-  begin
-    scratch_register := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-    a_load_const_reg(list, OS_64, a, scratch_register);
-    list.concat(taicpu.op_reg_reg_reg(A_CMPLD, NR_CR0, reg,
-      scratch_register));
-  end;
-  a_jmp(list, A_BC, TOpCmp2AsmCond[cmp_op], 0, l);
-end;
-
-procedure tcgppc.a_cmp_reg_reg_label(list: taasmoutput; size: tcgsize; cmp_op:
-  topcmp;
-  reg1, reg2: tregister; l: tasmlabel);
-
-var
-  op: tasmop;
-
-begin
-  if cmp_op in [OC_GT, OC_LT, OC_GTE, OC_LTE] then
-    if (size in [OS_64, OS_S64]) then
-      op := A_CMPD
-    else
-      op := A_CMPW
-  else
-    if (size in [OS_64, OS_S64]) then
-      op := A_CMPLD
-    else
-      op := A_CMPLW;
-  list.concat(taicpu.op_reg_reg_reg(op, NR_CR0, reg2, reg1));
-  a_jmp(list, A_BC, TOpCmp2AsmCond[cmp_op], 0, l);
-end;
-
-procedure tcgppc.a_jmp_cond(list: taasmoutput; cond: TOpCmp; l: tasmlabel);
-
-begin
-  a_jmp(list, A_BC, TOpCmp2AsmCond[cond], 0, l);
-end;
-
-procedure tcgppc.a_jmp_name(list: taasmoutput; const s: string);
-var
-  p: taicpu;
-begin
-  p := taicpu.op_sym(A_B, objectlibrary.newasmsymbol(s, AB_EXTERNAL,
-    AT_LABEL));
-  p.is_jmp := true;
-  list.concat(p)
-end;
-
-procedure tcgppc.a_jmp_always(list: taasmoutput; l: tasmlabel);
-
-begin
-  a_jmp(list, A_B, C_None, 0, l);
-end;
-
-procedure tcgppc.a_jmp_flags(list: taasmoutput; const f: TResFlags; l:
-  tasmlabel);
-
-var
-  c: tasmcond;
-begin
-  c := flags_to_cond(f);
-  a_jmp(list, A_BC, c.cond, c.cr - RS_CR0, l);
-end;
-
-procedure tcgppc.g_flags2reg(list: taasmoutput; size: TCgSize; const f:
-  TResFlags; reg: TRegister);
-
-var
-  testbit: byte;
-  bitvalue: boolean;
-
-begin
-  { get the bit to extract from the conditional register + its }
-  { requested value (0 or 1)                                   }
-  testbit := ((f.cr - RS_CR0) * 4);
-  case f.flag of
-    F_EQ, F_NE:
-      begin
-        inc(testbit, 2);
-        bitvalue := f.flag = F_EQ;
-      end;
-    F_LT, F_GE:
-      begin
-        bitvalue := f.flag = F_LT;
-      end;
-    F_GT, F_LE:
-      begin
-        inc(testbit);
-        bitvalue := f.flag = F_GT;
-      end;
-  else
-    internalerror(200112261);
-  end;
-  { load the conditional register in the destination reg }
-  list.concat(taicpu.op_reg(A_MFCR, reg));
-  { we will move the bit that has to be tested to bit 0 by rotating }
-  { left                                                            }
-  testbit := (testbit + 1) and 31;
-  { extract bit }
-  list.concat(taicpu.op_reg_reg_const_const_const(
-    A_RLWINM,reg,reg,testbit,31,31));
-
-  { if we need the inverse, xor with 1 }
-  if not bitvalue then
-    list.concat(taicpu.op_reg_reg_const(A_XORI, reg, reg, 1));
-end;
-
-{ *********** entry/exit code and address loading ************ }
-
-procedure tcgppc.g_save_standard_registers(list: Taasmoutput);
-begin
-  { this work is done in g_proc_entry }
-end;
-
-procedure tcgppc.g_restore_standard_registers(list: Taasmoutput);
-begin
-  { this work is done in g_proc_exit }
-end;
-
-procedure tcgppc.g_proc_entry(list: taasmoutput; localsize: longint;
-  nostackframe: boolean);
-{ generated the entry code of a procedure/function. Note: localsize is the }
-{ sum of the size necessary for local variables and the maximum possible   }
-{ combined size of ALL the parameters of a procedure called by the current }
-{ one.                                                                     }
-{ This procedure may be called before, as well as after g_return_from_proc }
-{ is called. NOTE registers are not to be allocated through the register   }
-{ allocator here, because the register colouring has already occured !!    }
-  procedure calcFirstUsedFPR(out firstfpr : TSuperRegister; out fprcount : aint);
-  var
-    reg : TSuperRegister;
-  begin
-    fprcount := 0;
-    firstfpr := RS_F31;
-    if not (po_assembler in current_procinfo.procdef.procoptions) then begin
-      for reg := RS_F14 to RS_F31 do begin
-        if reg in rg[R_FPUREGISTER].used_in_proc then begin
-          fprcount := ord(RS_F31)-ord(reg)+1;
-          firstfpr := reg;
-          break;
-        end;
-      end;
-    end;
-  end;
-
-  procedure calcFirstUsedGPR(out firstgpr : TSuperRegister; out gprcount : aint);
-  var
-    reg : TSuperRegister;
-  begin
-    gprcount := 0;
-    firstgpr := RS_R31;
-    if not (po_assembler in current_procinfo.procdef.procoptions) then begin
-      for reg := RS_R14 to RS_R31 do begin
-        if reg in rg[R_INTREGISTER].used_in_proc then begin
-          gprcount := ord(RS_R31)-ord(reg)+1;
-          firstgpr := reg;
-          break;
-        end;
-      end;
-    end;
-  end;
-
-var
-  firstregfpu, firstreggpr: TSuperRegister;
-  href: treference;
-  needslinkreg: boolean;
-  regcount : TSuperRegister;
-
-  fprcount, gprcount : aint;
-
-begin
-  { CR and LR only have to be saved in case they are modified by the current }
-  { procedure, but currently this isn't checked, so save them always         }
-  { following is the entry code as described in "Altivec Programming }
-  { Interface Manual", bar the saving of AltiVec registers           }
-  a_reg_alloc(list, NR_STACK_POINTER_REG);
-  a_reg_alloc(list, NR_R0);
-
-  calcFirstUsedFPR(firstregfpu, fprcount);
-  calcFirstUsedGPR(firstreggpr, gprcount);
-
-  // calculate real stack frame size
-  localsize := tppcprocinfo(current_procinfo).calc_stackframe_size(
-    gprcount, fprcount);
-
-  // determine whether we need to save the link register
-  needslinkreg := ((not (po_assembler in current_procinfo.procdef.procoptions)) and
-    (pi_do_call in current_procinfo.flags));
-
-  // move link register to r0
-  if (needslinkreg) then begin
-    list.concat(taicpu.op_reg(A_MFLR, NR_R0));
-  end;
-  // save old stack frame pointer
-  if (localsize > 0) then begin
-    a_reg_alloc(list, NR_R12);
-    list.concat(taicpu.op_reg_reg(A_MR, NR_R12, NR_STACK_POINTER_REG));
-  end;
-
-  // save registers, FPU first, then GPR
-  reference_reset_base(href, NR_STACK_POINTER_REG, -8);
-  if (fprcount > 0) then begin
-    for regcount := RS_F31 downto firstregfpu do begin
-      a_loadfpu_reg_ref(list, OS_FLOAT, newreg(R_FPUREGISTER, regcount,
-        R_SUBNONE), href);
-      dec(href.offset, tcgsize2size[OS_FLOAT]);
-    end;
-  end;
-  if (gprcount > 0) then begin
-    for regcount := RS_R31 downto firstreggpr do begin
-      a_load_reg_ref(list, OS_INT, OS_INT, newreg(R_INTREGISTER, regcount,
-        R_SUBNONE), href);
-      dec(href.offset, tcgsize2size[OS_INT]);
-    end;
-  end;
-
-  // VMX registers not supported by FPC atm
-
-  // we may need to store R0 (=LR) ourselves
-  if (needslinkreg) then begin
-    reference_reset_base(href, NR_STACK_POINTER_REG, LA_LR_ELF);
-    list.concat(taicpu.op_reg_ref(A_STD, NR_R0, href));
-  end;
-
-  // create stack frame
-  if (not nostackframe) and (localsize > 0) then begin
-    if (localsize <= high(smallint)) then begin
-      reference_reset_base(href, NR_STACK_POINTER_REG, -localsize);
-      a_load_store(list, A_STDU, NR_STACK_POINTER_REG, href);
-    end else begin
-      reference_reset_base(href, NR_NO, -localsize);
-
-      // use R0 for loading the constant (which is definitely > 32k when entering
-      // this branch)
-      // inlined because it must not use temp registers because register allocations
-      // have already been done :(
-      { Code template:
-      lis   r0,ofs@highest
-      ori   r0,r0,ofs@higher
-      sldi  r0,r0,32
-      oris  r0,r0,ofs@h
-      ori   r0,r0,ofs@l
-      }
-      list.concat(taicpu.op_reg_const(A_LIS, NR_R0, word(href.offset shr 48)));
-      list.concat(taicpu.op_reg_reg_const(A_ORI, NR_R0, NR_R0, word(href.offset shr 32)));
-      list.concat(taicpu.op_reg_reg_const(A_SLDI, NR_R0, NR_R0, 32));
-      list.concat(taicpu.op_reg_reg_const(A_ORIS, NR_R0, NR_R0, word(href.offset shr 16)));
-      list.concat(taicpu.op_reg_reg_const(A_ORI, NR_R0, NR_R0, word(href.offset)));
-
-      list.concat(taicpu.op_reg_reg_reg(A_STDUX, NR_R1, NR_R1, NR_R0));
-    end;
-  end;
-
-  // CR register not used by FPC atm
-
-  // keep R1 allocated???
-  a_reg_dealloc(list, NR_R0);
-end;
-
-procedure tcgppc.g_proc_exit(list: taasmoutput; parasize: longint; nostackframe:
-  boolean);
-
-  procedure calcFirstUsedFPR(out firstfpr : TSuperRegister; out fprcount : aint);
-  var
-    reg : TSuperRegister;
-  begin
-    fprcount := 0;
-    firstfpr := RS_F31;
-    if not (po_assembler in current_procinfo.procdef.procoptions) then begin
-      for reg := RS_F14 to RS_F31 do begin
-        if reg in rg[R_FPUREGISTER].used_in_proc then begin
-          fprcount := ord(RS_F31)-ord(reg)+1;
-          firstfpr := reg;
-          break;
-        end;
-      end;
-    end;
-  end;
-
-  procedure calcFirstUsedGPR(out firstgpr : TSuperRegister; out gprcount : aint);
-  var
-    reg : TSuperRegister;
-  begin
-    gprcount := 0;
-    firstgpr := RS_R31;
-    if not (po_assembler in current_procinfo.procdef.procoptions) then begin
-      for reg := RS_R14 to RS_R31 do begin
-        if reg in rg[R_INTREGISTER].used_in_proc then begin
-          gprcount := ord(RS_R31)-ord(reg)+1;
-          firstgpr := reg;
-          break;
-        end;
-      end;
-    end;
-  end;
-
-{ This procedure may be called before, as well as after g_stackframe_entry }
-{ is called. NOTE registers are not to be allocated through the register   }
-{ allocator here, because the register colouring has already occured !!    }
-
-var
-  regcount, firstregfpu, firstreggpr: TSuperRegister;
-  href: treference;
-  needslinkreg : boolean;
-  localsize,
-  fprcount, gprcount: aint;
-begin
-  calcFirstUsedFPR(firstregfpu, fprcount);
-  calcFirstUsedGPR(firstreggpr, gprcount);
-
-  // determine whether we need to restore the link register
-  needslinkreg := ((not (po_assembler in current_procinfo.procdef.procoptions)) and
-    (pi_do_call in current_procinfo.flags));
-  // calculate stack frame
-  localsize := tppcprocinfo(current_procinfo).calc_stackframe_size(
-    gprcount, fprcount);
-
-  // CR register not supported
-
-  // restore stack pointer
-  if (not nostackframe) and (localsize > 0) then begin
-    if (localsize <= high(smallint)) then begin
-      list.concat(taicpu.op_reg_reg_const(A_ADDI, NR_STACK_POINTER_REG, NR_STACK_POINTER_REG, localsize));
-    end else begin
-      reference_reset_base(href, NR_NO, localsize);
-
-      // use R0 for loading the constant (which is definitely > 32k when entering
-      // this branch)
-      // inlined because it must not use temp registers because register allocations
-      // have already been done :(
-      { Code template:
-      lis   r0,ofs@highest
-      ori   r0,ofs@higher
-      sldi  r0,r0,32
-      oris  r0,r0,ofs@h
-      ori   r0,r0,ofs@l
-      }
-      list.concat(taicpu.op_reg_const(A_LIS, NR_R0, word(href.offset shr 48)));
-      list.concat(taicpu.op_reg_reg_const(A_ORI, NR_R0, NR_R0, word(href.offset shr 32)));
-      list.concat(taicpu.op_reg_reg_const(A_SLDI, NR_R0, NR_R0, 32));
-      list.concat(taicpu.op_reg_reg_const(A_ORIS, NR_R0, NR_R0, word(href.offset shr 16)));
-      list.concat(taicpu.op_reg_reg_const(A_ORI, NR_R0, NR_R0, word(href.offset)));
-
-      list.concat(taicpu.op_reg_reg_reg(A_ADD, NR_R1, NR_R1, NR_R0));
-    end;
-  end;
-
-  // load registers, FPR first, then GPR
-  {$note ts:todo change order of loading}
-  reference_reset_base(href, NR_STACK_POINTER_REG, -tcgsize2size[OS_FLOAT]);
-  if (fprcount > 0) then begin
-    for regcount := RS_F31 downto firstregfpu do begin
-      a_loadfpu_ref_reg(list, OS_FLOAT, href, newreg(R_FPUREGISTER, regcount,
-        R_SUBNONE));
-      dec(href.offset, tcgsize2size[OS_FLOAT]);
-    end;
-  end;
-  if (gprcount > 0) then begin
-    for regcount := RS_R31 downto firstreggpr do begin
-      a_load_ref_reg(list, OS_INT, OS_INT, href, newreg(R_INTREGISTER, regcount,
-        R_SUBNONE));
-      dec(href.offset, tcgsize2size[OS_INT]);
-    end;
-  end;
-
-  // VMX not supported...
-
-  // restore LR (if needed)
-  if (needslinkreg) then begin
-    reference_reset_base(href, NR_STACK_POINTER_REG, LA_LR_ELF);
-    list.concat(taicpu.op_reg_ref(A_LD, NR_R0, href));
-    list.concat(taicpu.op_reg(A_MTLR, NR_R0));
-  end;
-
-  // generate return instruction
-  list.concat(taicpu.op_none(A_BLR));
-end;
-
-
-procedure tcgppc.a_loadaddr_ref_reg(list: taasmoutput; const ref: treference; r:
-  tregister);
-
-var
-  ref2, tmpref: treference;
-  // register used to construct address
-  tempreg : TRegister;
-
-begin
-  ref2 := ref;
-  fixref(list, ref2);
-  { load a symbol }
-  if assigned(ref2.symbol) or (ref2.offset < low(smallint)) or (ref2.offset > high(smallint)) then begin
-      { add the symbol's value to the base of the reference, and if the }
-      { reference doesn't have a base, create one                       }
-      reference_reset(tmpref);
-      tmpref.offset := ref2.offset;
-      tmpref.symbol := ref2.symbol;
-      tmpref.relsymbol := ref2.relsymbol;
-      // load 64 bit reference into r. If the reference already has a base register,
-      // first load the 64 bit value into a temp register, then add it to the result
-      // register rD
-      if (ref2.base <> NR_NO) then begin
-        // already have a base register, so allocate a new one
-        tempreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-      end else begin
-        tempreg := r;
-      end;
-
-      // code for loading a reference from a symbol into a register rD.
-      (*
-      lis   rX,SYM@highest
-      ori   rX,SYM@higher
-      sldi  rX,rX,32
-      oris  rX,rX,SYM@h
-      ori   rX,rX,SYM@l
-      *)
-      tmpref.refaddr := addr_highest;
-      list.concat(taicpu.op_reg_ref(A_LIS, tempreg, tmpref));
-      tmpref.refaddr := addr_higher;
-      list.concat(taicpu.op_reg_reg_ref(A_ORI, tempreg, tempreg, tmpref));
-      list.concat(taicpu.op_reg_reg_const(A_SLDI, tempreg, tempreg, 32));
-      tmpref.refaddr := addr_high;
-      list.concat(taicpu.op_reg_reg_ref(A_ORIS, tempreg, tempreg, tmpref));
-      tmpref.refaddr := addr_low;
-      list.concat(taicpu.op_reg_reg_ref(A_ORI, tempreg, tempreg, tmpref));
-
-      // if there's already a base register, add the temp register contents to
-      // the base register
-      if (ref2.base <> NR_NO) then begin
-        list.concat(taicpu.op_reg_reg_reg(A_ADD, r, tempreg, ref2.base));
-      end;
-  end else if ref2.offset <> 0 then begin
-    { no symbol, but offset <> 0 }
-    if ref2.base <> NR_NO then begin
-      a_op_const_reg_reg(list, OP_ADD, OS_64, ref2.offset, ref2.base, r)
-      { FixRef makes sure that "(ref.index <> R_NO) and (ref.offset <> 0)" never}
-      { occurs, so now only ref.offset has to be loaded                         }
-    end else begin
-      a_load_const_reg(list, OS_64, ref2.offset, r)
-    end;
-  end else if ref.index <> NR_NO then
-    list.concat(taicpu.op_reg_reg_reg(A_ADD, r, ref2.base, ref2.index))
-  else if (ref2.base <> NR_NO) and
-    (r <> ref2.base) then
-    a_load_reg_reg(list, OS_ADDR, OS_ADDR, ref2.base, r)
-  else begin
-    list.concat(taicpu.op_reg_const(A_LI, r, 0));
-  end;
-end;
-
-{ ************* concatcopy ************ }
-
-const
-  maxmoveunit = 8;
-
-
-procedure tcgppc.g_concatcopy(list: taasmoutput; const source, dest: treference;
-  len: aint);
-
-var
-  countreg, tempreg: TRegister;
-  src, dst: TReference;
-  lab: tasmlabel;
-  count, count2: longint;
-  size: tcgsize;
-
-begin
-{$IFDEF extdebug}
-  if len > high(aint) then
-    internalerror(2002072704);
-{$ENDIF extdebug}
-  { make sure short loads are handled as optimally as possible }
-
-  if (len <= maxmoveunit) and
-    (byte(len) in [1, 2, 4, 8]) then
-  begin
-    if len < 8 then
-    begin
-      size := int_cgsize(len);
-      a_load_ref_ref(list, size, size, source, dest);
-    end
-    else
-    begin
-      a_reg_alloc(list, NR_F0);
-      a_loadfpu_ref_reg(list, OS_F64, source, NR_F0);
-      a_loadfpu_reg_ref(list, OS_F64, NR_F0, dest);
-      a_reg_dealloc(list, NR_F0);
-    end;
-    exit;
-  end;
-
-  count := len div maxmoveunit;
-
-  reference_reset(src);
-  reference_reset(dst);
-  { load the address of source into src.base }
-  if (count > 4) or
-    not issimpleref(source) or
-    ((source.index <> NR_NO) and
-    ((source.offset + len) > high(smallint))) then begin
-    src.base := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-    a_loadaddr_ref_reg(list, source, src.base);
-  end else begin
-    src := source;
-  end;
-  { load the address of dest into dst.base }
-  if (count > 4) or
-    not issimpleref(dest) or
-    ((dest.index <> NR_NO) and
-    ((dest.offset + len) > high(smallint))) then begin
-    dst.base := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-    a_loadaddr_ref_reg(list, dest, dst.base);
-  end else begin
-    dst := dest;
-  end;
-
-  { generate a loop }
-  if count > 4 then begin
-    { the offsets are zero after the a_loadaddress_ref_reg and just }
-    { have to be set to 8. I put an Inc there so debugging may be   }
-    { easier (should offset be different from zero here, it will be }
-    { easy to notice in the generated assembler                     }
-    inc(dst.offset, 8);
-    inc(src.offset, 8);
-    list.concat(taicpu.op_reg_reg_const(A_SUBI, src.base, src.base, 8));
-    list.concat(taicpu.op_reg_reg_const(A_SUBI, dst.base, dst.base, 8));
-    countreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-    a_load_const_reg(list, OS_32, count, countreg);
-    { explicitely allocate R_0 since it can be used safely here }
-    { (for holding date that's being copied)                    }
-    a_reg_alloc(list, NR_F0);
-    objectlibrary.getjumplabel(lab);
-    a_label(list, lab);
-    list.concat(taicpu.op_reg_reg_const(A_SUBIC_, countreg, countreg, 1));
-    list.concat(taicpu.op_reg_ref(A_LFDU, NR_F0, src));
-    list.concat(taicpu.op_reg_ref(A_STFDU, NR_F0, dst));
-    a_jmp(list, A_BC, C_NE, 0, lab);
-    a_reg_dealloc(list, NR_F0);
-    len := len mod 8;
-  end;
-
-  count := len div 8;
-  { unrolled loop }
-  if count > 0 then begin
-    a_reg_alloc(list, NR_F0);
-    for count2 := 1 to count do begin
-      a_loadfpu_ref_reg(list, OS_F64, src, NR_F0);
-      a_loadfpu_reg_ref(list, OS_F64, NR_F0, dst);
-      inc(src.offset, 8);
-      inc(dst.offset, 8);
-    end;
-    a_reg_dealloc(list, NR_F0);
-    len := len mod 8;
-  end;
-
-  if (len and 4) <> 0 then begin
-    a_reg_alloc(list, NR_R0);
-    a_load_ref_reg(list, OS_32, OS_32, src, NR_R0);
-    a_load_reg_ref(list, OS_32, OS_32, NR_R0, dst);
-    inc(src.offset, 4);
-    inc(dst.offset, 4);
-    a_reg_dealloc(list, NR_R0);
-  end;
-  { copy the leftovers }
-  if (len and 2) <> 0 then begin
-    a_reg_alloc(list, NR_R0);
-    a_load_ref_reg(list, OS_16, OS_16, src, NR_R0);
-    a_load_reg_ref(list, OS_16, OS_16, NR_R0, dst);
-    inc(src.offset, 2);
-    inc(dst.offset, 2);
-    a_reg_dealloc(list, NR_R0);
-  end;
-  if (len and 1) <> 0 then begin
-    a_reg_alloc(list, NR_R0);
-    a_load_ref_reg(list, OS_8, OS_8, src, NR_R0);
-    a_load_reg_ref(list, OS_8, OS_8, NR_R0, dst);
-    a_reg_dealloc(list, NR_R0);
-  end;
-
-end;
-
-procedure tcgppc.g_overflowcheck(list: taasmoutput; const l: tlocation; def:
-  tdef);
-var
-  hl: tasmlabel;
-  flags : TResFlags;
-begin
-  if not (cs_check_overflow in aktlocalswitches) then
-    exit;
-  objectlibrary.getjumplabel(hl);
-  if not ((def.deftype = pointerdef) or
-    ((def.deftype = orddef) and
-    (torddef(def).typ in [u64bit, u16bit, u32bit, u8bit, uchar,
-    bool8bit, bool16bit, bool32bit]))) then
-  begin
-    // ... instruction setting overflow flag ...
-    // mfxerf R0
-    // mtcrf 128, R0
-    // ble cr0, label
-    list.concat(taicpu.op_reg(A_MFXER, NR_R0));
-    list.concat(taicpu.op_const_reg(A_MTCRF, 128, NR_R0));
-    flags.cr := RS_CR0;
-    flags.flag := F_LE;
-    a_jmp_flags(list, flags, hl);
-  end else
-    a_jmp_cond(list, OC_AE, hl);
-  a_call_name(list, 'FPC_OVERFLOW');
-  a_label(list, hl);
-end;
-
-procedure tcgppc.g_intf_wrapper(list: TAAsmoutput; procdef: tprocdef; const
-  labelname: string; ioffset: longint);
-
-  procedure loadvmttor11;
-  var
-    href: treference;
-  begin
-    reference_reset_base(href, NR_R3, 0);
-    cg.a_load_ref_reg(list, OS_ADDR, OS_ADDR, href, NR_R11);
-  end;
-
-  procedure op_onr11methodaddr;
-  var
-    href: treference;
-  begin
-    if (procdef.extnumber = $FFFF) then
-      Internalerror(200006139);
-    { call/jmp  vmtoffs(%eax) ; method offs }
-    reference_reset_base(href, NR_R11,
-      procdef._class.vmtmethodoffset(procdef.extnumber));
-    if not ((aint(href.offset) >= low(smallint)) and
-      (aint(href.offset) <= high(smallint))) then begin
-      {$warning ts:adapt me}
-      list.concat(taicpu.op_reg_reg_const(A_ADDIS, NR_R11, NR_R11,
-        smallint((href.offset shr 16) + ord(smallint(href.offset and $FFFF) <
-        0))));
-      href.offset := smallint(href.offset and $FFFF);
-    end;
-    list.concat(taicpu.op_reg_ref(A_LD, NR_R11, href));
-    // the loaded reference is a function descriptor reference, so deref again
-    // (at ofs 0 there's the real pointer)
-    {$warning ts:TODO: update GOT reference}
-    reference_reset_base(href, NR_R11, 0);
-    list.concat(taicpu.op_reg_ref(A_LD, NR_R11, href));
-
-    list.concat(taicpu.op_reg(A_MTCTR, NR_R11));
-    list.concat(taicpu.op_none(A_BCTR));
-    // NOP needed for the linker...?
-    list.concat(taicpu.op_none(A_NOP));
-  end;
-
-var
-  make_global: boolean;
-begin
-  if (not (procdef.proctypeoption in [potype_function, potype_procedure])) then
-    Internalerror(200006137);
-  if not assigned(procdef._class) or
-    (procdef.procoptions * [po_classmethod, po_staticmethod,
-    po_methodpointer, po_interrupt, po_iocheck] <> []) then
-    Internalerror(200006138);
-  if procdef.owner.symtabletype <> objectsymtable then
-    Internalerror(200109191);
-
-  make_global := false;
-  if (not current_module.is_unit) or
-    (cs_create_smart in aktmoduleswitches) or
-    (procdef.owner.defowner.owner.symtabletype = globalsymtable) then
-    make_global := true;
-
-  if make_global then
-    List.concat(Tai_symbol.Createname_global(labelname, AT_FUNCTION, 0))
-  else
-    List.concat(Tai_symbol.Createname(labelname, AT_FUNCTION, 0));
-
-  { set param1 interface to self  }
-  g_adjust_self_value(list, procdef, ioffset);
-
-  { case 4 }
-  if po_virtualmethod in procdef.procoptions then begin
-    loadvmttor11;
-    op_onr11methodaddr;
-  end { case 0 } else
-    {$note ts:todo add GOT change?? - think not needed :) }
-    list.concat(taicpu.op_sym(A_B,
-      objectlibrary.newasmsymbol('.' + procdef.mangledname, AB_EXTERNAL,
-      AT_FUNCTION)));
-
-  List.concat(Tai_symbol_end.Createname(labelname));
-end;
-
-{***************** This is private property, keep out! :) *****************}
-
-function tcgppc.issimpleref(const ref: treference): boolean;
-
-begin
-  if (ref.base = NR_NO) and
-    (ref.index <> NR_NO) then
-    internalerror(200208101);
-  result :=
-    not (assigned(ref.symbol)) and
-    (((ref.index = NR_NO) and
-    (ref.offset >= low(smallint)) and
-    (ref.offset <= high(smallint))) or
-    ((ref.index <> NR_NO) and
-    (ref.offset = 0)));
-end;
-
-function tcgppc.fixref(list: taasmoutput; var ref: treference): boolean;
-
-var
-  tmpreg: tregister;
-begin
-  result := false;
-  if (ref.base = NR_NO) then
-  begin
-    ref.base := ref.index;
-    ref.base := NR_NO;
-  end;
-  if (ref.base <> NR_NO) then
-  begin
-    if (ref.index <> NR_NO) and
-      ((ref.offset <> 0) or assigned(ref.symbol)) then
-    begin
-      result := true;
-      tmpreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-      list.concat(taicpu.op_reg_reg_reg(
-        A_ADD, tmpreg, ref.base, ref.index));
-      ref.index := NR_NO;
-      ref.base := tmpreg;
-    end
-  end
-  else if ref.index <> NR_NO then
-    internalerror(200208102);
-end;
-
-procedure tcgppc.a_load_store(list: taasmoutput; op: tasmop; reg: tregister;
-  ref: treference);
-
-var
-  tmpreg: tregister;
-  tmpref: treference;
-  largeOffset: Boolean;
-
-begin
-  tmpreg := NR_NO;
-
-  // if we have to load/store from a symbol or large addresses, use a temporary register
-  // containing the address
-    if assigned(ref.symbol) or (ref.offset < low(smallint)) or (ref.offset > high(smallint)) then begin
-      tmpreg := rg[R_INTREGISTER].getregister(list, R_SUBWHOLE);
-      reference_reset(tmpref);
-      tmpref.symbol := ref.symbol;
-      tmpref.relsymbol := ref.relsymbol;
-      tmpref.offset := ref.offset;
-
-      (*
-      code template when there's no base register
-
-      lis rT,SYM+offs@highesta
-      addi rT,SYM+offs@highera
-      sldi rT,rT,32
-      addis rT,rT,SYM+offs@ha
-      ld rD,SYM+offs@l(rT)
-
-      code template when there's a base register
-
-      lis rT,SYM+offs@highesta
-      addis rT,SYM+offs@highera
-      sldi rT,rT,32
-      addis rT,rT,SYM+offs@ha
-      add  rT,rBase,rT
-      ld rD,SYM+offs@l(rT)
-
-      *)
-      //list.concat(tai_comment.create(strpnew('symbol: ' + tmpref.symbol.name + ' offset: ' + inttostr(tmpref.offset))));
-
-      tmpref.refaddr := addr_highesta;
-      list.concat(taicpu.op_reg_ref(A_LIS, tmpreg, tmpref));
-      tmpref.refaddr := addr_highera;
-      list.concat(taicpu.op_reg_reg_ref(A_ORI, tmpreg, tmpreg, tmpref));
-      list.concat(taicpu.op_reg_reg_const(A_SLDI, tmpreg, tmpreg, 32));
-      tmpref.refaddr := addr_higha;
-      list.concat(taicpu.op_reg_reg_ref(A_ORIS, tmpreg, tmpreg, tmpref));
-
-      if (ref.base <> NR_NO) then begin
-        list.concat(taicpu.op_reg_reg_reg(A_ADD, tmpreg, tmpreg, ref.base));
-      end;
-
-      tmpref.base := tmpreg;
-      tmpref.refaddr := addr_low;
-      list.concat(taicpu.op_reg_ref(op, reg, tmpref));
-    end else begin
-      list.concat(taicpu.op_reg_ref(op, reg, ref));
-    end;
-end;
-
-procedure tcgppc.a_jmp(list: taasmoutput; op: tasmop; c: tasmcondflag;
-  crval: longint; l: tasmlabel);
-var
-  p: taicpu;
-
-begin
-  p := taicpu.op_sym(op, objectlibrary.newasmsymbol(l.name, AB_EXTERNAL,
-    AT_LABEL));
-  if op <> A_B then
-    create_cond_norm(c, crval, p.condition);
-  p.is_jmp := true;
-  list.concat(p)
-end;
-
-begin
-  cg := tcgppc.create;
-end.

+ 0 - 309
compiler/powerpc64/nppccnv.pas

@@ -1,309 +0,0 @@
-{
-    Copyright (c) 1998-2002 by Florian Klaempfl
-
-    Generate PowerPC assembler for type converting nodes
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- ****************************************************************************
-}
-unit nppccnv;
-
-{$I fpcdefs.inc}
-
-interface
-
-uses
-  node, ncnv, ncgcnv, defcmp;
-
-type
-  tppctypeconvnode = class(tcgtypeconvnode)
-  protected
-    { procedure second_int_to_int;override; }
-    { procedure second_string_to_string;override; }
-    { procedure second_cstring_to_pchar;override; }
-    { procedure second_string_to_chararray;override; }
-    { procedure second_array_to_pointer;override; }
-    function first_int_to_real: tnode; override;
-    { procedure second_pointer_to_array;override; }
-    { procedure second_chararray_to_string;override; }
-    { procedure second_char_to_string;override; }
-    procedure second_int_to_real; override;
-    { procedure second_real_to_real; override;}
-    { procedure second_cord_to_pointer;override; }
-    { procedure second_proc_to_procvar;override; }
-    { procedure second_bool_to_int;override; }
-    procedure second_int_to_bool; override;
-    { procedure second_load_smallset;override;  }
-    { procedure second_ansistring_to_pchar;override; }
-    { procedure second_pchar_to_string;override; }
-    { procedure second_class_to_intf;override; }
-    { procedure second_char_to_char;override; }
-  end;
-
-implementation
-
-uses
-  verbose, globtype, globals, systems,
-  symconst, symdef, aasmbase, aasmtai,
-  defutil,
-  cgbase, cgutils, pass_1, pass_2,
-  ncon, ncal,
-  ncgutil,
-  cpubase, aasmcpu,
-  rgobj, tgobj, cgobj;
-
-{*****************************************************************************
-                             FirstTypeConv
-*****************************************************************************}
-
-function tppctypeconvnode.first_int_to_real: tnode;
-begin
-  if (is_currency(left.resulttype.def)) then begin
-    // hack to avoid double division by 10000, as it's
-    // already done by resulttypepass.resulttype_int_to_real
-    left.resulttype := s64inttype;
-  end else begin
-    // everything that is less than 64 bits is converted to a 64 bit signed
-    // integer - because the int_to_real conversion is faster for 64 bit
-    // signed ints compared to 64 bit unsigned ints.
-    if (not (torddef(left.resulttype.def).typ in [s64bit, u64bit])) then begin
-      inserttypeconv(left, s64inttype);
-    end;
-  end;
-  firstpass(left);
-  result := nil;
-  if registersfpu < 1 then
-    registersfpu := 1;
-  expectloc := LOC_FPUREGISTER;
-end;
-
-{*****************************************************************************
-                             SecondTypeConv
-*****************************************************************************}
-
-procedure tppctypeconvnode.second_int_to_real;
-const
-  convconst : double = $100000000;
-var
-  tempconst : trealconstnode;
-  disp, disp2: treference;
-  // temp registers for converting signed ints
-  valuereg, leftreg,
-  // additional temp registers for converting unsigned 64 bit ints
-  tmpintreg1, tmpintreg2, tmpfpureg, tmpfpuconst : tregister;
-  size: tcgsize;
-  signed: boolean;
-begin
-
-  location_reset(location, LOC_FPUREGISTER, def_cgsize(resulttype.def));
-
-  { the code here comes from the PowerPC Compiler Writer's Guide }
-  { * longint to double (works for all rounding modes) }
-  { std   R3,disp(R1) # store doubleword }
-  { lfd   FR1,disp(R1) # load float double }
-  { fcfid FR1,FR1 # convert to floating-point integer  }
-
-  { * unsigned 64 bit int to fp value (works for all rounding modes) }
-  { rldicl rT1,rS,32,32 # isolate high half }
-  { rldicl rT2,rS,0,32 # isolate low half }
-  { std rT1,disp(R1) # store high half }
-  { std rT2,disp+8(R1) # store low half }
-  { lfd frT1,disp(R1) # load high half }
-  { lfd frD,disp+8(R1) # load low half }
-  { fcfid frT1,frT1 # convert each half to floating }
-  { fcfid frD,frD # point integer (no round) }
-  { fmadd frD,frC,frT1,frD # (2^32)*high + low }
-  { # (only add can round) }
-  tg.Gettemp(exprasmlist, 8, tt_normal, disp);
-
-  { do the signed case for everything but 64 bit unsigned integers }
-  signed := (left.location.size <> OS_64);
-
-  { we need a certain constant for the conversion of unsigned 64 bit integers,
-    so create them here. Additonally another temporary location is neeted }
-  if (not signed) then begin
-    // allocate temp for constant value used for unsigned 64 bit ints
-    tempconst :=
-      crealconstnode.create(convconst, pbestrealtype^);
-    resulttypepass(tempconst);
-    firstpass(tempconst);
-    secondpass(tempconst);
-    if (tempconst.location.loc <> LOC_CREFERENCE) then
-      internalerror(200110011);
-
-    // allocate second temp memory
-    tg.Gettemp(exprasmlist, 8, tt_normal, disp2);
-  end;
-
-  case left.location.loc of
-    LOC_REGISTER:
-      begin
-        leftreg := left.location.register;
-        valuereg := leftreg;
-      end;
-    LOC_CREGISTER:
-      begin
-        leftreg := left.location.register;
-        if signed then
-          valuereg := cg.getintregister(exprasmlist, OS_INT)
-        else
-          valuereg := leftreg;
-      end;
-    LOC_REFERENCE, LOC_CREFERENCE:
-      begin
-        leftreg := cg.getintregister(exprasmlist, OS_INT);
-        valuereg := leftreg;
-        if signed then
-          size := OS_S64
-        else
-          size := OS_64;
-        cg.a_load_ref_reg(exprasmlist, def_cgsize(left.resulttype.def),
-          size, left.location.reference, leftreg);
-      end
-  else
-    internalerror(200110012);
-  end;
-
-  if (signed) then begin
-    // std rS, disp(r1)
-    cg.a_load_reg_ref(exprasmlist, OS_S64, OS_S64, valuereg, disp);
-    // lfd frD, disp(r1)
-    location.register := cg.getfpuregister(exprasmlist,OS_F64);
-    cg.a_loadfpu_ref_reg(exprasmlist,OS_F64, disp, location.register);
-    // fcfid frD, frD
-    exprasmlist.concat(taicpu.op_reg_reg(A_FCFID, location.register,
-      location.register));
-  end else begin
-    { ts:todo use TOC for this constant or at least schedule better }
-    // lfd frC, const
-    tmpfpuconst := cg.getfpuregister(exprasmlist,OS_F64);
-    cg.a_loadfpu_ref_reg(exprasmlist,OS_F64,tempconst.location.reference,
-      tmpfpuconst);
-    tempconst.free;
-
-    tmpintreg1 := cg.getintregister(exprasmlist, OS_64);
-    // rldicl rT1, rS, 32, 32
-    exprasmlist.concat(taicpu.op_reg_reg_const_const(A_RLDICL, tmpintreg1, valuereg, 32, 32));
-    // rldicl rT2, rS, 0, 32
-    tmpintreg2 := cg.getintregister(exprasmlist, OS_64);
-    exprasmlist.concat(taicpu.op_reg_reg_const_const(A_RLDICL, tmpintreg2, valuereg, 0, 32));
-
-    // std rT1, disp(r1)
-    cg.a_load_reg_ref(exprasmlist, OS_S64, OS_S64, tmpintreg1, disp);
-    // std rT2, disp2(r1)
-    cg.a_load_reg_ref(exprasmlist, OS_S64, OS_S64, tmpintreg2, disp2);
-
-    // lfd frT1, disp(R1)
-    tmpfpureg := cg.getfpuregister(exprasmlist,OS_F64);
-    cg.a_loadfpu_ref_reg(exprasmlist,OS_F64, disp, tmpfpureg);
-    // lfd frD, disp+8(R1)
-    location.register := cg.getfpuregister(exprasmlist,OS_F64);
-    cg.a_loadfpu_ref_reg(exprasmlist,OS_F64, disp2, location.register);
-
-    // fcfid frT1, frT1
-    exprasmlist.concat(taicpu.op_reg_reg(A_FCFID, tmpfpureg,
-      tmpfpureg));
-    // fcfid frD, frD
-    exprasmlist.concat(taicpu.op_reg_reg(A_FCFID, location.register,
-      location.register));
-    // fmadd frD,frC,frT1,frD # (2^32)*high + low }
-    exprasmlist.concat(taicpu.op_reg_reg_reg_reg(A_FMADD, location.register, tmpfpuconst,
-      tmpfpureg, location.register));
-
-    // free used temps
-    tg.ungetiftemp(exprasmlist, disp2);
-  end;
-  // free reference
-  tg.ungetiftemp(exprasmlist, disp);
-
-end;
-
-procedure tppctypeconvnode.second_int_to_bool;
-var
-  hreg1,
-    hreg2: tregister;
-  resflags: tresflags;
-  opsize: tcgsize;
-  hlabel, oldtruelabel, oldfalselabel: tasmlabel;
-begin
-  oldtruelabel := truelabel;
-  oldfalselabel := falselabel;
-  objectlibrary.getjumplabel(truelabel);
-  objectlibrary.getjumplabel(falselabel);
-  secondpass(left);
-  if codegenerror then
-    exit;
-
-  { byte(boolean) or word(wordbool) or longint(longbool) must }
-  { be accepted for var parameters                            }
-  if (nf_explicit in flags) and
-    (left.resulttype.def.size = resulttype.def.size) and
-    (left.location.loc in [LOC_REFERENCE, LOC_CREFERENCE, LOC_CREGISTER]) then
-  begin
-    truelabel := oldtruelabel;
-    falselabel := oldfalselabel;
-    location_copy(location, left.location);
-    exit;
-  end;
-
-  location_reset(location, LOC_REGISTER, def_cgsize(resulttype.def));
-  opsize := def_cgsize(left.resulttype.def);
-  case left.location.loc of
-    LOC_CREFERENCE, LOC_REFERENCE, LOC_REGISTER, LOC_CREGISTER:
-      begin
-        if left.location.loc in [LOC_CREFERENCE, LOC_REFERENCE] then
-        begin
-          hreg1 := cg.getintregister(exprasmlist, OS_INT);
-          cg.a_load_ref_reg(exprasmlist, opsize, opsize,
-            left.location.reference, hreg1);
-        end
-        else
-        begin
-          hreg1 := left.location.register;
-        end;
-        hreg2 := cg.getintregister(exprasmlist, OS_INT);
-        exprasmlist.concat(taicpu.op_reg_reg_const(A_SUBIC, hreg2, hreg1, 1));
-        exprasmlist.concat(taicpu.op_reg_reg_reg(A_SUBFE, hreg1, hreg2, hreg1));
-      end;
-    LOC_FLAGS:
-      begin
-        hreg1 := cg.getintregister(exprasmlist, OS_INT);
-        resflags := left.location.resflags;
-        cg.g_flags2reg(exprasmlist, location.size, resflags, hreg1);
-      end;
-    LOC_JUMP:
-      begin
-        hreg1 := cg.getintregister(exprasmlist, OS_INT);
-        objectlibrary.getjumplabel(hlabel);
-        cg.a_label(exprasmlist, truelabel);
-        cg.a_load_const_reg(exprasmlist, OS_INT, 1, hreg1);
-        cg.a_jmp_always(exprasmlist, hlabel);
-        cg.a_label(exprasmlist, falselabel);
-        cg.a_load_const_reg(exprasmlist, OS_INT, 0, hreg1);
-        cg.a_label(exprasmlist, hlabel);
-      end;
-  else
-    internalerror(10062);
-  end;
-  location.register := hreg1;
-  truelabel := oldtruelabel;
-  falselabel := oldfalselabel;
-end;
-
-begin
-  ctypeconvnode := tppctypeconvnode;
-end.
-

+ 17 - 2
compiler/utils/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/09/08]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=fpc fppkg ppufiles ppudump ppumove fpcsubst fpcmkcfg
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=fpc fppkg ppufiles ppudump ppumove fpcsubst fpcmkcfg
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=ppu crc usubst
 endif
@@ -446,6 +449,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=ppu crc usubst
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=ppu crc usubst
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_UNITDIR+=..
@@ -555,6 +561,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITDIR+=..
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=..
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=..
 endif
@@ -663,6 +672,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=..
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=..
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1500,6 +1512,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 50 - 2
fcl/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/09/02]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -343,6 +343,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=xml image db shedit passrc net fpcunit
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=xml image db shedit passrc net fpcunit
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=$(CLASSES10) contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex  process resolve ssockets fpasync syncobjs simpleipc msgintf dbugintf
 endif
@@ -451,6 +454,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=$(CLASSES10) contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=$(CLASSES10) contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree xmlreg registry eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex  process resolve ssockets fpasync syncobjs simpleipc msgintf dbugintf
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=$(CLASSES10) ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
 endif
@@ -559,6 +565,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=$(CLASSES10) ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=$(CLASSES10) ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=tests
 endif
@@ -667,6 +676,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=tests
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=tests
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutil minigzip paszlib trees zbase zcompres zdeflate zinflate zuncompr zutil pthreads streamio
 endif
@@ -775,6 +787,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutil minigzip paszlib trees zbase zcompres zdeflate zinflate zuncompr zutil pthreads streamio
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutil minigzip paszlib trees zbase zcompres zdeflate zinflate zuncompr zutil pthreads streamio
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -884,6 +899,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(OS_TARGET) inc  unix
 endif
@@ -992,6 +1010,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_INCLUDEDIR+=$(OS_TARGET) inc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=$(OS_TARGET) inc  unix
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=$(OS_TARGET) inc
 endif
@@ -1100,6 +1121,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=$(OS_TARGET) inc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=$(OS_TARGET) inc
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -2185,6 +2209,18 @@ REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=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),)
@@ -3301,6 +3337,15 @@ TARGET_DIRS_PASSRC=1
 TARGET_DIRS_NET=1
 TARGET_DIRS_FPCUNIT=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_XML=1
+TARGET_DIRS_IMAGE=1
+TARGET_DIRS_DB=1
+TARGET_DIRS_SHEDIT=1
+TARGET_DIRS_PASSRC=1
+TARGET_DIRS_NET=1
+TARGET_DIRS_FPCUNIT=1
+endif
 ifdef TARGET_DIRS_XML
 xml_all:
 	$(MAKE) -C xml all
@@ -3724,6 +3769,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_TESTS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_TESTS=1
+endif
 ifdef TARGET_EXAMPLEDIRS_TESTS
 tests_all:
 	$(MAKE) -C tests all

+ 36 - 2
fcl/db/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=sdf memds sqldb
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=sdf memds sqldb  mysql interbase sqlite dbase
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=dbconst db ddg_ds ddg_rec dbwhtml
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=dbconst db ddg_ds ddg_rec dbwhtml
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=dbconst db ddg_ds ddg_rec dbwhtml
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=dbwhtml dbconst
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=dbwhtml dbconst
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=dbwhtml dbconst
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=tests
 endif
@@ -664,6 +673,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=tests
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=tests
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -773,6 +785,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1704,6 +1719,13 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=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),)
@@ -2525,6 +2547,15 @@ TARGET_DIRS_SDF=1
 TARGET_DIRS_MEMDS=1
 TARGET_DIRS_SQLDB=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_SDF=1
+TARGET_DIRS_MEMDS=1
+TARGET_DIRS_SQLDB=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_INTERBASE=1
+TARGET_DIRS_SQLITE=1
+TARGET_DIRS_DBASE=1
+endif
 ifdef TARGET_DIRS_SDF
 sdf_all:
 	$(MAKE) -C sdf all
@@ -2948,6 +2979,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_TESTS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_TESTS=1
+endif
 ifdef TARGET_EXAMPLEDIRS_TESTS
 tests_all:
 	$(MAKE) -C tests all

+ 11 - 2
fcl/db/dbase/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -442,6 +442,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=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_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_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
@@ -599,6 +602,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2 -Sh
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2 -Sh
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1436,6 +1442,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 18 - 2
fcl/db/interbase/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=interbase
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=interbase
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testib
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testib
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testib
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=ibas40 ibase60
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=ibas40 ibase60
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=ibas40 ibase60
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -665,6 +674,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1564,6 +1576,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=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),)

+ 14 - 2
fcl/db/memds/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=memds
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=memds
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=memds
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=memds
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=memds
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testpop testopen testld testcp
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testpop testopen testld testcp
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testpop testopen testld testcp
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1394,6 +1403,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 21 - 2
fcl/db/mysql/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=mysqldb4 mysqldb3
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=mysqldb4 mysqldb3
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=mysqldb
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=mysqldb
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=mysqldb
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=mtest
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=mtest
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=mtest
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=mysql mysql_com mysql_version
 endif
@@ -664,6 +673,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=mysql mysql_com mysql_version
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=mysql mysql_com mysql_version
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -773,6 +785,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1672,6 +1687,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_MYSQL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=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),)

+ 11 - 2
fcl/db/sdf/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=sdfdata
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=sdfdata
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testsdf testfix
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testsdf testfix
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testsdf testfix
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 25 - 2
fcl/db/sqldb/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -283,6 +283,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_DIRS+=interbase postgres mysql
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=interbase postgres mysql
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=sqldb
 endif
@@ -391,6 +394,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=sqldb
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=sqldb
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=sqldb
 endif
@@ -499,6 +505,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=sqldb
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=sqldb
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -608,6 +617,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1522,6 +1534,12 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=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),)
@@ -2143,6 +2161,11 @@ TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_MYSQL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_INTERBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
+endif
 ifdef TARGET_DIRS_INTERBASE
 interbase_all:
 	$(MAKE) -C interbase all

+ 12 - 2
fcl/db/sqldb/interbase/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=ibconnection
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=ibconnection
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -449,6 +452,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1348,6 +1354,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=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),)

+ 12 - 2
fcl/db/sqldb/mysql/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=mysql4conn
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=mysql4conn
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -449,6 +452,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1348,6 +1354,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_MYSQL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=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),)

+ 15 - 2
fcl/db/sqldb/postgres/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=pqconnection
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=pqconnection
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=pqconnection
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=pqconnection
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=pqconnection
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1456,6 +1465,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_POSTGRES=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=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),)

+ 9 - 2
fcl/db/sqlite/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1214,6 +1217,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=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),)

+ 21 - 2
fcl/db/tests/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=testds createds tested
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=testds createds tested
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -447,6 +450,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1568,6 +1574,19 @@ REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=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),)

+ 20 - 2
fcl/fpcunit/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=fpcunit  testregistry  testreport testutils testdecorator ubmockobject
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=fpcunit  testregistry  testreport testutils testdecorator ubmockobject
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=exampletests
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=exampletests
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=exampletests
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_TARGETDIR+=../$(OS_TARGET)
 endif
@@ -665,6 +674,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_TARGETDIR+=../$(OS_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_TARGETDIR+=../$(OS_TARGET)
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1502,6 +1514,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2080,6 +2095,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLETESTS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_EXAMPLETESTS=1
+endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLETESTS
 exampletests_all:
 	$(MAKE) -C exampletests all

+ 14 - 2
fcl/fpcunit/exampletests/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=fpcunittests  money  moneytest testmockobject
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=fpcunittests  money  moneytest testmockobject
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -449,6 +452,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 endif
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_TARGETDIR+=../../$(OS_TARGET)
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1394,6 +1403,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 16 - 2
fcl/image/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/09/25]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=fpimgcmn fpimage pngcomn fpreadpng fpwritepng fpreadxpm fpwritexpm clipping fpcanvas pixtools fppixlcanv fpimgcanv pscanvas fpwritebmp fpreadbmp bmpcomn fpreadpnm fpwritepnm fpreadjpeg fpwritejpeg targacmn fpreadtga fpwritetga ellipses fpcolhash fpditherer fpquantizer
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=fpimgcmn fpimage pngcomn fpreadpng fpwritepng fpreadxpm fpwritexpm clipping fpcanvas pixtools fppixlcanv fpimgcanv pscanvas fpwritebmp fpreadbmp bmpcomn fpreadpnm fpwritepnm fpreadjpeg fpwritejpeg targacmn fpreadtga fpwritetga ellipses fpcolhash fpditherer fpquantizer  freetypeh freetype ftfont
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=pscanvas
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=pscanvas
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=pscanvas
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=imgconv
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=imgconv
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=imgconv
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1466,6 +1475,11 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_PASJPEG=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 25 - 2
fcl/net/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -280,6 +280,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_PROGRAMS+=mkxmlrpc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=mkxmlrpc
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
@@ -388,6 +391,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=servlets
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=fpsock httpsvlt mkxmlrpc
 endif
@@ -436,6 +442,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_RSTS+=fpsock httpsvlt mkxmlrpc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=fpsock httpsvlt mkxmlrpc
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=tests
 endif
@@ -484,6 +493,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_EXAMPLEDIRS+=tests
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=tests
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -593,6 +605,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1502,6 +1517,11 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2089,6 +2109,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 TARGET_EXAMPLEDIRS_TESTS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_TESTS=1
+endif
 ifdef TARGET_EXAMPLEDIRS_TESTS
 tests_all:
 	$(MAKE) -C tests all

+ 24 - 2
fcl/net/tests/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=rpcserv rpccli
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=rpcserv rpccli
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=svrclass svrclass_xmlrpc
 endif
@@ -446,6 +449,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=svrclass svrclass_xmlrpc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=svrclass svrclass_xmlrpc
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -555,6 +561,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1676,6 +1685,19 @@ REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=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),)

+ 14 - 2
fcl/passrc/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=pastree pscanner pparser paswrite
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=pastree pscanner pparser paswrite
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=pscanner pparser pastree
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=pscanner pparser pastree
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=pscanner pparser pastree
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1394,6 +1403,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 17 - 2
fcl/shedit/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=doc_text shedit sh_xml sh_pas
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=doc_text shedit sh_xml sh_pas
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=gtk
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=gtk
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=gtk
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1394,6 +1403,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -1972,6 +1984,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_GTK=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_GTK=1
+endif
 ifdef TARGET_EXAMPLEDIRS_GTK
 gtk_all:
 	$(MAKE) -C gtk all

+ 24 - 2
fcl/shedit/gtk/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=gtkdemo
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=gtkdemo
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=gtkshedit
 endif
@@ -446,6 +449,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gtkshedit
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gtkshedit
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1656,6 +1662,22 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 21 - 2
fcl/tests/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/09/02]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -447,6 +450,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1568,6 +1574,19 @@ REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=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),)

+ 14 - 2
fcl/xml/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=sax dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmldefs htmwrite xpath
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=sax dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmldefs htmwrite xpath
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=sax xpath
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=sax xpath
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=sax xpath
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1394,6 +1403,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 20 - 2
fv/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=buildfv
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=buildfv
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_IMPLICITUNITS+=app colortxt dialogs drivers editors fvcommon fvconsts gadgets histlist inplong memory menus msgbox resource statuses stddlg tabs time validate views sysmsg asciitab timeddlg
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_IMPLICITUNITS+=app colortxt dialogs drivers editors fvcommon fvconsts gadgets histlist inplong memory menus msgbox resource statuses stddlg tabs time validate views sysmsg asciitab timeddlg
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=app colortxt dialogs drivers editors fvcommon fvconsts gadgets histlist inplong memory menus msgbox resource statuses stddlg tabs time validate views sysmsg asciitab timeddlg
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=test
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=test
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=test
+endif
 override INSTALL_BUILDUNIT=buildfv
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -666,6 +675,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_TARGETDIR+=.
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1503,6 +1515,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2163,6 +2178,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_TEST=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_TEST=1
+endif
 ifdef TARGET_EXAMPLEDIRS_TEST
 test_all:
 	$(MAKE) -C test all

+ 9 - 2
fv/test/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=tfileio testapp
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=tfileio testapp
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1211,6 +1214,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FV=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FV=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 20 - 2
ide/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -362,6 +362,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=compiler
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=compiler
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_PROGRAMS+=fp
 endif
@@ -470,6 +473,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=fp
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=fp
+endif
 override INSTALL_DATADIR=$(INSTALL_BASEDIR)/ide
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -580,6 +586,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1551,6 +1560,12 @@ REQUIRE_PACKAGES_FV=1
 REQUIRE_PACKAGES_GDBINT=1
 REQUIRE_PACKAGES_REGEXPR=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_GDBINT=1
+REQUIRE_PACKAGES_REGEXPR=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2285,6 +2300,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_COMPILER=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_COMPILER=1
+endif
 ifdef TARGET_DIRS_COMPILER
 compiler_all:
 	$(MAKE) -C compiler all

+ 17 - 2
ide/compiler/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -354,6 +354,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=compunit
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=compunit
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
@@ -463,6 +466,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET)
 endif
@@ -571,6 +577,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
@@ -679,6 +688,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1516,6 +1528,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 19 - 2
installer/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -259,6 +259,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_PROGRAMS+=installer
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=installer
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=scroll
 endif
@@ -367,6 +370,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=scroll
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=scroll
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_FILES+=installer.pas
 endif
@@ -385,6 +391,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override CLEAN_FILES+=installer.pas
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_FILES+=installer.pas
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_UNITDIR+=../ide
@@ -494,6 +503,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITDIR+=../ide
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=../ide
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1403,6 +1415,11 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FV=1
 REQUIRE_PACKAGES_UNZIP=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 9 - 2
packages/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=base extra
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=base extra
+endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages
 ifdef REQUIRE_UNITSDIR
@@ -1518,6 +1521,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_EXTRA=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_BASE=1
+TARGET_DIRS_EXTRA=1
+endif
 ifdef TARGET_DIRS_BASE
 base_all:
 	$(MAKE) -C base all

+ 22 - 2
packages/base/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=paszlib pasjpeg regexpr netdb md5
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=paszlib pasjpeg regexpr netdb md5  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite libc
+endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages/base
 ifdef REQUIRE_UNITSDIR
@@ -1770,6 +1773,23 @@ TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_MD5=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_PASZLIB=1
+TARGET_DIRS_PASJPEG=1
+TARGET_DIRS_REGEXPR=1
+TARGET_DIRS_NETDB=1
+TARGET_DIRS_MD5=1
+TARGET_DIRS_GDBINT=1
+TARGET_DIRS_LIBASYNC=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_IBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_ORACLE=1
+TARGET_DIRS_ODBC=1
+TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_SQLITE=1
+TARGET_DIRS_LIBC=1
+endif
 ifdef TARGET_DIRS_PASZLIB
 paszlib_all:
 	$(MAKE) -C paszlib all

+ 17 - 2
packages/base/gdbint/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -360,6 +360,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gdbint gdbcon
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gdbint gdbcon
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testgdb symify
 endif
@@ -468,6 +471,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testgdb symify
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testgdb symify
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OBJECTDIR+=$(GDBLIBDIR)
@@ -577,6 +583,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OBJECTDIR+=$(GDBLIBDIR)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OBJECTDIR+=$(GDBLIBDIR)
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_LIBRARYDIR+=$(GDBLIBDIR)
 endif
@@ -685,6 +694,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_LIBRARYDIR+=$(GDBLIBDIR)
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_LIBRARYDIR+=$(GDBLIBDIR)
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1548,6 +1560,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/ibase/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=ibase40 ibase60 ibase60dyn
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=ibase40 ibase60 ibase60dyn
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testib40 testib60
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testib40 testib60
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testib40 testib60
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/libasync/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=libasync
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=libasync
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=unix
@@ -389,6 +392,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override COMPILER_SOURCEDIR+=unix
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=unix
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1226,6 +1232,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 8 - 2
packages/base/libc/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=kerneldefs kernelioctl libc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=kerneldefs kernelioctl libc
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1204,6 +1207,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/md5/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=md5
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=md5
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=md5test
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=md5test
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=md5test
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/mysql/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testdb4 testdb3
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testdb4 testdb3
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testdb4 testdb3
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/netdb/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=uriparser
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=uriparser  netdb
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testuri  testdns testhst testsvc testnet
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testuri
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testuri  testdns testhst testsvc testnet
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/odbc/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=odbcsql
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=odbcsql
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testodbc
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testodbc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testodbc
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 14 - 2
packages/base/oracle/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=oraoci
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=oraoci
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=example
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=example
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=example
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -1978,6 +1987,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLE=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_EXAMPLE=1
+endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLE
 example_all:
 	$(MAKE) -C example all

+ 22 - 2
packages/base/oracle/example/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=oraclew
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=oraclew
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=test01
 endif
@@ -446,6 +449,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=test01
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=test01
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1604,6 +1610,20 @@ REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=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),)

+ 11 - 2
packages/base/pasjpeg/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=jcapimin jcapistd jccoefct jccolor jcdctmgr jchuff jcinit jcmainct jcmarker jcmaster jcomapi jcparam jcphuff jcprepct jcsample jdapimin jdapistd jdatadst jdatasrc jdcoefct jdcolor jdct jddctmgr jdeferr jdhuff jdinput jdmainct jdmarker jdmaster jdmerge jdphuff jdpostct jdsample jerror jfdctflt jfdctfst jfdctint jidctflt jidctfst jidctint jidctred jinclude jmemmgr jmemnobs jmorecfg jpeglib jquant1 jquant2 jutils
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=jcapimin jcapistd jccoefct jccolor jcdctmgr jchuff jcinit jcmainct jcmarker jcmaster jcomapi jcparam jcphuff jcprepct jcsample jdapimin jdapistd jdatadst jdatasrc jdcoefct jdcolor jdct jddctmgr jdeferr jdhuff jdinput jdmainct jdmarker jdmaster jdmerge jdphuff jdpostct jdsample jerror jfdctflt jfdctfst jfdctint jidctflt jidctfst jidctint jidctred jinclude jmemmgr jmemnobs jmorecfg jpeglib jquant1 jquant2 jutils
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=cjpeg demo djpeg jpegtran rdjpgcom
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=cjpeg demo djpeg jpegtran rdjpgcom
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=cjpeg demo djpeg jpegtran rdjpgcom
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/paszlib/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=paszlib adler gzcrc gzio infblock infcodes inffast inftrees infutil trees zcompres zdeflate zinflate zbase zuncompr zutil
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=paszlib adler gzcrc gzio infblock infcodes inffast inftrees infutil trees zcompres zdeflate zinflate zbase zuncompr zutil
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=example minigzip
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=example minigzip
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=example minigzip
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/base/postgres/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=dllist dllistdyn postgres postgres3 postgres3dyn
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=dllist dllistdyn postgres postgres3 postgres3dyn
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testpg1 testpg2
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testpg1 testpg2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testpg1 testpg2
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 8 - 2
packages/base/pthreads/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=pthreads
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=pthreads
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1178,6 +1181,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 14 - 2
packages/base/regexpr/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=regexpr
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=regexpr
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testreg1
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testreg1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testreg1
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1394,6 +1403,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 8 - 2
packages/base/sqlite/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=sqlite sqlite3
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=sqlite sqlite3
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1178,6 +1181,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 31 - 2
packages/extra/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -302,6 +302,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_DIRS+=unzip zlib x11 opengl gtk gtk2 syslog forms svgalib ggi libpng libgd utmp bfd gdbm ncurses tcl cdrom imlib gnome1 fpgtk unixutil newt uuid
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=unzip zlib x11 opengl gtk gtk2 syslog forms svgalib ggi libpng libgd utmp bfd gdbm ncurses tcl cdrom imlib gnome1 fpgtk unixutil newt uuid
+endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages/extra
 ifdef REQUIRE_UNITSDIR
@@ -1759,6 +1762,32 @@ TARGET_DIRS_UNIXUTIL=1
 TARGET_DIRS_NEWT=1
 TARGET_DIRS_UUID=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_UNZIP=1
+TARGET_DIRS_ZLIB=1
+TARGET_DIRS_X11=1
+TARGET_DIRS_OPENGL=1
+TARGET_DIRS_GTK=1
+TARGET_DIRS_GTK2=1
+TARGET_DIRS_SYSLOG=1
+TARGET_DIRS_FORMS=1
+TARGET_DIRS_SVGALIB=1
+TARGET_DIRS_GGI=1
+TARGET_DIRS_LIBPNG=1
+TARGET_DIRS_LIBGD=1
+TARGET_DIRS_UTMP=1
+TARGET_DIRS_BFD=1
+TARGET_DIRS_GDBM=1
+TARGET_DIRS_NCURSES=1
+TARGET_DIRS_TCL=1
+TARGET_DIRS_CDROM=1
+TARGET_DIRS_IMLIB=1
+TARGET_DIRS_GNOME1=1
+TARGET_DIRS_FPGTK=1
+TARGET_DIRS_UNIXUTIL=1
+TARGET_DIRS_NEWT=1
+TARGET_DIRS_UUID=1
+endif
 ifdef TARGET_DIRS_UNZIP
 unzip_all:
 	$(MAKE) -C unzip all

+ 15 - 2
packages/extra/amunits/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=units utilunits
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=units utilunits
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=inc
@@ -449,6 +452,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_INCLUDEDIR+=inc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=inc
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=units utilunits
 endif
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=units utilunits
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=units utilunits
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1887,6 +1896,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_UNITS=1
 TARGET_DIRS_UTILUNITS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_UNITS=1
+TARGET_DIRS_UTILUNITS=1
+endif
 ifdef TARGET_DIRS_UNITS
 units_all:
 	$(MAKE) -C units all

+ 17 - 2
packages/extra/amunits/units/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=amigados amigaguide amigalib amigaprinter asl audio bootblock bullet cd clipboard colorwheel commodities configregs configvars console conunit datatypes diskfont expansion expansionbase gadtools gameport gradientslider graphics hardblocks hardware icon iffparse input inputevent intuition keyboard keymap layers locale lowlevel nonvolatile parallel prefs prtbase prtgfx realtime rexx romboot_base scsidisk serial tapedeck timer trackdisk translator utility workbench exec
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=amigados amigaguide amigalib amigaprinter asl audio bootblock bullet cd clipboard colorwheel commodities configregs configvars console conunit datatypes diskfont expansion expansionbase gadtools gameport gradientslider graphics hardblocks hardware icon iffparse input inputevent intuition keyboard keymap layers locale lowlevel nonvolatile parallel prefs prtbase prtgfx realtime rexx romboot_base scsidisk serial tapedeck timer trackdisk translator utility workbench exec
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=../inc
@@ -449,6 +452,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_INCLUDEDIR+=../inc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=../inc
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_UNITDIR+=../utilunits
 endif
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITDIR+=../utilunits
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=../utilunits
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=.
 endif
@@ -665,6 +674,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=.
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1502,6 +1514,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 17 - 2
packages/extra/amunits/utilunits/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=../inc
@@ -449,6 +452,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_INCLUDEDIR+=../inc
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=../inc
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_UNITDIR+=../units
 endif
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITDIR+=../units
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=../units
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=.
 endif
@@ -665,6 +674,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=.
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1502,6 +1514,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 8 - 2
packages/extra/bfd/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=bfd
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=bfd
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1178,6 +1181,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 14 - 2
packages/extra/cdrom/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=cdrom discid
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=cdrom discid
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_IMPLICITUNITS+=major lincd
 endif
@@ -361,6 +364,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_IMPLICITUNITS+=major lincd
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=major lincd
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=showcds getdiscid
 endif
@@ -469,6 +475,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=showcds getdiscid
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=showcds getdiscid
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1307,6 +1316,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 18 - 2
packages/extra/forms/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=fd2pascal
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=fd2pascal
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=xforms
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=xforms
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=xforms
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=demo
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=demo
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=demo
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1456,6 +1465,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_X11=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_X11=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2165,6 +2178,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_DEMO=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_DEMO=1
+endif
 ifdef TARGET_EXAMPLEDIRS_DEMO
 demo_all:
 	$(MAKE) -C demo all

+ 10 - 2
packages/extra/forms/demo/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1274,6 +1277,11 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_FORMS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_FORMS=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 24 - 2
packages/extra/fpgtk/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=fpglib fpgtk fpgtkext
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=fpglib fpgtk fpgtkext
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=fpgtk fpgtkext
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=fpgtk fpgtkext
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=fpgtk fpgtkext
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1658,6 +1664,22 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/extra/gdbm/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gdbm
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gdbm
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=testgdbm testgdbm2
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=testgdbm testgdbm2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=testgdbm testgdbm2
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/extra/ggi/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gii ggi ggi2d
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gii ggi ggi2d
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=ggi1
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=ggi1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=ggi1
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 10 - 2
packages/extra/gnome1/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=gnome gconf zvt
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=gnome gconf zvt
+endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages
 ifdef REQUIRE_UNITSDIR
@@ -1554,6 +1557,11 @@ TARGET_DIRS_GNOME=1
 TARGET_DIRS_GCONF=1
 TARGET_DIRS_ZVT=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_GNOME=1
+TARGET_DIRS_GCONF=1
+TARGET_DIRS_ZVT=1
+endif
 ifdef TARGET_DIRS_GNOME
 gnome_all:
 	$(MAKE) -C gnome all

+ 20 - 2
packages/extra/gnome1/gconf/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gconf gconfclient
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gconf gconfclient
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=examples
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=examples
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=gconf gconfclient
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=gconf gconfclient
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=gconf gconfclient
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1508,6 +1517,12 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2252,6 +2267,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_EXAMPLES=1
+endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
 examples_all:
 	$(MAKE) -C examples all

+ 15 - 2
packages/extra/gnome1/gconf/examples/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=gconfcallback1 gconfcallback2 gconfexample
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=gconfcallback1 gconfcallback2 gconfexample
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=gconfcallback1 gconfcallback2 gconfexample
 endif
@@ -446,6 +449,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=gconfcallback1 gconfcallback2 gconfexample
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=gconfcallback1 gconfcallback2 gconfexample
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1434,6 +1440,13 @@ REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GNOME1/GCONF=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_GNOME1/GCONF=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 15 - 2
packages/extra/gnome1/gnome/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=libart libgnome libgnomeui
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=libart libgnome libgnomeui
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=libart_lgpl libgnome libgnomeui
@@ -449,6 +452,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=libart_lgpl libgnome libgnomeui
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=libart_lgpl libgnome libgnomeui
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1456,6 +1462,13 @@ REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_IMLIB=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_IMLIB=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 21 - 2
packages/extra/gnome1/zvt/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=libzvt
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=libzvt
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=examples
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=examples
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=zvt
@@ -557,6 +563,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=zvt
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=zvt
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1564,6 +1573,13 @@ REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_IMLIB=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_IMLIB=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2334,6 +2350,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_EXAMPLES=1
+endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
 examples_all:
 	$(MAKE) -C examples all

+ 17 - 2
packages/extra/gnome1/zvt/examples/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=testzvt
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=testzvt
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=testzvt
 endif
@@ -446,6 +449,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=testzvt
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=testzvt
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1526,6 +1532,15 @@ REQUIRE_PACKAGES_GNOME1/ZVT=1
 REQUIRE_PACKAGES_GNOME1/GNOME=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_IMLIB=1
+REQUIRE_PACKAGES_GNOME1/ZVT=1
+REQUIRE_PACKAGES_GNOME1/GNOME=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 25 - 2
packages/extra/gtk/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=gtkgl
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=gtkgl
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=glib gmodule gdk gtk gdkpixbuf
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=glib gmodule gdk gtk gdkpixbuf
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=glib gmodule gdk gtk gdkpixbuf
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=examples
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=examples
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_SOURCEDIR+=glib gdk gtk
@@ -665,6 +674,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=glib gdk gtk
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=glib gdk gtk
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1580,6 +1592,11 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2298,6 +2315,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_GTKGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_GTKGL=1
+endif
 ifdef TARGET_DIRS_GTKGL
 gtkgl_all:
 	$(MAKE) -C gtkgl all
@@ -2451,6 +2471,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_EXAMPLES=1
+endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
 examples_all:
 	$(MAKE) -C examples all

+ 20 - 2
packages/extra/gtk/examples/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=tutorial
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=tutorial
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton
 endif
@@ -446,6 +449,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=tictactoe
 endif
@@ -554,6 +560,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override CLEAN_UNITS+=tictactoe
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=tictactoe
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1506,6 +1515,12 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2158,6 +2173,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_TUTORIAL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_TUTORIAL=1
+endif
 ifdef TARGET_DIRS_TUTORIAL
 tutorial_all:
 	$(MAKE) -C tutorial all

+ 7 - 2
packages/extra/gtk/examples/tutorial/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -1146,6 +1146,11 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)

+ 13 - 2
packages/extra/gtk/gtkgl/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gtkglarea
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gtkglarea
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=gtkgldemo
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=gtkgldemo
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=gtkgldemo
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1364,6 +1370,11 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 20 - 2
packages/extra/gtk2/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=buildgtk2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=buildgtk2
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_IMPLICITUNITS+=glib2 atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_IMPLICITUNITS+=glib2 atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=glib2 atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -556,6 +562,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=examples
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=examples
+endif
 override INSTALL_BUILDUNIT=buildgtk2
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -666,6 +675,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_UNITDIR+=glib atk pango gtk+/gdk-pixbuf gtk+/gdk gtk+/gtk libglade gtkglext
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_UNITDIR+=glib atk pango gtk+/gdk-pixbuf gtk+/gdk gtk+/gtk libglade gtkglext
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1529,6 +1541,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2195,6 +2210,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_EXAMPLES=1
+endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
 examples_all:
 	$(MAKE) -C examples all

+ 19 - 2
packages/extra/gtk2/examples/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1254,6 +1257,11 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_GTK2=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_GTK2
 PACKAGEDIR_GTK2:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk2/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK2),)
@@ -1968,6 +1976,15 @@ TARGET_DIRS_PLUGINS=1
 TARGET_DIRS_SCRIBBLE_SIMPLE=1
 TARGET_DIRS_GTKGLEXT=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_HELLOWORLD=1
+TARGET_DIRS_HELLOWORLD2=1
+TARGET_DIRS_GTK_DEMO=1
+TARGET_DIRS_GETTINGSTARTED=1
+TARGET_DIRS_PLUGINS=1
+TARGET_DIRS_SCRIBBLE_SIMPLE=1
+TARGET_DIRS_GTKGLEXT=1
+endif
 ifdef TARGET_DIRS_HELLOWORLD
 helloworld_all:
 	$(MAKE) -C helloworld all

+ 9 - 2
packages/extra/gtk2/examples/gettingstarted/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=gettingstarted
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=gettingstarted
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1238,6 +1241,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK2=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK2=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 9 - 2
packages/extra/gtk2/examples/gtk_demo/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=gtk_demo
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=gtk_demo
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1238,6 +1241,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK2=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK2=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/extra/gtk2/examples/gtkglext/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=gears
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=gears
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1290,6 +1293,12 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK2=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 9 - 2
packages/extra/gtk2/examples/helloworld/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=helloworld
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=helloworld
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1238,6 +1241,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK2=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK2=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 9 - 2
packages/extra/gtk2/examples/helloworld2/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=helloworld2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=helloworld2
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1238,6 +1241,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK2=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK2=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 9 - 2
packages/extra/gtk2/examples/plugins/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=plugin main
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=plugin main
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1238,6 +1241,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK2=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK2=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 9 - 2
packages/extra/gtk2/examples/scribble_simple/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=scribble_simple
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=scribble_simple
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1238,6 +1241,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_GTK2=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK2=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 14 - 2
packages/extra/imlib/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gdk_imlib imlib
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gdk_imlib imlib
+endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages
 ifeq ($(FULL_TARGET),i386-linux)
@@ -450,6 +453,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_SOURCEDIR+=imlib gdk_imlib
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=imlib gdk_imlib
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1421,6 +1427,12 @@ REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/extra/libgd/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gd
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gd
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=gdtest
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=gdtest
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=gdtest
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 9 - 2
packages/extra/libpng/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=png
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=png
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1240,6 +1243,10 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_ZLIB=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_ZLIB=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/extra/ncurses/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=ncurses panel ncrt ocrt menu
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=ncurses panel ncrt ocrt menu
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=firework testn ocrt_demo edit_demo db_demo screen_demo
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=firework testn ocrt_demo edit_demo db_demo screen_demo
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=firework testn ocrt_demo edit_demo db_demo screen_demo
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/extra/newt/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=newt
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=newt
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=newt1 newt2 newt3
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=newt1 newt2 newt3
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=newt1 newt2 newt3
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1312,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 15 - 2
packages/extra/opengl/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=gl glu glut glext
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=gl glu glut glext  dllfuncs glx
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=examples
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=examples
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1328,6 +1334,10 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_X11=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2020,6 +2030,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_EXAMPLES=1
+endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
 examples_all:
 	$(MAKE) -C examples all

+ 13 - 2
packages/extra/opengl/examples/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/09/28]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -447,6 +450,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1362,6 +1368,11 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_X11=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 12 - 2
packages/extra/os2units/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_DIRS+=ftpapi mmtk hwvideo lvm clkdll
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=ftpapi mmtk hwvideo lvm clkdll
+endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages
 ifdef REQUIRE_UNITSDIR
@@ -1626,6 +1629,13 @@ TARGET_DIRS_HWVIDEO=1
 TARGET_DIRS_LVM=1
 TARGET_DIRS_CLKDLL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_FTPAPI=1
+TARGET_DIRS_MMTK=1
+TARGET_DIRS_HWVIDEO=1
+TARGET_DIRS_LVM=1
+TARGET_DIRS_CLKDLL=1
+endif
 ifdef TARGET_DIRS_FTPAPI
 ftpapi_all:
 	$(MAKE) -C ftpapi all

+ 11 - 2
packages/extra/os2units/clkdll/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=clkdll
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=clkdll
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=clktest
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=clktest
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=clktest
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 11 - 2
packages/extra/os2units/ftpapi/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=ftpapi
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=ftpapi
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLES+=ftptest
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLES+=ftptest
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=ftptest
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 8 - 2
packages/extra/os2units/hwvideo/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=hwvideo
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=hwvideo
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1178,6 +1181,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 14 - 2
packages/extra/os2units/lvm/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=lvm
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=lvm
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=tests
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=tests
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=tests
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -1946,6 +1955,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_TESTS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_TESTS=1
+endif
 ifdef TARGET_EXAMPLEDIRS_TESTS
 tests_all:
 	$(MAKE) -C tests all

+ 8 - 2
packages/extra/os2units/lvm/tests/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=lvmtest
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=lvmtest
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1176,6 +1179,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

+ 14 - 2
packages/extra/os2units/mmtk/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -340,6 +340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=mmbase sw dive mci mciapi mcidrv mmio
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=mmbase sw dive mci mciapi mcidrv mmio
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=tests
 endif
@@ -448,6 +451,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=tests
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLEDIRS+=tests
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1286,6 +1292,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -1946,6 +1955,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_TESTS=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_EXAMPLEDIRS_TESTS=1
+endif
 ifdef TARGET_EXAMPLEDIRS_TESTS
 tests_all:
 	$(MAKE) -C tests all

+ 8 - 2
packages/extra/os2units/mmtk/tests/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/08/10]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/10/07]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-wince powerpc64-linux
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -338,6 +338,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_PROGRAMS+=mciapi1 mciapi2
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=mciapi1 mciapi2
+endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1176,6 +1179,9 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)

Деякі файли не було показано, через те що забагато файлів було змінено