Browse Source

Merged revisions 11119,11338,11436,11485,11506,11527,11653,11659,11972,12001,12004 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r11119 | Almindor | 2008-05-29 14:17:59 +0200 (Št, 29 máj 2008) | 2 lines

* add SSL_ctrl, SSL_CTX_ctrl and friends to openSSL

........
r11338 | Almindor | 2008-07-06 15:30:28 +0200 (Ne, 06 júl 2008) | 2 lines

* remove useless redefinitions

........
r11436 | Almindor | 2008-07-23 10:43:54 +0200 (St, 23 júl 2008) | 2 lines

* add initial gtk2ext unit for optional gtk2.8+ stuff

........
r11485 | Almindor | 2008-07-29 11:27:15 +0200 (Ut, 29 júl 2008) | 2 lines

* re-generate makefile with trunk fpcmake

........
r11506 | Almindor | 2008-08-03 16:48:09 +0200 (Ne, 03 aug 2008) | 3 lines

* add GtkScaleButton and GtkVolumeButton
* add missing gtk2.8+ functions for GtkTextMark and GtkTextIter

........
r11527 | Almindor | 2008-08-07 11:33:02 +0200 (Št, 07 aug 2008) | 2 lines

* use Available_ComponentName_2_x so specific version parts can be checked

........
r11653 | Almindor | 2008-08-25 22:31:00 +0200 (Po, 25 aug 2008) | 2 lines

* fix lua_alloc callback definition

........
r11659 | Almindor | 2008-08-28 11:54:48 +0200 (Št, 28 aug 2008) | 2 lines

* applied patch from Hansi, fixes TInetSocket.DoConnect

........
r11972 | Almindor | 2008-10-24 22:15:11 +0200 (Pi, 24 okt 2008) | 2 lines

* apply patch for libXi pascal interface from Ido Kanner

........
r12001 | Almindor | 2008-10-30 23:25:40 +0100 (Št, 30 okt 2008) | 3 lines

* use iterarive numbering to find first usable libaspell.so.xx on linux
* don't use specific libaspell.so.xx on BSDs (they have dev by default)

........
r12004 | Almindor | 2008-10-31 23:35:30 +0100 (Pi, 31 okt 2008) | 2 lines

* fix compilation and bug in new aspell lib loading code

........

git-svn-id: branches/fixes_2_2@12103 -

Almindor 17 years ago
parent
commit
7f82e538cb

+ 11 - 0
.gitattributes

@@ -2351,6 +2351,17 @@ packages/gtk2/src/gtk2x11/include/mwmutil.inc svneol=native#text/plain
 packages/gtk2/src/gtk2x11/include/xsettings-client.inc svneol=native#text/plain
 packages/gtk2/src/gtk2x11/include/xsettings-common.inc svneol=native#text/plain
 packages/gtk2/src/gtk2x11/scripts/gdkx11_h2pas.sh svneol=native#text/plain
+packages/gtk2/src/gtkext/gtk2ext.pp svneol=native#text/plain
+packages/gtk2/src/gtkext/gtkscalebutton.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtkscalebuttonh.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtkstatusicon.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtkstatusiconh.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtktextiter.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtktextiterh.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtktextmark.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtktextmarkh.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtkvolumebutton.inc svneol=native#text/plain
+packages/gtk2/src/gtkext/gtkvolumebuttonh.inc svneol=native#text/plain
 packages/gtk2/src/gtkglext/gdkglconfig.inc svneol=native#text/plain
 packages/gtk2/src/gtkglext/gdkglcontext.inc svneol=native#text/plain
 packages/gtk2/src/gtkglext/gdkgldefs.inc svneol=native#text/plain

+ 20 - 4
packages/aspell/src/aspell.pp

@@ -16,15 +16,15 @@ uses
   cTypes;
 
 {$IFDEF Linux}
-  const libaspell = '/usr/lib/libaspell.so.15';
+  const libaspell = '/usr/lib/libaspell.so';
 {$ENDIF}
 
 {$IFDEF FreeBSD}
-  const libaspell = '/usr/local/lib/libaspell.so.15';
+  const libaspell = '/usr/local/lib/libaspell.so';
 {$ENDIF}
 
 {$IFDEF darwin}
- const libaspell = '/opt/local/lib/libaspell.15.dylib';
+ const libaspell = '/opt/local/lib/libaspell.dylib';
 {$ENDIF}
 
 {$IFDEF windows}
@@ -1050,6 +1050,10 @@ var
   bversion, path: ansistring;
   version: dword;
   {$ENDIF}
+  {$ifdef linux}
+  i: Integer;
+  s: string;
+  {$endif}
 begin
   aspell_init := True;
   libname := libn;
@@ -1067,11 +1071,23 @@ begin
   LibHandle := LoadLibrary(libname);
   {$ifdef darwin}
   if LibHandle = 0 then begin
-    libname := '/sw/lib/libaspell.15.dylib';
+    libname := '/sw/lib/libaspell.dylib';
     LibHandle := LoadLibrary(libname);
   end;
   {$endif}
 
+  {$ifdef linux}
+  if LibHandle = 0 then begin
+    for i := 15 to 30 do begin // TODO: make sure to up this when required
+      str(i, s);
+      libname := libn + '.' + s;
+      LibHandle := LoadLibrary(libname);
+      if LibHandle <> 0 then
+        Break;
+    end;
+  end;
+  {$endif}
+
   if LibHandle = 0 then
     Exit(False);
 

+ 1 - 2
packages/fcl-net/src/ssockets.pp

@@ -558,8 +558,7 @@ begin
       end;
   addr.family := AF_INET;
   addr.port := ShortHostToNet(FPort);
-  addr.addr := hosttonet(a.s_addr); // hosttonet(A).s_addr;
-//Cardinal(A);
+  addr.addr := a.s_addr;
 
   If not Sockets.Connect(ASocket, addr, sizeof(addr)) then
     raise ESocketError.Create(seConnectFailed, [Format('%s:%d',[FHost, FPort])]);

+ 0 - 9
packages/gtk1/src/gdk/gdk.pp

@@ -71,15 +71,6 @@ uses
   {$endif}
 {$endif}
 
-Type
-  PLongint  = ^Longint;
-  PByte     = ^Byte;
-  PWord     = ^Word;
-  PINteger  = ^Integer;
-  PCardinal = ^Cardinal;
-  PReal     = ^Real;
-  PDouble   = ^Double;
-
 {$define gdk_include_files}
 
 {$define read_interface}

+ 0 - 9
packages/gtk1/src/gtk/gtk.pp

@@ -73,15 +73,6 @@ uses
   {$endif}
 {$endif}
 
-Type
-  PLongint  = ^Longint;
-  PByte     = ^Byte;
-  PWord     = ^Word;
-  PINteger  = ^Integer;
-  PCardinal = ^Cardinal;
-  PReal     = ^Real;
-  PDouble   = ^Double;
-
 {$define gtk_include_files}
 
 {$define read_interface}

+ 115 - 234
packages/gtk2/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/06/15]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/11/15]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -115,6 +115,10 @@ FPC:=$(shell $(FPCPROG) -PB)
 endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+else
+ifeq ($(strip $(wildcard $(FPC))),)
+FPC:=$(firstword $(FPCPROG))
+endif
 endif
 else
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
@@ -167,17 +171,6 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifeq ($(CPU_TARGET),armeb)
-ARCH=arm
-override FPCOPT+=-Cb
-else
-ifeq ($(CPU_TARGET),armel)
-ARCH=arm
-override FPCOPT+=-CaEABI
-else
-ARCH=$(CPU_TARGET)
-endif
-endif
 ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 SOURCESUFFIX=$(OS_SOURCE)
@@ -199,7 +192,7 @@ endif
 ifeq ($(OS_TARGET),linux)
 linuxHier=1
 endif
-export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
@@ -283,9 +276,6 @@ endif
 ifeq ($(FULL_TARGET),i386-beos)
 override TARGET_UNITS+=src/buildgtk2
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=src/buildgtk2
-endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 override TARGET_UNITS+=src/buildgtk2
 endif
@@ -403,9 +393,6 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_UNITS+=src/buildgtk2
 endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=src/buildgtk2
-endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=src/buildgtk2
 endif
@@ -430,188 +417,164 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_UNITS+=src/buildgtk2
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=src/buildgtk2
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=src/buildgtk2
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=src/buildgtk2
-endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
-endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
-endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
-endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+override TARGET_IMPLICITUNITS+=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_EXAMPLEDIRS+=examples
@@ -631,9 +594,6 @@ endif
 ifeq ($(FULL_TARGET),i386-beos)
 override TARGET_EXAMPLEDIRS+=examples
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_EXAMPLEDIRS+=examples
-endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -751,9 +711,6 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_EXAMPLEDIRS+=examples
 endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_EXAMPLEDIRS+=examples
-endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_EXAMPLEDIRS+=examples
 endif
@@ -778,15 +735,6 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_EXAMPLEDIRS+=examples
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
 override INSTALL_BUILDUNIT=buildgtk2
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -807,9 +755,6 @@ endif
 ifeq ($(FULL_TARGET),i386-beos)
 override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
-endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
 endif
@@ -927,9 +872,6 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
 endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
-endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
 endif
@@ -954,188 +896,164 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_INCLUDEDIR+=$(GTK2X11INCLUDE)
-endif
 ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
-endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
-endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
-endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+override COMPILER_UNITDIR+=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 endif
 override SHARED_BUILD=n
 override SHARED_BUILD=n
@@ -1459,11 +1377,6 @@ BATCHEXT=.sh
 EXEEXT=
 SHORTSUFFIX=be
 endif
-ifeq ($(OS_TARGET),haiku)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=hai
-endif
 ifeq ($(OS_TARGET),solaris)
 BATCHEXT=.sh
 EXEEXT=
@@ -1944,9 +1857,6 @@ ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_X11=1
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
-REQUIRE_PACKAGES_RTL=1
-endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_X11=1
@@ -2082,10 +1992,6 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 endif
-ifeq ($(FULL_TARGET),arm-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -2112,16 +2018,6 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-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),)
@@ -2175,13 +2071,13 @@ override COMPILER_UNITDIR+=$(UNITDIR_X11)
 endif
 endif
 ifndef NOCPUDEF
-override FPCOPTDEF=$(ARCH)
+override FPCOPTDEF=$(CPU_TARGET)
 endif
 ifneq ($(OS_TARGET),$(OS_SOURCE))
 override FPCOPT+=-T$(OS_TARGET)
 endif
 ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(ARCH)
+override FPCOPT+=-P$(CPU_TARGET)
 endif
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
@@ -2785,9 +2681,6 @@ endif
 ifeq ($(FULL_TARGET),i386-beos)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
@@ -2905,9 +2798,6 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
-ifeq ($(FULL_TARGET),arm-darwin)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
@@ -2932,15 +2822,6 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
 examples_all:
 	$(MAKE) -C examples all

+ 2 - 2
packages/gtk2/Makefile.fpc

@@ -19,10 +19,10 @@ packages_darwin=x11
 [target]
 units=src/buildgtk2 
 exampledirs=examples
-implicitunits=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext $(GDK2X)
+implicitunits=glib2 gtkhtml atk pango gdk2pixbuf gdk2 gtk2 libglade2 gtkglext gdkglext gtk2ext $(GDK2X)
 
 [compiler]
-unitdir=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/$(GTK2X11)
+unitdir=src src/glib src/atk src/pango src/gtk+/gdk-pixbuf src/gtk+/gdk src/gtk+/gtk src/libglade src/gtkglext src/gtkhtml src/gtkext src/$(GTK2X11)
 includedir=$(GTK2X11INCLUDE)
 
 [install]

+ 16 - 0
packages/gtk2/fpmake.pp

@@ -1208,6 +1208,22 @@ begin
           AddUnit('glib2');
         end;
 
+    T:=P.Targets.AddUnit('src/gtkext/gtk2ext.pp');
+      T.IncludePath.Add('src/gtkext');
+      with T.Dependencies do
+        begin
+          AddInclude('gtkstatusiconh.inc');
+          AddInclude('gtkstatusicon.inc');
+	  AddInclude('gtkscalebuttonh.inc');
+	  AddInclude('gtkscalebutton.inc');
+	  AddInclude('gtkvolumebuttonh.inc');	  
+	  AddInclude('gtkvolumebutton.inc');	  
+	  AddInclude('gtktextmarkh.inc');
+	  AddInclude('gtktextmark.inc');
+	  AddInclude('gtktextiterh.inc');
+	  AddInclude('gtktextiter.inc');
+        end;
+
      T:=P.Targets.AddUnit('src/gtkhtml/gtkhtml.pas');
        T.IncludePath.Add('src/gtkhtml');
        with T.Dependencies do

+ 1 - 1
packages/gtk2/src/buildgtk2.pp

@@ -25,7 +25,7 @@ unit buildgtk2; // keep unit name lowercase for kylix
 interface
 
 uses
-  gtk2, libglade2,gdkglext,gtkglext,gtkhtml
+  gtk2, libglade2,gdkglext,gtkglext,gtkhtml,gtk2ext
 {$ifdef unix}  
   ,gdk2x
 {$endif unix}

+ 70 - 0
packages/gtk2/src/gtkext/gtk2ext.pp

@@ -0,0 +1,70 @@
+unit gtk2ext;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  glib2, gdk2, gdk2pixbuf, gtk2;
+  
+const
+  { This is equired when people don't have -dev/-devel packages on linux.
+    I'm not sure how Darwin is handled tho }
+  {$ifdef windows}
+  GtkLibNames: array[1..1] of string = (gtklib);
+  {$else}
+    {$ifdef darwin} // Mac/Darwin
+    GtkLibNames: array[1..1] of string = (gtklib); // TODO: I don't know this one!
+    {$else} // BSD, Solaris, Linux
+    GtkLibNames: array[1..2] of string = (gtklib, gtklib + '.0');
+    {$endif}
+  {$endif}
+  
+{$i gtkstatusiconh.inc}
+{$i gtkscalebuttonh.inc}
+{$i gtkvolumebuttonh.inc}
+{$i gtktextmarkh.inc}
+{$i gtktextiterh.inc}
+
+implementation
+
+uses
+  SysUtils, dynlibs;
+
+var
+  gtkhandle : tlibhandle;
+
+{$i gtkstatusicon.inc}
+{$i gtkscalebutton.inc}
+{$i gtkvolumebutton.inc}
+{$i gtktextmark.inc}
+{$i gtktextiter.inc}
+
+var
+  libIter: Integer;
+
+initialization
+  for libIter := High(GtkLibNames) downto Low(GtkLibNames) do begin
+    gtkhandle := LoadLibrary(GtkLibNames[libIter]);
+    if gtkhandle <> 0 then begin
+      Loadgtkstatusicon;
+      Loadgtkscalebutton;
+      Loadgtkvolumebutton;
+      Loadgtktextmark;
+      Loadgtkiter;
+      // add all specific component load functions here
+      Break;
+    end;
+  end;
+finalization
+  Freegtkstatusicon;
+  Freegtkscalebutton;
+  Freegtkvolumebutton;
+  Freegtktextmark;
+  Freegtkiter;
+  // add all specific component free functions here
+  if gtkhandle <> 0 then
+    FreeLibrary(gtkhandle);
+
+end.
+

+ 60 - 0
packages/gtk2/src/gtkext/gtkscalebutton.inc

@@ -0,0 +1,60 @@
+
+function GTK_TYPE_SCALE_BUTTON: GType; inline;
+begin
+  GTK_TYPE_SCALE_BUTTON:=gtk_scale_button_get_type();
+end;
+
+function GTK_SCALE_BUTTON(obj : pointer) : PGTypeInstance; inline;
+begin
+   GTK_SCALE_BUTTON:=G_TYPE_CHECK_INSTANCE_CAST(obj,GTK_TYPE_SCALE_BUTTON);
+end;
+
+function GTK_SCALE_BUTTON_CLASS(klass : pointer) : pointer; inline;
+begin
+   GTK_SCALE_BUTTON_CLASS:=G_TYPE_CHECK_CLASS_CAST(klass,GTK_TYPE_SCALE_BUTTON);
+end;
+
+function GTK_IS_SCALE_BUTTON(obj : pointer) : boolean; inline;
+begin
+   GTK_IS_SCALE_BUTTON:=G_TYPE_CHECK_INSTANCE_TYPE(obj,GTK_TYPE_SCALE_BUTTON);
+end;
+
+function GTK_IS_SCALE_BUTTON_CLASS(klass : pointer) : boolean; inline;
+begin
+   GTK_IS_SCALE_BUTTON_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GTK_TYPE_SCALE_BUTTON);
+end;
+
+function GTK_SCALE_BUTTON_GET_CLASS(obj : pointer) : PGTypeClass; inline;
+begin
+   GTK_SCALE_BUTTON_GET_CLASS:=G_TYPE_INSTANCE_GET_CLASS(obj,GTK_TYPE_SCALE_BUTTON);
+end;
+
+function Available_GtkScaleButton_2_12: Boolean;
+begin
+  Result := Assigned(gtk_scale_button_new);
+end;
+
+procedure Freegtkscalebutton;
+begin
+  gtk_scale_button_get_type:=nil;
+  gtk_scale_button_new:=nil;
+  gtk_scale_button_set_icons:=nil;
+  gtk_scale_button_get_value:=nil;
+  gtk_scale_button_set_value:=nil;
+  gtk_scale_button_get_adjustment:=nil;
+  gtk_scale_button_set_adjustment:=nil;
+end;
+
+procedure Loadgtkscalebutton;
+begin
+  Freegtkscalebutton;
+
+  pointer(gtk_scale_button_get_type):=GetProcAddress(gtkhandle,'gtk_scale_button_get_type');
+  pointer(gtk_scale_button_new):=GetProcAddress(gtkhandle,'gtk_scale_button_new');
+  pointer(gtk_scale_button_set_icons):=GetProcAddress(gtkhandle,'gtk_scale_button_set_icons');
+  pointer(gtk_scale_button_get_value):=GetProcAddress(gtkhandle,'gtk_scale_button_get_value');
+  pointer(gtk_scale_button_set_value):=GetProcAddress(gtkhandle,'gtk_scale_button_set_value');
+  pointer(gtk_scale_button_get_adjustment):=GetProcAddress(gtkhandle,'gtk_scale_button_get_adjustment');
+  pointer(gtk_scale_button_set_adjustment):=GetProcAddress(gtkhandle,'gtk_scale_button_set_adjustment');
+end;
+

+ 23 - 0
packages/gtk2/src/gtkext/gtkscalebuttonh.inc

@@ -0,0 +1,23 @@
+
+type
+  PGtkScaleButton = pointer;
+  PGtkScaleButtonClass = pointer;
+
+var
+  gtk_scale_button_get_type : function: GType;cdecl;
+  gtk_scale_button_new : function(size:TGtkIconSize; min:gdouble; max:gdouble; step:gdouble; icons:PPgchar):PGtkWidget;cdecl;
+  gtk_scale_button_set_icons : procedure(button:PGtkScaleButton; icons:PPgchar);cdecl;
+  gtk_scale_button_get_value : function(button:PGtkScaleButton):gdouble;cdecl;
+  gtk_scale_button_set_value : procedure(button:PGtkScaleButton; value:gdouble);cdecl;
+  gtk_scale_button_get_adjustment : function(button:PGtkScaleButton):PGtkAdjustment;cdecl;
+  gtk_scale_button_set_adjustment : procedure(button:PGtkScaleButton; adjustment:PGtkAdjustment);cdecl;
+
+  function GTK_TYPE_SCALE_BUTTON: GType; inline;
+  function GTK_SCALE_BUTTON(obj : pointer) : PGTypeInstance; inline;
+  function GTK_SCALE_BUTTON_CLASS(klass : pointer) : pointer; inline;
+  function GTK_IS_SCALE_BUTTON(obj : pointer) : boolean; inline;
+  function GTK_IS_SCALE_BUTTON_CLASS(klass : pointer) : boolean; inline;
+  function GTK_SCALE_BUTTON_GET_CLASS(obj : pointer) : PGTypeClass; inline;
+
+  function Available_GtkScaleButton_2_12: Boolean;
+

+ 101 - 0
packages/gtk2/src/gtkext/gtkstatusicon.inc

@@ -0,0 +1,101 @@
+
+procedure Freegtkstatusicon;
+begin
+  gtk_status_icon_get_type:=nil;
+  gtk_status_icon_new:=nil;
+  gtk_status_icon_new_from_pixbuf:=nil;
+  gtk_status_icon_new_from_file:=nil;
+  gtk_status_icon_new_from_stock:=nil;
+  gtk_status_icon_new_from_icon_name:=nil;
+  gtk_status_icon_set_from_pixbuf:=nil;
+  gtk_status_icon_set_from_file:=nil;
+  gtk_status_icon_set_from_stock:=nil;
+  gtk_status_icon_set_from_icon_name:=nil;
+  gtk_status_icon_get_storage_type:=nil;
+  gtk_status_icon_get_pixbuf:=nil;
+  gtk_status_icon_get_size:=nil;
+  gtk_status_icon_set_screen:=nil;
+  gtk_status_icon_get_screen:=nil;
+  gtk_status_icon_set_tooltip:=nil;
+  gtk_status_icon_set_visible:=nil;
+  gtk_status_icon_get_visible:=nil;
+  gtk_status_icon_set_blinking:=nil;
+  gtk_status_icon_get_blinking:=nil;
+  gtk_status_icon_is_embedded:=nil;
+  gtk_status_icon_position_menu:=nil;
+  gtk_status_icon_get_geometry:=nil;
+end;
+
+
+procedure Loadgtkstatusicon;
+begin
+  Freegtkstatusicon;
+
+  pointer(gtk_status_icon_get_type):=GetProcAddress(gtkhandle,'gtk_status_icon_get_type');
+  pointer(gtk_status_icon_new):=GetProcAddress(gtkhandle,'gtk_status_icon_new');
+  pointer(gtk_status_icon_new_from_pixbuf):=GetProcAddress(gtkhandle,'gtk_status_icon_new_from_pixbuf');
+  pointer(gtk_status_icon_new_from_file):=GetProcAddress(gtkhandle,'gtk_status_icon_new_from_file');
+  pointer(gtk_status_icon_new_from_stock):=GetProcAddress(gtkhandle,'gtk_status_icon_new_from_stock');
+  pointer(gtk_status_icon_new_from_icon_name):=GetProcAddress(gtkhandle,'gtk_status_icon_new_from_icon_name');
+  pointer(gtk_status_icon_set_from_pixbuf):=GetProcAddress(gtkhandle,'gtk_status_icon_set_from_pixbuf');
+  pointer(gtk_status_icon_set_from_file):=GetProcAddress(gtkhandle,'gtk_status_icon_set_from_file');
+  pointer(gtk_status_icon_set_from_stock):=GetProcAddress(gtkhandle,'gtk_status_icon_set_from_stock');
+  pointer(gtk_status_icon_set_from_icon_name):=GetProcAddress(gtkhandle,'gtk_status_icon_set_from_icon_name');
+  pointer(gtk_status_icon_get_storage_type):=GetProcAddress(gtkhandle,'gtk_status_icon_get_storage_type');
+  pointer(gtk_status_icon_get_pixbuf):=GetProcAddress(gtkhandle,'gtk_status_icon_get_pixbuf');
+  pointer(gtk_status_icon_get_stock):=GetProcAddress(gtkhandle, 'gtk_status_icon_get_stock');
+  pointer(gtk_status_icon_get_icon_name):=GetProcAddress(gtkhandle, 'gtk_status_icon_get_icon_name');
+  pointer(gtk_status_icon_get_size):=GetProcAddress(gtkhandle,'gtk_status_icon_get_size');
+  pointer(gtk_status_icon_set_screen):=GetProcAddress(gtkhandle,'gtk_status_icon_set_screen');
+  pointer(gtk_status_icon_get_screen):=GetProcAddress(gtkhandle,'gtk_status_icon_get_screen');
+  pointer(gtk_status_icon_set_tooltip):=GetProcAddress(gtkhandle,'gtk_status_icon_set_tooltip');
+  pointer(gtk_status_icon_set_visible):=GetProcAddress(gtkhandle,'gtk_status_icon_set_visible');
+  pointer(gtk_status_icon_get_visible):=GetProcAddress(gtkhandle,'gtk_status_icon_get_visible');
+  pointer(gtk_status_icon_set_blinking):=GetProcAddress(gtkhandle,'gtk_status_icon_set_blinking');
+  pointer(gtk_status_icon_get_blinking):=GetProcAddress(gtkhandle,'gtk_status_icon_get_blinking');
+  pointer(gtk_status_icon_is_embedded):=GetProcAddress(gtkhandle,'gtk_status_icon_is_embedded');
+  pointer(gtk_status_icon_position_menu):=GetProcAddress(gtkhandle,'gtk_status_icon_position_menu');
+  pointer(gtk_status_icon_get_geometry):=GetProcAddress(gtkhandle,'gtk_status_icon_get_geometry');
+end;
+
+function GTK_TYPE_STATUS_ICON: GType; inline;
+begin
+  Result := gtk_status_icon_get_type();
+end;
+
+function GTK_STATUS_ICON(obj: Pointer): PGTypeInstance; inline;
+begin
+  GTK_STATUS_ICON := G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_STATUS_ICON);
+end;
+
+function GTK_STATUS_ICON_CLASS(klass: Pointer): Pointer; inline;
+begin
+  GTK_STATUS_ICON_CLASS := G_TYPE_CHECK_CLASS_CAST (klass, GTK_TYPE_STATUS_ICON);
+end;
+
+function GTK_IS_STATUS_ICON(obj: Pointer): boolean; inline;
+begin
+  GTK_IS_STATUS_ICON := G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_STATUS_ICON);
+end;
+
+function GTK_IS_STATUS_ICON_CLASS(klass: Pointer): boolean; inline;
+begin
+  GTK_IS_STATUS_ICON_CLASS := G_TYPE_CHECK_CLASS_TYPE (klass, GTK_TYPE_STATUS_ICON);
+end;
+
+function GTK_STATUS_ICON_GET_CLASS(obj: Pointer): PGTypeClass; inline;
+begin
+  GTK_STATUS_ICON_GET_CLASS := G_TYPE_INSTANCE_GET_CLASS (obj, GTK_TYPE_STATUS_ICON);
+end;
+
+function Available_GtkStatusIcon_2_10: Boolean;
+begin
+  Result := Assigned(gtk_status_icon_new);
+end;
+
+function Available_GtkStatusIcon_2_12: Boolean;
+begin
+  Result := Assigned(gtk_status_icon_get_screen);
+end;
+
+

+ 68 - 0
packages/gtk2/src/gtkext/gtkstatusiconh.inc

@@ -0,0 +1,68 @@
+
+{* gtkstatusicon.h:
+ *
+ * Copyright (C) 2003 Sun Microsystems, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ *      Mark McLoughlin <[email protected]>
+ *}
+
+type
+  PGtkStatusIcon = Pointer;
+  PGtkStatusIconClass = Pointer;
+
+  PPGdkScreen = PGdkScreen;
+
+
+var
+  gtk_status_icon_get_type : function:GType;
+  gtk_status_icon_new : function:PGtkStatusIcon;
+  gtk_status_icon_new_from_pixbuf : function(pixbuf:PGdkPixbuf):PGtkStatusIcon;
+  gtk_status_icon_new_from_file : function(filename:Pgchar):PGtkStatusIcon;
+  gtk_status_icon_new_from_stock : function(stock_id:Pgchar):PGtkStatusIcon;
+  gtk_status_icon_new_from_icon_name : function(icon_name:Pgchar):PGtkStatusIcon;
+  gtk_status_icon_set_from_pixbuf : procedure(status_icon:PGtkStatusIcon; pixbuf:PGdkPixbuf);
+  gtk_status_icon_set_from_file : procedure(status_icon:PGtkStatusIcon; filename:Pgchar);
+  gtk_status_icon_set_from_stock : procedure(status_icon:PGtkStatusIcon; stock_id:Pgchar);
+  gtk_status_icon_set_from_icon_name : procedure(status_icon:PGtkStatusIcon; icon_name:Pgchar);
+  gtk_status_icon_get_storage_type : function(status_icon:PGtkStatusIcon):TGtkImageType;
+  gtk_status_icon_get_pixbuf : function(status_icon:PGtkStatusIcon):PGdkPixbuf;
+  gtk_status_icon_get_stock : function(status_icon: PGtkStatusIcon):Pgchar;
+  gtk_status_icon_get_icon_name : function(status_icon: PGtkStatusIcon):Pgchar;
+  gtk_status_icon_get_size : function(status_icon:PGtkStatusIcon):gint;
+  gtk_status_icon_set_screen : procedure(status_icon:PGtkStatusIcon; screen:PGdkScreen);
+  gtk_status_icon_get_screen : function(status_icon:PGtkStatusIcon):PGdkScreen;
+  gtk_status_icon_set_tooltip : procedure(status_icon:PGtkStatusIcon; tooltip_text:Pgchar);
+  gtk_status_icon_set_visible : procedure(status_icon:PGtkStatusIcon; visible:gboolean);
+  gtk_status_icon_get_visible : function(status_icon:PGtkStatusIcon):gboolean;
+  gtk_status_icon_set_blinking : procedure(status_icon:PGtkStatusIcon; blinking:gboolean);
+  gtk_status_icon_get_blinking : function(status_icon:PGtkStatusIcon):gboolean;
+  gtk_status_icon_is_embedded : function(status_icon:PGtkStatusIcon):gboolean;
+  gtk_status_icon_position_menu : procedure(menu:PGtkMenu; x:Pgint; y:Pgint; push_in:Pgboolean; user_data:gpointer);
+  gtk_status_icon_get_geometry : function(status_icon:PGtkStatusIcon; screen:PPGdkScreen; area:PGdkRectangle; orientation:PGtkOrientation):gboolean;
+
+  function GTK_TYPE_STATUS_ICON: GType; inline;
+  function GTK_STATUS_ICON(obj: Pointer): PGTypeInstance; inline;
+  function GTK_STATUS_ICON_CLASS(klass: Pointer): Pointer; inline;
+  function GTK_IS_STATUS_ICON(obj: Pointer): boolean; inline;
+  function GTK_IS_STATUS_ICON_CLASS(klass: Pointer): boolean; inline;
+  function GTK_STATUS_ICON_GET_CLASS(obj: Pointer): PGTypeClass; inline;
+
+  function Available_GtkStatusIcon_2_10: Boolean;
+  function Available_GtkStatusIcon_2_12: Boolean;
+

+ 25 - 0
packages/gtk2/src/gtkext/gtktextiter.inc

@@ -0,0 +1,25 @@
+
+procedure Freegtkiter;
+begin
+  gtk_text_iter_forward_visible_line:=nil;
+  gtk_text_iter_backward_visible_line:=nil;
+  gtk_text_iter_forward_visible_lines:=nil;
+  gtk_text_iter_backward_visible_lines:=nil;
+end;
+
+
+procedure Loadgtkiter;
+begin
+  Freegtkiter;
+
+  pointer(gtk_text_iter_forward_visible_line):=GetProcAddress(gtkhandle,'gtk_text_iter_forward_visible_line');
+  pointer(gtk_text_iter_backward_visible_line):=GetProcAddress(gtkhandle,'gtk_text_iter_backward_visible_line');
+  pointer(gtk_text_iter_forward_visible_lines):=GetProcAddress(gtkhandle,'gtk_text_iter_forward_visible_lines');
+  pointer(gtk_text_iter_backward_visible_lines):=GetProcAddress(gtkhandle,'gtk_text_iter_backward_visible_lines');
+end;
+
+function Available_GtkTextIter_2_8: Boolean;
+begin
+  Result := Assigned(gtk_text_iter_forward_visible_line);
+end;
+

+ 8 - 0
packages/gtk2/src/gtkext/gtktextiterh.inc

@@ -0,0 +1,8 @@
+
+var
+  gtk_text_iter_forward_visible_line: function(iter: PGtkTextIter): gboolean;cdecl;
+  gtk_text_iter_backward_visible_line: function(iter: PGtkTextIter): gboolean;cdecl;
+  gtk_text_iter_forward_visible_lines: function(iter: PGtkTextIter; count: gint): gboolean;cdecl;
+  gtk_text_iter_backward_visible_lines: function(iter: PGtkTextIter; count: gint): gboolean;cdecl;
+
+  function Available_GtkTextIter_2_8: Boolean;

+ 19 - 0
packages/gtk2/src/gtkext/gtktextmark.inc

@@ -0,0 +1,19 @@
+
+procedure Freegtktextmark;
+begin
+  gtk_text_mark_new:=nil
+end;
+
+
+procedure Loadgtktextmark;
+begin
+  Freegtktextmark;
+
+  pointer(gtk_text_mark_new):=GetProcAddress(gtkhandle,'gtk_text_mark_new');
+end;
+
+function Available_GtkTextMark_2_12: Boolean;
+begin
+  Result := Assigned(gtk_text_mark_new);
+end;
+

+ 5 - 0
packages/gtk2/src/gtkext/gtktextmarkh.inc

@@ -0,0 +1,5 @@
+
+var
+  gtk_text_mark_new: function(name: PGChar; left_gravity: Gboolean):PGtkTextMark;cdecl;
+
+  function Available_GtkTextMark_2_12: Boolean;

+ 50 - 0
packages/gtk2/src/gtkext/gtkvolumebutton.inc

@@ -0,0 +1,50 @@
+procedure Freegtkvolumebutton;
+begin
+  gtk_volume_button_new:=nil;
+  gtk_volume_button_get_type:=nil;
+end;
+
+
+procedure Loadgtkvolumebutton;
+begin
+  Freegtkvolumebutton;
+
+  pointer(gtk_volume_button_get_type):=GetProcAddress(gtkhandle,'gtk_volume_button_get_type');
+  pointer(gtk_volume_button_new):=GetProcAddress(gtkhandle,'gtk_volume_button_new');
+end;
+
+function GTK_TYPE_VOLUME_BUTTON: GType; inline;
+begin
+  GTK_TYPE_VOLUME_BUTTON := gtk_volume_button_get_type();
+end;
+
+function GTK_VOLUME_BUTTON(obj : pointer) : PGTypeInstance;
+begin
+   GTK_VOLUME_BUTTON:=G_TYPE_CHECK_INSTANCE_CAST(obj,GTK_TYPE_VOLUME_BUTTON);
+end;
+
+function GTK_VOLUME_BUTTON_CLASS(klass : pointer) : pointer;
+begin
+   GTK_VOLUME_BUTTON_CLASS:=G_TYPE_CHECK_CLASS_CAST(klass,GTK_TYPE_VOLUME_BUTTON);
+end;
+
+function GTK_IS_VOLUME_BUTTON(obj : pointer) : boolean; inline;
+begin
+   GTK_IS_VOLUME_BUTTON:=G_TYPE_CHECK_INSTANCE_TYPE(obj,GTK_TYPE_VOLUME_BUTTON);
+end;
+
+function GTK_IS_VOLUME_BUTTON_CLASS(klass : pointer) : boolean; inline;
+begin
+   GTK_IS_VOLUME_BUTTON_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GTK_TYPE_VOLUME_BUTTON);
+end;
+
+function GTK_VOLUME_BUTTON_GET_CLASS(obj : pointer) : PGTypeClass; inline;
+begin
+   GTK_VOLUME_BUTTON_GET_CLASS:=G_TYPE_INSTANCE_GET_CLASS(obj,GTK_TYPE_VOLUME_BUTTON);
+end;
+
+function Available_GtkVolumeButton_2_12: Boolean;
+begin
+  Result := Assigned(gtk_volume_button_new);
+end;
+

+ 18 - 0
packages/gtk2/src/gtkext/gtkvolumebuttonh.inc

@@ -0,0 +1,18 @@
+
+type
+  PGtkVolumeButtonClass = pointer;
+  PGtkVolumeButton = pointer;
+
+var
+  gtk_volume_button_get_type: function:GType;cdecl;
+  gtk_volume_button_new : function:PGtkWidget;cdecl;
+
+  function GTK_TYPE_VOLUME_BUTTON: GType; inline;
+  function GTK_VOLUME_BUTTON(obj : pointer) : PGTypeInstance; inline;
+  function GTK_VOLUME_BUTTON_CLASS(klass : pointer) : pointer; inline;
+  function GTK_IS_VOLUME_BUTTON(obj : pointer) : boolean; inline;
+  function GTK_IS_VOLUME_BUTTON_CLASS(klass : pointer) : boolean; inline;
+  function GTK_VOLUME_BUTTON_GET_CLASS(obj : pointer) : PGTypeClass; inline;
+
+  function Available_GtkVolumeButton_2_12: Boolean;
+

+ 1 - 1
packages/lua/src/lua.pas

@@ -97,7 +97,7 @@ type
 (*
 ** prototype for memory-allocation functions
 *)
-  lua_Alloc = procedure(ud, ptr: Pointer; osize, nsize: size_t); cdecl;
+  lua_Alloc = function(ud, ptr: Pointer; osize, nsize: size_t): Pointer; cdecl;
 
 (*
 ** basic types

+ 110 - 0
packages/openssl/src/openssl.pas

@@ -124,6 +124,62 @@ const
   SSL_ERROR_ZERO_RETURN = 6;
   SSL_ERROR_WANT_CONNECT = 7;
   SSL_ERROR_WANT_ACCEPT = 8;
+  
+     SSL_CTRL_NEED_TMP_RSA = 1;
+     SSL_CTRL_SET_TMP_RSA = 2;
+     SSL_CTRL_SET_TMP_DH = 3;
+     SSL_CTRL_SET_TMP_ECDH = 4;
+     SSL_CTRL_SET_TMP_RSA_CB = 5;
+     SSL_CTRL_SET_TMP_DH_CB = 6;
+     SSL_CTRL_SET_TMP_ECDH_CB = 7;
+     SSL_CTRL_GET_SESSION_REUSED = 8;
+     SSL_CTRL_GET_CLIENT_CERT_REQUEST = 9;
+     SSL_CTRL_GET_NUM_RENEGOTIATIONS = 10;
+     SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS = 11;
+     SSL_CTRL_GET_TOTAL_RENEGOTIATIONS = 12;
+     SSL_CTRL_GET_FLAGS = 13;
+     SSL_CTRL_EXTRA_CHAIN_CERT = 14;
+     SSL_CTRL_SET_MSG_CALLBACK = 15;
+     SSL_CTRL_SET_MSG_CALLBACK_ARG = 16;
+  { only applies to datagram connections  }
+     SSL_CTRL_SET_MTU = 17;
+  { Stats  }
+     SSL_CTRL_SESS_NUMBER = 20;
+     SSL_CTRL_SESS_CONNECT = 21;
+     SSL_CTRL_SESS_CONNECT_GOOD = 22;
+     SSL_CTRL_SESS_CONNECT_RENEGOTIATE = 23;
+     SSL_CTRL_SESS_ACCEPT = 24;
+     SSL_CTRL_SESS_ACCEPT_GOOD = 25;
+     SSL_CTRL_SESS_ACCEPT_RENEGOTIATE = 26;
+     SSL_CTRL_SESS_HIT = 27;
+     SSL_CTRL_SESS_CB_HIT = 28;
+     SSL_CTRL_SESS_MISSES = 29;
+     SSL_CTRL_SESS_TIMEOUTS = 30;
+     SSL_CTRL_SESS_CACHE_FULL = 31;
+     SSL_CTRL_OPTIONS = 32;
+     SSL_CTRL_MODE = 33;
+     SSL_CTRL_GET_READ_AHEAD = 40;
+     SSL_CTRL_SET_READ_AHEAD = 41;
+     SSL_CTRL_SET_SESS_CACHE_SIZE = 42;
+     SSL_CTRL_GET_SESS_CACHE_SIZE = 43;
+     SSL_CTRL_SET_SESS_CACHE_MODE = 44;
+     SSL_CTRL_GET_SESS_CACHE_MODE = 45;
+     SSL_CTRL_GET_MAX_CERT_LIST = 50;
+     SSL_CTRL_SET_MAX_CERT_LIST = 51;
+
+{* Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success
+ * when just a single record has been written): *}
+  SSL_MODE_ENABLE_PARTIAL_WRITE = 1;
+{* Make it possible to retry SSL_write() with changed buffer location
+ * (buffer contents must stay the same!); this is not the default to avoid
+ * the misconception that non-blocking SSL_write() behaves like
+ * non-blocking write(): *}
+  SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER = 2;
+{* Never bother the application with retries if the transport
+ * is blocking: *}
+  SSL_MODE_AUTO_RETRY = 4;
+{* Don't attempt to automatically build certificate chain *}
+  SSL_MODE_NO_AUTO_CHAIN = 8;
 
   SSL_OP_NO_SSLv2 = $01000000;
   SSL_OP_NO_SSLv3 = $02000000;
@@ -193,6 +249,15 @@ var
   function SslCtxNew(meth: PSSL_METHOD):PSSL_CTX;
   procedure SslCtxFree(arg0: PSSL_CTX);
   function SslSetFd(s: PSSL; fd: cInt):cInt;
+  
+  function SslCtrl(ssl: PSSL; cmd: cInt; larg: clong; parg: Pointer): cLong;
+  function SslCTXCtrl(ctx: PSSL_CTX; cmd: cInt; larg: clong; parg: Pointer): cLong;
+
+  function SSLCTXSetMode(ctx: PSSL_CTX; mode: cLong): cLong;
+  function SSLSetMode(s: PSSL; mode: cLong): cLong;
+  function SSLCTXGetMode(ctx: PSSL_CTX): cLong;
+  function SSLGetMode(s: PSSL): cLong;
+  
   function SslMethodV2:PSSL_METHOD;
   function SslMethodV3:PSSL_METHOD;
   function SslMethodTLSV1:PSSL_METHOD;
@@ -299,6 +364,8 @@ type
   TSslCtxNew = function(meth: PSSL_METHOD):PSSL_CTX; cdecl;
   TSslCtxFree = procedure(arg0: PSSL_CTX); cdecl;
   TSslSetFd = function(s: PSSL; fd: cInt):cInt; cdecl;
+  TSslCtrl = function(ssl: PSSL; cmd: cInt; larg: clong; parg: Pointer): cLong; cdecl;
+  TSslCTXCtrl = function(ctx: PSSL_CTX; cmd: cInt; larg: clong; parg: Pointer): cLong; cdecl;
   TSslMethodV2 = function:PSSL_METHOD; cdecl;
   TSslMethodV3 = function:PSSL_METHOD; cdecl;
   TSslMethodTLSV1 = function:PSSL_METHOD; cdecl;
@@ -397,6 +464,8 @@ var
   _SslCtxNew: TSslCtxNew = nil;
   _SslCtxFree: TSslCtxFree = nil;
   _SslSetFd: TSslSetFd = nil;
+  _SslCtrl: TSslCtrl = nil;
+  _SslCTXCtrl: TSslCTXCtrl = nil;
   _SslMethodV2: TSslMethodV2 = nil;
   _SslMethodV3: TSslMethodV3 = nil;
   _SslMethodTLSV1: TSslMethodTLSV1 = nil;
@@ -541,6 +610,43 @@ begin
     Result := 0;
 end;
 
+function SslCtrl(ssl: PSSL; cmd: cInt; larg: clong; parg: Pointer): cLong;
+begin
+  if InitSSLInterface and Assigned(_SslCtrl) then
+    Result := _SslCtrl(ssl, cmd, larg, parg)
+  else
+    Result := 0;
+end;
+
+function SslCTXCtrl(ctx: PSSL_CTX; cmd: cInt; larg: clong; parg: Pointer
+  ): cLong;
+begin
+  if InitSSLInterface and Assigned(_SslCTXCtrl) then
+    Result := _SslCTXCtrl(ctx, cmd, larg, parg)
+  else
+    Result := 0;
+end;
+
+function SSLCTXSetMode(ctx: PSSL_CTX; mode: cLong): cLong;
+begin
+  Result := SslCTXCtrl(ctx, SSL_CTRL_MODE, mode, nil);
+end;
+
+function SSLSetMode(s: PSSL; mode: cLong): cLong;
+begin
+  Result := SSLctrl(s, SSL_CTRL_MODE, mode, nil);
+end;
+
+function SSLCTXGetMode(ctx: PSSL_CTX): cLong;
+begin
+  Result := SSLCTXctrl(ctx, SSL_CTRL_MODE, 0, nil);
+end;
+
+function SSLGetMode(s: PSSL): cLong;
+begin
+  Result := SSLctrl(s, SSL_CTRL_MODE, 0, nil);
+end;
+
 function SslMethodV2:PSSL_METHOD;
 begin
   if InitSSLInterface and Assigned(_SslMethodV2) then
@@ -1206,6 +1312,8 @@ begin
         _SslCtxNew := GetProcAddr(SSLLibHandle, 'SSL_CTX_new');
         _SslCtxFree := GetProcAddr(SSLLibHandle, 'SSL_CTX_free');
         _SslSetFd := GetProcAddr(SSLLibHandle, 'SSL_set_fd');
+        _SslCtrl := GetProcAddr(SSLLibHandle, 'SSL_ctrl');
+        _SslCTXCtrl := GetProcAddr(SSLLibHandle, 'SSL_CTX_ctrl');
         _SslMethodV2 := GetProcAddr(SSLLibHandle, 'SSLv2_method');
         _SslMethodV3 := GetProcAddr(SSLLibHandle, 'SSLv3_method');
         _SslMethodTLSV1 := GetProcAddr(SSLLibHandle, 'TLSv1_method');
@@ -1357,6 +1465,8 @@ begin
     _SslCtxNew := nil;
     _SslCtxFree := nil;
     _SslSetFd := nil;
+    _SslCtrl := nil;
+    _SslCTXCtrl := nil;
     _SslMethodV2 := nil;
     _SslMethodV3 := nil;
     _SslMethodTLSV1 := nil;

+ 3 - 0
packages/x11/src/xi.pp

@@ -286,6 +286,9 @@ const
         _deviceOwnerGrabButton   = 8;
         _noExtensionEvent        = 9;
 
+const
+        _devicePresence = 0;
+
 const
         XI_BadDevice  = 0;
         XI_BadEvent   = 1;