Browse Source

* units are now created in separate directory units/cpu-os/
* distclean uses cleanall rule and removes units dir
* cross compile support fixed, it is now possible to cycle a ppcsparc
without deleting ppc386
* bintutilsperfix defaults to cpu-os-

peter 21 years ago
parent
commit
86f78c7300
100 changed files with 8425 additions and 4801 deletions
  1. 157 85
      Makefile
  2. 53 26
      Makefile.fpc
  3. 210 139
      compiler/Makefile
  4. 63 87
      compiler/Makefile.fpc
  5. 104 60
      compiler/utils/Makefile
  6. 0 1
      compiler/utils/Makefile.fpc
  7. 182 99
      fcl/Makefile
  8. 3 4
      fcl/Makefile.fpc
  9. 158 76
      fcl/db/Makefile
  10. 0 1
      fcl/db/Makefile.fpc
  11. 102 59
      fcl/db/dbase/Makefile
  12. 0 1
      fcl/db/dbase/Makefile.fpc
  13. 105 62
      fcl/db/interbase/Makefile
  14. 1 2
      fcl/db/interbase/Makefile.fpc
  15. 103 60
      fcl/db/memds/Makefile
  16. 0 3
      fcl/db/memds/Makefile.fpc
  17. 129 62
      fcl/db/mysql/Makefile
  18. 1 2
      fcl/db/mysql/Makefile.fpc
  19. 145 63
      fcl/db/odbc/Makefile
  20. 1 2
      fcl/db/odbc/Makefile.fpc
  21. 103 60
      fcl/db/sdf/Makefile
  22. 0 3
      fcl/db/sdf/Makefile.fpc
  23. 141 69
      fcl/db/sqldb/Makefile
  24. 1 3
      fcl/db/sqldb/Makefile.fpc
  25. 104 61
      fcl/db/sqldb/interbase/Makefile
  26. 1 2
      fcl/db/sqldb/interbase/Makefile.fpc
  27. 129 62
      fcl/db/sqldb/mysql/Makefile
  28. 1 2
      fcl/db/sqldb/mysql/Makefile.fpc
  29. 104 61
      fcl/db/sqldb/postgres/Makefile
  30. 1 2
      fcl/db/sqldb/postgres/Makefile.fpc
  31. 134 63
      fcl/db/sqlite/Makefile
  32. 0 3
      fcl/db/sqlite/Makefile.fpc
  33. 165 93
      fcl/db/tests/Makefile
  34. 107 64
      fcl/image/Makefile
  35. 0 3
      fcl/image/Makefile.fpc
  36. 113 66
      fcl/net/Makefile
  37. 0 1
      fcl/net/Makefile.fpc
  38. 166 94
      fcl/net/tests/Makefile
  39. 103 60
      fcl/passrc/Makefile
  40. 0 1
      fcl/passrc/Makefile.fpc
  41. 106 61
      fcl/shedit/Makefile
  42. 0 1
      fcl/shedit/Makefile.fpc
  43. 172 100
      fcl/shedit/gtk/Makefile
  44. 165 93
      fcl/tests/Makefile
  45. 103 60
      fcl/xml/Makefile
  46. 0 1
      fcl/xml/Makefile.fpc
  47. 117 70
      ide/Makefile
  48. 9 4
      ide/Makefile.fpc
  49. 104 60
      ide/compiler/Makefile
  50. 3 1
      ide/compiler/Makefile.fpc
  51. 104 59
      ide/fakegdb/Makefile
  52. 3 0
      ide/fakegdb/Makefile.fpc
  53. 108 63
      installer/Makefile
  54. 101 59
      packages/Makefile
  55. 143 73
      packages/base/Makefile
  56. 102 59
      packages/base/gdbint/Makefile
  57. 127 56
      packages/base/gdbint/libgdb/Makefile
  58. 102 59
      packages/base/ibase/Makefile
  59. 102 59
      packages/base/inet/Makefile
  60. 103 61
      packages/base/libasync/Makefile
  61. 0 4
      packages/base/libasync/Makefile.fpc
  62. 102 59
      packages/base/libc/Makefile
  63. 102 59
      packages/base/md5/Makefile
  64. 125 59
      packages/base/mysql/Makefile
  65. 102 59
      packages/base/netdb/Makefile
  66. 102 59
      packages/base/odbc/Makefile
  67. 105 60
      packages/base/oracle/Makefile
  68. 165 95
      packages/base/oracle/example/Makefile
  69. 102 59
      packages/base/pasjpeg/Makefile
  70. 102 59
      packages/base/paszlib/Makefile
  71. 125 59
      packages/base/postgres/Makefile
  72. 102 59
      packages/base/pthreads/Makefile
  73. 102 59
      packages/base/regexpr/Makefile
  74. 102 59
      packages/base/sqlite/Makefile
  75. 176 84
      packages/extra/Makefile
  76. 101 60
      packages/extra/amunits/Makefile
  77. 0 1
      packages/extra/amunits/Makefile.fpc
  78. 102 60
      packages/extra/amunits/units/Makefile
  79. 1 2
      packages/extra/amunits/units/Makefile.fpc
  80. 102 60
      packages/extra/amunits/utilunits/Makefile
  81. 0 1
      packages/extra/amunits/utilunits/Makefile.fpc
  82. 102 59
      packages/extra/bfd/Makefile
  83. 102 59
      packages/extra/cdrom/Makefile
  84. 110 63
      packages/extra/forms/Makefile
  85. 108 63
      packages/extra/forms/demo/Makefile
  86. 169 99
      packages/extra/fpgtk/Makefile
  87. 267 126
      packages/extra/fpgtk/demo/Makefile
  88. 102 59
      packages/extra/gdbm/Makefile
  89. 102 59
      packages/extra/ggi/Makefile
  90. 104 60
      packages/extra/gnome1/Makefile
  91. 111 67
      packages/extra/gnome1/gconf/Makefile
  92. 0 1
      packages/extra/gnome1/gconf/Makefile.fpc
  93. 112 67
      packages/extra/gnome1/gconf/examples/Makefile
  94. 110 68
      packages/extra/gnome1/gnome/Makefile
  95. 0 1
      packages/extra/gnome1/gnome/Makefile.fpc
  96. 113 69
      packages/extra/gnome1/zvt/Makefile
  97. 0 1
      packages/extra/gnome1/zvt/Makefile.fpc
  98. 116 71
      packages/extra/gnome1/zvt/examples/Makefile
  99. 112 66
      packages/extra/gtk/Makefile
  100. 1 1
      packages/extra/gtk/Makefile.fpc

+ 157 - 85
Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/21]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: help
 default: help
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -229,12 +235,12 @@ endif
 ifeq ($(CPU_TARGET),x86_64)
 ifeq ($(CPU_TARGET),x86_64)
 PPSUF=x64
 PPSUF=x64
 endif
 endif
-ifeq ($(CPU_TARGET),powerpc)
-PPSUF=ppc
-endif
 ifeq ($(CPU_TARGET),sparc)
 ifeq ($(CPU_TARGET),sparc)
 PPSUF=sparc
 PPSUF=sparc
 endif
 endif
+ifeq ($(CPU_TARGET),powerpc)
+PPSUF=ppc
+endif
 ifeq ($(CPU_TARGET),alpha)
 ifeq ($(CPU_TARGET),alpha)
 PPSUF=axp
 PPSUF=axp
 endif
 endif
@@ -256,13 +262,17 @@ endif
 ifdef SNAPSHOT
 ifdef SNAPSHOT
 INSTALLTARGET=install
 INSTALLTARGET=install
 else
 else
+ifdef CROSSINSTALL
+INSTALLTARGET=install
+else
 INSTALLTARGET=distinstall
 INSTALLTARGET=distinstall
 endif
 endif
+endif
 ifdef SNAPSHOT
 ifdef SNAPSHOT
 ALLTARGET=all
 ALLTARGET=all
 else
 else
 ifndef ALLTARGET
 ifndef ALLTARGET
-SMARTTARGETS=win32 go32v2 linux freebsd netbsd openbsd netware netwlibc
+SMARTTARGETS=win32 go32v2 linux freebsd netbsd openbsd
 ifneq ($(findstring $(OS_TARGET),$(SMARTTARGETS)),)
 ifneq ($(findstring $(OS_TARGET),$(SMARTTARGETS)),)
 ALLTARGET=smart
 ALLTARGET=smart
 else
 else
@@ -281,21 +291,22 @@ PKGUNITSPRE=units
 else
 else
 PKGUNITSPRE=u
 PKGUNITSPRE=u
 endif
 endif
+ifdef CROSSINSTALL
+PKGPRE=$(FULL_TARGET)-
+else
 PKGPRE=
 PKGPRE=
+endif
 override RELEASE=1
 override RELEASE=1
 export RELEASE
 export RELEASE
 ifndef DIST_DESTDIR
 ifndef DIST_DESTDIR
 export DIST_DESTDIR:=$(BASEDIR)
 export DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 BASEPACKDIR=$(BASEDIR)/basepack
 BASEPACKDIR=$(BASEDIR)/basepack
-TEMPMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
-ifneq ($(CPU_SOURCE),$(CPU_TARGET))
-TEMPMAKENEW=fpcmake
-endif
-ifneq ($(OS_SOURCE),$(OS_TARGET))
-TEMPMAKENEW=fpcmake
+ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+FPCMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
+else
+FPCMAKENEW=fpcmake
 endif
 endif
-FPCMAKENEW=$(TEMPMAKENEW)
 CLEANOPTS=FPC=$(PPNEW)
 CLEANOPTS=FPC=$(PPNEW)
 BUILDOPTS=FPC=$(PPNEW) RELEASE=1
 BUILDOPTS=FPC=$(PPNEW) RELEASE=1
 INSTALLOPTS=FPC=$(PPNEW) ZIPDESTDIR=$(BASEDIR) FPCMAKE=$(FPCMAKENEW)
 INSTALLOPTS=FPC=$(PPNEW) ZIPDESTDIR=$(BASEDIR) FPCMAKE=$(FPCMAKENEW)
@@ -350,6 +361,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -363,28 +384,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -510,21 +519,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -534,33 +542,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -568,7 +576,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -577,68 +585,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -870,6 +883,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -883,6 +910,9 @@ endif
 ifndef COPYTREE
 ifndef COPYTREE
 COPYTREE:=$(CPPROG) -Rfp
 COPYTREE:=$(CPPROG) -Rfp
 endif
 endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
 endif
 endif
@@ -1197,10 +1227,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1510,7 +1540,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1536,17 +1566,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1554,6 +1595,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1673,6 +1715,8 @@ compiler_smart:
 	$(MAKE) -C compiler smart
 	$(MAKE) -C compiler smart
 compiler_release:
 compiler_release:
 	$(MAKE) -C compiler release
 	$(MAKE) -C compiler release
+compiler_units:
+	$(MAKE) -C compiler units
 compiler_examples:
 compiler_examples:
 	$(MAKE) -C compiler examples
 	$(MAKE) -C compiler examples
 compiler_shared:
 compiler_shared:
@@ -1705,7 +1749,7 @@ compiler_makefiles:
 	$(MAKE) -C compiler makefiles
 	$(MAKE) -C compiler makefiles
 compiler:
 compiler:
 	$(MAKE) -C compiler all
 	$(MAKE) -C compiler all
-.PHONY: compiler_all compiler_debug compiler_smart compiler_release compiler_examples compiler_shared compiler_install compiler_sourceinstall compiler_exampleinstall compiler_distinstall compiler_zipinstall compiler_zipsourceinstall compiler_zipexampleinstall compiler_zipdistinstall compiler_clean compiler_distclean compiler_cleanall compiler_info compiler_makefiles compiler
+.PHONY: compiler_all compiler_debug compiler_smart compiler_release compiler_units compiler_examples compiler_shared compiler_install compiler_sourceinstall compiler_exampleinstall compiler_distinstall compiler_zipinstall compiler_zipsourceinstall compiler_zipexampleinstall compiler_zipdistinstall compiler_clean compiler_distclean compiler_cleanall compiler_info compiler_makefiles compiler
 endif
 endif
 ifdef TARGET_DIRS_RTL
 ifdef TARGET_DIRS_RTL
 rtl_all:
 rtl_all:
@@ -1716,6 +1760,8 @@ rtl_smart:
 	$(MAKE) -C rtl smart
 	$(MAKE) -C rtl smart
 rtl_release:
 rtl_release:
 	$(MAKE) -C rtl release
 	$(MAKE) -C rtl release
+rtl_units:
+	$(MAKE) -C rtl units
 rtl_examples:
 rtl_examples:
 	$(MAKE) -C rtl examples
 	$(MAKE) -C rtl examples
 rtl_shared:
 rtl_shared:
@@ -1748,7 +1794,7 @@ rtl_makefiles:
 	$(MAKE) -C rtl makefiles
 	$(MAKE) -C rtl makefiles
 rtl:
 rtl:
 	$(MAKE) -C rtl all
 	$(MAKE) -C rtl all
-.PHONY: rtl_all rtl_debug rtl_smart rtl_release rtl_examples rtl_shared rtl_install rtl_sourceinstall rtl_exampleinstall rtl_distinstall rtl_zipinstall rtl_zipsourceinstall rtl_zipexampleinstall rtl_zipdistinstall rtl_clean rtl_distclean rtl_cleanall rtl_info rtl_makefiles rtl
+.PHONY: rtl_all rtl_debug rtl_smart rtl_release rtl_units rtl_examples rtl_shared rtl_install rtl_sourceinstall rtl_exampleinstall rtl_distinstall rtl_zipinstall rtl_zipsourceinstall rtl_zipexampleinstall rtl_zipdistinstall rtl_clean rtl_distclean rtl_cleanall rtl_info rtl_makefiles rtl
 endif
 endif
 ifdef TARGET_DIRS_UTILS
 ifdef TARGET_DIRS_UTILS
 utils_all:
 utils_all:
@@ -1759,6 +1805,8 @@ utils_smart:
 	$(MAKE) -C utils smart
 	$(MAKE) -C utils smart
 utils_release:
 utils_release:
 	$(MAKE) -C utils release
 	$(MAKE) -C utils release
+utils_units:
+	$(MAKE) -C utils units
 utils_examples:
 utils_examples:
 	$(MAKE) -C utils examples
 	$(MAKE) -C utils examples
 utils_shared:
 utils_shared:
@@ -1791,7 +1839,7 @@ utils_makefiles:
 	$(MAKE) -C utils makefiles
 	$(MAKE) -C utils makefiles
 utils:
 utils:
 	$(MAKE) -C utils all
 	$(MAKE) -C utils all
-.PHONY: utils_all utils_debug utils_smart utils_release utils_examples utils_shared utils_install utils_sourceinstall utils_exampleinstall utils_distinstall utils_zipinstall utils_zipsourceinstall utils_zipexampleinstall utils_zipdistinstall utils_clean utils_distclean utils_cleanall utils_info utils_makefiles utils
+.PHONY: utils_all utils_debug utils_smart utils_release utils_units utils_examples utils_shared utils_install utils_sourceinstall utils_exampleinstall utils_distinstall utils_zipinstall utils_zipsourceinstall utils_zipexampleinstall utils_zipdistinstall utils_clean utils_distclean utils_cleanall utils_info utils_makefiles utils
 endif
 endif
 ifdef TARGET_DIRS_FCL
 ifdef TARGET_DIRS_FCL
 fcl_all:
 fcl_all:
@@ -1802,6 +1850,8 @@ fcl_smart:
 	$(MAKE) -C fcl smart
 	$(MAKE) -C fcl smart
 fcl_release:
 fcl_release:
 	$(MAKE) -C fcl release
 	$(MAKE) -C fcl release
+fcl_units:
+	$(MAKE) -C fcl units
 fcl_examples:
 fcl_examples:
 	$(MAKE) -C fcl examples
 	$(MAKE) -C fcl examples
 fcl_shared:
 fcl_shared:
@@ -1834,7 +1884,7 @@ fcl_makefiles:
 	$(MAKE) -C fcl makefiles
 	$(MAKE) -C fcl makefiles
 fcl:
 fcl:
 	$(MAKE) -C fcl all
 	$(MAKE) -C fcl all
-.PHONY: fcl_all fcl_debug fcl_smart fcl_release fcl_examples fcl_shared fcl_install fcl_sourceinstall fcl_exampleinstall fcl_distinstall fcl_zipinstall fcl_zipsourceinstall fcl_zipexampleinstall fcl_zipdistinstall fcl_clean fcl_distclean fcl_cleanall fcl_info fcl_makefiles fcl
+.PHONY: fcl_all fcl_debug fcl_smart fcl_release fcl_units fcl_examples fcl_shared fcl_install fcl_sourceinstall fcl_exampleinstall fcl_distinstall fcl_zipinstall fcl_zipsourceinstall fcl_zipexampleinstall fcl_zipdistinstall fcl_clean fcl_distclean fcl_cleanall fcl_info fcl_makefiles fcl
 endif
 endif
 ifdef TARGET_DIRS_FV
 ifdef TARGET_DIRS_FV
 fv_all:
 fv_all:
@@ -1845,6 +1895,8 @@ fv_smart:
 	$(MAKE) -C fv smart
 	$(MAKE) -C fv smart
 fv_release:
 fv_release:
 	$(MAKE) -C fv release
 	$(MAKE) -C fv release
+fv_units:
+	$(MAKE) -C fv units
 fv_examples:
 fv_examples:
 	$(MAKE) -C fv examples
 	$(MAKE) -C fv examples
 fv_shared:
 fv_shared:
@@ -1877,7 +1929,7 @@ fv_makefiles:
 	$(MAKE) -C fv makefiles
 	$(MAKE) -C fv makefiles
 fv:
 fv:
 	$(MAKE) -C fv all
 	$(MAKE) -C fv all
-.PHONY: fv_all fv_debug fv_smart fv_release fv_examples fv_shared fv_install fv_sourceinstall fv_exampleinstall fv_distinstall fv_zipinstall fv_zipsourceinstall fv_zipexampleinstall fv_zipdistinstall fv_clean fv_distclean fv_cleanall fv_info fv_makefiles fv
+.PHONY: fv_all fv_debug fv_smart fv_release fv_units fv_examples fv_shared fv_install fv_sourceinstall fv_exampleinstall fv_distinstall fv_zipinstall fv_zipsourceinstall fv_zipexampleinstall fv_zipdistinstall fv_clean fv_distclean fv_cleanall fv_info fv_makefiles fv
 endif
 endif
 ifdef TARGET_DIRS_PACKAGES
 ifdef TARGET_DIRS_PACKAGES
 packages_all:
 packages_all:
@@ -1888,6 +1940,8 @@ packages_smart:
 	$(MAKE) -C packages smart
 	$(MAKE) -C packages smart
 packages_release:
 packages_release:
 	$(MAKE) -C packages release
 	$(MAKE) -C packages release
+packages_units:
+	$(MAKE) -C packages units
 packages_examples:
 packages_examples:
 	$(MAKE) -C packages examples
 	$(MAKE) -C packages examples
 packages_shared:
 packages_shared:
@@ -1920,7 +1974,7 @@ packages_makefiles:
 	$(MAKE) -C packages makefiles
 	$(MAKE) -C packages makefiles
 packages:
 packages:
 	$(MAKE) -C packages all
 	$(MAKE) -C packages all
-.PHONY: packages_all packages_debug packages_smart packages_release packages_examples packages_shared packages_install packages_sourceinstall packages_exampleinstall packages_distinstall packages_zipinstall packages_zipsourceinstall packages_zipexampleinstall packages_zipdistinstall packages_clean packages_distclean packages_cleanall packages_info packages_makefiles packages
+.PHONY: packages_all packages_debug packages_smart packages_release packages_units packages_examples packages_shared packages_install packages_sourceinstall packages_exampleinstall packages_distinstall packages_zipinstall packages_zipsourceinstall packages_zipexampleinstall packages_zipdistinstall packages_clean packages_distclean packages_cleanall packages_info packages_makefiles packages
 endif
 endif
 ifdef TARGET_DIRS_IDE
 ifdef TARGET_DIRS_IDE
 ide_all:
 ide_all:
@@ -1931,6 +1985,8 @@ ide_smart:
 	$(MAKE) -C ide smart
 	$(MAKE) -C ide smart
 ide_release:
 ide_release:
 	$(MAKE) -C ide release
 	$(MAKE) -C ide release
+ide_units:
+	$(MAKE) -C ide units
 ide_examples:
 ide_examples:
 	$(MAKE) -C ide examples
 	$(MAKE) -C ide examples
 ide_shared:
 ide_shared:
@@ -1963,7 +2019,7 @@ ide_makefiles:
 	$(MAKE) -C ide makefiles
 	$(MAKE) -C ide makefiles
 ide:
 ide:
 	$(MAKE) -C ide all
 	$(MAKE) -C ide all
-.PHONY: ide_all ide_debug ide_smart ide_release ide_examples ide_shared ide_install ide_sourceinstall ide_exampleinstall ide_distinstall ide_zipinstall ide_zipsourceinstall ide_zipexampleinstall ide_zipdistinstall ide_clean ide_distclean ide_cleanall ide_info ide_makefiles ide
+.PHONY: ide_all ide_debug ide_smart ide_release ide_units ide_examples ide_shared ide_install ide_sourceinstall ide_exampleinstall ide_distinstall ide_zipinstall ide_zipsourceinstall ide_zipexampleinstall ide_zipdistinstall ide_clean ide_distclean ide_cleanall ide_info ide_makefiles ide
 endif
 endif
 ifdef TARGET_DIRS_INSTALLER
 ifdef TARGET_DIRS_INSTALLER
 installer_all:
 installer_all:
@@ -1974,6 +2030,8 @@ installer_smart:
 	$(MAKE) -C installer smart
 	$(MAKE) -C installer smart
 installer_release:
 installer_release:
 	$(MAKE) -C installer release
 	$(MAKE) -C installer release
+installer_units:
+	$(MAKE) -C installer units
 installer_examples:
 installer_examples:
 	$(MAKE) -C installer examples
 	$(MAKE) -C installer examples
 installer_shared:
 installer_shared:
@@ -2006,11 +2064,12 @@ installer_makefiles:
 	$(MAKE) -C installer makefiles
 	$(MAKE) -C installer makefiles
 installer:
 installer:
 	$(MAKE) -C installer all
 	$(MAKE) -C installer all
-.PHONY: installer_all installer_debug installer_smart installer_release installer_examples installer_shared installer_install installer_sourceinstall installer_exampleinstall installer_distinstall installer_zipinstall installer_zipsourceinstall installer_zipexampleinstall installer_zipdistinstall installer_clean installer_distclean installer_cleanall installer_info installer_makefiles installer
+.PHONY: installer_all installer_debug installer_smart installer_release installer_units installer_examples installer_shared installer_install installer_sourceinstall installer_exampleinstall installer_distinstall installer_zipinstall installer_zipsourceinstall installer_zipexampleinstall installer_zipdistinstall installer_clean installer_distclean installer_cleanall installer_info installer_makefiles installer
 endif
 endif
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 sourceinstall: fpc_sourceinstall
 sourceinstall: fpc_sourceinstall
@@ -2022,7 +2081,7 @@ zipdistinstall: fpc_zipdistinstall
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: debug smart release examples shared sourceinstall exampleinstall distinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
+.PHONY: debug smart release units examples shared sourceinstall exampleinstall distinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
@@ -2066,14 +2125,14 @@ optcompinstall:
 	$(MAKE) rtl_install
 	$(MAKE) rtl_install
 optcompzip:
 optcompzip:
 	$(MAKE) fpc_zipinstall PACKAGENAME=optcomp ZIPTARGET=optcompinstall
 	$(MAKE) fpc_zipinstall PACKAGENAME=optcomp ZIPTARGET=optcompinstall
-.PHONY: all clean distclean build install installbase zipinstall zipinstallbase zipinstallfcl \
-	zipinstallpackages
+BUILDSTAMP=build-stamp.$(FULL_TARGET)
+.PHONY: all clean distclean build install installbase zipinstall singlezipinstall
 all: build
 all: build
 clean: $(addsuffix _distclean,$(TARGET_DIRS))
 clean: $(addsuffix _distclean,$(TARGET_DIRS))
-	$(DEL) build-stamp.$(OS_TARGET)
+	$(DEL) build-stamp.*
 distclean: clean
 distclean: clean
-build: build-stamp.$(OS_TARGET)
-build-stamp.$(OS_TARGET):
+build: $(BUILDSTAMP)
+$(BUILDSTAMP):
 	$(MAKE) compiler_cycle RELEASE=1
 	$(MAKE) compiler_cycle RELEASE=1
 	$(MAKE) rtl_clean $(CLEANOPTS)
 	$(MAKE) rtl_clean $(CLEANOPTS)
 	$(MAKE) packages_clean $(CLEANOPTS)
 	$(MAKE) packages_clean $(CLEANOPTS)
@@ -2093,12 +2152,13 @@ ifdef IDE
 	$(MAKE) ide_all $(BUILDOPTS)
 	$(MAKE) ide_all $(BUILDOPTS)
 	$(MAKE) installer_all $(BUILDOPTS)
 	$(MAKE) installer_all $(BUILDOPTS)
 endif
 endif
-	$(ECHOREDIR) Build > build-stamp.$(OS_TARGET)
-installbase: build-stamp.$(OS_TARGET)
+	$(ECHOREDIR) Build > $(BUILDSTAMP)
+installbase:
 	$(MKDIR) $(INSTALL_BASEDIR)
 	$(MKDIR) $(INSTALL_BASEDIR)
-	$(MKDIR) $(INSTALL_DOCDIR)
 	$(MKDIR) $(INSTALL_BINDIR)
 	$(MKDIR) $(INSTALL_BINDIR)
 ifndef SNAPSHOT
 ifndef SNAPSHOT
+ifndef CROSSINSTALL
+	$(MKDIR) $(INSTALL_DOCDIR)
 	-$(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
 	-$(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 	$(COPY) $(CVSINSTALL)/bingo32/*.dxe $(INSTALL_BINDIR)
 	$(COPY) $(CVSINSTALL)/bingo32/*.dxe $(INSTALL_BINDIR)
@@ -2120,10 +2180,11 @@ endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 	$(MAKE) -C $(CVSINSTALL)/man installman
 	$(MAKE) -C $(CVSINSTALL)/man installman
 endif
 endif
+endif
 endif
 endif
 	$(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
 	$(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
 	$(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
 	$(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
-install: build-stamp.$(OS_TARGET)
+install: $(BUILDSTAMP)
 	$(MAKE) installbase $(INSTALLOPTS)
 	$(MAKE) installbase $(INSTALLOPTS)
 	$(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
 	$(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
 	$(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
 	$(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
@@ -2131,7 +2192,7 @@ install: build-stamp.$(OS_TARGET)
 ifdef IDE
 ifdef IDE
 	$(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
 	$(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
 endif
 endif
-zipinstall: build-stamp.$(OS_TARGET)
+zipinstall: $(BUILDSTAMP)
 	$(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=$(PKGPRE)base$(ZIPSUFFIX) $(INSTALLOPTS)
 	$(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=$(PKGPRE)base$(ZIPSUFFIX) $(INSTALLOPTS)
 	$(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
 	$(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
 	$(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
 	$(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
@@ -2139,6 +2200,17 @@ zipinstall: build-stamp.$(OS_TARGET)
 ifdef IDE
 ifdef IDE
 	$(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=$(PKGPRE)ide$(ZIPSUFFIX)
 	$(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=$(PKGPRE)ide$(ZIPSUFFIX)
 endif
 endif
+singlezipinstall: $(BUILDSTAMP)
+	$(MAKE) fpc_zipinstall ZIPTARGET=install ZIPNAME=fpc-$(FULL_TARGET) $(INSTALLOPTS)
+.PHONY: crossall crossinstall crosszipinstall crosssinglezipinstall
+crossall:
+	$(MAKE) all CROSSINSTALL=1
+crossinstall:
+	$(MAKE) install CROSSINSTALL=1
+crosszipinstall:
+	$(MAKE) zipinstall CROSSINSTALL=1
+crosssinglezipinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=crossinstall ZIPNAME=fpc-cross-$(FULL_TARGET) $(INSTALLOPTS)
 .PHONY: docspdf docs docsrcinstall docsrc
 .PHONY: docspdf docs docsrcinstall docsrc
 DOCSOURCEDIR=$(INSTALL_SOURCEDIR)/../docs
 DOCSOURCEDIR=$(INSTALL_SOURCEDIR)/../docs
 docspdf:
 docspdf:

+ 53 - 26
Makefile.fpc

@@ -34,12 +34,12 @@ endif
 ifeq ($(CPU_TARGET),x86_64)
 ifeq ($(CPU_TARGET),x86_64)
 PPSUF=x64
 PPSUF=x64
 endif
 endif
-ifeq ($(CPU_TARGET),powerpc)
-PPSUF=ppc
-endif
 ifeq ($(CPU_TARGET),sparc)
 ifeq ($(CPU_TARGET),sparc)
 PPSUF=sparc
 PPSUF=sparc
 endif
 endif
+ifeq ($(CPU_TARGET),powerpc)
+PPSUF=ppc
+endif
 ifeq ($(CPU_TARGET),alpha)
 ifeq ($(CPU_TARGET),alpha)
 PPSUF=axp
 PPSUF=axp
 endif
 endif
@@ -64,19 +64,24 @@ else
 CVSINSTALL=.
 CVSINSTALL=.
 endif
 endif
 
 
-# Install target
+# Install target, for snapshots we don't install examples.
+# Cross installation only needs the .ppu files
 ifdef SNAPSHOT
 ifdef SNAPSHOT
 INSTALLTARGET=install
 INSTALLTARGET=install
 else
 else
+ifdef CROSSINSTALL
+INSTALLTARGET=install
+else
 INSTALLTARGET=distinstall
 INSTALLTARGET=distinstall
 endif
 endif
+endif
 
 
 # All target
 # All target
 ifdef SNAPSHOT
 ifdef SNAPSHOT
 ALLTARGET=all
 ALLTARGET=all
 else
 else
 ifndef ALLTARGET
 ifndef ALLTARGET
-SMARTTARGETS=win32 go32v2 linux freebsd netbsd openbsd netware netwlibc
+SMARTTARGETS=win32 go32v2 linux freebsd netbsd openbsd
 ifneq ($(findstring $(OS_TARGET),$(SMARTTARGETS)),)
 ifneq ($(findstring $(OS_TARGET),$(SMARTTARGETS)),)
 ALLTARGET=smart
 ALLTARGET=smart
 else
 else
@@ -101,11 +106,11 @@ PKGUNITSPRE=u
 endif
 endif
 
 
 # Cross compile needs a prefix to not conflict with original packages
 # Cross compile needs a prefix to not conflict with original packages
-#ifdef CROSSCOMPILE
-#PKGPRE=$(FULL_TARGET)-
-#else
+ifdef CROSSINSTALL
+PKGPRE=$(FULL_TARGET)-
+else
 PKGPRE=
 PKGPRE=
-#endif
+endif
 
 
 # Always compile for release
 # Always compile for release
 override RELEASE=1
 override RELEASE=1
@@ -120,14 +125,11 @@ endif
 BASEPACKDIR=$(BASEDIR)/basepack
 BASEPACKDIR=$(BASEDIR)/basepack
 
 
 # Newly created fpcmake
 # Newly created fpcmake
-TEMPMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
-ifneq ($(CPU_SOURCE),$(CPU_TARGET))
-TEMPMAKENEW=fpcmake
-endif
-ifneq ($(OS_SOURCE),$(OS_TARGET))
-TEMPMAKENEW=fpcmake
+ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+FPCMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
+else
+FPCMAKENEW=fpcmake
 endif
 endif
-FPCMAKENEW=$(TEMPMAKENEW)
 
 
 # Build/install options
 # Build/install options
 CLEANOPTS=FPC=$(PPNEW)
 CLEANOPTS=FPC=$(PPNEW)
@@ -241,18 +243,19 @@ optcompzip:
 # Packaging
 # Packaging
 ##########################################################################
 ##########################################################################
 
 
-.PHONY: all clean distclean build install installbase zipinstall zipinstallbase zipinstallfcl \
-        zipinstallpackages
+BUILDSTAMP=build-stamp.$(FULL_TARGET)
+
+.PHONY: all clean distclean build install installbase zipinstall singlezipinstall
 
 
 all: build
 all: build
 
 
 clean: $(addsuffix _distclean,$(TARGET_DIRS))
 clean: $(addsuffix _distclean,$(TARGET_DIRS))
-        $(DEL) build-stamp.$(OS_TARGET)
+        $(DEL) build-stamp.*
 
 
 distclean: clean
 distclean: clean
 
 
-build: build-stamp.$(OS_TARGET)
-build-stamp.$(OS_TARGET):
+build: $(BUILDSTAMP)
+$(BUILDSTAMP):
 # create new compiler
 # create new compiler
         $(MAKE) compiler_cycle RELEASE=1
         $(MAKE) compiler_cycle RELEASE=1
 # clean
 # clean
@@ -275,15 +278,16 @@ ifdef IDE
         $(MAKE) ide_all $(BUILDOPTS)
         $(MAKE) ide_all $(BUILDOPTS)
         $(MAKE) installer_all $(BUILDOPTS)
         $(MAKE) installer_all $(BUILDOPTS)
 endif
 endif
-        $(ECHOREDIR) Build > build-stamp.$(OS_TARGET)
+        $(ECHOREDIR) Build > $(BUILDSTAMP)
 
 
-installbase: build-stamp.$(OS_TARGET)
+installbase:
 # create dirs
 # create dirs
         $(MKDIR) $(INSTALL_BASEDIR)
         $(MKDIR) $(INSTALL_BASEDIR)
-        $(MKDIR) $(INSTALL_DOCDIR)
         $(MKDIR) $(INSTALL_BINDIR)
         $(MKDIR) $(INSTALL_BINDIR)
 ifndef SNAPSHOT
 ifndef SNAPSHOT
+ifndef CROSSINSTALL
 # readme & whatsnew and docs
 # readme & whatsnew and docs
+        $(MKDIR) $(INSTALL_DOCDIR)
         -$(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
         -$(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
 # bingo32 (cwsdpmi,wmemu387.dxe)
 # bingo32 (cwsdpmi,wmemu387.dxe)
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
@@ -309,11 +313,12 @@ ifeq ($(OS_TARGET),qnx)
         $(MAKE) -C $(CVSINSTALL)/man installman
         $(MAKE) -C $(CVSINSTALL)/man installman
 endif
 endif
 endif
 endif
+endif
 # install generated things
 # install generated things
         $(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
         $(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
         $(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
         $(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
 
 
-install: build-stamp.$(OS_TARGET)
+install: $(BUILDSTAMP)
         $(MAKE) installbase $(INSTALLOPTS)
         $(MAKE) installbase $(INSTALLOPTS)
         $(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
         $(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
         $(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
         $(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
@@ -322,7 +327,7 @@ ifdef IDE
         $(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
         $(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
 endif
 endif
 
 
-zipinstall: build-stamp.$(OS_TARGET)
+zipinstall: $(BUILDSTAMP)
         $(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=$(PKGPRE)base$(ZIPSUFFIX) $(INSTALLOPTS)
         $(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=$(PKGPRE)base$(ZIPSUFFIX) $(INSTALLOPTS)
         $(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
         $(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
         $(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
         $(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)$(PKGUNITSPRE)
@@ -331,6 +336,28 @@ ifdef IDE
         $(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=$(PKGPRE)ide$(ZIPSUFFIX)
         $(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=$(PKGPRE)ide$(ZIPSUFFIX)
 endif
 endif
 
 
+singlezipinstall: $(BUILDSTAMP)
+        $(MAKE) fpc_zipinstall ZIPTARGET=install ZIPNAME=fpc-$(FULL_TARGET) $(INSTALLOPTS)
+
+
+##########################################################################
+# Cross installation (installation of cross compiler and units)
+##########################################################################
+
+.PHONY: crossall crossinstall crosszipinstall crosssinglezipinstall
+
+crossall:
+        $(MAKE) all CROSSINSTALL=1
+
+crossinstall:
+        $(MAKE) install CROSSINSTALL=1
+
+crosszipinstall:
+        $(MAKE) zipinstall CROSSINSTALL=1
+
+crosssinglezipinstall:
+        $(MAKE) fpc_zipinstall ZIPTARGET=crossinstall ZIPNAME=fpc-cross-$(FULL_TARGET) $(INSTALLOPTS)
+
 
 
 ##########################################################################
 ##########################################################################
 # Docs
 # Docs

+ 210 - 139
compiler/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -335,10 +341,12 @@ endif
 override LOCALOPT+=$(LOCALDEF)
 override LOCALOPT+=$(LOCALDEF)
 override FPCOPT:=$(LOCALOPT)
 override FPCOPT:=$(LOCALOPT)
 override TARGET_DIRS+=utils
 override TARGET_DIRS+=utils
+override TARGET_PROGRAMS+=pp
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_INCLUDEDIR+=$(PPC_TARGET)
 override COMPILER_INCLUDEDIR+=$(PPC_TARGET)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 override COMPILER_TARGETDIR+=$(CPU_UNITDIR)
 override COMPILER_TARGETDIR+=$(CPU_UNITDIR)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -378,6 +386,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -391,28 +409,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -538,21 +544,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -562,33 +567,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -596,7 +601,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -605,68 +610,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -898,6 +908,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -909,7 +933,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1225,10 +1252,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1379,10 +1406,68 @@ ifeq ($(FULL_SOURCE),$(FULL_TARGET))
 EXECPPAS:=@$(PPAS)
 EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
+.PHONY: fpc_exes
+ifndef CROSSINSTALL
+ifneq ($(TARGET_PROGRAMS),)
+override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
+override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
+override ALLTARGET+=fpc_exes
+override INSTALLEXEFILES+=$(EXEFILES)
+override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
+ifeq ($(OS_TARGET),os2)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
+endif
+ifeq ($(OS_TARGET),emx)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
+endif
+endif
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
 endif
 endif
+.PHONY: fpc_all fpc_smart fpc_debug fpc_release
+$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
+	@$(ECHOREDIR) Compiled > $(FPCMADE)
+fpc_all: $(FPCMADE)
+fpc_smart:
+	$(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+	$(MAKE) all DEBUG=1
+fpc_release:
+	$(MAKE) all RELEASE=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
+%$(PPUEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(PPUEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pp 
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.lpr
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.dpr
+	$(COMPILER) $<
+	$(EXECPPAS)
+%.res: %.rc
+	windres -i $< -o $@
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
 override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
@@ -1538,7 +1623,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1564,17 +1649,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1582,6 +1678,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1694,6 +1791,8 @@ utils_smart:
 	$(MAKE) -C utils smart
 	$(MAKE) -C utils smart
 utils_release:
 utils_release:
 	$(MAKE) -C utils release
 	$(MAKE) -C utils release
+utils_units:
+	$(MAKE) -C utils units
 utils_examples:
 utils_examples:
 	$(MAKE) -C utils examples
 	$(MAKE) -C utils examples
 utils_shared:
 utils_shared:
@@ -1726,7 +1825,7 @@ utils_makefiles:
 	$(MAKE) -C utils makefiles
 	$(MAKE) -C utils makefiles
 utils:
 utils:
 	$(MAKE) -C utils all
 	$(MAKE) -C utils all
-.PHONY: utils_all utils_debug utils_smart utils_release utils_examples utils_shared utils_install utils_sourceinstall utils_exampleinstall utils_distinstall utils_zipinstall utils_zipsourceinstall utils_zipexampleinstall utils_zipdistinstall utils_clean utils_distclean utils_cleanall utils_info utils_makefiles utils
+.PHONY: utils_all utils_debug utils_smart utils_release utils_units utils_examples utils_shared utils_install utils_sourceinstall utils_exampleinstall utils_distinstall utils_zipinstall utils_zipsourceinstall utils_zipexampleinstall utils_zipdistinstall utils_clean utils_distclean utils_cleanall utils_info utils_makefiles utils
 endif
 endif
 ifndef DIFF
 ifndef DIFF
 DIFF:=$(strip $(wildcard $(addsuffix /diff$(SRCEXEEXT),$(SEARCHPATH))))
 DIFF:=$(strip $(wildcard $(addsuffix /diff$(SRCEXEEXT),$(SEARCHPATH))))
@@ -1746,9 +1845,10 @@ CMP:=$(firstword $(CMP))
 endif
 endif
 endif
 endif
 export CMP
 export CMP
-debug: $(addsuffix _debug,$(TARGET_DIRS))
-smart: $(addsuffix _smart,$(TARGET_DIRS))
-release: $(addsuffix _release,$(TARGET_DIRS))
+debug: fpc_debug
+smart: fpc_smart
+release: fpc_release
+units: fpc_units $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 sourceinstall: fpc_sourceinstall
 sourceinstall: fpc_sourceinstall
@@ -1758,10 +1858,10 @@ zipinstall: fpc_zipinstall
 zipsourceinstall: fpc_zipsourceinstall
 zipsourceinstall: fpc_zipsourceinstall
 zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
 zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
 zipdistinstall: fpc_zipdistinstall
 zipdistinstall: fpc_zipdistinstall
-cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
+cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: debug smart release examples shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
+.PHONY: debug smart release units examples shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
@@ -1771,15 +1871,6 @@ override DIFF:=$(CMP) -i218
 endif
 endif
 override COMPILER+=-XX
 override COMPILER+=-XX
 endif
 endif
-ifdef DIFF
-ifdef OLDFPC
-DIFFRESULT:=$(shell $(DIFF) $(OLDFPC) $(FPC))
-else
-DIFFRESULT=Not equal
-endif
-else
-DIFFRESULT=No diff program
-endif
 ifndef EXENAME
 ifndef EXENAME
 EXENAME=ppc$(CPUSUF)$(EXEEXT)
 EXENAME=ppc$(CPUSUF)$(EXEEXT)
 endif
 endif
@@ -1804,9 +1895,11 @@ sparc:
 	$(MAKE) PPC_TARGET=sparc CPU_UNITDIR=sparc all
 	$(MAKE) PPC_TARGET=sparc CPU_UNITDIR=sparc all
 arm:
 arm:
 	$(MAKE) PPC_TARGET=arm CPU_UNITDIR=arm all
 	$(MAKE) PPC_TARGET=arm CPU_UNITDIR=arm all
+x86_64:
+	$(MAKE) PPC_TARGET=x86_64 CPU_UNITDIR=x86_64 all
 .PHONY: all compiler echotime ppuclean execlean clean distclean
 .PHONY: all compiler echotime ppuclean execlean clean distclean
-all: $(EXENAME) $(addsuffix _all,$(TARGET_DIRS))
-compiler: $(EXENAME)
+all: compiler $(addsuffix _all,$(TARGET_DIRS))
+compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
 ifeq ($(MAKELEVEL),0)
 ifeq ($(MAKELEVEL),0)
 ifndef STARTTIME
 ifndef STARTTIME
 ifdef DATE
 ifdef DATE
@@ -1827,14 +1920,17 @@ echotime:
 ppuclean:
 ppuclean:
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) $(addsuffix /*$(PPUEXT),$(COMPILERSOURCEDIR))
 	-$(DEL) $(addsuffix /*$(PPUEXT),$(COMPILERSOURCEDIR))
+tempclean:
+	-$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
 execlean :
 execlean :
-	-$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) $(EXENAME)
+	-$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) $(EXENAME)
 $(addsuffix _clean,$(CYCLETARGETS)):
 $(addsuffix _clean,$(CYCLETARGETS)):
 	-$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT))
 	-$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT))
-	-$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME))
-clean : execlean fpc_cleanall $(addsuffix _clean,$(TARGET_DIRS)) $(addsuffix _clean,$(CYCLETARGETS))
-distclean: execlean fpc_cleanall $(addsuffix _distclean,$(TARGET_DIRS))
-	-$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
+	-$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME))
+cycleclean: cleanall
+	-$(DEL) $(EXENAME)
+clean: tempclean execlean cleanall $(addsuffix _clean,$(TARGET_DIRS))
+distclean: tempclean execlean cleanall $(addsuffix _distclean,$(TARGET_DIRS))
 $(MAKEDEP): $(UTILSDIR)/ppdep.pp
 $(MAKEDEP): $(UTILSDIR)/ppdep.pp
 	$(COMPILER) $(UTILSDIR)/ppdep.pp
 	$(COMPILER) $(UTILSDIR)/ppdep.pp
 	$(COPY) $(UTILSDIR)/$(MAKEDEP) $(MAKEDEP)
 	$(COPY) $(UTILSDIR)/$(MAKEDEP) $(MAKEDEP)
@@ -1849,44 +1945,35 @@ msgtxt.inc: $(MSGFILE)
 	$(MAKE) $(MSG2INC)
 	$(MAKE) $(MSG2INC)
 	$(MSG2INC) $(MSGFILE) msg msg
 	$(MSG2INC) $(MSGFILE) msg msg
 msg: msgtxt.inc
 msg: msgtxt.inc
-ifndef COMPLETE
-$(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
-	     $(wildcard systems/*.pas) $(wilcard systems/*.inc) \
-	     $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
-	$(COMPILER) pp.pas
-	$(EXECPPAS)
-	$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
-else
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
 	     $(wildcard systems/*.pas) $(wilcard systems/*.inc) \
 	     $(wildcard systems/*.pas) $(wilcard systems/*.inc) \
 	     $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
 	     $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
 	$(COMPILER) pp.pas
 	$(COMPILER) pp.pas
 	$(EXECPPAS)
 	$(EXECPPAS)
-	$(COMPILER) pp.pas
-	$(EXECPPAS)
-	$(COMPILER) pp.pas
-	$(EXECPPAS)
 	$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
 	$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
-endif
-tokens.dat : $(wildcard *.pas) $(wildcard *.inc)
-	$(COMPILER) tokendat.pas
-	./tokendat
 ifeq ($(CPU_SOURCE),$(PPC_TARGET))
 ifeq ($(CPU_SOURCE),$(PPC_TARGET))
 ifeq ($(OS_SOURCE),$(OS_TARGET))
 ifeq ($(OS_SOURCE),$(OS_TARGET))
+ifdef DIFF
+ifdef OLDFPC
+DIFFRESULT:=$(shell $(DIFF) $(OLDFPC) $(FPC))
+else
+DIFFRESULT=Not equal
+endif
+else
+DIFFRESULT=No diff program
+endif
 ifndef DIFFRESULT
 ifndef DIFFRESULT
 next :
 next :
 	@echo $(OLDFPC) and $(FPC) are equal
 	@echo $(OLDFPC) and $(FPC) are equal
 	$(COPY) $(FPC) $(EXENAME)
 	$(COPY) $(FPC) $(EXENAME)
 else
 else
 next :
 next :
-	$(MAKE) execlean
-	$(MAKE) -C $(UNITDIR_RTL) clean
-	$(MAKE) -C $(UNITDIR_RTL) 'FPC=$(FPC)' 'OPT=$(RTLOPTS)'
-	$(MAKE) clean
-	$(MAKE) $(EXENAME)
+	$(MAKE) rtlclean rtl
+	$(MAKE) cycleclean compiler
 	$(MAKE) echotime
 	$(MAKE) echotime
 endif
 endif
-$(TEMPNAME1) : $(EXENAME)
+$(TEMPNAME1) :
+	$(MAKE) 'OLDFPC=' next
 	-$(DEL) $(TEMPNAME1)
 	-$(DEL) $(TEMPNAME1)
 	$(MOVE) $(EXENAME) $(TEMPNAME1)
 	$(MOVE) $(EXENAME) $(TEMPNAME1)
 $(TEMPNAME2) : $(TEMPNAME1)
 $(TEMPNAME2) : $(TEMPNAME1)
@@ -1897,39 +1984,33 @@ $(TEMPNAME3) : $(TEMPNAME2)
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME2)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME1)' next
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME2)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME1)' next
 	-$(DEL) $(TEMPNAME3)
 	-$(DEL) $(TEMPNAME3)
 	$(MOVE) $(EXENAME) $(TEMPNAME3)
 	$(MOVE) $(EXENAME) $(TEMPNAME3)
-remake: $(EXENAME)
-	$(MOVE) $(EXENAME) $(TEMPNAME)
-	$(MAKE) execlean
-	$(MAKE) -C $(UNITDIR_RTL) clean
-	$(MAKE) clean
-	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' all
-remake3: $(TEMPNAME3)
+cycle:
+	$(MAKE) tempclean $(TEMPNAME3)
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next
 	$(DIFF) $(TEMPNAME3) $(EXENAME)
 	$(DIFF) $(TEMPNAME3) $(EXENAME)
-cycle:
-	$(MAKE) clean
-	$(MAKE) -C $(UNITDIR_RTL) clean
-	$(MAKE) -C $(UNITDIR_RTL) 'OPT=$(RTLOPTS)' all
-	$(MAKE) remake3
 	$(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAME)'
 	$(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAME)'
 	$(MAKE) echotime
 	$(MAKE) echotime
 else
 else
 cycle:
 cycle:
 	$(MAKE) OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
 	$(MAKE) OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-	$(MAKE) OS_TARGET=$(OS_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+	$(MAKE) OS_TARGET=$(OS_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
+ifndef CROSSINSTALL
 	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
 	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
-	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' clean compiler
+	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler
+endif
 endif
 endif
 else
 else
 cycle:
 cycle:
 	$(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
 	$(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-	$(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+	$(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
 	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) PPC_TARGET=$(CPU_TARGET) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+	$(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) PPC_TARGET=$(CPU_TARGET) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
+ifndef CROSSINSTALL
 	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
 	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
-	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' clean compiler
+	$(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler
+endif
 endif
 endif
 cycledep:
 cycledep:
 	$(MAKE) cycle USEDEPEND=1
 	$(MAKE) cycle USEDEPEND=1
@@ -1948,19 +2029,9 @@ htmldocs:
 MSGINSTALLDIR=$(INSTALL_BASEDIR)/msg
 MSGINSTALLDIR=$(INSTALL_BASEDIR)/msg
 override PPEXEFILE:=$(wildcard $(EXENAME))
 override PPEXEFILE:=$(wildcard $(EXENAME))
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-PPCCPULOCATION= $(INSTALL_BINDIR)
-PPCCROSSLOCATION=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)
+PPCCPULOCATION=$(INSTALL_BASEDIR)
 else
 else
-PPCCPULOCATION= $(INSTALL_BASEDIR)
-endif
-else
-ifdef CROSSCOMPILE
-PPCCPULOCATION= $(INSTALL_BINDIR)
-PPCCROSSLOCATION=$(INSTALL_BINDIR)/cross/$(FULL_TARGET)
-else
-PPCCPULOCATION=  $(INSTALL_BINDIR)
-endif
+PPCCPULOCATION=$(INSTALL_BINDIR)
 endif
 endif
 quickinstall: $(addsuffix _install,$(TARGET_DIRS))
 quickinstall: $(addsuffix _install,$(TARGET_DIRS))
 ifneq ($(PPEXEFILE),)
 ifneq ($(PPEXEFILE),)
@@ -1968,33 +2039,33 @@ ifdef UPXPROG
 	-$(UPXPROG) $(EXENAME)
 	-$(UPXPROG) $(EXENAME)
 endif
 endif
 	$(MKDIR) $(PPCCPULOCATION)
 	$(MKDIR) $(PPCCPULOCATION)
+ifdef CROSSINSTALL
+	$(INSTALLEXE) $(PPCROSSNAME) $(PPCCPULOCATION)/$(EXENAME)
+else
 	$(INSTALLEXE) $(EXENAME) $(PPCCPULOCATION)
 	$(INSTALLEXE) $(EXENAME) $(PPCCPULOCATION)
-ifdef CROSSCOMPILE
-	$(MKDIR) $(PPCCROSSLOCATION)
-	$(ECHO) $(PPCROSSNAME)
-	$(ECHO $(PPCCROSSLOCATION)
-	$(INSTALLEXE) $(PPCROSSNAME) $(PPCCROSSLOCATION)
 endif
 endif
 endif
 endif
 install: quickinstall
 install: quickinstall
+ifndef CROSSINSTALL
 ifdef UNIXHier
 ifdef UNIXHier
 	$(MKDIR) $(INSTALL_BASEDIR)
 	$(MKDIR) $(INSTALL_BASEDIR)
 	$(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(INSTALL_BASEDIR)/samplecfg
 	$(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(INSTALL_BASEDIR)/samplecfg
 endif
 endif
 	$(MKDIR) $(MSGINSTALLDIR)
 	$(MKDIR) $(MSGINSTALLDIR)
 	$(INSTALL) $(MSGFILES) $(MSGINSTALLDIR)
 	$(INSTALL) $(MSGFILES) $(MSGINSTALLDIR)
+endif
 installsymlink: install
 installsymlink: install
-ifdef UNIXHier
+ifneq ($(PPCCPULOCATION),$(INSTALL_BINDIR))
 	$(MKDIR) $(INSTALL_BINDIR)
 	$(MKDIR) $(INSTALL_BINDIR)
 	ln -sf $(INSTALL_BASEDIR)/$(EXENAME) $(INSTALL_BINDIR)/$(EXENAME)
 	ln -sf $(INSTALL_BASEDIR)/$(EXENAME) $(INSTALL_BINDIR)/$(EXENAME)
 endif
 endif
 .PHONY: rtl rtlclean rtlinstall
 .PHONY: rtl rtlclean rtlinstall
 rtl:
 rtl:
-	$(MAKE) -C $(UNITDIR_RTL) 'OPT=$(RTLOPTS)' all
+	$(MAKE) -C $(PACKAGEDIR_RTL) 'OPT=$(RTLOPTS)' all
 rtlclean:
 rtlclean:
-	$(MAKE) -C $(UNITDIR_RTL) clean
+	$(MAKE) -C $(PACKAGEDIR_RTL) clean
 rtlinstall:
 rtlinstall:
-	$(MAKE) -C $(UNITDIR_RTL) install
+	$(MAKE) -C $(PACKAGEDIR_RTL) install
 localmake:=$(strip $(wildcard makefile.loc))
 localmake:=$(strip $(wildcard makefile.loc))
 ifdef localmake
 ifdef localmake
 include ./$(localmake)
 include ./$(localmake)

+ 63 - 87
compiler/Makefile.fpc

@@ -7,10 +7,12 @@ name=compiler
 version=1.9.4
 version=1.9.4
 
 
 [target]
 [target]
+programs=pp
 dirs=utils
 dirs=utils
 
 
 [compiler]
 [compiler]
 targetdir=$(CPU_UNITDIR)
 targetdir=$(CPU_UNITDIR)
+unittargetdir=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 unitdir=$(COMPILERSOURCEDIR)
 unitdir=$(COMPILERSOURCEDIR)
 includedir=$(PPC_TARGET)
 includedir=$(PPC_TARGET)
 
 
@@ -219,17 +221,6 @@ endif
 override COMPILER+=-XX
 override COMPILER+=-XX
 endif
 endif
 
 
-# Used to avoid unnecessary steps in remake3
-ifdef DIFF
-ifdef OLDFPC
-DIFFRESULT:=$(shell $(DIFF) $(OLDFPC) $(FPC))
-else
-DIFFRESULT=Not equal
-endif
-else
-DIFFRESULT=No diff program
-endif
-
 
 
 #####################################################################
 #####################################################################
 # Setup os-independent filenames
 # Setup os-independent filenames
@@ -272,15 +263,18 @@ sparc:
 arm:
 arm:
         $(MAKE) PPC_TARGET=arm CPU_UNITDIR=arm all
         $(MAKE) PPC_TARGET=arm CPU_UNITDIR=arm all
 
 
+x86_64:
+        $(MAKE) PPC_TARGET=x86_64 CPU_UNITDIR=x86_64 all
+
 #####################################################################
 #####################################################################
 # Default makefile
 # Default makefile
 #####################################################################
 #####################################################################
 
 
 .PHONY: all compiler echotime ppuclean execlean clean distclean
 .PHONY: all compiler echotime ppuclean execlean clean distclean
 
 
-all: $(EXENAME) $(addsuffix _all,$(TARGET_DIRS))
+all: compiler $(addsuffix _all,$(TARGET_DIRS))
 
 
-compiler: $(EXENAME)
+compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
 
 
 ifeq ($(MAKELEVEL),0)
 ifeq ($(MAKELEVEL),0)
 ifndef STARTTIME
 ifndef STARTTIME
@@ -307,17 +301,22 @@ ppuclean:
         -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
         -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
         -$(DEL) $(addsuffix /*$(PPUEXT),$(COMPILERSOURCEDIR))
         -$(DEL) $(addsuffix /*$(PPUEXT),$(COMPILERSOURCEDIR))
 
 
+tempclean:
+        -$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
+
 execlean :
 execlean :
-        -$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) $(EXENAME)
+        -$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) $(EXENAME)
 
 
 $(addsuffix _clean,$(CYCLETARGETS)):
 $(addsuffix _clean,$(CYCLETARGETS)):
         -$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT))
         -$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT))
-        -$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME))
+        -$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME))
 
 
-clean : execlean fpc_cleanall $(addsuffix _clean,$(TARGET_DIRS)) $(addsuffix _clean,$(CYCLETARGETS))
+cycleclean: cleanall
+        -$(DEL) $(EXENAME)
 
 
-distclean: execlean fpc_cleanall $(addsuffix _distclean,$(TARGET_DIRS))
-        -$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
+clean: tempclean execlean cleanall $(addsuffix _clean,$(TARGET_DIRS))
+
+distclean: tempclean execlean cleanall $(addsuffix _distclean,$(TARGET_DIRS))
 
 
 
 
 #####################################################################
 #####################################################################
@@ -354,43 +353,28 @@ msgtxt.inc: $(MSGFILE)
 msg: msgtxt.inc
 msg: msgtxt.inc
 
 
 # Make only the compiler
 # Make only the compiler
-ifndef COMPLETE
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
              $(wildcard systems/*.pas) $(wilcard systems/*.inc) \
              $(wildcard systems/*.pas) $(wilcard systems/*.inc) \
              $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
              $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
         $(COMPILER) pp.pas
         $(COMPILER) pp.pas
         $(EXECPPAS)
         $(EXECPPAS)
         $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
         $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
-else
-$(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
-             $(wildcard systems/*.pas) $(wilcard systems/*.inc) \
-             $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc)
-        $(COMPILER) pp.pas
-        $(EXECPPAS)
-        $(COMPILER) pp.pas
-        $(EXECPPAS)
-        $(COMPILER) pp.pas
-        $(EXECPPAS)
-        $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
-endif
 
 
-tokens.dat : $(wildcard *.pas) $(wildcard *.inc)
-        $(COMPILER) tokendat.pas
-        ./tokendat
 
 
 #####################################################################
 #####################################################################
 # Cycle targets
 # Cycle targets
 #
 #
 # 1. Source CPU = Target CPU  and  Source OS = Target OS
 # 1. Source CPU = Target CPU  and  Source OS = Target OS
 #    Normal cycle
 #    Normal cycle
+#
 # 2. Source CPU = Target CPU  and  Source OS <> Target OS
 # 2. Source CPU = Target CPU  and  Source OS <> Target OS
 #    First source native compiler
 #    First source native compiler
-#    Second target native compiler
+#    Second target native compiler  (skipped for cross installation)
 #
 #
 # 3. Source CPU <> Target CPU
 # 3. Source CPU <> Target CPU
 #    First source native compiler
 #    First source native compiler
 #    Second cross compiler
 #    Second cross compiler
-#    Third target native compiler
+#    Third target native compiler (skipped for cross installation)
 #
 #
 #####################################################################
 #####################################################################
 
 
@@ -402,21 +386,30 @@ ifeq ($(OS_SOURCE),$(OS_TARGET))
 # Normal cycle
 # Normal cycle
 #
 #
 
 
+# Used to avoid unnecessary steps
+ifdef DIFF
+ifdef OLDFPC
+DIFFRESULT:=$(shell $(DIFF) $(OLDFPC) $(FPC))
+else
+DIFFRESULT=Not equal
+endif
+else
+DIFFRESULT=No diff program
+endif
+
 ifndef DIFFRESULT
 ifndef DIFFRESULT
 next :
 next :
         @echo $(OLDFPC) and $(FPC) are equal
         @echo $(OLDFPC) and $(FPC) are equal
         $(COPY) $(FPC) $(EXENAME)
         $(COPY) $(FPC) $(EXENAME)
 else
 else
 next :
 next :
-        $(MAKE) execlean
-        $(MAKE) -C $(UNITDIR_RTL) clean
-        $(MAKE) -C $(UNITDIR_RTL) 'FPC=$(FPC)' 'OPT=$(RTLOPTS)'
-        $(MAKE) clean
-        $(MAKE) $(EXENAME)
+        $(MAKE) rtlclean rtl
+        $(MAKE) cycleclean compiler
         $(MAKE) echotime
         $(MAKE) echotime
 endif
 endif
 
 
-$(TEMPNAME1) : $(EXENAME)
+$(TEMPNAME1) :
+        $(MAKE) 'OLDFPC=' next
         -$(DEL) $(TEMPNAME1)
         -$(DEL) $(TEMPNAME1)
         $(MOVE) $(EXENAME) $(TEMPNAME1)
         $(MOVE) $(EXENAME) $(TEMPNAME1)
 
 
@@ -430,24 +423,10 @@ $(TEMPNAME3) : $(TEMPNAME2)
         -$(DEL) $(TEMPNAME3)
         -$(DEL) $(TEMPNAME3)
         $(MOVE) $(EXENAME) $(TEMPNAME3)
         $(MOVE) $(EXENAME) $(TEMPNAME3)
 
 
-# This target remakes the units with the currently made version
-remake: $(EXENAME)
-        $(MOVE) $(EXENAME) $(TEMPNAME)
-        $(MAKE) execlean
-        $(MAKE) -C $(UNITDIR_RTL) clean
-        $(MAKE) clean
-        $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' all
-
-remake3: $(TEMPNAME3)
+cycle:
+        $(MAKE) tempclean $(TEMPNAME3)
         $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next
         $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next
         $(DIFF) $(TEMPNAME3) $(EXENAME)
         $(DIFF) $(TEMPNAME3) $(EXENAME)
-
-
-cycle:
-        $(MAKE) clean
-        $(MAKE) -C $(UNITDIR_RTL) clean
-        $(MAKE) -C $(UNITDIR_RTL) 'OPT=$(RTLOPTS)' all
-        $(MAKE) remake3
         $(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAME)'
         $(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAME)'
         $(MAKE) echotime
         $(MAKE) echotime
 
 
@@ -460,13 +439,15 @@ else
 cycle:
 cycle:
 # ppc (source native)
 # ppc (source native)
         $(MAKE) OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
         $(MAKE) OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-        $(MAKE) OS_TARGET=$(OS_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+        $(MAKE) OS_TARGET=$(OS_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
 # ppcross<ARCH> (source native)
 # ppcross<ARCH> (source native)
         $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
         $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-        $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+        $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
 # ppc<ARCH> (target native)
 # ppc<ARCH> (target native)
+ifndef CROSSINSTALL
         $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
         $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
-        $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' clean compiler
+        $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler
+endif
 
 
 endif
 endif
 
 
@@ -477,19 +458,21 @@ else
 #
 #
 # ppc1 = native
 # ppc1 = native
 # ppc2 = cross running on this platform
 # ppc2 = cross running on this platform
-# ppc3/ppcXXX = native
+# ppc3/ppcXXX = native (skipped for cross installation)
 #
 #
 
 
 cycle:
 cycle:
 # ppc (source native)
 # ppc (source native)
         $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
         $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-        $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+        $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
 # ppcross<ARCH> (source native)
 # ppcross<ARCH> (source native)
         $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
         $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 rtlclean rtl
-        $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) PPC_TARGET=$(CPU_TARGET) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 clean compiler
+        $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) PPC_TARGET=$(CPU_TARGET) EXENAME=$(PPCROSSNAME) CROSSBINDIR="" BINUTILSPREFIX="" CROSSCYCLEBOOTSTRAP=1 cycleclean compiler
 # ppc<ARCH> (target native)
 # ppc<ARCH> (target native)
+ifndef CROSSINSTALL
         $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
         $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl
-        $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' clean compiler
+        $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler
+endif
 
 
 endif
 endif
 
 
@@ -522,6 +505,7 @@ fullcycle:
 #####################################################################
 #####################################################################
 # Docs
 # Docs
 #####################################################################
 #####################################################################
+
 htmldocs:
 htmldocs:
         $(PASDOC) -p -h -o html$(PATHSEP)$(PPC_TARGET) -d fpc -d gdb -d $(PPC_TARGET) -u $(PPC_TARGET) $(PPC_TARGET)$(PATHSEP)*.pas systems$(PATHSEP)*.pas *.pas
         $(PASDOC) -p -h -o html$(PATHSEP)$(PPC_TARGET) -d fpc -d gdb -d $(PPC_TARGET) -u $(PPC_TARGET) $(PPC_TARGET)$(PATHSEP)*.pas systems$(PATHSEP)*.pas *.pas
 
 
@@ -535,50 +519,42 @@ MSGINSTALLDIR=$(INSTALL_BASEDIR)/msg
 override PPEXEFILE:=$(wildcard $(EXENAME))
 override PPEXEFILE:=$(wildcard $(EXENAME))
 
 
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-PPCCPULOCATION= $(INSTALL_BINDIR)
-PPCCROSSLOCATION=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)
+PPCCPULOCATION=$(INSTALL_BASEDIR)
 else
 else
-PPCCPULOCATION= $(INSTALL_BASEDIR)
-endif
-else
-ifdef CROSSCOMPILE
-PPCCPULOCATION= $(INSTALL_BINDIR)
-PPCCROSSLOCATION=$(INSTALL_BINDIR)/cross/$(FULL_TARGET)
-else
-PPCCPULOCATION=  $(INSTALL_BINDIR)
-endif
+PPCCPULOCATION=$(INSTALL_BINDIR)
 endif
 endif
 
 
 # This will only install the ppcXXX executable, not the message files etc.
 # This will only install the ppcXXX executable, not the message files etc.
 quickinstall: $(addsuffix _install,$(TARGET_DIRS))
 quickinstall: $(addsuffix _install,$(TARGET_DIRS))
-# Install ppcXXX executable
+# Install ppcXXX executable, for a cross installation we install
+# the ppcrossXXX as ppcXXX. The target native build ppcXXX is not used
+# for this installation type
 ifneq ($(PPEXEFILE),)
 ifneq ($(PPEXEFILE),)
 ifdef UPXPROG
 ifdef UPXPROG
         -$(UPXPROG) $(EXENAME)
         -$(UPXPROG) $(EXENAME)
 endif
 endif
         $(MKDIR) $(PPCCPULOCATION)
         $(MKDIR) $(PPCCPULOCATION)
+ifdef CROSSINSTALL
+        $(INSTALLEXE) $(PPCROSSNAME) $(PPCCPULOCATION)/$(EXENAME)
+else
         $(INSTALLEXE) $(EXENAME) $(PPCCPULOCATION)
         $(INSTALLEXE) $(EXENAME) $(PPCCPULOCATION)
-ifdef CROSSCOMPILE
-        $(MKDIR) $(PPCCROSSLOCATION)
-        $(ECHO) $(PPCROSSNAME)
-        $(ECHO $(PPCCROSSLOCATION)
-        $(INSTALLEXE) $(PPCROSSNAME) $(PPCCROSSLOCATION)
 endif
 endif
 endif
 endif
 
 
 install: quickinstall
 install: quickinstall
+ifndef CROSSINSTALL
 ifdef UNIXHier
 ifdef UNIXHier
         $(MKDIR) $(INSTALL_BASEDIR)
         $(MKDIR) $(INSTALL_BASEDIR)
         $(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(INSTALL_BASEDIR)/samplecfg
         $(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(INSTALL_BASEDIR)/samplecfg
 endif
 endif
         $(MKDIR) $(MSGINSTALLDIR)
         $(MKDIR) $(MSGINSTALLDIR)
         $(INSTALL) $(MSGFILES) $(MSGINSTALLDIR)
         $(INSTALL) $(MSGFILES) $(MSGINSTALLDIR)
+endif
 
 
 # This also installs a link from bin to the actual executable.
 # This also installs a link from bin to the actual executable.
 # The .deb does that later.
 # The .deb does that later.
 installsymlink: install
 installsymlink: install
-ifdef UNIXHier
+ifneq ($(PPCCPULOCATION),$(INSTALL_BINDIR))
         $(MKDIR) $(INSTALL_BINDIR)
         $(MKDIR) $(INSTALL_BINDIR)
         ln -sf $(INSTALL_BASEDIR)/$(EXENAME) $(INSTALL_BINDIR)/$(EXENAME)
         ln -sf $(INSTALL_BASEDIR)/$(EXENAME) $(INSTALL_BINDIR)/$(EXENAME)
 endif
 endif
@@ -591,13 +567,13 @@ endif
 .PHONY: rtl rtlclean rtlinstall
 .PHONY: rtl rtlclean rtlinstall
 
 
 rtl:
 rtl:
-        $(MAKE) -C $(UNITDIR_RTL) 'OPT=$(RTLOPTS)' all
+        $(MAKE) -C $(PACKAGEDIR_RTL) 'OPT=$(RTLOPTS)' all
 
 
 rtlclean:
 rtlclean:
-        $(MAKE) -C $(UNITDIR_RTL) clean
+        $(MAKE) -C $(PACKAGEDIR_RTL) clean
 
 
 rtlinstall:
 rtlinstall:
-        $(MAKE) -C $(UNITDIR_RTL) install
+        $(MAKE) -C $(PACKAGEDIR_RTL) install
 
 
 
 
 #####################################################################
 #####################################################################

+ 104 - 60
compiler/utils/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -218,7 +224,6 @@ override CLEAN_UNITS+=ppu crc
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_UNITDIR+=..
 override COMPILER_UNITDIR+=..
 override COMPILER_SOURCEDIR+=..
 override COMPILER_SOURCEDIR+=..
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -418,21 +421,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -442,33 +444,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -476,7 +478,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -485,68 +487,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -778,6 +785,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -789,7 +810,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1105,10 +1129,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1260,6 +1284,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1273,7 +1298,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1289,13 +1315,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1313,6 +1343,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1390,7 +1421,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1416,17 +1447,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1434,6 +1476,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1540,6 +1583,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1555,7 +1599,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
compiler/utils/Makefile.fpc

@@ -9,7 +9,6 @@ programs=fpc ppufiles ppudump ppumove
 units=ppu crc
 units=ppu crc
 
 
 [compiler]
 [compiler]
-targetdir=.
 unitdir=..
 unitdir=..
 sourcedir=..
 sourcedir=..
 
 

+ 182 - 99
fcl/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/16]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -278,7 +284,6 @@ ifeq ($(OS_TARGET),emx)
 override COMPILER_INCLUDEDIR+=os2
 override COMPILER_INCLUDEDIR+=os2
 endif
 endif
 override COMPILER_SOURCEDIR+=$(OS_TARGET) inc
 override COMPILER_SOURCEDIR+=$(OS_TARGET) inc
-override COMPILER_TARGETDIR+=$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -318,6 +323,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -331,28 +346,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -504,21 +507,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -528,33 +530,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -562,7 +564,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -571,68 +573,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -864,6 +871,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -877,6 +898,9 @@ endif
 ifndef COPYTREE
 ifndef COPYTREE
 COPYTREE:=$(CPPROG) -Rfp
 COPYTREE:=$(CPPROG) -Rfp
 endif
 endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
 endif
 endif
@@ -1034,6 +1058,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1047,6 +1072,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1060,6 +1086,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1073,6 +1100,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1086,6 +1114,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1099,6 +1128,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1108,7 +1138,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1120,6 +1149,7 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
@@ -1130,7 +1160,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1144,6 +1173,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1157,6 +1187,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1170,6 +1201,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1179,7 +1211,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1192,6 +1223,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1204,6 +1236,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1216,6 +1249,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1228,6 +1262,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1237,7 +1272,6 @@ ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1247,7 +1281,6 @@ ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1257,7 +1290,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1267,7 +1299,6 @@ ifeq ($(CPU_TARGET),sparc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1277,7 +1308,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1287,7 +1317,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1300,6 +1329,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1312,6 +1342,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1321,7 +1352,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1331,7 +1361,6 @@ ifeq ($(CPU_TARGET),m68k)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1341,7 +1370,6 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1355,6 +1383,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1364,7 +1393,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1374,7 +1402,6 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1384,7 +1411,6 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1394,16 +1420,15 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1428,8 +1453,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1454,8 +1479,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1480,8 +1505,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1506,8 +1531,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1532,8 +1557,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1558,8 +1583,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1581,11 +1606,37 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1610,8 +1661,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1776,7 +1827,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1810,13 +1861,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1834,6 +1889,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1990,7 +2046,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -2016,17 +2072,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -2034,6 +2101,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2151,6 +2219,8 @@ xml_smart:
 	$(MAKE) -C xml smart
 	$(MAKE) -C xml smart
 xml_release:
 xml_release:
 	$(MAKE) -C xml release
 	$(MAKE) -C xml release
+xml_units:
+	$(MAKE) -C xml units
 xml_examples:
 xml_examples:
 	$(MAKE) -C xml examples
 	$(MAKE) -C xml examples
 xml_shared:
 xml_shared:
@@ -2183,7 +2253,7 @@ xml_makefiles:
 	$(MAKE) -C xml makefiles
 	$(MAKE) -C xml makefiles
 xml:
 xml:
 	$(MAKE) -C xml all
 	$(MAKE) -C xml all
-.PHONY: xml_all xml_debug xml_smart xml_release xml_examples xml_shared xml_install xml_sourceinstall xml_exampleinstall xml_distinstall xml_zipinstall xml_zipsourceinstall xml_zipexampleinstall xml_zipdistinstall xml_clean xml_distclean xml_cleanall xml_info xml_makefiles xml
+.PHONY: xml_all xml_debug xml_smart xml_release xml_units xml_examples xml_shared xml_install xml_sourceinstall xml_exampleinstall xml_distinstall xml_zipinstall xml_zipsourceinstall xml_zipexampleinstall xml_zipdistinstall xml_clean xml_distclean xml_cleanall xml_info xml_makefiles xml
 endif
 endif
 ifdef TARGET_DIRS_IMAGE
 ifdef TARGET_DIRS_IMAGE
 image_all:
 image_all:
@@ -2194,6 +2264,8 @@ image_smart:
 	$(MAKE) -C image smart
 	$(MAKE) -C image smart
 image_release:
 image_release:
 	$(MAKE) -C image release
 	$(MAKE) -C image release
+image_units:
+	$(MAKE) -C image units
 image_examples:
 image_examples:
 	$(MAKE) -C image examples
 	$(MAKE) -C image examples
 image_shared:
 image_shared:
@@ -2226,7 +2298,7 @@ image_makefiles:
 	$(MAKE) -C image makefiles
 	$(MAKE) -C image makefiles
 image:
 image:
 	$(MAKE) -C image all
 	$(MAKE) -C image all
-.PHONY: image_all image_debug image_smart image_release image_examples image_shared image_install image_sourceinstall image_exampleinstall image_distinstall image_zipinstall image_zipsourceinstall image_zipexampleinstall image_zipdistinstall image_clean image_distclean image_cleanall image_info image_makefiles image
+.PHONY: image_all image_debug image_smart image_release image_units image_examples image_shared image_install image_sourceinstall image_exampleinstall image_distinstall image_zipinstall image_zipsourceinstall image_zipexampleinstall image_zipdistinstall image_clean image_distclean image_cleanall image_info image_makefiles image
 endif
 endif
 ifdef TARGET_DIRS_DB
 ifdef TARGET_DIRS_DB
 db_all:
 db_all:
@@ -2237,6 +2309,8 @@ db_smart:
 	$(MAKE) -C db smart
 	$(MAKE) -C db smart
 db_release:
 db_release:
 	$(MAKE) -C db release
 	$(MAKE) -C db release
+db_units:
+	$(MAKE) -C db units
 db_examples:
 db_examples:
 	$(MAKE) -C db examples
 	$(MAKE) -C db examples
 db_shared:
 db_shared:
@@ -2269,7 +2343,7 @@ db_makefiles:
 	$(MAKE) -C db makefiles
 	$(MAKE) -C db makefiles
 db:
 db:
 	$(MAKE) -C db all
 	$(MAKE) -C db all
-.PHONY: db_all db_debug db_smart db_release db_examples db_shared db_install db_sourceinstall db_exampleinstall db_distinstall db_zipinstall db_zipsourceinstall db_zipexampleinstall db_zipdistinstall db_clean db_distclean db_cleanall db_info db_makefiles db
+.PHONY: db_all db_debug db_smart db_release db_units db_examples db_shared db_install db_sourceinstall db_exampleinstall db_distinstall db_zipinstall db_zipsourceinstall db_zipexampleinstall db_zipdistinstall db_clean db_distclean db_cleanall db_info db_makefiles db
 endif
 endif
 ifdef TARGET_DIRS_SHEDIT
 ifdef TARGET_DIRS_SHEDIT
 shedit_all:
 shedit_all:
@@ -2280,6 +2354,8 @@ shedit_smart:
 	$(MAKE) -C shedit smart
 	$(MAKE) -C shedit smart
 shedit_release:
 shedit_release:
 	$(MAKE) -C shedit release
 	$(MAKE) -C shedit release
+shedit_units:
+	$(MAKE) -C shedit units
 shedit_examples:
 shedit_examples:
 	$(MAKE) -C shedit examples
 	$(MAKE) -C shedit examples
 shedit_shared:
 shedit_shared:
@@ -2312,7 +2388,7 @@ shedit_makefiles:
 	$(MAKE) -C shedit makefiles
 	$(MAKE) -C shedit makefiles
 shedit:
 shedit:
 	$(MAKE) -C shedit all
 	$(MAKE) -C shedit all
-.PHONY: shedit_all shedit_debug shedit_smart shedit_release shedit_examples shedit_shared shedit_install shedit_sourceinstall shedit_exampleinstall shedit_distinstall shedit_zipinstall shedit_zipsourceinstall shedit_zipexampleinstall shedit_zipdistinstall shedit_clean shedit_distclean shedit_cleanall shedit_info shedit_makefiles shedit
+.PHONY: shedit_all shedit_debug shedit_smart shedit_release shedit_units shedit_examples shedit_shared shedit_install shedit_sourceinstall shedit_exampleinstall shedit_distinstall shedit_zipinstall shedit_zipsourceinstall shedit_zipexampleinstall shedit_zipdistinstall shedit_clean shedit_distclean shedit_cleanall shedit_info shedit_makefiles shedit
 endif
 endif
 ifdef TARGET_DIRS_PASSRC
 ifdef TARGET_DIRS_PASSRC
 passrc_all:
 passrc_all:
@@ -2323,6 +2399,8 @@ passrc_smart:
 	$(MAKE) -C passrc smart
 	$(MAKE) -C passrc smart
 passrc_release:
 passrc_release:
 	$(MAKE) -C passrc release
 	$(MAKE) -C passrc release
+passrc_units:
+	$(MAKE) -C passrc units
 passrc_examples:
 passrc_examples:
 	$(MAKE) -C passrc examples
 	$(MAKE) -C passrc examples
 passrc_shared:
 passrc_shared:
@@ -2355,7 +2433,7 @@ passrc_makefiles:
 	$(MAKE) -C passrc makefiles
 	$(MAKE) -C passrc makefiles
 passrc:
 passrc:
 	$(MAKE) -C passrc all
 	$(MAKE) -C passrc all
-.PHONY: passrc_all passrc_debug passrc_smart passrc_release passrc_examples passrc_shared passrc_install passrc_sourceinstall passrc_exampleinstall passrc_distinstall passrc_zipinstall passrc_zipsourceinstall passrc_zipexampleinstall passrc_zipdistinstall passrc_clean passrc_distclean passrc_cleanall passrc_info passrc_makefiles passrc
+.PHONY: passrc_all passrc_debug passrc_smart passrc_release passrc_units passrc_examples passrc_shared passrc_install passrc_sourceinstall passrc_exampleinstall passrc_distinstall passrc_zipinstall passrc_zipsourceinstall passrc_zipexampleinstall passrc_zipdistinstall passrc_clean passrc_distclean passrc_cleanall passrc_info passrc_makefiles passrc
 endif
 endif
 ifdef TARGET_DIRS_NET
 ifdef TARGET_DIRS_NET
 net_all:
 net_all:
@@ -2366,6 +2444,8 @@ net_smart:
 	$(MAKE) -C net smart
 	$(MAKE) -C net smart
 net_release:
 net_release:
 	$(MAKE) -C net release
 	$(MAKE) -C net release
+net_units:
+	$(MAKE) -C net units
 net_examples:
 net_examples:
 	$(MAKE) -C net examples
 	$(MAKE) -C net examples
 net_shared:
 net_shared:
@@ -2398,7 +2478,7 @@ net_makefiles:
 	$(MAKE) -C net makefiles
 	$(MAKE) -C net makefiles
 net:
 net:
 	$(MAKE) -C net all
 	$(MAKE) -C net all
-.PHONY: net_all net_debug net_smart net_release net_examples net_shared net_install net_sourceinstall net_exampleinstall net_distinstall net_zipinstall net_zipsourceinstall net_zipexampleinstall net_zipdistinstall net_clean net_distclean net_cleanall net_info net_makefiles net
+.PHONY: net_all net_debug net_smart net_release net_units net_examples net_shared net_install net_sourceinstall net_exampleinstall net_distinstall net_zipinstall net_zipsourceinstall net_zipexampleinstall net_zipdistinstall net_clean net_distclean net_cleanall net_info net_makefiles net
 endif
 endif
 TARGET_EXAMPLEDIRS_TESTS=1
 TARGET_EXAMPLEDIRS_TESTS=1
 ifdef TARGET_EXAMPLEDIRS_TESTS
 ifdef TARGET_EXAMPLEDIRS_TESTS
@@ -2410,6 +2490,8 @@ tests_smart:
 	$(MAKE) -C tests smart
 	$(MAKE) -C tests smart
 tests_release:
 tests_release:
 	$(MAKE) -C tests release
 	$(MAKE) -C tests release
+tests_units:
+	$(MAKE) -C tests units
 tests_examples:
 tests_examples:
 	$(MAKE) -C tests examples
 	$(MAKE) -C tests examples
 tests_shared:
 tests_shared:
@@ -2442,12 +2524,13 @@ tests_makefiles:
 	$(MAKE) -C tests makefiles
 	$(MAKE) -C tests makefiles
 tests:
 tests:
 	$(MAKE) -C tests all
 	$(MAKE) -C tests all
-.PHONY: tests_all tests_debug tests_smart tests_release tests_examples tests_shared tests_install tests_sourceinstall tests_exampleinstall tests_distinstall tests_zipinstall tests_zipsourceinstall tests_zipexampleinstall tests_zipdistinstall tests_clean tests_distclean tests_cleanall tests_info tests_makefiles tests
+.PHONY: tests_all tests_debug tests_smart tests_release tests_units tests_examples tests_shared tests_install tests_sourceinstall tests_exampleinstall tests_distinstall tests_zipinstall tests_zipsourceinstall tests_zipexampleinstall tests_zipdistinstall tests_clean tests_distclean tests_cleanall tests_info tests_makefiles tests
 endif
 endif
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units $(addsuffix _units,$(TARGET_DIRS))
 examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
 examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
@@ -2463,12 +2546,12 @@ distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
 ifdef CLASSES10
 ifdef CLASSES10
-classes$(PPUEXT):
+classes$(PPUEXT): $(COMPILER_UNITTARGETDIR)
 	$(COMPILER) -Ficlasses -Ficlasses/$(OS_TARGET) classes/$(OS_TARGET)/classes.pp
 	$(COMPILER) -Ficlasses -Ficlasses/$(OS_TARGET) classes/$(OS_TARGET)/classes.pp
 endif
 endif
 xmlreg.pp: xml
 xmlreg.pp: xml

+ 3 - 4
fcl/Makefile.fpc

@@ -20,7 +20,7 @@ packages_win32=netdb
 units=adler gzcrc gzio infblock infcodes inffast inftrees infutil minigzip paszlib trees zbase zcompres zdeflate zinflate zuncompr zutil pthreads
 units=adler gzcrc gzio infblock infcodes inffast inftrees infutil minigzip paszlib trees zbase zcompres zdeflate zinflate zuncompr zutil pthreads
 
 
 [target]
 [target]
-dirs=xml image db shedit passrc net 
+dirs=xml image db shedit passrc net
 units=$(CLASSES10) contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \
 units=$(CLASSES10) contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \
       iostream zstream cachecls xmlreg registry eventlog custapp cgiapp \
       iostream zstream cachecls xmlreg registry eventlog custapp cgiapp \
       wformat whtml wtex rttiutils
       wformat whtml wtex rttiutils
@@ -37,7 +37,6 @@ exampledirs=tests
 
 
 [compiler]
 [compiler]
 options=-S2
 options=-S2
-targetdir=$(OS_TARGET)
 includedir=$(OS_TARGET) inc
 includedir=$(OS_TARGET) inc
 includedir_linux=unix
 includedir_linux=unix
 includedir_freebsd=unix
 includedir_freebsd=unix
@@ -60,14 +59,14 @@ fpcpackage=y
 fpcdir=..
 fpcdir=..
 
 
 [prerules]
 [prerules]
-# Also build classes for 1.0.x 
+# Also build classes for 1.0.x
 ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 CLASSES10=classes
 CLASSES10=classes
 endif
 endif
 
 
 [rules]
 [rules]
 ifdef CLASSES10
 ifdef CLASSES10
-classes$(PPUEXT):
+classes$(PPUEXT): $(COMPILER_UNITTARGETDIR)
 	$(COMPILER) -Ficlasses -Ficlasses/$(OS_TARGET) classes/$(OS_TARGET)/classes.pp
 	$(COMPILER) -Ficlasses -Ficlasses/$(OS_TARGET) classes/$(OS_TARGET)/classes.pp
 endif
 endif
 
 

+ 158 - 76
fcl/db/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,22 +204,23 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_DIRS+=sdf memds sqldb
 override TARGET_DIRS+=sdf memds sqldb
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
 override TARGET_DIRS+=mysql interbase sqlite dbase
 override TARGET_DIRS+=mysql interbase sqlite dbase
@@ -238,7 +245,6 @@ override TARGET_RSTS+=dbwhtml dbconst
 override TARGET_EXAMPLEDIRS+=tests
 override TARGET_EXAMPLEDIRS+=tests
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -278,6 +284,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -291,28 +307,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -464,21 +468,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -488,33 +491,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -522,7 +525,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -531,62 +534,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -725,6 +739,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -806,6 +832,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -817,7 +857,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1195,11 +1238,16 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1224,8 +1272,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1250,8 +1298,8 @@ endif
 ifdef REQUIRE_PACKAGES_POSTGRES
 ifdef REQUIRE_PACKAGES_POSTGRES
 PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_POSTGRES),)
 ifneq ($(PACKAGEDIR_POSTGRES),)
-ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/$(OS_TARGET)),)
-UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
 UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
 endif
 endif
@@ -1276,8 +1324,8 @@ endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1302,8 +1350,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1468,7 +1516,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1502,13 +1550,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1526,6 +1578,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1603,7 +1656,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1629,17 +1682,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1647,6 +1711,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1794,6 +1859,8 @@ sdf_smart:
 	$(MAKE) -C sdf smart
 	$(MAKE) -C sdf smart
 sdf_release:
 sdf_release:
 	$(MAKE) -C sdf release
 	$(MAKE) -C sdf release
+sdf_units:
+	$(MAKE) -C sdf units
 sdf_examples:
 sdf_examples:
 	$(MAKE) -C sdf examples
 	$(MAKE) -C sdf examples
 sdf_shared:
 sdf_shared:
@@ -1826,7 +1893,7 @@ sdf_makefiles:
 	$(MAKE) -C sdf makefiles
 	$(MAKE) -C sdf makefiles
 sdf:
 sdf:
 	$(MAKE) -C sdf all
 	$(MAKE) -C sdf all
-.PHONY: sdf_all sdf_debug sdf_smart sdf_release sdf_examples sdf_shared sdf_install sdf_sourceinstall sdf_exampleinstall sdf_distinstall sdf_zipinstall sdf_zipsourceinstall sdf_zipexampleinstall sdf_zipdistinstall sdf_clean sdf_distclean sdf_cleanall sdf_info sdf_makefiles sdf
+.PHONY: sdf_all sdf_debug sdf_smart sdf_release sdf_units sdf_examples sdf_shared sdf_install sdf_sourceinstall sdf_exampleinstall sdf_distinstall sdf_zipinstall sdf_zipsourceinstall sdf_zipexampleinstall sdf_zipdistinstall sdf_clean sdf_distclean sdf_cleanall sdf_info sdf_makefiles sdf
 endif
 endif
 ifdef TARGET_DIRS_MEMDS
 ifdef TARGET_DIRS_MEMDS
 memds_all:
 memds_all:
@@ -1837,6 +1904,8 @@ memds_smart:
 	$(MAKE) -C memds smart
 	$(MAKE) -C memds smart
 memds_release:
 memds_release:
 	$(MAKE) -C memds release
 	$(MAKE) -C memds release
+memds_units:
+	$(MAKE) -C memds units
 memds_examples:
 memds_examples:
 	$(MAKE) -C memds examples
 	$(MAKE) -C memds examples
 memds_shared:
 memds_shared:
@@ -1869,7 +1938,7 @@ memds_makefiles:
 	$(MAKE) -C memds makefiles
 	$(MAKE) -C memds makefiles
 memds:
 memds:
 	$(MAKE) -C memds all
 	$(MAKE) -C memds all
-.PHONY: memds_all memds_debug memds_smart memds_release memds_examples memds_shared memds_install memds_sourceinstall memds_exampleinstall memds_distinstall memds_zipinstall memds_zipsourceinstall memds_zipexampleinstall memds_zipdistinstall memds_clean memds_distclean memds_cleanall memds_info memds_makefiles memds
+.PHONY: memds_all memds_debug memds_smart memds_release memds_units memds_examples memds_shared memds_install memds_sourceinstall memds_exampleinstall memds_distinstall memds_zipinstall memds_zipsourceinstall memds_zipexampleinstall memds_zipdistinstall memds_clean memds_distclean memds_cleanall memds_info memds_makefiles memds
 endif
 endif
 ifdef TARGET_DIRS_SQLDB
 ifdef TARGET_DIRS_SQLDB
 sqldb_all:
 sqldb_all:
@@ -1880,6 +1949,8 @@ sqldb_smart:
 	$(MAKE) -C sqldb smart
 	$(MAKE) -C sqldb smart
 sqldb_release:
 sqldb_release:
 	$(MAKE) -C sqldb release
 	$(MAKE) -C sqldb release
+sqldb_units:
+	$(MAKE) -C sqldb units
 sqldb_examples:
 sqldb_examples:
 	$(MAKE) -C sqldb examples
 	$(MAKE) -C sqldb examples
 sqldb_shared:
 sqldb_shared:
@@ -1912,7 +1983,7 @@ sqldb_makefiles:
 	$(MAKE) -C sqldb makefiles
 	$(MAKE) -C sqldb makefiles
 sqldb:
 sqldb:
 	$(MAKE) -C sqldb all
 	$(MAKE) -C sqldb all
-.PHONY: sqldb_all sqldb_debug sqldb_smart sqldb_release sqldb_examples sqldb_shared sqldb_install sqldb_sourceinstall sqldb_exampleinstall sqldb_distinstall sqldb_zipinstall sqldb_zipsourceinstall sqldb_zipexampleinstall sqldb_zipdistinstall sqldb_clean sqldb_distclean sqldb_cleanall sqldb_info sqldb_makefiles sqldb
+.PHONY: sqldb_all sqldb_debug sqldb_smart sqldb_release sqldb_units sqldb_examples sqldb_shared sqldb_install sqldb_sourceinstall sqldb_exampleinstall sqldb_distinstall sqldb_zipinstall sqldb_zipsourceinstall sqldb_zipexampleinstall sqldb_zipdistinstall sqldb_clean sqldb_distclean sqldb_cleanall sqldb_info sqldb_makefiles sqldb
 endif
 endif
 ifdef TARGET_DIRS_MYSQL
 ifdef TARGET_DIRS_MYSQL
 mysql_all:
 mysql_all:
@@ -1923,6 +1994,8 @@ mysql_smart:
 	$(MAKE) -C mysql smart
 	$(MAKE) -C mysql smart
 mysql_release:
 mysql_release:
 	$(MAKE) -C mysql release
 	$(MAKE) -C mysql release
+mysql_units:
+	$(MAKE) -C mysql units
 mysql_examples:
 mysql_examples:
 	$(MAKE) -C mysql examples
 	$(MAKE) -C mysql examples
 mysql_shared:
 mysql_shared:
@@ -1955,7 +2028,7 @@ mysql_makefiles:
 	$(MAKE) -C mysql makefiles
 	$(MAKE) -C mysql makefiles
 mysql:
 mysql:
 	$(MAKE) -C mysql all
 	$(MAKE) -C mysql all
-.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
+.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_units mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
 endif
 endif
 ifdef TARGET_DIRS_INTERBASE
 ifdef TARGET_DIRS_INTERBASE
 interbase_all:
 interbase_all:
@@ -1966,6 +2039,8 @@ interbase_smart:
 	$(MAKE) -C interbase smart
 	$(MAKE) -C interbase smart
 interbase_release:
 interbase_release:
 	$(MAKE) -C interbase release
 	$(MAKE) -C interbase release
+interbase_units:
+	$(MAKE) -C interbase units
 interbase_examples:
 interbase_examples:
 	$(MAKE) -C interbase examples
 	$(MAKE) -C interbase examples
 interbase_shared:
 interbase_shared:
@@ -1998,7 +2073,7 @@ interbase_makefiles:
 	$(MAKE) -C interbase makefiles
 	$(MAKE) -C interbase makefiles
 interbase:
 interbase:
 	$(MAKE) -C interbase all
 	$(MAKE) -C interbase all
-.PHONY: interbase_all interbase_debug interbase_smart interbase_release interbase_examples interbase_shared interbase_install interbase_sourceinstall interbase_exampleinstall interbase_distinstall interbase_zipinstall interbase_zipsourceinstall interbase_zipexampleinstall interbase_zipdistinstall interbase_clean interbase_distclean interbase_cleanall interbase_info interbase_makefiles interbase
+.PHONY: interbase_all interbase_debug interbase_smart interbase_release interbase_units interbase_examples interbase_shared interbase_install interbase_sourceinstall interbase_exampleinstall interbase_distinstall interbase_zipinstall interbase_zipsourceinstall interbase_zipexampleinstall interbase_zipdistinstall interbase_clean interbase_distclean interbase_cleanall interbase_info interbase_makefiles interbase
 endif
 endif
 ifdef TARGET_DIRS_SQLITE
 ifdef TARGET_DIRS_SQLITE
 sqlite_all:
 sqlite_all:
@@ -2009,6 +2084,8 @@ sqlite_smart:
 	$(MAKE) -C sqlite smart
 	$(MAKE) -C sqlite smart
 sqlite_release:
 sqlite_release:
 	$(MAKE) -C sqlite release
 	$(MAKE) -C sqlite release
+sqlite_units:
+	$(MAKE) -C sqlite units
 sqlite_examples:
 sqlite_examples:
 	$(MAKE) -C sqlite examples
 	$(MAKE) -C sqlite examples
 sqlite_shared:
 sqlite_shared:
@@ -2041,7 +2118,7 @@ sqlite_makefiles:
 	$(MAKE) -C sqlite makefiles
 	$(MAKE) -C sqlite makefiles
 sqlite:
 sqlite:
 	$(MAKE) -C sqlite all
 	$(MAKE) -C sqlite all
-.PHONY: sqlite_all sqlite_debug sqlite_smart sqlite_release sqlite_examples sqlite_shared sqlite_install sqlite_sourceinstall sqlite_exampleinstall sqlite_distinstall sqlite_zipinstall sqlite_zipsourceinstall sqlite_zipexampleinstall sqlite_zipdistinstall sqlite_clean sqlite_distclean sqlite_cleanall sqlite_info sqlite_makefiles sqlite
+.PHONY: sqlite_all sqlite_debug sqlite_smart sqlite_release sqlite_units sqlite_examples sqlite_shared sqlite_install sqlite_sourceinstall sqlite_exampleinstall sqlite_distinstall sqlite_zipinstall sqlite_zipsourceinstall sqlite_zipexampleinstall sqlite_zipdistinstall sqlite_clean sqlite_distclean sqlite_cleanall sqlite_info sqlite_makefiles sqlite
 endif
 endif
 ifdef TARGET_DIRS_DBASE
 ifdef TARGET_DIRS_DBASE
 dbase_all:
 dbase_all:
@@ -2052,6 +2129,8 @@ dbase_smart:
 	$(MAKE) -C dbase smart
 	$(MAKE) -C dbase smart
 dbase_release:
 dbase_release:
 	$(MAKE) -C dbase release
 	$(MAKE) -C dbase release
+dbase_units:
+	$(MAKE) -C dbase units
 dbase_examples:
 dbase_examples:
 	$(MAKE) -C dbase examples
 	$(MAKE) -C dbase examples
 dbase_shared:
 dbase_shared:
@@ -2084,7 +2163,7 @@ dbase_makefiles:
 	$(MAKE) -C dbase makefiles
 	$(MAKE) -C dbase makefiles
 dbase:
 dbase:
 	$(MAKE) -C dbase all
 	$(MAKE) -C dbase all
-.PHONY: dbase_all dbase_debug dbase_smart dbase_release dbase_examples dbase_shared dbase_install dbase_sourceinstall dbase_exampleinstall dbase_distinstall dbase_zipinstall dbase_zipsourceinstall dbase_zipexampleinstall dbase_zipdistinstall dbase_clean dbase_distclean dbase_cleanall dbase_info dbase_makefiles dbase
+.PHONY: dbase_all dbase_debug dbase_smart dbase_release dbase_units dbase_examples dbase_shared dbase_install dbase_sourceinstall dbase_exampleinstall dbase_distinstall dbase_zipinstall dbase_zipsourceinstall dbase_zipexampleinstall dbase_zipdistinstall dbase_clean dbase_distclean dbase_cleanall dbase_info dbase_makefiles dbase
 endif
 endif
 TARGET_EXAMPLEDIRS_TESTS=1
 TARGET_EXAMPLEDIRS_TESTS=1
 ifdef TARGET_EXAMPLEDIRS_TESTS
 ifdef TARGET_EXAMPLEDIRS_TESTS
@@ -2096,6 +2175,8 @@ tests_smart:
 	$(MAKE) -C tests smart
 	$(MAKE) -C tests smart
 tests_release:
 tests_release:
 	$(MAKE) -C tests release
 	$(MAKE) -C tests release
+tests_units:
+	$(MAKE) -C tests units
 tests_examples:
 tests_examples:
 	$(MAKE) -C tests examples
 	$(MAKE) -C tests examples
 tests_shared:
 tests_shared:
@@ -2128,12 +2209,13 @@ tests_makefiles:
 	$(MAKE) -C tests makefiles
 	$(MAKE) -C tests makefiles
 tests:
 tests:
 	$(MAKE) -C tests all
 	$(MAKE) -C tests all
-.PHONY: tests_all tests_debug tests_smart tests_release tests_examples tests_shared tests_install tests_sourceinstall tests_exampleinstall tests_distinstall tests_zipinstall tests_zipsourceinstall tests_zipexampleinstall tests_zipdistinstall tests_clean tests_distclean tests_cleanall tests_info tests_makefiles tests
+.PHONY: tests_all tests_debug tests_smart tests_release tests_units tests_examples tests_shared tests_install tests_sourceinstall tests_exampleinstall tests_distinstall tests_zipinstall tests_zipsourceinstall tests_zipexampleinstall tests_zipdistinstall tests_clean tests_distclean tests_cleanall tests_info tests_makefiles tests
 endif
 endif
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units $(addsuffix _units,$(TARGET_DIRS))
 examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
 examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
@@ -2149,7 +2231,7 @@ distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
fcl/db/Makefile.fpc

@@ -20,7 +20,6 @@ rsts=dbwhtml dbconst
 
 
 [compiler]
 [compiler]
 options=-S2
 options=-S2
-targetdir=../$(OS_TARGET)
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 102 - 59
fcl/db/dbase/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/17]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,22 +204,23 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
 ifneq ($(OS_TARGET),win32)
 ifneq ($(OS_TARGET),win32)
 INSTALL_UNITS+=dbf_wtil
 INSTALL_UNITS+=dbf_wtil
@@ -232,7 +239,6 @@ override INSTALL_UNITS+=dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2 -Sh
 override COMPILER_OPTIONS+=-S2 -Sh
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -272,6 +278,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -285,28 +301,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -432,21 +436,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -456,33 +459,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -490,7 +493,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -499,68 +502,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -792,6 +800,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -805,6 +827,9 @@ endif
 ifndef COPYTREE
 ifndef COPYTREE
 COPYTREE:=$(CPPROG) -Rfp
 COPYTREE:=$(CPPROG) -Rfp
 endif
 endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
 endif
 endif
@@ -1119,10 +1144,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1281,7 +1306,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1315,13 +1340,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1339,6 +1368,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1416,7 +1446,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1442,17 +1472,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1460,6 +1501,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1566,6 +1608,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1581,7 +1624,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
fcl/db/dbase/Makefile.fpc

@@ -11,7 +11,6 @@ examples_i386=testdbf
 
 
 [compiler]
 [compiler]
 options=-S2 -Sh
 options=-S2 -Sh
-targetdir=../../$(OS_TARGET)
 
 
 [default]
 [default]
 fpcdir=../../..
 fpcdir=../../..

+ 105 - 62
fcl/db/interbase/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,28 +204,28 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=interbase
 override TARGET_UNITS+=interbase
 override TARGET_EXAMPLES+=testib
 override TARGET_EXAMPLES+=testib
 override CLEAN_UNITS+=ibas40 ibase60
 override CLEAN_UNITS+=ibas40 ibase60
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -259,6 +265,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -272,28 +288,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -445,21 +449,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -469,33 +472,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -503,7 +506,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -512,68 +515,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -805,6 +813,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -816,7 +838,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1165,10 +1190,10 @@ REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1193,8 +1218,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1359,7 +1384,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1393,13 +1418,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1417,6 +1446,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1494,7 +1524,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1520,17 +1550,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1538,6 +1579,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1644,6 +1686,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1659,7 +1702,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 2
fcl/db/interbase/Makefile.fpc

@@ -16,8 +16,7 @@ units=ibas40 ibase60
 packages=ibase
 packages=ibase
 
 
 [compiler]
 [compiler]
-options=-S2 
-targetdir=../../$(OS_TARGET)
+options=-S2
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 103 - 60
fcl/db/memds/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,27 +204,27 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=memds
 override TARGET_UNITS+=memds
 override TARGET_RSTS+=memds
 override TARGET_RSTS+=memds
 override TARGET_EXAMPLES+=testpop testopen testld testcp
 override TARGET_EXAMPLES+=testpop testopen testld testcp
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -418,21 +422,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -442,33 +445,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -476,7 +479,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -485,68 +488,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -778,6 +786,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -789,7 +811,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1105,10 +1130,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1267,7 +1292,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1301,13 +1326,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1325,6 +1354,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1402,7 +1432,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1428,17 +1458,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1446,6 +1487,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1552,6 +1594,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1567,7 +1610,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 3
fcl/db/memds/Makefile.fpc

@@ -10,9 +10,6 @@ units=memds
 examples=testpop testopen testld testcp
 examples=testpop testopen testld testcp
 rsts=memds
 rsts=memds
 
 
-[compiler]
-targetdir=../../$(OS_TARGET)
-
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y
 
 

+ 129 - 62
fcl/db/mysql/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,29 +204,29 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=mysqldb4 mysqldb3
 override TARGET_UNITS+=mysqldb4 mysqldb3
 override TARGET_RSTS+=mysqldb
 override TARGET_RSTS+=mysqldb
 override TARGET_EXAMPLES+=mtest
 override TARGET_EXAMPLES+=mtest
 override CLEAN_UNITS+=mysql mysql_com mysql_version
 override CLEAN_UNITS+=mysql mysql_com mysql_version
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -260,6 +266,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -273,28 +289,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -446,21 +450,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -470,33 +473,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -504,7 +507,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -513,62 +516,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -707,6 +721,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -788,6 +814,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -799,7 +839,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1141,11 +1184,17 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1170,8 +1219,8 @@ endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1336,7 +1385,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1370,13 +1419,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1394,6 +1447,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1471,7 +1525,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1497,17 +1551,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1515,6 +1580,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1621,6 +1687,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1636,7 +1703,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 2
fcl/db/mysql/Makefile.fpc

@@ -17,8 +17,7 @@ units=mysql mysql_com mysql_version
 packages=mysql
 packages=mysql
 
 
 [compiler]
 [compiler]
-options=-S2 
-targetdir=../../$(OS_TARGET)
+options=-S2
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 145 - 63
fcl/db/odbc/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/23]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,27 +204,27 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=fpodbc
 override TARGET_UNITS+=fpodbc
 override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
 override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -444,21 +448,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -468,33 +471,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -502,7 +505,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -511,57 +514,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
+endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -700,6 +719,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -781,6 +812,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -792,7 +837,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1128,11 +1176,23 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_ODBC=1
 REQUIRE_PACKAGES_ODBC=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+ifeq ($(CPU_TARGET),powerpc)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_ODBC=1
+endif
+endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_ODBC=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1157,8 +1217,8 @@ endif
 ifdef REQUIRE_PACKAGES_ODBC
 ifdef REQUIRE_PACKAGES_ODBC
 PACKAGEDIR_ODBC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /odbc/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_ODBC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /odbc/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_ODBC),)
 ifneq ($(PACKAGEDIR_ODBC),)
-ifneq ($(wildcard $(PACKAGEDIR_ODBC)/$(OS_TARGET)),)
-UNITDIR_ODBC=$(PACKAGEDIR_ODBC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(FULL_TARGET)),)
+UNITDIR_ODBC=$(PACKAGEDIR_ODBC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_ODBC=$(PACKAGEDIR_ODBC)
 UNITDIR_ODBC=$(PACKAGEDIR_ODBC)
 endif
 endif
@@ -1323,7 +1383,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1331,7 +1391,7 @@ endif
 .PHONY: fpc_examples
 .PHONY: fpc_examples
 ifneq ($(TARGET_EXAMPLES),)
 ifneq ($(TARGET_EXAMPLES),)
 HASEXAMPLES=1
 HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
+override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
 override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
 override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
 override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
 override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
 override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
 override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
@@ -1356,19 +1416,26 @@ fpc_debug:
 	$(MAKE) all DEBUG=1
 	$(MAKE) all DEBUG=1
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
+%$(EXEEXT): %.lpr
+	$(COMPILER) $<
+	$(EXECPPAS)
 %$(EXEEXT): %.dpr
 %$(EXEEXT): %.dpr
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
@@ -1376,7 +1443,9 @@ fpc_release:
 	windres -i $< -o $@
 	windres -i $< -o $@
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1454,7 +1523,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1480,17 +1549,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1498,6 +1578,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1604,6 +1685,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1619,7 +1701,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 2
fcl/db/odbc/Makefile.fpc

@@ -18,8 +18,7 @@ units=
 packages=odbc
 packages=odbc
 
 
 [compiler]
 [compiler]
-options=-S2 
-targetdir=../../$(OS_TARGET)
+options=-S2
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 103 - 60
fcl/db/sdf/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,26 +204,26 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=sdfdata
 override TARGET_UNITS+=sdfdata
 override TARGET_EXAMPLES+=testsdf testfix
 override TARGET_EXAMPLES+=testsdf testfix
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -417,21 +421,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -441,33 +444,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -475,7 +478,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -484,68 +487,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -777,6 +785,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -788,7 +810,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1104,10 +1129,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1266,7 +1291,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1300,13 +1325,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1324,6 +1353,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1401,7 +1431,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1427,17 +1457,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1445,6 +1486,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1551,6 +1593,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1566,7 +1609,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 3
fcl/db/sdf/Makefile.fpc

@@ -9,9 +9,6 @@ main=fcl
 units=sdfdata
 units=sdfdata
 examples=testsdf testfix
 examples=testsdf testfix
 
 
-[compiler]
-targetdir=../../$(OS_TARGET)
-
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y
 
 

+ 141 - 69
fcl/db/sqldb/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,22 +204,23 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
 override TARGET_DIRS+=interbase postgres mysql
 override TARGET_DIRS+=interbase postgres mysql
 endif
 endif
@@ -236,7 +243,6 @@ override TARGET_UNITS+=sqldb
 override TARGET_RSTS+=sqldb
 override TARGET_RSTS+=sqldb
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -276,6 +282,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -289,28 +305,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -462,21 +466,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -486,33 +489,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -520,7 +523,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -529,62 +532,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -723,6 +737,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -804,6 +830,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -815,7 +855,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1176,11 +1219,16 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1205,8 +1253,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1231,8 +1279,8 @@ endif
 ifdef REQUIRE_PACKAGES_POSTGRES
 ifdef REQUIRE_PACKAGES_POSTGRES
 PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_POSTGRES),)
 ifneq ($(PACKAGEDIR_POSTGRES),)
-ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/$(OS_TARGET)),)
-UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
 UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
 endif
 endif
@@ -1257,8 +1305,8 @@ endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1423,7 +1471,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1439,13 +1487,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1463,6 +1515,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1540,7 +1593,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1566,17 +1619,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1584,6 +1648,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1725,6 +1790,8 @@ interbase_smart:
 	$(MAKE) -C interbase smart
 	$(MAKE) -C interbase smart
 interbase_release:
 interbase_release:
 	$(MAKE) -C interbase release
 	$(MAKE) -C interbase release
+interbase_units:
+	$(MAKE) -C interbase units
 interbase_examples:
 interbase_examples:
 	$(MAKE) -C interbase examples
 	$(MAKE) -C interbase examples
 interbase_shared:
 interbase_shared:
@@ -1757,7 +1824,7 @@ interbase_makefiles:
 	$(MAKE) -C interbase makefiles
 	$(MAKE) -C interbase makefiles
 interbase:
 interbase:
 	$(MAKE) -C interbase all
 	$(MAKE) -C interbase all
-.PHONY: interbase_all interbase_debug interbase_smart interbase_release interbase_examples interbase_shared interbase_install interbase_sourceinstall interbase_exampleinstall interbase_distinstall interbase_zipinstall interbase_zipsourceinstall interbase_zipexampleinstall interbase_zipdistinstall interbase_clean interbase_distclean interbase_cleanall interbase_info interbase_makefiles interbase
+.PHONY: interbase_all interbase_debug interbase_smart interbase_release interbase_units interbase_examples interbase_shared interbase_install interbase_sourceinstall interbase_exampleinstall interbase_distinstall interbase_zipinstall interbase_zipsourceinstall interbase_zipexampleinstall interbase_zipdistinstall interbase_clean interbase_distclean interbase_cleanall interbase_info interbase_makefiles interbase
 endif
 endif
 ifdef TARGET_DIRS_POSTGRES
 ifdef TARGET_DIRS_POSTGRES
 postgres_all:
 postgres_all:
@@ -1768,6 +1835,8 @@ postgres_smart:
 	$(MAKE) -C postgres smart
 	$(MAKE) -C postgres smart
 postgres_release:
 postgres_release:
 	$(MAKE) -C postgres release
 	$(MAKE) -C postgres release
+postgres_units:
+	$(MAKE) -C postgres units
 postgres_examples:
 postgres_examples:
 	$(MAKE) -C postgres examples
 	$(MAKE) -C postgres examples
 postgres_shared:
 postgres_shared:
@@ -1800,7 +1869,7 @@ postgres_makefiles:
 	$(MAKE) -C postgres makefiles
 	$(MAKE) -C postgres makefiles
 postgres:
 postgres:
 	$(MAKE) -C postgres all
 	$(MAKE) -C postgres all
-.PHONY: postgres_all postgres_debug postgres_smart postgres_release postgres_examples postgres_shared postgres_install postgres_sourceinstall postgres_exampleinstall postgres_distinstall postgres_zipinstall postgres_zipsourceinstall postgres_zipexampleinstall postgres_zipdistinstall postgres_clean postgres_distclean postgres_cleanall postgres_info postgres_makefiles postgres
+.PHONY: postgres_all postgres_debug postgres_smart postgres_release postgres_units postgres_examples postgres_shared postgres_install postgres_sourceinstall postgres_exampleinstall postgres_distinstall postgres_zipinstall postgres_zipsourceinstall postgres_zipexampleinstall postgres_zipdistinstall postgres_clean postgres_distclean postgres_cleanall postgres_info postgres_makefiles postgres
 endif
 endif
 ifdef TARGET_DIRS_MYSQL
 ifdef TARGET_DIRS_MYSQL
 mysql_all:
 mysql_all:
@@ -1811,6 +1880,8 @@ mysql_smart:
 	$(MAKE) -C mysql smart
 	$(MAKE) -C mysql smart
 mysql_release:
 mysql_release:
 	$(MAKE) -C mysql release
 	$(MAKE) -C mysql release
+mysql_units:
+	$(MAKE) -C mysql units
 mysql_examples:
 mysql_examples:
 	$(MAKE) -C mysql examples
 	$(MAKE) -C mysql examples
 mysql_shared:
 mysql_shared:
@@ -1843,12 +1914,13 @@ mysql_makefiles:
 	$(MAKE) -C mysql makefiles
 	$(MAKE) -C mysql makefiles
 mysql:
 mysql:
 	$(MAKE) -C mysql all
 	$(MAKE) -C mysql all
-.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
+.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_units mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
 endif
 endif
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
@@ -1864,7 +1936,7 @@ distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 3
fcl/db/sqldb/Makefile.fpc

@@ -15,10 +15,8 @@ dirs_win32=interbase postgres mysql
 units=sqldb
 units=sqldb
 rsts=sqldb
 rsts=sqldb
 
 
-
 [compiler]
 [compiler]
-options=-S2 
-targetdir=../../$(OS_TARGET)
+options=-S2
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 104 - 61
fcl/db/sqldb/interbase/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/27]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,26 +204,26 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=ibconnection
 override TARGET_UNITS+=ibconnection
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,68 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -803,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -816,6 +838,9 @@ endif
 ifndef COPYTREE
 ifndef COPYTREE
 COPYTREE:=$(CPPROG) -Rfp
 COPYTREE:=$(CPPROG) -Rfp
 endif
 endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
 endif
 endif
@@ -1163,10 +1188,10 @@ REQUIRE_PACKAGES_IBASE=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1191,8 +1216,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1357,7 +1382,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1373,13 +1398,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1397,6 +1426,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1474,7 +1504,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1500,17 +1530,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1518,6 +1559,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1624,6 +1666,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1639,7 +1682,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 2
fcl/db/sqldb/interbase/Makefile.fpc

@@ -12,8 +12,7 @@ units=ibconnection
 packages=ibase
 packages=ibase
 
 
 [compiler]
 [compiler]
-options=-S2 
-targetdir=../../../$(OS_TARGET)
+options=-S2
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 129 - 62
fcl/db/sqldb/mysql/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,26 +204,26 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=mysql4conn
 override TARGET_UNITS+=mysql4conn
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,62 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -704,6 +718,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -785,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -796,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1138,11 +1181,17 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1167,8 +1216,8 @@ endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1333,7 +1382,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1349,13 +1398,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1373,6 +1426,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1450,7 +1504,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1476,17 +1530,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1494,6 +1559,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1600,6 +1666,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1615,7 +1682,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 2
fcl/db/sqldb/mysql/Makefile.fpc

@@ -12,8 +12,7 @@ units=mysql4conn
 packages=mysql
 packages=mysql
 
 
 [compiler]
 [compiler]
-options=-S2 
-targetdir=../../../$(OS_TARGET)
+options=-S2
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 104 - 61
fcl/db/sqldb/postgres/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/27]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,27 +204,27 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=pqconnection
 override TARGET_UNITS+=pqconnection
 override TARGET_RSTS+=pqconnection
 override TARGET_RSTS+=pqconnection
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -444,21 +448,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -468,33 +471,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -502,7 +505,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -511,68 +514,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -804,6 +812,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -817,6 +839,9 @@ endif
 ifndef COPYTREE
 ifndef COPYTREE
 COPYTREE:=$(CPPROG) -Rfp
 COPYTREE:=$(CPPROG) -Rfp
 endif
 endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
+endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
 endif
 endif
@@ -1164,10 +1189,10 @@ REQUIRE_PACKAGES_POSTGRES=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1192,8 +1217,8 @@ endif
 ifdef REQUIRE_PACKAGES_POSTGRES
 ifdef REQUIRE_PACKAGES_POSTGRES
 PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_POSTGRES),)
 ifneq ($(PACKAGEDIR_POSTGRES),)
-ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/$(OS_TARGET)),)
-UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
 UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
 endif
 endif
@@ -1358,7 +1383,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1374,13 +1399,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1398,6 +1427,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1475,7 +1505,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1501,17 +1531,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1519,6 +1560,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1625,6 +1667,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1640,7 +1683,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 2
fcl/db/sqldb/postgres/Makefile.fpc

@@ -13,8 +13,7 @@ units=pqconnection
 packages=postgres
 packages=postgres
 
 
 [compiler]
 [compiler]
-options=-S2 
-targetdir=../../../$(OS_TARGET)
+options=-S2
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 134 - 63
fcl/db/sqlite/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/12]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,25 +204,25 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=sqliteds
 override TARGET_UNITS+=sqliteds
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
-override COMPILER_TARGETDIR+=../../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -256,6 +262,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -269,28 +285,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -416,21 +420,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -440,33 +443,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -474,7 +477,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -483,62 +486,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -677,6 +691,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -758,6 +784,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -769,7 +809,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1111,11 +1154,17 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1140,8 +1189,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1300,7 +1349,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1315,19 +1364,26 @@ fpc_debug:
 	$(MAKE) all DEBUG=1
 	$(MAKE) all DEBUG=1
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
+%$(EXEEXT): %.lpr
+	$(COMPILER) $<
+	$(EXECPPAS)
 %$(EXEEXT): %.dpr
 %$(EXEEXT): %.dpr
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
@@ -1335,7 +1391,9 @@ fpc_release:
 	windres -i $< -o $@
 	windres -i $< -o $@
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1413,7 +1471,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1439,17 +1497,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1457,6 +1526,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1563,6 +1633,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1578,7 +1649,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 3
fcl/db/sqlite/Makefile.fpc

@@ -11,9 +11,6 @@ units=sqliteds
 [require]
 [require]
 packages=sqlite
 packages=sqlite
 
 
-[compiler]
-targetdir=../../$(OS_TARGET)
-
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y
 
 

+ 165 - 93
fcl/db/tests/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -441,21 +445,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -465,33 +468,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -499,7 +502,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -508,68 +511,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -801,6 +809,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -812,7 +834,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -972,6 +997,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -986,6 +1012,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1000,6 +1027,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1014,6 +1042,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1028,6 +1057,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1042,6 +1072,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1052,7 +1083,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1065,6 +1095,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
@@ -1076,7 +1107,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1091,6 +1121,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1105,6 +1136,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1119,6 +1151,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1129,7 +1162,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1143,6 +1175,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1156,6 +1189,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1169,6 +1203,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1182,6 +1217,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1192,7 +1228,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1203,7 +1238,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1214,7 +1248,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1225,7 +1258,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1236,7 +1268,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1247,7 +1278,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1261,6 +1291,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1274,6 +1305,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1284,7 +1316,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1295,7 +1326,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1306,7 +1336,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1321,6 +1350,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1331,7 +1361,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1342,7 +1371,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1353,7 +1381,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1364,16 +1391,15 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1398,8 +1424,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1424,8 +1450,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1450,8 +1476,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1476,8 +1502,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1502,8 +1528,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
 endif
@@ -1528,8 +1554,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1554,8 +1580,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1577,11 +1603,37 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1606,8 +1658,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1765,6 +1817,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1778,7 +1831,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1794,13 +1848,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1818,6 +1876,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1895,7 +1954,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1921,17 +1980,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1939,6 +2009,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2045,6 +2116,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -2060,7 +2132,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 107 - 64
fcl/image/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,22 +204,23 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 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
 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
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
 override TARGET_UNITS+=freetypeh freetype ftfont
 override TARGET_UNITS+=freetypeh freetype ftfont
@@ -227,7 +234,6 @@ endif
 override TARGET_RSTS+=pscanvas
 override TARGET_RSTS+=pscanvas
 override TARGET_EXAMPLES+=imgconv
 override TARGET_EXAMPLES+=imgconv
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
-override COMPILER_TARGETDIR+=../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -267,6 +273,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -280,28 +296,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -427,21 +431,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -451,33 +454,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -485,7 +488,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -494,68 +497,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -787,6 +795,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -798,7 +820,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1180,10 +1205,10 @@ REQUIRE_PACKAGES_PASJPEG=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1208,8 +1233,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1234,8 +1259,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1394,7 +1419,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1428,13 +1453,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1452,6 +1481,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1529,7 +1559,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1555,17 +1585,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1573,6 +1614,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1679,6 +1721,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1694,7 +1737,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 3
fcl/image/Makefile.fpc

@@ -19,9 +19,6 @@ units_freebsd=freetypeh freetype ftfont
 rsts=pscanvas
 rsts=pscanvas
 examples=imgconv
 examples=imgconv
 
 
-[compiler]
-targetdir=../$(OS_TARGET)
-
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y
 
 

+ 113 - 66
fcl/net/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,22 +204,23 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
 override TARGET_PROGRAMS+=mkxmlrpc
 override TARGET_PROGRAMS+=mkxmlrpc
 endif
 endif
@@ -274,7 +281,6 @@ override TARGET_EXAMPLEDIRS+=tests
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2h
 override COMPILER_OPTIONS+=-S2h
-override COMPILER_TARGETDIR+=../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -314,6 +320,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -327,28 +343,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -474,21 +478,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -498,33 +501,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -532,7 +535,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -541,68 +544,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -834,6 +842,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -845,7 +867,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1227,10 +1252,10 @@ REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1255,8 +1280,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1281,8 +1306,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1441,8 +1466,9 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1456,7 +1482,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1490,13 +1517,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1514,6 +1545,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1591,7 +1623,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1617,17 +1649,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1635,6 +1678,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1761,6 +1805,8 @@ tests_smart:
 	$(MAKE) -C tests smart
 	$(MAKE) -C tests smart
 tests_release:
 tests_release:
 	$(MAKE) -C tests release
 	$(MAKE) -C tests release
+tests_units:
+	$(MAKE) -C tests units
 tests_examples:
 tests_examples:
 	$(MAKE) -C tests examples
 	$(MAKE) -C tests examples
 tests_shared:
 tests_shared:
@@ -1793,12 +1839,13 @@ tests_makefiles:
 	$(MAKE) -C tests makefiles
 	$(MAKE) -C tests makefiles
 tests:
 tests:
 	$(MAKE) -C tests all
 	$(MAKE) -C tests all
-.PHONY: tests_all tests_debug tests_smart tests_release tests_examples tests_shared tests_install tests_sourceinstall tests_exampleinstall tests_distinstall tests_zipinstall tests_zipsourceinstall tests_zipexampleinstall tests_zipdistinstall tests_clean tests_distclean tests_cleanall tests_info tests_makefiles tests
+.PHONY: tests_all tests_debug tests_smart tests_release tests_units tests_examples tests_shared tests_install tests_sourceinstall tests_exampleinstall tests_distinstall tests_zipinstall tests_zipsourceinstall tests_zipexampleinstall tests_zipdistinstall tests_clean tests_distclean tests_cleanall tests_info tests_makefiles tests
 endif
 endif
 all: fpc_all
 all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1814,7 +1861,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
fcl/net/Makefile.fpc

@@ -32,7 +32,6 @@ packages=netdb libasync
 
 
 [compiler]
 [compiler]
 options=-S2h
 options=-S2h
-targetdir=../$(OS_TARGET)
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 166 - 94
fcl/net/tests/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -256,6 +262,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -269,28 +285,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -442,21 +446,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -466,33 +469,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -500,7 +503,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -509,68 +512,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -802,6 +810,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -813,7 +835,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -973,6 +998,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -987,6 +1013,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1001,6 +1028,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1015,6 +1043,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1029,6 +1058,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1043,6 +1073,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1053,7 +1084,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1066,6 +1096,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
@@ -1077,7 +1108,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1092,6 +1122,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1106,6 +1137,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1120,6 +1152,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1130,7 +1163,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1144,6 +1176,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1157,6 +1190,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1170,6 +1204,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1183,6 +1218,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1193,7 +1229,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1204,7 +1239,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1215,7 +1249,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1226,7 +1259,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1237,7 +1269,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1248,7 +1279,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1262,6 +1292,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1275,6 +1306,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1285,7 +1317,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1296,7 +1327,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1307,7 +1337,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1322,6 +1351,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1332,7 +1362,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1343,7 +1372,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1354,7 +1382,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1365,16 +1392,15 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1399,8 +1425,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1425,8 +1451,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1451,8 +1477,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1477,8 +1503,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1503,8 +1529,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
 endif
@@ -1529,8 +1555,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1555,8 +1581,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1578,11 +1604,37 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1607,8 +1659,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1773,8 +1825,9 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1788,7 +1841,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1804,13 +1858,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1828,6 +1886,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1905,7 +1964,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1931,17 +1990,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1949,6 +2019,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2055,6 +2126,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -2070,7 +2142,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 103 - 60
fcl/passrc/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,27 +204,27 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=pastree pscanner pparser paswrite
 override TARGET_UNITS+=pastree pscanner pparser paswrite
 override TARGET_RSTS+=pscanner pparser pastree
 override TARGET_RSTS+=pscanner pparser pastree
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2h
 override COMPILER_OPTIONS+=-S2h
-override COMPILER_TARGETDIR+=../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -418,21 +422,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -442,33 +445,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -476,7 +479,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -485,68 +488,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -778,6 +786,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -789,7 +811,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1105,10 +1130,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1267,7 +1292,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1283,13 +1308,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1307,6 +1336,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1384,7 +1414,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1410,17 +1440,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1428,6 +1469,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1534,6 +1576,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1549,7 +1592,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
fcl/passrc/Makefile.fpc

@@ -11,7 +11,6 @@ rsts=pscanner pparser pastree
 
 
 [compiler]
 [compiler]
 options=-S2h
 options=-S2h
-targetdir=../$(OS_TARGET)
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 106 - 61
fcl/shedit/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,27 +204,27 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=doc_text shedit sh_xml sh_pas
 override TARGET_UNITS+=doc_text shedit sh_xml sh_pas
 override TARGET_EXAMPLEDIRS+=gtk
 override TARGET_EXAMPLEDIRS+=gtk
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2
 override COMPILER_OPTIONS+=-S2
-override COMPILER_TARGETDIR+=../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -418,21 +422,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -442,33 +445,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -476,7 +479,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -485,68 +488,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -778,6 +786,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -789,7 +811,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1105,10 +1130,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1267,7 +1292,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1301,13 +1326,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1325,6 +1354,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1402,7 +1432,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1428,17 +1458,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1446,6 +1487,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1558,6 +1600,8 @@ gtk_smart:
 	$(MAKE) -C gtk smart
 	$(MAKE) -C gtk smart
 gtk_release:
 gtk_release:
 	$(MAKE) -C gtk release
 	$(MAKE) -C gtk release
+gtk_units:
+	$(MAKE) -C gtk units
 gtk_examples:
 gtk_examples:
 	$(MAKE) -C gtk examples
 	$(MAKE) -C gtk examples
 gtk_shared:
 gtk_shared:
@@ -1590,12 +1634,13 @@ gtk_makefiles:
 	$(MAKE) -C gtk makefiles
 	$(MAKE) -C gtk makefiles
 gtk:
 gtk:
 	$(MAKE) -C gtk all
 	$(MAKE) -C gtk all
-.PHONY: gtk_all gtk_debug gtk_smart gtk_release gtk_examples gtk_shared gtk_install gtk_sourceinstall gtk_exampleinstall gtk_distinstall gtk_zipinstall gtk_zipsourceinstall gtk_zipexampleinstall gtk_zipdistinstall gtk_clean gtk_distclean gtk_cleanall gtk_info gtk_makefiles gtk
+.PHONY: gtk_all gtk_debug gtk_smart gtk_release gtk_units gtk_examples gtk_shared gtk_install gtk_sourceinstall gtk_exampleinstall gtk_distinstall gtk_zipinstall gtk_zipsourceinstall gtk_zipexampleinstall gtk_zipdistinstall gtk_clean gtk_distclean gtk_cleanall gtk_info gtk_makefiles gtk
 endif
 endif
 all: fpc_all
 all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1611,7 +1656,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
fcl/shedit/Makefile.fpc

@@ -11,7 +11,6 @@ exampledirs=gtk
 
 
 [compiler]
 [compiler]
 options=-S2
 options=-S2
-targetdir=../$(OS_TARGET)
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 172 - 100
fcl/shedit/gtk/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -441,21 +445,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -465,33 +468,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -499,7 +502,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -508,68 +511,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -801,6 +809,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -812,7 +834,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -973,6 +998,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -990,6 +1016,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1007,6 +1034,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1024,6 +1052,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1041,6 +1070,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1058,6 +1088,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1071,7 +1102,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1086,6 +1116,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
@@ -1099,7 +1130,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1116,6 +1146,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1133,6 +1164,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1150,6 +1182,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1163,7 +1196,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1179,6 +1211,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1195,6 +1228,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1211,6 +1245,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1227,6 +1262,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1240,7 +1276,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1253,7 +1288,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1266,7 +1300,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1279,7 +1312,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1292,7 +1324,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1305,7 +1336,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1321,6 +1351,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1337,6 +1368,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1350,7 +1382,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1363,7 +1394,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1376,7 +1406,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1393,6 +1422,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1405,7 +1435,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1418,7 +1447,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1431,7 +1459,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1444,17 +1471,16 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1479,8 +1505,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1505,8 +1531,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1531,8 +1557,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1557,8 +1583,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1583,8 +1609,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
 endif
@@ -1609,8 +1635,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1635,8 +1661,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1661,8 +1687,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1684,11 +1710,37 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1713,8 +1765,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1739,8 +1791,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1765,8 +1817,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1931,8 +1983,9 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1946,7 +1999,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1962,13 +2016,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1986,6 +2044,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -2063,7 +2122,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -2089,17 +2148,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -2107,6 +2177,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2213,6 +2284,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -2228,7 +2300,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 165 - 93
fcl/tests/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -261,6 +267,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -274,28 +290,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -447,21 +451,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -471,33 +474,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -505,7 +508,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -514,68 +517,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -807,6 +815,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -818,7 +840,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -978,6 +1003,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -992,6 +1018,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1006,6 +1033,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1020,6 +1048,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1034,6 +1063,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1048,6 +1078,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1058,7 +1089,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1071,6 +1101,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
@@ -1082,7 +1113,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1097,6 +1127,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1111,6 +1142,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1125,6 +1157,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1135,7 +1168,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1149,6 +1181,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1162,6 +1195,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1175,6 +1209,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1188,6 +1223,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1198,7 +1234,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1209,7 +1244,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1220,7 +1254,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1231,7 +1264,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1242,7 +1274,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1253,7 +1284,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1267,6 +1297,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1280,6 +1311,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1290,7 +1322,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1301,7 +1332,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1312,7 +1342,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1327,6 +1356,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1337,7 +1367,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1348,7 +1377,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1359,7 +1387,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1370,16 +1397,15 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1404,8 +1430,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1430,8 +1456,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1456,8 +1482,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1482,8 +1508,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1508,8 +1534,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
 endif
@@ -1534,8 +1560,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1560,8 +1586,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1583,11 +1609,37 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1612,8 +1664,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1771,6 +1823,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1784,7 +1837,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1800,13 +1854,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1824,6 +1882,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1901,7 +1960,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1927,17 +1986,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1945,6 +2015,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2051,6 +2122,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -2066,7 +2138,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 103 - 60
fcl/xml/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,27 +204,27 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fcl
 override PACKAGE_NAME=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=sax dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmldefs htmwrite xpath
 override TARGET_UNITS+=sax dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmldefs htmwrite xpath
 override TARGET_RSTS+=sax xpath
 override TARGET_RSTS+=sax xpath
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-S2h
 override COMPILER_OPTIONS+=-S2h
-override COMPILER_TARGETDIR+=../$(OS_TARGET)
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -418,21 +422,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -442,33 +445,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -476,7 +479,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -485,68 +488,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -778,6 +786,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -789,7 +811,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1105,10 +1130,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1267,7 +1292,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1283,13 +1308,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1307,6 +1336,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1384,7 +1414,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1410,17 +1440,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1428,6 +1469,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1534,6 +1576,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1549,7 +1592,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
fcl/xml/Makefile.fpc

@@ -11,7 +11,6 @@ rsts=sax xpath
 
 
 [compiler]
 [compiler]
 options=-S2h
 options=-S2h
-targetdir=../$(OS_TARGET)
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 117 - 70
ide/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -225,7 +231,7 @@ ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 override FPCOPT+=-dUNIX
 override FPCOPT+=-dUNIX
 endif
 endif
 endif
 endif
-ifeq ($(wildcard compiler/finput.*),)
+ifeq ($(wildcard units/$(FULL_TARGET)/finput.*),)
 override FPCOPT+=-dCOMPILER_1_0
 override FPCOPT+=-dCOMPILER_1_0
 endif
 endif
 ifndef GDBINT
 ifndef GDBINT
@@ -266,8 +272,6 @@ override TARGET_PROGRAMS+=fp
 override INSTALL_DATADIR=$(INSTALL_BASEDIR)/ide
 override INSTALL_DATADIR=$(INSTALL_BASEDIR)/ide
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-Sg
 override COMPILER_OPTIONS+=-Sg
-override COMPILER_UNITDIR+=compiler
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -307,6 +311,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -320,28 +334,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -493,21 +495,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -517,33 +518,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -551,7 +552,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -560,68 +561,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -853,6 +859,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -864,7 +884,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1279,10 +1302,10 @@ REQUIRE_PACKAGES_REGEXPR=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1307,8 +1330,8 @@ endif
 ifdef REQUIRE_PACKAGES_FV
 ifdef REQUIRE_PACKAGES_FV
 PACKAGEDIR_FV:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fv/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FV:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fv/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FV),)
 ifneq ($(PACKAGEDIR_FV),)
-ifneq ($(wildcard $(PACKAGEDIR_FV)/$(OS_TARGET)),)
-UNITDIR_FV=$(PACKAGEDIR_FV)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FV)/units/$(FULL_TARGET)),)
+UNITDIR_FV=$(PACKAGEDIR_FV)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FV=$(PACKAGEDIR_FV)
 UNITDIR_FV=$(PACKAGEDIR_FV)
 endif
 endif
@@ -1333,8 +1356,8 @@ endif
 ifdef REQUIRE_PACKAGES_GDBINT
 ifdef REQUIRE_PACKAGES_GDBINT
 PACKAGEDIR_GDBINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gdbint/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GDBINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gdbint/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GDBINT),)
 ifneq ($(PACKAGEDIR_GDBINT),)
-ifneq ($(wildcard $(PACKAGEDIR_GDBINT)/$(OS_TARGET)),)
-UNITDIR_GDBINT=$(PACKAGEDIR_GDBINT)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GDBINT)/units/$(FULL_TARGET)),)
+UNITDIR_GDBINT=$(PACKAGEDIR_GDBINT)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GDBINT=$(PACKAGEDIR_GDBINT)
 UNITDIR_GDBINT=$(PACKAGEDIR_GDBINT)
 endif
 endif
@@ -1359,8 +1382,8 @@ endif
 ifdef REQUIRE_PACKAGES_REGEXPR
 ifdef REQUIRE_PACKAGES_REGEXPR
 PACKAGEDIR_REGEXPR:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /regexpr/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_REGEXPR:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /regexpr/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_REGEXPR),)
 ifneq ($(PACKAGEDIR_REGEXPR),)
-ifneq ($(wildcard $(PACKAGEDIR_REGEXPR)/$(OS_TARGET)),)
-UNITDIR_REGEXPR=$(PACKAGEDIR_REGEXPR)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_REGEXPR)/units/$(FULL_TARGET)),)
+UNITDIR_REGEXPR=$(PACKAGEDIR_REGEXPR)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_REGEXPR=$(PACKAGEDIR_REGEXPR)
 UNITDIR_REGEXPR=$(PACKAGEDIR_REGEXPR)
 endif
 endif
@@ -1518,6 +1541,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1531,7 +1555,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1547,13 +1572,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1571,6 +1600,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1727,7 +1757,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1753,17 +1783,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1771,6 +1812,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1884,6 +1926,8 @@ compiler_smart:
 	$(MAKE) -C compiler smart
 	$(MAKE) -C compiler smart
 compiler_release:
 compiler_release:
 	$(MAKE) -C compiler release
 	$(MAKE) -C compiler release
+compiler_units:
+	$(MAKE) -C compiler units
 compiler_examples:
 compiler_examples:
 	$(MAKE) -C compiler examples
 	$(MAKE) -C compiler examples
 compiler_shared:
 compiler_shared:
@@ -1916,7 +1960,7 @@ compiler_makefiles:
 	$(MAKE) -C compiler makefiles
 	$(MAKE) -C compiler makefiles
 compiler:
 compiler:
 	$(MAKE) -C compiler all
 	$(MAKE) -C compiler all
-.PHONY: compiler_all compiler_debug compiler_smart compiler_release compiler_examples compiler_shared compiler_install compiler_sourceinstall compiler_exampleinstall compiler_distinstall compiler_zipinstall compiler_zipsourceinstall compiler_zipexampleinstall compiler_zipdistinstall compiler_clean compiler_distclean compiler_cleanall compiler_info compiler_makefiles compiler
+.PHONY: compiler_all compiler_debug compiler_smart compiler_release compiler_units compiler_examples compiler_shared compiler_install compiler_sourceinstall compiler_exampleinstall compiler_distinstall compiler_zipinstall compiler_zipsourceinstall compiler_zipexampleinstall compiler_zipdistinstall compiler_clean compiler_distclean compiler_cleanall compiler_info compiler_makefiles compiler
 endif
 endif
 ifdef TARGET_DIRS_FAKEGDB
 ifdef TARGET_DIRS_FAKEGDB
 fakegdb_all:
 fakegdb_all:
@@ -1927,6 +1971,8 @@ fakegdb_smart:
 	$(MAKE) -C fakegdb smart
 	$(MAKE) -C fakegdb smart
 fakegdb_release:
 fakegdb_release:
 	$(MAKE) -C fakegdb release
 	$(MAKE) -C fakegdb release
+fakegdb_units:
+	$(MAKE) -C fakegdb units
 fakegdb_examples:
 fakegdb_examples:
 	$(MAKE) -C fakegdb examples
 	$(MAKE) -C fakegdb examples
 fakegdb_shared:
 fakegdb_shared:
@@ -1959,11 +2005,12 @@ fakegdb_makefiles:
 	$(MAKE) -C fakegdb makefiles
 	$(MAKE) -C fakegdb makefiles
 fakegdb:
 fakegdb:
 	$(MAKE) -C fakegdb all
 	$(MAKE) -C fakegdb all
-.PHONY: fakegdb_all fakegdb_debug fakegdb_smart fakegdb_release fakegdb_examples fakegdb_shared fakegdb_install fakegdb_sourceinstall fakegdb_exampleinstall fakegdb_distinstall fakegdb_zipinstall fakegdb_zipsourceinstall fakegdb_zipexampleinstall fakegdb_zipdistinstall fakegdb_clean fakegdb_distclean fakegdb_cleanall fakegdb_info fakegdb_makefiles fakegdb
+.PHONY: fakegdb_all fakegdb_debug fakegdb_smart fakegdb_release fakegdb_units fakegdb_examples fakegdb_shared fakegdb_install fakegdb_sourceinstall fakegdb_exampleinstall fakegdb_distinstall fakegdb_zipinstall fakegdb_zipsourceinstall fakegdb_zipexampleinstall fakegdb_zipdistinstall fakegdb_clean fakegdb_distclean fakegdb_cleanall fakegdb_info fakegdb_makefiles fakegdb
 endif
 endif
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 sourceinstall: fpc_sourceinstall
 sourceinstall: fpc_sourceinstall
@@ -1976,7 +2023,7 @@ zipdistinstall: fpc_zipdistinstall
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: debug smart release examples shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
+.PHONY: debug smart release units examples shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 9 - 4
ide/Makefile.fpc

@@ -19,8 +19,6 @@ fpcpackage=y
 
 
 [compiler]
 [compiler]
 options=-Sg
 options=-Sg
-targetdir=.
-unitdir=compiler
 
 
 [require]
 [require]
 packages=fv gdbint regexpr
 packages=fv gdbint regexpr
@@ -54,7 +52,7 @@ endif
 # To detect 1.0.x compilers we look for finput.ppu. If this unit
 # To detect 1.0.x compilers we look for finput.ppu. If this unit
 # is not found then we include 1.0.x compiler
 # is not found then we include 1.0.x compiler
 #
 #
-ifeq ($(wildcard compiler/finput.*),)
+ifeq ($(wildcard units/$(FULL_TARGET)/finput.*),)
 override FPCOPT+=-dCOMPILER_1_0
 override FPCOPT+=-dCOMPILER_1_0
 endif
 endif
 
 
@@ -227,7 +225,14 @@ clean_compiler:
 
 
 #
 #
 # $Log$
 # $Log$
-# Revision 1.21  2004-05-30 09:15:35  florian
+# Revision 1.22  2004-10-30 12:36:43  peter
+#   * units are now created in separate directory units/cpu-os/
+#   * distclean uses cleanall rule and removes units dir
+#   * cross compile support fixed, it is now possible to cycle a ppcsparc
+#     without deleting ppc386
+#   * bintutilsperfix defaults to cpu-os-
+#
+# Revision 1.21  2004/05/30 09:15:35  florian
 #   * first part of version number update
 #   * first part of version number update
 #
 #
 # Revision 1.20  2004/04/12 18:16:15  florian
 # Revision 1.20  2004/04/12 18:16:15  florian

+ 104 - 60
ide/compiler/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,21 +204,23 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+override PACKAGE_NAME=ide
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ide/Makefile.fpc,$(PACKAGESDIR))))))
 COMPILERDIR=$(FPCDIR)/compiler
 COMPILERDIR=$(FPCDIR)/compiler
 ifneq ($(findstring 1.0.2,$(FPC_VERSION)),)
 ifneq ($(findstring 1.0.2,$(FPC_VERSION)),)
 override FPCOPT+=-Ca
 override FPCOPT+=-Ca
@@ -232,7 +240,6 @@ override INSTALL_FPCPACKAGE=y
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -272,6 +279,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -285,28 +302,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -432,21 +437,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -456,33 +460,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -490,7 +494,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -499,68 +503,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -792,6 +801,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -803,7 +826,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1119,10 +1145,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1281,7 +1307,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1297,13 +1323,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1321,6 +1351,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1398,7 +1429,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1424,17 +1455,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1442,6 +1484,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1547,6 +1590,7 @@ fpc_makefiles: fpc_makefile fpc_makefile_dirs
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 sourceinstall: fpc_sourceinstall
 sourceinstall: fpc_sourceinstall
@@ -1560,7 +1604,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: debug smart release examples shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
+.PHONY: debug smart release units examples shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 3 - 1
ide/compiler/Makefile.fpc

@@ -2,12 +2,14 @@
 #   Makefile.fpc for Compiler units for IDE inclusion
 #   Makefile.fpc for Compiler units for IDE inclusion
 #
 #
 
 
+[package]
+main=ide
+
 [target]
 [target]
 units=compunit
 units=compunit
 
 
 [compiler]
 [compiler]
 options=-Ur -dNOCATCH
 options=-Ur -dNOCATCH
-targetdir=.
 unitdir=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 unitdir=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 includedir=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET)
 includedir=$(COMPILERDIR) $(COMPILERDIR)/$(CPU_TARGET)
 
 

+ 104 - 59
ide/fakegdb/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,21 +204,23 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+override PACKAGE_NAME=ide
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ide/Makefile.fpc,$(PACKAGESDIR))))))
 override TARGET_UNITS+=gdbcon gdbint
 override TARGET_UNITS+=gdbcon gdbint
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
@@ -254,6 +262,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -267,28 +285,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -414,21 +420,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -438,33 +443,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -472,7 +477,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -481,68 +486,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -774,6 +784,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -785,7 +809,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1101,10 +1128,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1263,7 +1290,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1279,13 +1306,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1303,6 +1334,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1380,7 +1412,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1406,17 +1438,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1424,6 +1467,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1530,6 +1574,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1545,7 +1590,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 3 - 0
ide/fakegdb/Makefile.fpc

@@ -2,6 +2,9 @@
 #   Makefile.fpc for Fake GDB
 #   Makefile.fpc for Fake GDB
 #
 #
 
 
+[package]
+main=ide
+
 [target]
 [target]
 units=gdbcon gdbint
 units=gdbcon gdbint
 
 

+ 108 - 63
installer/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -272,6 +278,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -285,28 +301,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -432,21 +436,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -456,33 +459,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -490,7 +493,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -499,68 +502,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -792,6 +800,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -803,7 +825,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1185,10 +1210,10 @@ REQUIRE_PACKAGES_UNZIP=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1213,8 +1238,8 @@ endif
 ifdef REQUIRE_PACKAGES_FV
 ifdef REQUIRE_PACKAGES_FV
 PACKAGEDIR_FV:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fv/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FV:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fv/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FV),)
 ifneq ($(PACKAGEDIR_FV),)
-ifneq ($(wildcard $(PACKAGEDIR_FV)/$(OS_TARGET)),)
-UNITDIR_FV=$(PACKAGEDIR_FV)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FV)/units/$(FULL_TARGET)),)
+UNITDIR_FV=$(PACKAGEDIR_FV)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FV=$(PACKAGEDIR_FV)
 UNITDIR_FV=$(PACKAGEDIR_FV)
 endif
 endif
@@ -1239,8 +1264,8 @@ endif
 ifdef REQUIRE_PACKAGES_UNZIP
 ifdef REQUIRE_PACKAGES_UNZIP
 PACKAGEDIR_UNZIP:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /unzip/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_UNZIP:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /unzip/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_UNZIP),)
 ifneq ($(PACKAGEDIR_UNZIP),)
-ifneq ($(wildcard $(PACKAGEDIR_UNZIP)/$(OS_TARGET)),)
-UNITDIR_UNZIP=$(PACKAGEDIR_UNZIP)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_UNZIP)/units/$(FULL_TARGET)),)
+UNITDIR_UNZIP=$(PACKAGEDIR_UNZIP)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_UNZIP=$(PACKAGEDIR_UNZIP)
 UNITDIR_UNZIP=$(PACKAGEDIR_UNZIP)
 endif
 endif
@@ -1392,6 +1417,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1405,7 +1431,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1421,13 +1448,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1445,6 +1476,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1601,7 +1633,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1627,17 +1659,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1645,6 +1688,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1751,6 +1795,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1766,7 +1811,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 101 - 59
packages/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -415,21 +419,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -439,33 +442,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -473,7 +476,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -482,68 +485,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -775,6 +783,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -786,7 +808,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1102,10 +1127,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1270,7 +1295,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1296,17 +1321,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1314,6 +1350,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1427,6 +1464,8 @@ base_smart:
 	$(MAKE) -C base smart
 	$(MAKE) -C base smart
 base_release:
 base_release:
 	$(MAKE) -C base release
 	$(MAKE) -C base release
+base_units:
+	$(MAKE) -C base units
 base_examples:
 base_examples:
 	$(MAKE) -C base examples
 	$(MAKE) -C base examples
 base_shared:
 base_shared:
@@ -1459,7 +1498,7 @@ base_makefiles:
 	$(MAKE) -C base makefiles
 	$(MAKE) -C base makefiles
 base:
 base:
 	$(MAKE) -C base all
 	$(MAKE) -C base all
-.PHONY: base_all base_debug base_smart base_release base_examples base_shared base_install base_sourceinstall base_exampleinstall base_distinstall base_zipinstall base_zipsourceinstall base_zipexampleinstall base_zipdistinstall base_clean base_distclean base_cleanall base_info base_makefiles base
+.PHONY: base_all base_debug base_smart base_release base_units base_examples base_shared base_install base_sourceinstall base_exampleinstall base_distinstall base_zipinstall base_zipsourceinstall base_zipexampleinstall base_zipdistinstall base_clean base_distclean base_cleanall base_info base_makefiles base
 endif
 endif
 ifdef TARGET_DIRS_EXTRA
 ifdef TARGET_DIRS_EXTRA
 extra_all:
 extra_all:
@@ -1470,6 +1509,8 @@ extra_smart:
 	$(MAKE) -C extra smart
 	$(MAKE) -C extra smart
 extra_release:
 extra_release:
 	$(MAKE) -C extra release
 	$(MAKE) -C extra release
+extra_units:
+	$(MAKE) -C extra units
 extra_examples:
 extra_examples:
 	$(MAKE) -C extra examples
 	$(MAKE) -C extra examples
 extra_shared:
 extra_shared:
@@ -1502,12 +1543,13 @@ extra_makefiles:
 	$(MAKE) -C extra makefiles
 	$(MAKE) -C extra makefiles
 extra:
 extra:
 	$(MAKE) -C extra all
 	$(MAKE) -C extra all
-.PHONY: extra_all extra_debug extra_smart extra_release extra_examples extra_shared extra_install extra_sourceinstall extra_exampleinstall extra_distinstall extra_zipinstall extra_zipsourceinstall extra_zipexampleinstall extra_zipdistinstall extra_clean extra_distclean extra_cleanall extra_info extra_makefiles extra
+.PHONY: extra_all extra_debug extra_smart extra_release extra_units extra_examples extra_shared extra_install extra_sourceinstall extra_exampleinstall extra_distinstall extra_zipinstall extra_zipsourceinstall extra_zipexampleinstall extra_zipdistinstall extra_clean extra_distclean extra_cleanall extra_info extra_makefiles extra
 endif
 endif
 all: $(addsuffix _all,$(TARGET_DIRS))
 all: $(addsuffix _all,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
@@ -1523,7 +1565,7 @@ distclean: $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 143 - 73
packages/base/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -276,6 +282,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -289,28 +305,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -436,21 +440,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -460,33 +463,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -494,7 +497,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -503,68 +506,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -796,6 +804,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -807,7 +829,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1123,10 +1148,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1291,7 +1316,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1317,17 +1342,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1335,6 +1371,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1518,6 +1555,8 @@ paszlib_smart:
 	$(MAKE) -C paszlib smart
 	$(MAKE) -C paszlib smart
 paszlib_release:
 paszlib_release:
 	$(MAKE) -C paszlib release
 	$(MAKE) -C paszlib release
+paszlib_units:
+	$(MAKE) -C paszlib units
 paszlib_examples:
 paszlib_examples:
 	$(MAKE) -C paszlib examples
 	$(MAKE) -C paszlib examples
 paszlib_shared:
 paszlib_shared:
@@ -1550,7 +1589,7 @@ paszlib_makefiles:
 	$(MAKE) -C paszlib makefiles
 	$(MAKE) -C paszlib makefiles
 paszlib:
 paszlib:
 	$(MAKE) -C paszlib all
 	$(MAKE) -C paszlib all
-.PHONY: paszlib_all paszlib_debug paszlib_smart paszlib_release paszlib_examples paszlib_shared paszlib_install paszlib_sourceinstall paszlib_exampleinstall paszlib_distinstall paszlib_zipinstall paszlib_zipsourceinstall paszlib_zipexampleinstall paszlib_zipdistinstall paszlib_clean paszlib_distclean paszlib_cleanall paszlib_info paszlib_makefiles paszlib
+.PHONY: paszlib_all paszlib_debug paszlib_smart paszlib_release paszlib_units paszlib_examples paszlib_shared paszlib_install paszlib_sourceinstall paszlib_exampleinstall paszlib_distinstall paszlib_zipinstall paszlib_zipsourceinstall paszlib_zipexampleinstall paszlib_zipdistinstall paszlib_clean paszlib_distclean paszlib_cleanall paszlib_info paszlib_makefiles paszlib
 endif
 endif
 ifdef TARGET_DIRS_PASJPEG
 ifdef TARGET_DIRS_PASJPEG
 pasjpeg_all:
 pasjpeg_all:
@@ -1561,6 +1600,8 @@ pasjpeg_smart:
 	$(MAKE) -C pasjpeg smart
 	$(MAKE) -C pasjpeg smart
 pasjpeg_release:
 pasjpeg_release:
 	$(MAKE) -C pasjpeg release
 	$(MAKE) -C pasjpeg release
+pasjpeg_units:
+	$(MAKE) -C pasjpeg units
 pasjpeg_examples:
 pasjpeg_examples:
 	$(MAKE) -C pasjpeg examples
 	$(MAKE) -C pasjpeg examples
 pasjpeg_shared:
 pasjpeg_shared:
@@ -1593,7 +1634,7 @@ pasjpeg_makefiles:
 	$(MAKE) -C pasjpeg makefiles
 	$(MAKE) -C pasjpeg makefiles
 pasjpeg:
 pasjpeg:
 	$(MAKE) -C pasjpeg all
 	$(MAKE) -C pasjpeg all
-.PHONY: pasjpeg_all pasjpeg_debug pasjpeg_smart pasjpeg_release pasjpeg_examples pasjpeg_shared pasjpeg_install pasjpeg_sourceinstall pasjpeg_exampleinstall pasjpeg_distinstall pasjpeg_zipinstall pasjpeg_zipsourceinstall pasjpeg_zipexampleinstall pasjpeg_zipdistinstall pasjpeg_clean pasjpeg_distclean pasjpeg_cleanall pasjpeg_info pasjpeg_makefiles pasjpeg
+.PHONY: pasjpeg_all pasjpeg_debug pasjpeg_smart pasjpeg_release pasjpeg_units pasjpeg_examples pasjpeg_shared pasjpeg_install pasjpeg_sourceinstall pasjpeg_exampleinstall pasjpeg_distinstall pasjpeg_zipinstall pasjpeg_zipsourceinstall pasjpeg_zipexampleinstall pasjpeg_zipdistinstall pasjpeg_clean pasjpeg_distclean pasjpeg_cleanall pasjpeg_info pasjpeg_makefiles pasjpeg
 endif
 endif
 ifdef TARGET_DIRS_REGEXPR
 ifdef TARGET_DIRS_REGEXPR
 regexpr_all:
 regexpr_all:
@@ -1604,6 +1645,8 @@ regexpr_smart:
 	$(MAKE) -C regexpr smart
 	$(MAKE) -C regexpr smart
 regexpr_release:
 regexpr_release:
 	$(MAKE) -C regexpr release
 	$(MAKE) -C regexpr release
+regexpr_units:
+	$(MAKE) -C regexpr units
 regexpr_examples:
 regexpr_examples:
 	$(MAKE) -C regexpr examples
 	$(MAKE) -C regexpr examples
 regexpr_shared:
 regexpr_shared:
@@ -1636,7 +1679,7 @@ regexpr_makefiles:
 	$(MAKE) -C regexpr makefiles
 	$(MAKE) -C regexpr makefiles
 regexpr:
 regexpr:
 	$(MAKE) -C regexpr all
 	$(MAKE) -C regexpr all
-.PHONY: regexpr_all regexpr_debug regexpr_smart regexpr_release regexpr_examples regexpr_shared regexpr_install regexpr_sourceinstall regexpr_exampleinstall regexpr_distinstall regexpr_zipinstall regexpr_zipsourceinstall regexpr_zipexampleinstall regexpr_zipdistinstall regexpr_clean regexpr_distclean regexpr_cleanall regexpr_info regexpr_makefiles regexpr
+.PHONY: regexpr_all regexpr_debug regexpr_smart regexpr_release regexpr_units regexpr_examples regexpr_shared regexpr_install regexpr_sourceinstall regexpr_exampleinstall regexpr_distinstall regexpr_zipinstall regexpr_zipsourceinstall regexpr_zipexampleinstall regexpr_zipdistinstall regexpr_clean regexpr_distclean regexpr_cleanall regexpr_info regexpr_makefiles regexpr
 endif
 endif
 ifdef TARGET_DIRS_NETDB
 ifdef TARGET_DIRS_NETDB
 netdb_all:
 netdb_all:
@@ -1647,6 +1690,8 @@ netdb_smart:
 	$(MAKE) -C netdb smart
 	$(MAKE) -C netdb smart
 netdb_release:
 netdb_release:
 	$(MAKE) -C netdb release
 	$(MAKE) -C netdb release
+netdb_units:
+	$(MAKE) -C netdb units
 netdb_examples:
 netdb_examples:
 	$(MAKE) -C netdb examples
 	$(MAKE) -C netdb examples
 netdb_shared:
 netdb_shared:
@@ -1679,7 +1724,7 @@ netdb_makefiles:
 	$(MAKE) -C netdb makefiles
 	$(MAKE) -C netdb makefiles
 netdb:
 netdb:
 	$(MAKE) -C netdb all
 	$(MAKE) -C netdb all
-.PHONY: netdb_all netdb_debug netdb_smart netdb_release netdb_examples netdb_shared netdb_install netdb_sourceinstall netdb_exampleinstall netdb_distinstall netdb_zipinstall netdb_zipsourceinstall netdb_zipexampleinstall netdb_zipdistinstall netdb_clean netdb_distclean netdb_cleanall netdb_info netdb_makefiles netdb
+.PHONY: netdb_all netdb_debug netdb_smart netdb_release netdb_units netdb_examples netdb_shared netdb_install netdb_sourceinstall netdb_exampleinstall netdb_distinstall netdb_zipinstall netdb_zipsourceinstall netdb_zipexampleinstall netdb_zipdistinstall netdb_clean netdb_distclean netdb_cleanall netdb_info netdb_makefiles netdb
 endif
 endif
 ifdef TARGET_DIRS_MD5
 ifdef TARGET_DIRS_MD5
 md5_all:
 md5_all:
@@ -1690,6 +1735,8 @@ md5_smart:
 	$(MAKE) -C md5 smart
 	$(MAKE) -C md5 smart
 md5_release:
 md5_release:
 	$(MAKE) -C md5 release
 	$(MAKE) -C md5 release
+md5_units:
+	$(MAKE) -C md5 units
 md5_examples:
 md5_examples:
 	$(MAKE) -C md5 examples
 	$(MAKE) -C md5 examples
 md5_shared:
 md5_shared:
@@ -1722,7 +1769,7 @@ md5_makefiles:
 	$(MAKE) -C md5 makefiles
 	$(MAKE) -C md5 makefiles
 md5:
 md5:
 	$(MAKE) -C md5 all
 	$(MAKE) -C md5 all
-.PHONY: md5_all md5_debug md5_smart md5_release md5_examples md5_shared md5_install md5_sourceinstall md5_exampleinstall md5_distinstall md5_zipinstall md5_zipsourceinstall md5_zipexampleinstall md5_zipdistinstall md5_clean md5_distclean md5_cleanall md5_info md5_makefiles md5
+.PHONY: md5_all md5_debug md5_smart md5_release md5_units md5_examples md5_shared md5_install md5_sourceinstall md5_exampleinstall md5_distinstall md5_zipinstall md5_zipsourceinstall md5_zipexampleinstall md5_zipdistinstall md5_clean md5_distclean md5_cleanall md5_info md5_makefiles md5
 endif
 endif
 ifdef TARGET_DIRS_INET
 ifdef TARGET_DIRS_INET
 inet_all:
 inet_all:
@@ -1733,6 +1780,8 @@ inet_smart:
 	$(MAKE) -C inet smart
 	$(MAKE) -C inet smart
 inet_release:
 inet_release:
 	$(MAKE) -C inet release
 	$(MAKE) -C inet release
+inet_units:
+	$(MAKE) -C inet units
 inet_examples:
 inet_examples:
 	$(MAKE) -C inet examples
 	$(MAKE) -C inet examples
 inet_shared:
 inet_shared:
@@ -1765,7 +1814,7 @@ inet_makefiles:
 	$(MAKE) -C inet makefiles
 	$(MAKE) -C inet makefiles
 inet:
 inet:
 	$(MAKE) -C inet all
 	$(MAKE) -C inet all
-.PHONY: inet_all inet_debug inet_smart inet_release inet_examples inet_shared inet_install inet_sourceinstall inet_exampleinstall inet_distinstall inet_zipinstall inet_zipsourceinstall inet_zipexampleinstall inet_zipdistinstall inet_clean inet_distclean inet_cleanall inet_info inet_makefiles inet
+.PHONY: inet_all inet_debug inet_smart inet_release inet_units inet_examples inet_shared inet_install inet_sourceinstall inet_exampleinstall inet_distinstall inet_zipinstall inet_zipsourceinstall inet_zipexampleinstall inet_zipdistinstall inet_clean inet_distclean inet_cleanall inet_info inet_makefiles inet
 endif
 endif
 ifdef TARGET_DIRS_GDBINT
 ifdef TARGET_DIRS_GDBINT
 gdbint_all:
 gdbint_all:
@@ -1776,6 +1825,8 @@ gdbint_smart:
 	$(MAKE) -C gdbint smart
 	$(MAKE) -C gdbint smart
 gdbint_release:
 gdbint_release:
 	$(MAKE) -C gdbint release
 	$(MAKE) -C gdbint release
+gdbint_units:
+	$(MAKE) -C gdbint units
 gdbint_examples:
 gdbint_examples:
 	$(MAKE) -C gdbint examples
 	$(MAKE) -C gdbint examples
 gdbint_shared:
 gdbint_shared:
@@ -1808,7 +1859,7 @@ gdbint_makefiles:
 	$(MAKE) -C gdbint makefiles
 	$(MAKE) -C gdbint makefiles
 gdbint:
 gdbint:
 	$(MAKE) -C gdbint all
 	$(MAKE) -C gdbint all
-.PHONY: gdbint_all gdbint_debug gdbint_smart gdbint_release gdbint_examples gdbint_shared gdbint_install gdbint_sourceinstall gdbint_exampleinstall gdbint_distinstall gdbint_zipinstall gdbint_zipsourceinstall gdbint_zipexampleinstall gdbint_zipdistinstall gdbint_clean gdbint_distclean gdbint_cleanall gdbint_info gdbint_makefiles gdbint
+.PHONY: gdbint_all gdbint_debug gdbint_smart gdbint_release gdbint_units gdbint_examples gdbint_shared gdbint_install gdbint_sourceinstall gdbint_exampleinstall gdbint_distinstall gdbint_zipinstall gdbint_zipsourceinstall gdbint_zipexampleinstall gdbint_zipdistinstall gdbint_clean gdbint_distclean gdbint_cleanall gdbint_info gdbint_makefiles gdbint
 endif
 endif
 ifdef TARGET_DIRS_LIBASYNC
 ifdef TARGET_DIRS_LIBASYNC
 libasync_all:
 libasync_all:
@@ -1819,6 +1870,8 @@ libasync_smart:
 	$(MAKE) -C libasync smart
 	$(MAKE) -C libasync smart
 libasync_release:
 libasync_release:
 	$(MAKE) -C libasync release
 	$(MAKE) -C libasync release
+libasync_units:
+	$(MAKE) -C libasync units
 libasync_examples:
 libasync_examples:
 	$(MAKE) -C libasync examples
 	$(MAKE) -C libasync examples
 libasync_shared:
 libasync_shared:
@@ -1851,7 +1904,7 @@ libasync_makefiles:
 	$(MAKE) -C libasync makefiles
 	$(MAKE) -C libasync makefiles
 libasync:
 libasync:
 	$(MAKE) -C libasync all
 	$(MAKE) -C libasync all
-.PHONY: libasync_all libasync_debug libasync_smart libasync_release libasync_examples libasync_shared libasync_install libasync_sourceinstall libasync_exampleinstall libasync_distinstall libasync_zipinstall libasync_zipsourceinstall libasync_zipexampleinstall libasync_zipdistinstall libasync_clean libasync_distclean libasync_cleanall libasync_info libasync_makefiles libasync
+.PHONY: libasync_all libasync_debug libasync_smart libasync_release libasync_units libasync_examples libasync_shared libasync_install libasync_sourceinstall libasync_exampleinstall libasync_distinstall libasync_zipinstall libasync_zipsourceinstall libasync_zipexampleinstall libasync_zipdistinstall libasync_clean libasync_distclean libasync_cleanall libasync_info libasync_makefiles libasync
 endif
 endif
 ifdef TARGET_DIRS_MYSQL
 ifdef TARGET_DIRS_MYSQL
 mysql_all:
 mysql_all:
@@ -1862,6 +1915,8 @@ mysql_smart:
 	$(MAKE) -C mysql smart
 	$(MAKE) -C mysql smart
 mysql_release:
 mysql_release:
 	$(MAKE) -C mysql release
 	$(MAKE) -C mysql release
+mysql_units:
+	$(MAKE) -C mysql units
 mysql_examples:
 mysql_examples:
 	$(MAKE) -C mysql examples
 	$(MAKE) -C mysql examples
 mysql_shared:
 mysql_shared:
@@ -1894,7 +1949,7 @@ mysql_makefiles:
 	$(MAKE) -C mysql makefiles
 	$(MAKE) -C mysql makefiles
 mysql:
 mysql:
 	$(MAKE) -C mysql all
 	$(MAKE) -C mysql all
-.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
+.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_units mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
 endif
 endif
 ifdef TARGET_DIRS_IBASE
 ifdef TARGET_DIRS_IBASE
 ibase_all:
 ibase_all:
@@ -1905,6 +1960,8 @@ ibase_smart:
 	$(MAKE) -C ibase smart
 	$(MAKE) -C ibase smart
 ibase_release:
 ibase_release:
 	$(MAKE) -C ibase release
 	$(MAKE) -C ibase release
+ibase_units:
+	$(MAKE) -C ibase units
 ibase_examples:
 ibase_examples:
 	$(MAKE) -C ibase examples
 	$(MAKE) -C ibase examples
 ibase_shared:
 ibase_shared:
@@ -1937,7 +1994,7 @@ ibase_makefiles:
 	$(MAKE) -C ibase makefiles
 	$(MAKE) -C ibase makefiles
 ibase:
 ibase:
 	$(MAKE) -C ibase all
 	$(MAKE) -C ibase all
-.PHONY: ibase_all ibase_debug ibase_smart ibase_release ibase_examples ibase_shared ibase_install ibase_sourceinstall ibase_exampleinstall ibase_distinstall ibase_zipinstall ibase_zipsourceinstall ibase_zipexampleinstall ibase_zipdistinstall ibase_clean ibase_distclean ibase_cleanall ibase_info ibase_makefiles ibase
+.PHONY: ibase_all ibase_debug ibase_smart ibase_release ibase_units ibase_examples ibase_shared ibase_install ibase_sourceinstall ibase_exampleinstall ibase_distinstall ibase_zipinstall ibase_zipsourceinstall ibase_zipexampleinstall ibase_zipdistinstall ibase_clean ibase_distclean ibase_cleanall ibase_info ibase_makefiles ibase
 endif
 endif
 ifdef TARGET_DIRS_POSTGRES
 ifdef TARGET_DIRS_POSTGRES
 postgres_all:
 postgres_all:
@@ -1948,6 +2005,8 @@ postgres_smart:
 	$(MAKE) -C postgres smart
 	$(MAKE) -C postgres smart
 postgres_release:
 postgres_release:
 	$(MAKE) -C postgres release
 	$(MAKE) -C postgres release
+postgres_units:
+	$(MAKE) -C postgres units
 postgres_examples:
 postgres_examples:
 	$(MAKE) -C postgres examples
 	$(MAKE) -C postgres examples
 postgres_shared:
 postgres_shared:
@@ -1980,7 +2039,7 @@ postgres_makefiles:
 	$(MAKE) -C postgres makefiles
 	$(MAKE) -C postgres makefiles
 postgres:
 postgres:
 	$(MAKE) -C postgres all
 	$(MAKE) -C postgres all
-.PHONY: postgres_all postgres_debug postgres_smart postgres_release postgres_examples postgres_shared postgres_install postgres_sourceinstall postgres_exampleinstall postgres_distinstall postgres_zipinstall postgres_zipsourceinstall postgres_zipexampleinstall postgres_zipdistinstall postgres_clean postgres_distclean postgres_cleanall postgres_info postgres_makefiles postgres
+.PHONY: postgres_all postgres_debug postgres_smart postgres_release postgres_units postgres_examples postgres_shared postgres_install postgres_sourceinstall postgres_exampleinstall postgres_distinstall postgres_zipinstall postgres_zipsourceinstall postgres_zipexampleinstall postgres_zipdistinstall postgres_clean postgres_distclean postgres_cleanall postgres_info postgres_makefiles postgres
 endif
 endif
 ifdef TARGET_DIRS_ORACLE
 ifdef TARGET_DIRS_ORACLE
 oracle_all:
 oracle_all:
@@ -1991,6 +2050,8 @@ oracle_smart:
 	$(MAKE) -C oracle smart
 	$(MAKE) -C oracle smart
 oracle_release:
 oracle_release:
 	$(MAKE) -C oracle release
 	$(MAKE) -C oracle release
+oracle_units:
+	$(MAKE) -C oracle units
 oracle_examples:
 oracle_examples:
 	$(MAKE) -C oracle examples
 	$(MAKE) -C oracle examples
 oracle_shared:
 oracle_shared:
@@ -2023,7 +2084,7 @@ oracle_makefiles:
 	$(MAKE) -C oracle makefiles
 	$(MAKE) -C oracle makefiles
 oracle:
 oracle:
 	$(MAKE) -C oracle all
 	$(MAKE) -C oracle all
-.PHONY: oracle_all oracle_debug oracle_smart oracle_release oracle_examples oracle_shared oracle_install oracle_sourceinstall oracle_exampleinstall oracle_distinstall oracle_zipinstall oracle_zipsourceinstall oracle_zipexampleinstall oracle_zipdistinstall oracle_clean oracle_distclean oracle_cleanall oracle_info oracle_makefiles oracle
+.PHONY: oracle_all oracle_debug oracle_smart oracle_release oracle_units oracle_examples oracle_shared oracle_install oracle_sourceinstall oracle_exampleinstall oracle_distinstall oracle_zipinstall oracle_zipsourceinstall oracle_zipexampleinstall oracle_zipdistinstall oracle_clean oracle_distclean oracle_cleanall oracle_info oracle_makefiles oracle
 endif
 endif
 ifdef TARGET_DIRS_ODBC
 ifdef TARGET_DIRS_ODBC
 odbc_all:
 odbc_all:
@@ -2034,6 +2095,8 @@ odbc_smart:
 	$(MAKE) -C odbc smart
 	$(MAKE) -C odbc smart
 odbc_release:
 odbc_release:
 	$(MAKE) -C odbc release
 	$(MAKE) -C odbc release
+odbc_units:
+	$(MAKE) -C odbc units
 odbc_examples:
 odbc_examples:
 	$(MAKE) -C odbc examples
 	$(MAKE) -C odbc examples
 odbc_shared:
 odbc_shared:
@@ -2066,7 +2129,7 @@ odbc_makefiles:
 	$(MAKE) -C odbc makefiles
 	$(MAKE) -C odbc makefiles
 odbc:
 odbc:
 	$(MAKE) -C odbc all
 	$(MAKE) -C odbc all
-.PHONY: odbc_all odbc_debug odbc_smart odbc_release odbc_examples odbc_shared odbc_install odbc_sourceinstall odbc_exampleinstall odbc_distinstall odbc_zipinstall odbc_zipsourceinstall odbc_zipexampleinstall odbc_zipdistinstall odbc_clean odbc_distclean odbc_cleanall odbc_info odbc_makefiles odbc
+.PHONY: odbc_all odbc_debug odbc_smart odbc_release odbc_units odbc_examples odbc_shared odbc_install odbc_sourceinstall odbc_exampleinstall odbc_distinstall odbc_zipinstall odbc_zipsourceinstall odbc_zipexampleinstall odbc_zipdistinstall odbc_clean odbc_distclean odbc_cleanall odbc_info odbc_makefiles odbc
 endif
 endif
 ifdef TARGET_DIRS_PTHREADS
 ifdef TARGET_DIRS_PTHREADS
 pthreads_all:
 pthreads_all:
@@ -2077,6 +2140,8 @@ pthreads_smart:
 	$(MAKE) -C pthreads smart
 	$(MAKE) -C pthreads smart
 pthreads_release:
 pthreads_release:
 	$(MAKE) -C pthreads release
 	$(MAKE) -C pthreads release
+pthreads_units:
+	$(MAKE) -C pthreads units
 pthreads_examples:
 pthreads_examples:
 	$(MAKE) -C pthreads examples
 	$(MAKE) -C pthreads examples
 pthreads_shared:
 pthreads_shared:
@@ -2109,7 +2174,7 @@ pthreads_makefiles:
 	$(MAKE) -C pthreads makefiles
 	$(MAKE) -C pthreads makefiles
 pthreads:
 pthreads:
 	$(MAKE) -C pthreads all
 	$(MAKE) -C pthreads all
-.PHONY: pthreads_all pthreads_debug pthreads_smart pthreads_release pthreads_examples pthreads_shared pthreads_install pthreads_sourceinstall pthreads_exampleinstall pthreads_distinstall pthreads_zipinstall pthreads_zipsourceinstall pthreads_zipexampleinstall pthreads_zipdistinstall pthreads_clean pthreads_distclean pthreads_cleanall pthreads_info pthreads_makefiles pthreads
+.PHONY: pthreads_all pthreads_debug pthreads_smart pthreads_release pthreads_units pthreads_examples pthreads_shared pthreads_install pthreads_sourceinstall pthreads_exampleinstall pthreads_distinstall pthreads_zipinstall pthreads_zipsourceinstall pthreads_zipexampleinstall pthreads_zipdistinstall pthreads_clean pthreads_distclean pthreads_cleanall pthreads_info pthreads_makefiles pthreads
 endif
 endif
 ifdef TARGET_DIRS_SQLITE
 ifdef TARGET_DIRS_SQLITE
 sqlite_all:
 sqlite_all:
@@ -2120,6 +2185,8 @@ sqlite_smart:
 	$(MAKE) -C sqlite smart
 	$(MAKE) -C sqlite smart
 sqlite_release:
 sqlite_release:
 	$(MAKE) -C sqlite release
 	$(MAKE) -C sqlite release
+sqlite_units:
+	$(MAKE) -C sqlite units
 sqlite_examples:
 sqlite_examples:
 	$(MAKE) -C sqlite examples
 	$(MAKE) -C sqlite examples
 sqlite_shared:
 sqlite_shared:
@@ -2152,7 +2219,7 @@ sqlite_makefiles:
 	$(MAKE) -C sqlite makefiles
 	$(MAKE) -C sqlite makefiles
 sqlite:
 sqlite:
 	$(MAKE) -C sqlite all
 	$(MAKE) -C sqlite all
-.PHONY: sqlite_all sqlite_debug sqlite_smart sqlite_release sqlite_examples sqlite_shared sqlite_install sqlite_sourceinstall sqlite_exampleinstall sqlite_distinstall sqlite_zipinstall sqlite_zipsourceinstall sqlite_zipexampleinstall sqlite_zipdistinstall sqlite_clean sqlite_distclean sqlite_cleanall sqlite_info sqlite_makefiles sqlite
+.PHONY: sqlite_all sqlite_debug sqlite_smart sqlite_release sqlite_units sqlite_examples sqlite_shared sqlite_install sqlite_sourceinstall sqlite_exampleinstall sqlite_distinstall sqlite_zipinstall sqlite_zipsourceinstall sqlite_zipexampleinstall sqlite_zipdistinstall sqlite_clean sqlite_distclean sqlite_cleanall sqlite_info sqlite_makefiles sqlite
 endif
 endif
 ifdef TARGET_DIRS_LIBC
 ifdef TARGET_DIRS_LIBC
 libc_all:
 libc_all:
@@ -2163,6 +2230,8 @@ libc_smart:
 	$(MAKE) -C libc smart
 	$(MAKE) -C libc smart
 libc_release:
 libc_release:
 	$(MAKE) -C libc release
 	$(MAKE) -C libc release
+libc_units:
+	$(MAKE) -C libc units
 libc_examples:
 libc_examples:
 	$(MAKE) -C libc examples
 	$(MAKE) -C libc examples
 libc_shared:
 libc_shared:
@@ -2195,12 +2264,13 @@ libc_makefiles:
 	$(MAKE) -C libc makefiles
 	$(MAKE) -C libc makefiles
 libc:
 libc:
 	$(MAKE) -C libc all
 	$(MAKE) -C libc all
-.PHONY: libc_all libc_debug libc_smart libc_release libc_examples libc_shared libc_install libc_sourceinstall libc_exampleinstall libc_distinstall libc_zipinstall libc_zipsourceinstall libc_zipexampleinstall libc_zipdistinstall libc_clean libc_distclean libc_cleanall libc_info libc_makefiles libc
+.PHONY: libc_all libc_debug libc_smart libc_release libc_units libc_examples libc_shared libc_install libc_sourceinstall libc_exampleinstall libc_distinstall libc_zipinstall libc_zipsourceinstall libc_zipexampleinstall libc_zipdistinstall libc_clean libc_distclean libc_cleanall libc_info libc_makefiles libc
 endif
 endif
 all: $(addsuffix _all,$(TARGET_DIRS))
 all: $(addsuffix _all,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
@@ -2216,7 +2286,7 @@ distclean: $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/gdbint/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -281,6 +287,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -294,28 +310,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -467,21 +471,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -491,33 +494,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -525,7 +528,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -534,68 +537,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -827,6 +835,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -838,7 +860,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1154,10 +1179,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1322,7 +1347,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1356,13 +1381,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1380,6 +1409,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1536,7 +1566,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1562,17 +1592,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1580,6 +1621,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1686,6 +1728,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1700,7 +1743,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 127 - 56
packages/base/gdbint/libgdb/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/23]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -252,6 +258,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -265,28 +281,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -412,21 +416,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -436,33 +439,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -470,7 +473,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -479,57 +482,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
+endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -668,6 +687,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -749,6 +780,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -760,7 +805,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1065,11 +1113,21 @@ ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+ifeq ($(CPU_TARGET),powerpc)
+REQUIRE_PACKAGES_RTL=1
+endif
+endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1234,7 +1292,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1260,17 +1318,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1278,6 +1347,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1383,6 +1453,7 @@ fpc_makefiles: fpc_makefile fpc_makefile_dirs
 debug:
 debug:
 smart:
 smart:
 release:
 release:
+units:
 examples:
 examples:
 shared:
 shared:
 install:
 install:
@@ -1398,7 +1469,7 @@ distclean:
 cleanall:
 cleanall:
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/ibase/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,68 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -803,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -814,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1130,10 +1155,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1298,7 +1323,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1332,13 +1357,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1356,6 +1385,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1512,7 +1542,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1538,17 +1568,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1556,6 +1597,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1662,6 +1704,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1677,7 +1720,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/inet/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -417,21 +421,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -441,33 +444,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -475,7 +478,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -484,68 +487,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -777,6 +785,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -788,7 +810,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1104,10 +1129,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1266,7 +1291,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1300,13 +1325,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1324,6 +1353,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1480,7 +1510,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1506,17 +1536,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1524,6 +1565,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1630,6 +1672,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1645,7 +1688,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 103 - 61
packages/base/libasync/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -232,7 +238,6 @@ endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 override COMPILER_SOURCEDIR+=unix
 override COMPILER_SOURCEDIR+=unix
 endif
 endif
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -272,6 +277,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -285,28 +300,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -432,21 +435,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -456,33 +458,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -490,7 +492,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -499,68 +501,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -792,6 +799,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -803,7 +824,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -952,7 +976,7 @@ else
 TAROPT=vz
 TAROPT=vz
 TAREXT=.tar.gz
 TAREXT=.tar.gz
 endif
 endif
-override REQUIRE_PACKAGES=rtl rtl
+override REQUIRE_PACKAGES=rtl 
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
@@ -1119,10 +1143,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1281,7 +1305,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1297,13 +1321,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1321,6 +1349,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1477,7 +1506,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1503,17 +1532,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1521,6 +1561,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1627,6 +1668,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1642,7 +1684,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 4
packages/base/libasync/Makefile.fpc

@@ -18,10 +18,6 @@ sourcedir_freebsd=unix
 sourcedir_darwin=unix
 sourcedir_darwin=unix
 sourcedir_netbsd=unix
 sourcedir_netbsd=unix
 sourcedir_openbsd=unix
 sourcedir_openbsd=unix
-targetdir=.
-
-[require]
-packages=rtl
 
 
 [default]
 [default]
 fpcdir=../../..
 fpcdir=../../..

+ 102 - 59
packages/base/libc/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -256,6 +262,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -269,28 +285,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -442,21 +446,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -466,33 +469,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -500,7 +503,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -509,68 +512,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -802,6 +810,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -813,7 +835,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1129,10 +1154,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1297,7 +1322,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1313,13 +1338,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1337,6 +1366,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1493,7 +1523,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1519,17 +1549,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1537,6 +1578,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1643,6 +1685,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1658,7 +1701,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/md5/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -417,21 +421,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -441,33 +444,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -475,7 +478,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -484,68 +487,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -777,6 +785,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -788,7 +810,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1104,10 +1129,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1266,7 +1291,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1300,13 +1325,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1324,6 +1353,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1480,7 +1510,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1506,17 +1536,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1524,6 +1565,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1630,6 +1672,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1645,7 +1688,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 125 - 59
packages/base/mysql/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,62 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -704,6 +718,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -785,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -796,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1106,11 +1149,16 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1275,7 +1323,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1309,13 +1357,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1333,6 +1385,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1489,7 +1542,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1515,17 +1568,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1533,6 +1597,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1639,6 +1704,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1654,7 +1720,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/netdb/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -281,6 +287,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -294,28 +310,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -441,21 +445,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -465,33 +468,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -499,7 +502,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -508,68 +511,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -801,6 +809,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -812,7 +834,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1128,10 +1153,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1290,7 +1315,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1324,13 +1349,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1348,6 +1377,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1504,7 +1534,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1530,17 +1560,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1548,6 +1589,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1654,6 +1696,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1669,7 +1712,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/odbc/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,68 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -803,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -814,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1130,10 +1155,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1298,7 +1323,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1332,13 +1357,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1356,6 +1385,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1512,7 +1542,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1538,17 +1568,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1556,6 +1597,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1662,6 +1704,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1677,7 +1720,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 105 - 60
packages/base/oracle/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,68 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -803,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -814,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1130,10 +1155,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1298,7 +1323,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1332,13 +1357,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1356,6 +1385,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1512,7 +1542,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1538,17 +1568,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1556,6 +1597,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1668,6 +1710,8 @@ example_smart:
 	$(MAKE) -C example smart
 	$(MAKE) -C example smart
 example_release:
 example_release:
 	$(MAKE) -C example release
 	$(MAKE) -C example release
+example_units:
+	$(MAKE) -C example units
 example_examples:
 example_examples:
 	$(MAKE) -C example examples
 	$(MAKE) -C example examples
 example_shared:
 example_shared:
@@ -1700,12 +1744,13 @@ example_makefiles:
 	$(MAKE) -C example makefiles
 	$(MAKE) -C example makefiles
 example:
 example:
 	$(MAKE) -C example all
 	$(MAKE) -C example all
-.PHONY: example_all example_debug example_smart example_release example_examples example_shared example_install example_sourceinstall example_exampleinstall example_distinstall example_zipinstall example_zipsourceinstall example_zipexampleinstall example_zipdistinstall example_clean example_distclean example_cleanall example_info example_makefiles example
+.PHONY: example_all example_debug example_smart example_release example_units example_examples example_shared example_install example_sourceinstall example_exampleinstall example_distinstall example_zipinstall example_zipsourceinstall example_zipexampleinstall example_zipdistinstall example_clean example_distclean example_cleanall example_info example_makefiles example
 endif
 endif
 all: fpc_all
 all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1721,7 +1766,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 165 - 95
packages/base/oracle/example/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -441,21 +445,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -465,33 +468,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -499,7 +502,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -508,68 +511,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -801,6 +809,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -812,7 +834,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -973,6 +998,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -988,6 +1014,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1003,6 +1030,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1018,6 +1046,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1033,6 +1062,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1048,6 +1078,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1059,7 +1090,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1073,6 +1103,7 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
@@ -1085,7 +1116,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1101,6 +1131,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1116,6 +1147,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1131,6 +1163,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1142,7 +1175,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1157,6 +1189,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1171,6 +1204,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1185,6 +1219,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1199,6 +1234,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1210,7 +1246,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1222,7 +1257,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1234,7 +1268,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1246,7 +1279,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1258,7 +1290,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1270,7 +1301,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1285,6 +1315,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1299,6 +1330,7 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1310,7 +1342,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1322,7 +1353,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1334,7 +1364,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1350,6 +1379,7 @@ REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 endif
@@ -1361,7 +1391,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1373,7 +1402,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1385,7 +1413,6 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
@@ -1397,16 +1424,15 @@ REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1431,8 +1457,8 @@ endif
 ifdef REQUIRE_PACKAGES_ORACLE
 ifdef REQUIRE_PACKAGES_ORACLE
 PACKAGEDIR_ORACLE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oracle/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_ORACLE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oracle/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_ORACLE),)
 ifneq ($(PACKAGEDIR_ORACLE),)
-ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/$(OS_TARGET)),)
-UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(FULL_TARGET)),)
+UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)
 UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)
 endif
 endif
@@ -1457,8 +1483,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1483,8 +1509,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1509,8 +1535,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1535,8 +1561,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1561,8 +1587,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
 endif
@@ -1587,8 +1613,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1613,8 +1639,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1636,11 +1662,37 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1665,8 +1717,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1831,7 +1883,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1865,13 +1917,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1889,6 +1945,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1966,7 +2023,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1992,17 +2049,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -2010,6 +2078,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2116,6 +2185,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -2131,7 +2201,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/pasjpeg/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -417,21 +421,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -441,33 +444,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -475,7 +478,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -484,68 +487,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -777,6 +785,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -788,7 +810,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1104,10 +1129,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1266,7 +1291,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1300,13 +1325,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1324,6 +1353,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1480,7 +1510,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1506,17 +1536,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1524,6 +1565,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1630,6 +1672,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1645,7 +1688,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/paszlib/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -417,21 +421,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -441,33 +444,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -475,7 +478,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -484,68 +487,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -777,6 +785,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -788,7 +810,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1104,10 +1129,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1266,7 +1291,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1300,13 +1325,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1324,6 +1353,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1480,7 +1510,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1506,17 +1536,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1524,6 +1565,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1630,6 +1672,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1645,7 +1688,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 125 - 59
packages/base/postgres/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,62 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -704,6 +718,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -785,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -796,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1106,11 +1149,16 @@ ifeq ($(CPU_TARGET),powerpc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1275,7 +1323,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1309,13 +1357,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1333,6 +1385,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1489,7 +1542,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1515,17 +1568,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1533,6 +1597,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1639,6 +1704,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1654,7 +1720,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/pthreads/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -256,6 +262,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -269,28 +285,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -416,21 +420,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -440,33 +443,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -474,7 +477,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -483,68 +486,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -776,6 +784,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -787,7 +809,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1103,10 +1128,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1265,7 +1290,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1281,13 +1306,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1305,6 +1334,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1461,7 +1491,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1487,17 +1517,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1505,6 +1546,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1611,6 +1653,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1626,7 +1669,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/regexpr/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -418,21 +422,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -442,33 +445,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -476,7 +479,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -485,68 +488,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -778,6 +786,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -789,7 +811,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1105,10 +1130,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1267,7 +1292,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1301,13 +1326,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1325,6 +1354,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1481,7 +1511,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1507,17 +1537,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1525,6 +1566,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1631,6 +1673,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1646,7 +1689,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/base/sqlite/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -256,6 +262,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -269,28 +285,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -416,21 +420,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -440,33 +443,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -474,7 +477,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -483,68 +486,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -776,6 +784,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -787,7 +809,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1103,10 +1128,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1265,7 +1290,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1281,13 +1306,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1305,6 +1334,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1461,7 +1491,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1487,17 +1517,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1505,6 +1546,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1611,6 +1653,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1626,7 +1669,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 176 - 84
packages/extra/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -290,6 +296,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -303,28 +319,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -450,21 +454,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -474,33 +477,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -508,7 +511,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -517,68 +520,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -810,6 +818,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -821,7 +843,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1137,10 +1162,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1305,7 +1330,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1331,17 +1356,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1349,6 +1385,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1615,6 +1652,8 @@ unzip_smart:
 	$(MAKE) -C unzip smart
 	$(MAKE) -C unzip smart
 unzip_release:
 unzip_release:
 	$(MAKE) -C unzip release
 	$(MAKE) -C unzip release
+unzip_units:
+	$(MAKE) -C unzip units
 unzip_examples:
 unzip_examples:
 	$(MAKE) -C unzip examples
 	$(MAKE) -C unzip examples
 unzip_shared:
 unzip_shared:
@@ -1647,7 +1686,7 @@ unzip_makefiles:
 	$(MAKE) -C unzip makefiles
 	$(MAKE) -C unzip makefiles
 unzip:
 unzip:
 	$(MAKE) -C unzip all
 	$(MAKE) -C unzip all
-.PHONY: unzip_all unzip_debug unzip_smart unzip_release unzip_examples unzip_shared unzip_install unzip_sourceinstall unzip_exampleinstall unzip_distinstall unzip_zipinstall unzip_zipsourceinstall unzip_zipexampleinstall unzip_zipdistinstall unzip_clean unzip_distclean unzip_cleanall unzip_info unzip_makefiles unzip
+.PHONY: unzip_all unzip_debug unzip_smart unzip_release unzip_units unzip_examples unzip_shared unzip_install unzip_sourceinstall unzip_exampleinstall unzip_distinstall unzip_zipinstall unzip_zipsourceinstall unzip_zipexampleinstall unzip_zipdistinstall unzip_clean unzip_distclean unzip_cleanall unzip_info unzip_makefiles unzip
 endif
 endif
 ifdef TARGET_DIRS_X11
 ifdef TARGET_DIRS_X11
 x11_all:
 x11_all:
@@ -1658,6 +1697,8 @@ x11_smart:
 	$(MAKE) -C x11 smart
 	$(MAKE) -C x11 smart
 x11_release:
 x11_release:
 	$(MAKE) -C x11 release
 	$(MAKE) -C x11 release
+x11_units:
+	$(MAKE) -C x11 units
 x11_examples:
 x11_examples:
 	$(MAKE) -C x11 examples
 	$(MAKE) -C x11 examples
 x11_shared:
 x11_shared:
@@ -1690,7 +1731,7 @@ x11_makefiles:
 	$(MAKE) -C x11 makefiles
 	$(MAKE) -C x11 makefiles
 x11:
 x11:
 	$(MAKE) -C x11 all
 	$(MAKE) -C x11 all
-.PHONY: x11_all x11_debug x11_smart x11_release x11_examples x11_shared x11_install x11_sourceinstall x11_exampleinstall x11_distinstall x11_zipinstall x11_zipsourceinstall x11_zipexampleinstall x11_zipdistinstall x11_clean x11_distclean x11_cleanall x11_info x11_makefiles x11
+.PHONY: x11_all x11_debug x11_smart x11_release x11_units x11_examples x11_shared x11_install x11_sourceinstall x11_exampleinstall x11_distinstall x11_zipinstall x11_zipsourceinstall x11_zipexampleinstall x11_zipdistinstall x11_clean x11_distclean x11_cleanall x11_info x11_makefiles x11
 endif
 endif
 ifdef TARGET_DIRS_OPENGL
 ifdef TARGET_DIRS_OPENGL
 opengl_all:
 opengl_all:
@@ -1701,6 +1742,8 @@ opengl_smart:
 	$(MAKE) -C opengl smart
 	$(MAKE) -C opengl smart
 opengl_release:
 opengl_release:
 	$(MAKE) -C opengl release
 	$(MAKE) -C opengl release
+opengl_units:
+	$(MAKE) -C opengl units
 opengl_examples:
 opengl_examples:
 	$(MAKE) -C opengl examples
 	$(MAKE) -C opengl examples
 opengl_shared:
 opengl_shared:
@@ -1733,7 +1776,7 @@ opengl_makefiles:
 	$(MAKE) -C opengl makefiles
 	$(MAKE) -C opengl makefiles
 opengl:
 opengl:
 	$(MAKE) -C opengl all
 	$(MAKE) -C opengl all
-.PHONY: opengl_all opengl_debug opengl_smart opengl_release opengl_examples opengl_shared opengl_install opengl_sourceinstall opengl_exampleinstall opengl_distinstall opengl_zipinstall opengl_zipsourceinstall opengl_zipexampleinstall opengl_zipdistinstall opengl_clean opengl_distclean opengl_cleanall opengl_info opengl_makefiles opengl
+.PHONY: opengl_all opengl_debug opengl_smart opengl_release opengl_units opengl_examples opengl_shared opengl_install opengl_sourceinstall opengl_exampleinstall opengl_distinstall opengl_zipinstall opengl_zipsourceinstall opengl_zipexampleinstall opengl_zipdistinstall opengl_clean opengl_distclean opengl_cleanall opengl_info opengl_makefiles opengl
 endif
 endif
 ifdef TARGET_DIRS_GTK
 ifdef TARGET_DIRS_GTK
 gtk_all:
 gtk_all:
@@ -1744,6 +1787,8 @@ gtk_smart:
 	$(MAKE) -C gtk smart
 	$(MAKE) -C gtk smart
 gtk_release:
 gtk_release:
 	$(MAKE) -C gtk release
 	$(MAKE) -C gtk release
+gtk_units:
+	$(MAKE) -C gtk units
 gtk_examples:
 gtk_examples:
 	$(MAKE) -C gtk examples
 	$(MAKE) -C gtk examples
 gtk_shared:
 gtk_shared:
@@ -1776,7 +1821,7 @@ gtk_makefiles:
 	$(MAKE) -C gtk makefiles
 	$(MAKE) -C gtk makefiles
 gtk:
 gtk:
 	$(MAKE) -C gtk all
 	$(MAKE) -C gtk all
-.PHONY: gtk_all gtk_debug gtk_smart gtk_release gtk_examples gtk_shared gtk_install gtk_sourceinstall gtk_exampleinstall gtk_distinstall gtk_zipinstall gtk_zipsourceinstall gtk_zipexampleinstall gtk_zipdistinstall gtk_clean gtk_distclean gtk_cleanall gtk_info gtk_makefiles gtk
+.PHONY: gtk_all gtk_debug gtk_smart gtk_release gtk_units gtk_examples gtk_shared gtk_install gtk_sourceinstall gtk_exampleinstall gtk_distinstall gtk_zipinstall gtk_zipsourceinstall gtk_zipexampleinstall gtk_zipdistinstall gtk_clean gtk_distclean gtk_cleanall gtk_info gtk_makefiles gtk
 endif
 endif
 ifdef TARGET_DIRS_SYSLOG
 ifdef TARGET_DIRS_SYSLOG
 syslog_all:
 syslog_all:
@@ -1787,6 +1832,8 @@ syslog_smart:
 	$(MAKE) -C syslog smart
 	$(MAKE) -C syslog smart
 syslog_release:
 syslog_release:
 	$(MAKE) -C syslog release
 	$(MAKE) -C syslog release
+syslog_units:
+	$(MAKE) -C syslog units
 syslog_examples:
 syslog_examples:
 	$(MAKE) -C syslog examples
 	$(MAKE) -C syslog examples
 syslog_shared:
 syslog_shared:
@@ -1819,7 +1866,7 @@ syslog_makefiles:
 	$(MAKE) -C syslog makefiles
 	$(MAKE) -C syslog makefiles
 syslog:
 syslog:
 	$(MAKE) -C syslog all
 	$(MAKE) -C syslog all
-.PHONY: syslog_all syslog_debug syslog_smart syslog_release syslog_examples syslog_shared syslog_install syslog_sourceinstall syslog_exampleinstall syslog_distinstall syslog_zipinstall syslog_zipsourceinstall syslog_zipexampleinstall syslog_zipdistinstall syslog_clean syslog_distclean syslog_cleanall syslog_info syslog_makefiles syslog
+.PHONY: syslog_all syslog_debug syslog_smart syslog_release syslog_units syslog_examples syslog_shared syslog_install syslog_sourceinstall syslog_exampleinstall syslog_distinstall syslog_zipinstall syslog_zipsourceinstall syslog_zipexampleinstall syslog_zipdistinstall syslog_clean syslog_distclean syslog_cleanall syslog_info syslog_makefiles syslog
 endif
 endif
 ifdef TARGET_DIRS_FORMS
 ifdef TARGET_DIRS_FORMS
 forms_all:
 forms_all:
@@ -1830,6 +1877,8 @@ forms_smart:
 	$(MAKE) -C forms smart
 	$(MAKE) -C forms smart
 forms_release:
 forms_release:
 	$(MAKE) -C forms release
 	$(MAKE) -C forms release
+forms_units:
+	$(MAKE) -C forms units
 forms_examples:
 forms_examples:
 	$(MAKE) -C forms examples
 	$(MAKE) -C forms examples
 forms_shared:
 forms_shared:
@@ -1862,7 +1911,7 @@ forms_makefiles:
 	$(MAKE) -C forms makefiles
 	$(MAKE) -C forms makefiles
 forms:
 forms:
 	$(MAKE) -C forms all
 	$(MAKE) -C forms all
-.PHONY: forms_all forms_debug forms_smart forms_release forms_examples forms_shared forms_install forms_sourceinstall forms_exampleinstall forms_distinstall forms_zipinstall forms_zipsourceinstall forms_zipexampleinstall forms_zipdistinstall forms_clean forms_distclean forms_cleanall forms_info forms_makefiles forms
+.PHONY: forms_all forms_debug forms_smart forms_release forms_units forms_examples forms_shared forms_install forms_sourceinstall forms_exampleinstall forms_distinstall forms_zipinstall forms_zipsourceinstall forms_zipexampleinstall forms_zipdistinstall forms_clean forms_distclean forms_cleanall forms_info forms_makefiles forms
 endif
 endif
 ifdef TARGET_DIRS_SVGALIB
 ifdef TARGET_DIRS_SVGALIB
 svgalib_all:
 svgalib_all:
@@ -1873,6 +1922,8 @@ svgalib_smart:
 	$(MAKE) -C svgalib smart
 	$(MAKE) -C svgalib smart
 svgalib_release:
 svgalib_release:
 	$(MAKE) -C svgalib release
 	$(MAKE) -C svgalib release
+svgalib_units:
+	$(MAKE) -C svgalib units
 svgalib_examples:
 svgalib_examples:
 	$(MAKE) -C svgalib examples
 	$(MAKE) -C svgalib examples
 svgalib_shared:
 svgalib_shared:
@@ -1905,7 +1956,7 @@ svgalib_makefiles:
 	$(MAKE) -C svgalib makefiles
 	$(MAKE) -C svgalib makefiles
 svgalib:
 svgalib:
 	$(MAKE) -C svgalib all
 	$(MAKE) -C svgalib all
-.PHONY: svgalib_all svgalib_debug svgalib_smart svgalib_release svgalib_examples svgalib_shared svgalib_install svgalib_sourceinstall svgalib_exampleinstall svgalib_distinstall svgalib_zipinstall svgalib_zipsourceinstall svgalib_zipexampleinstall svgalib_zipdistinstall svgalib_clean svgalib_distclean svgalib_cleanall svgalib_info svgalib_makefiles svgalib
+.PHONY: svgalib_all svgalib_debug svgalib_smart svgalib_release svgalib_units svgalib_examples svgalib_shared svgalib_install svgalib_sourceinstall svgalib_exampleinstall svgalib_distinstall svgalib_zipinstall svgalib_zipsourceinstall svgalib_zipexampleinstall svgalib_zipdistinstall svgalib_clean svgalib_distclean svgalib_cleanall svgalib_info svgalib_makefiles svgalib
 endif
 endif
 ifdef TARGET_DIRS_GGI
 ifdef TARGET_DIRS_GGI
 ggi_all:
 ggi_all:
@@ -1916,6 +1967,8 @@ ggi_smart:
 	$(MAKE) -C ggi smart
 	$(MAKE) -C ggi smart
 ggi_release:
 ggi_release:
 	$(MAKE) -C ggi release
 	$(MAKE) -C ggi release
+ggi_units:
+	$(MAKE) -C ggi units
 ggi_examples:
 ggi_examples:
 	$(MAKE) -C ggi examples
 	$(MAKE) -C ggi examples
 ggi_shared:
 ggi_shared:
@@ -1948,7 +2001,7 @@ ggi_makefiles:
 	$(MAKE) -C ggi makefiles
 	$(MAKE) -C ggi makefiles
 ggi:
 ggi:
 	$(MAKE) -C ggi all
 	$(MAKE) -C ggi all
-.PHONY: ggi_all ggi_debug ggi_smart ggi_release ggi_examples ggi_shared ggi_install ggi_sourceinstall ggi_exampleinstall ggi_distinstall ggi_zipinstall ggi_zipsourceinstall ggi_zipexampleinstall ggi_zipdistinstall ggi_clean ggi_distclean ggi_cleanall ggi_info ggi_makefiles ggi
+.PHONY: ggi_all ggi_debug ggi_smart ggi_release ggi_units ggi_examples ggi_shared ggi_install ggi_sourceinstall ggi_exampleinstall ggi_distinstall ggi_zipinstall ggi_zipsourceinstall ggi_zipexampleinstall ggi_zipdistinstall ggi_clean ggi_distclean ggi_cleanall ggi_info ggi_makefiles ggi
 endif
 endif
 ifdef TARGET_DIRS_LIBPNG
 ifdef TARGET_DIRS_LIBPNG
 libpng_all:
 libpng_all:
@@ -1959,6 +2012,8 @@ libpng_smart:
 	$(MAKE) -C libpng smart
 	$(MAKE) -C libpng smart
 libpng_release:
 libpng_release:
 	$(MAKE) -C libpng release
 	$(MAKE) -C libpng release
+libpng_units:
+	$(MAKE) -C libpng units
 libpng_examples:
 libpng_examples:
 	$(MAKE) -C libpng examples
 	$(MAKE) -C libpng examples
 libpng_shared:
 libpng_shared:
@@ -1991,7 +2046,7 @@ libpng_makefiles:
 	$(MAKE) -C libpng makefiles
 	$(MAKE) -C libpng makefiles
 libpng:
 libpng:
 	$(MAKE) -C libpng all
 	$(MAKE) -C libpng all
-.PHONY: libpng_all libpng_debug libpng_smart libpng_release libpng_examples libpng_shared libpng_install libpng_sourceinstall libpng_exampleinstall libpng_distinstall libpng_zipinstall libpng_zipsourceinstall libpng_zipexampleinstall libpng_zipdistinstall libpng_clean libpng_distclean libpng_cleanall libpng_info libpng_makefiles libpng
+.PHONY: libpng_all libpng_debug libpng_smart libpng_release libpng_units libpng_examples libpng_shared libpng_install libpng_sourceinstall libpng_exampleinstall libpng_distinstall libpng_zipinstall libpng_zipsourceinstall libpng_zipexampleinstall libpng_zipdistinstall libpng_clean libpng_distclean libpng_cleanall libpng_info libpng_makefiles libpng
 endif
 endif
 ifdef TARGET_DIRS_LIBGD
 ifdef TARGET_DIRS_LIBGD
 libgd_all:
 libgd_all:
@@ -2002,6 +2057,8 @@ libgd_smart:
 	$(MAKE) -C libgd smart
 	$(MAKE) -C libgd smart
 libgd_release:
 libgd_release:
 	$(MAKE) -C libgd release
 	$(MAKE) -C libgd release
+libgd_units:
+	$(MAKE) -C libgd units
 libgd_examples:
 libgd_examples:
 	$(MAKE) -C libgd examples
 	$(MAKE) -C libgd examples
 libgd_shared:
 libgd_shared:
@@ -2034,7 +2091,7 @@ libgd_makefiles:
 	$(MAKE) -C libgd makefiles
 	$(MAKE) -C libgd makefiles
 libgd:
 libgd:
 	$(MAKE) -C libgd all
 	$(MAKE) -C libgd all
-.PHONY: libgd_all libgd_debug libgd_smart libgd_release libgd_examples libgd_shared libgd_install libgd_sourceinstall libgd_exampleinstall libgd_distinstall libgd_zipinstall libgd_zipsourceinstall libgd_zipexampleinstall libgd_zipdistinstall libgd_clean libgd_distclean libgd_cleanall libgd_info libgd_makefiles libgd
+.PHONY: libgd_all libgd_debug libgd_smart libgd_release libgd_units libgd_examples libgd_shared libgd_install libgd_sourceinstall libgd_exampleinstall libgd_distinstall libgd_zipinstall libgd_zipsourceinstall libgd_zipexampleinstall libgd_zipdistinstall libgd_clean libgd_distclean libgd_cleanall libgd_info libgd_makefiles libgd
 endif
 endif
 ifdef TARGET_DIRS_UTMP
 ifdef TARGET_DIRS_UTMP
 utmp_all:
 utmp_all:
@@ -2045,6 +2102,8 @@ utmp_smart:
 	$(MAKE) -C utmp smart
 	$(MAKE) -C utmp smart
 utmp_release:
 utmp_release:
 	$(MAKE) -C utmp release
 	$(MAKE) -C utmp release
+utmp_units:
+	$(MAKE) -C utmp units
 utmp_examples:
 utmp_examples:
 	$(MAKE) -C utmp examples
 	$(MAKE) -C utmp examples
 utmp_shared:
 utmp_shared:
@@ -2077,7 +2136,7 @@ utmp_makefiles:
 	$(MAKE) -C utmp makefiles
 	$(MAKE) -C utmp makefiles
 utmp:
 utmp:
 	$(MAKE) -C utmp all
 	$(MAKE) -C utmp all
-.PHONY: utmp_all utmp_debug utmp_smart utmp_release utmp_examples utmp_shared utmp_install utmp_sourceinstall utmp_exampleinstall utmp_distinstall utmp_zipinstall utmp_zipsourceinstall utmp_zipexampleinstall utmp_zipdistinstall utmp_clean utmp_distclean utmp_cleanall utmp_info utmp_makefiles utmp
+.PHONY: utmp_all utmp_debug utmp_smart utmp_release utmp_units utmp_examples utmp_shared utmp_install utmp_sourceinstall utmp_exampleinstall utmp_distinstall utmp_zipinstall utmp_zipsourceinstall utmp_zipexampleinstall utmp_zipdistinstall utmp_clean utmp_distclean utmp_cleanall utmp_info utmp_makefiles utmp
 endif
 endif
 ifdef TARGET_DIRS_BFD
 ifdef TARGET_DIRS_BFD
 bfd_all:
 bfd_all:
@@ -2088,6 +2147,8 @@ bfd_smart:
 	$(MAKE) -C bfd smart
 	$(MAKE) -C bfd smart
 bfd_release:
 bfd_release:
 	$(MAKE) -C bfd release
 	$(MAKE) -C bfd release
+bfd_units:
+	$(MAKE) -C bfd units
 bfd_examples:
 bfd_examples:
 	$(MAKE) -C bfd examples
 	$(MAKE) -C bfd examples
 bfd_shared:
 bfd_shared:
@@ -2120,7 +2181,7 @@ bfd_makefiles:
 	$(MAKE) -C bfd makefiles
 	$(MAKE) -C bfd makefiles
 bfd:
 bfd:
 	$(MAKE) -C bfd all
 	$(MAKE) -C bfd all
-.PHONY: bfd_all bfd_debug bfd_smart bfd_release bfd_examples bfd_shared bfd_install bfd_sourceinstall bfd_exampleinstall bfd_distinstall bfd_zipinstall bfd_zipsourceinstall bfd_zipexampleinstall bfd_zipdistinstall bfd_clean bfd_distclean bfd_cleanall bfd_info bfd_makefiles bfd
+.PHONY: bfd_all bfd_debug bfd_smart bfd_release bfd_units bfd_examples bfd_shared bfd_install bfd_sourceinstall bfd_exampleinstall bfd_distinstall bfd_zipinstall bfd_zipsourceinstall bfd_zipexampleinstall bfd_zipdistinstall bfd_clean bfd_distclean bfd_cleanall bfd_info bfd_makefiles bfd
 endif
 endif
 ifdef TARGET_DIRS_ZLIB
 ifdef TARGET_DIRS_ZLIB
 zlib_all:
 zlib_all:
@@ -2131,6 +2192,8 @@ zlib_smart:
 	$(MAKE) -C zlib smart
 	$(MAKE) -C zlib smart
 zlib_release:
 zlib_release:
 	$(MAKE) -C zlib release
 	$(MAKE) -C zlib release
+zlib_units:
+	$(MAKE) -C zlib units
 zlib_examples:
 zlib_examples:
 	$(MAKE) -C zlib examples
 	$(MAKE) -C zlib examples
 zlib_shared:
 zlib_shared:
@@ -2163,7 +2226,7 @@ zlib_makefiles:
 	$(MAKE) -C zlib makefiles
 	$(MAKE) -C zlib makefiles
 zlib:
 zlib:
 	$(MAKE) -C zlib all
 	$(MAKE) -C zlib all
-.PHONY: zlib_all zlib_debug zlib_smart zlib_release zlib_examples zlib_shared zlib_install zlib_sourceinstall zlib_exampleinstall zlib_distinstall zlib_zipinstall zlib_zipsourceinstall zlib_zipexampleinstall zlib_zipdistinstall zlib_clean zlib_distclean zlib_cleanall zlib_info zlib_makefiles zlib
+.PHONY: zlib_all zlib_debug zlib_smart zlib_release zlib_units zlib_examples zlib_shared zlib_install zlib_sourceinstall zlib_exampleinstall zlib_distinstall zlib_zipinstall zlib_zipsourceinstall zlib_zipexampleinstall zlib_zipdistinstall zlib_clean zlib_distclean zlib_cleanall zlib_info zlib_makefiles zlib
 endif
 endif
 ifdef TARGET_DIRS_GDBM
 ifdef TARGET_DIRS_GDBM
 gdbm_all:
 gdbm_all:
@@ -2174,6 +2237,8 @@ gdbm_smart:
 	$(MAKE) -C gdbm smart
 	$(MAKE) -C gdbm smart
 gdbm_release:
 gdbm_release:
 	$(MAKE) -C gdbm release
 	$(MAKE) -C gdbm release
+gdbm_units:
+	$(MAKE) -C gdbm units
 gdbm_examples:
 gdbm_examples:
 	$(MAKE) -C gdbm examples
 	$(MAKE) -C gdbm examples
 gdbm_shared:
 gdbm_shared:
@@ -2206,7 +2271,7 @@ gdbm_makefiles:
 	$(MAKE) -C gdbm makefiles
 	$(MAKE) -C gdbm makefiles
 gdbm:
 gdbm:
 	$(MAKE) -C gdbm all
 	$(MAKE) -C gdbm all
-.PHONY: gdbm_all gdbm_debug gdbm_smart gdbm_release gdbm_examples gdbm_shared gdbm_install gdbm_sourceinstall gdbm_exampleinstall gdbm_distinstall gdbm_zipinstall gdbm_zipsourceinstall gdbm_zipexampleinstall gdbm_zipdistinstall gdbm_clean gdbm_distclean gdbm_cleanall gdbm_info gdbm_makefiles gdbm
+.PHONY: gdbm_all gdbm_debug gdbm_smart gdbm_release gdbm_units gdbm_examples gdbm_shared gdbm_install gdbm_sourceinstall gdbm_exampleinstall gdbm_distinstall gdbm_zipinstall gdbm_zipsourceinstall gdbm_zipexampleinstall gdbm_zipdistinstall gdbm_clean gdbm_distclean gdbm_cleanall gdbm_info gdbm_makefiles gdbm
 endif
 endif
 ifdef TARGET_DIRS_NCURSES
 ifdef TARGET_DIRS_NCURSES
 ncurses_all:
 ncurses_all:
@@ -2217,6 +2282,8 @@ ncurses_smart:
 	$(MAKE) -C ncurses smart
 	$(MAKE) -C ncurses smart
 ncurses_release:
 ncurses_release:
 	$(MAKE) -C ncurses release
 	$(MAKE) -C ncurses release
+ncurses_units:
+	$(MAKE) -C ncurses units
 ncurses_examples:
 ncurses_examples:
 	$(MAKE) -C ncurses examples
 	$(MAKE) -C ncurses examples
 ncurses_shared:
 ncurses_shared:
@@ -2249,7 +2316,7 @@ ncurses_makefiles:
 	$(MAKE) -C ncurses makefiles
 	$(MAKE) -C ncurses makefiles
 ncurses:
 ncurses:
 	$(MAKE) -C ncurses all
 	$(MAKE) -C ncurses all
-.PHONY: ncurses_all ncurses_debug ncurses_smart ncurses_release ncurses_examples ncurses_shared ncurses_install ncurses_sourceinstall ncurses_exampleinstall ncurses_distinstall ncurses_zipinstall ncurses_zipsourceinstall ncurses_zipexampleinstall ncurses_zipdistinstall ncurses_clean ncurses_distclean ncurses_cleanall ncurses_info ncurses_makefiles ncurses
+.PHONY: ncurses_all ncurses_debug ncurses_smart ncurses_release ncurses_units ncurses_examples ncurses_shared ncurses_install ncurses_sourceinstall ncurses_exampleinstall ncurses_distinstall ncurses_zipinstall ncurses_zipsourceinstall ncurses_zipexampleinstall ncurses_zipdistinstall ncurses_clean ncurses_distclean ncurses_cleanall ncurses_info ncurses_makefiles ncurses
 endif
 endif
 ifdef TARGET_DIRS_TCL
 ifdef TARGET_DIRS_TCL
 tcl_all:
 tcl_all:
@@ -2260,6 +2327,8 @@ tcl_smart:
 	$(MAKE) -C tcl smart
 	$(MAKE) -C tcl smart
 tcl_release:
 tcl_release:
 	$(MAKE) -C tcl release
 	$(MAKE) -C tcl release
+tcl_units:
+	$(MAKE) -C tcl units
 tcl_examples:
 tcl_examples:
 	$(MAKE) -C tcl examples
 	$(MAKE) -C tcl examples
 tcl_shared:
 tcl_shared:
@@ -2292,7 +2361,7 @@ tcl_makefiles:
 	$(MAKE) -C tcl makefiles
 	$(MAKE) -C tcl makefiles
 tcl:
 tcl:
 	$(MAKE) -C tcl all
 	$(MAKE) -C tcl all
-.PHONY: tcl_all tcl_debug tcl_smart tcl_release tcl_examples tcl_shared tcl_install tcl_sourceinstall tcl_exampleinstall tcl_distinstall tcl_zipinstall tcl_zipsourceinstall tcl_zipexampleinstall tcl_zipdistinstall tcl_clean tcl_distclean tcl_cleanall tcl_info tcl_makefiles tcl
+.PHONY: tcl_all tcl_debug tcl_smart tcl_release tcl_units tcl_examples tcl_shared tcl_install tcl_sourceinstall tcl_exampleinstall tcl_distinstall tcl_zipinstall tcl_zipsourceinstall tcl_zipexampleinstall tcl_zipdistinstall tcl_clean tcl_distclean tcl_cleanall tcl_info tcl_makefiles tcl
 endif
 endif
 ifdef TARGET_DIRS_CDROM
 ifdef TARGET_DIRS_CDROM
 cdrom_all:
 cdrom_all:
@@ -2303,6 +2372,8 @@ cdrom_smart:
 	$(MAKE) -C cdrom smart
 	$(MAKE) -C cdrom smart
 cdrom_release:
 cdrom_release:
 	$(MAKE) -C cdrom release
 	$(MAKE) -C cdrom release
+cdrom_units:
+	$(MAKE) -C cdrom units
 cdrom_examples:
 cdrom_examples:
 	$(MAKE) -C cdrom examples
 	$(MAKE) -C cdrom examples
 cdrom_shared:
 cdrom_shared:
@@ -2335,7 +2406,7 @@ cdrom_makefiles:
 	$(MAKE) -C cdrom makefiles
 	$(MAKE) -C cdrom makefiles
 cdrom:
 cdrom:
 	$(MAKE) -C cdrom all
 	$(MAKE) -C cdrom all
-.PHONY: cdrom_all cdrom_debug cdrom_smart cdrom_release cdrom_examples cdrom_shared cdrom_install cdrom_sourceinstall cdrom_exampleinstall cdrom_distinstall cdrom_zipinstall cdrom_zipsourceinstall cdrom_zipexampleinstall cdrom_zipdistinstall cdrom_clean cdrom_distclean cdrom_cleanall cdrom_info cdrom_makefiles cdrom
+.PHONY: cdrom_all cdrom_debug cdrom_smart cdrom_release cdrom_units cdrom_examples cdrom_shared cdrom_install cdrom_sourceinstall cdrom_exampleinstall cdrom_distinstall cdrom_zipinstall cdrom_zipsourceinstall cdrom_zipexampleinstall cdrom_zipdistinstall cdrom_clean cdrom_distclean cdrom_cleanall cdrom_info cdrom_makefiles cdrom
 endif
 endif
 ifdef TARGET_DIRS_IMLIB
 ifdef TARGET_DIRS_IMLIB
 imlib_all:
 imlib_all:
@@ -2346,6 +2417,8 @@ imlib_smart:
 	$(MAKE) -C imlib smart
 	$(MAKE) -C imlib smart
 imlib_release:
 imlib_release:
 	$(MAKE) -C imlib release
 	$(MAKE) -C imlib release
+imlib_units:
+	$(MAKE) -C imlib units
 imlib_examples:
 imlib_examples:
 	$(MAKE) -C imlib examples
 	$(MAKE) -C imlib examples
 imlib_shared:
 imlib_shared:
@@ -2378,7 +2451,7 @@ imlib_makefiles:
 	$(MAKE) -C imlib makefiles
 	$(MAKE) -C imlib makefiles
 imlib:
 imlib:
 	$(MAKE) -C imlib all
 	$(MAKE) -C imlib all
-.PHONY: imlib_all imlib_debug imlib_smart imlib_release imlib_examples imlib_shared imlib_install imlib_sourceinstall imlib_exampleinstall imlib_distinstall imlib_zipinstall imlib_zipsourceinstall imlib_zipexampleinstall imlib_zipdistinstall imlib_clean imlib_distclean imlib_cleanall imlib_info imlib_makefiles imlib
+.PHONY: imlib_all imlib_debug imlib_smart imlib_release imlib_units imlib_examples imlib_shared imlib_install imlib_sourceinstall imlib_exampleinstall imlib_distinstall imlib_zipinstall imlib_zipsourceinstall imlib_zipexampleinstall imlib_zipdistinstall imlib_clean imlib_distclean imlib_cleanall imlib_info imlib_makefiles imlib
 endif
 endif
 ifdef TARGET_DIRS_GNOME1
 ifdef TARGET_DIRS_GNOME1
 gnome1_all:
 gnome1_all:
@@ -2389,6 +2462,8 @@ gnome1_smart:
 	$(MAKE) -C gnome1 smart
 	$(MAKE) -C gnome1 smart
 gnome1_release:
 gnome1_release:
 	$(MAKE) -C gnome1 release
 	$(MAKE) -C gnome1 release
+gnome1_units:
+	$(MAKE) -C gnome1 units
 gnome1_examples:
 gnome1_examples:
 	$(MAKE) -C gnome1 examples
 	$(MAKE) -C gnome1 examples
 gnome1_shared:
 gnome1_shared:
@@ -2421,7 +2496,7 @@ gnome1_makefiles:
 	$(MAKE) -C gnome1 makefiles
 	$(MAKE) -C gnome1 makefiles
 gnome1:
 gnome1:
 	$(MAKE) -C gnome1 all
 	$(MAKE) -C gnome1 all
-.PHONY: gnome1_all gnome1_debug gnome1_smart gnome1_release gnome1_examples gnome1_shared gnome1_install gnome1_sourceinstall gnome1_exampleinstall gnome1_distinstall gnome1_zipinstall gnome1_zipsourceinstall gnome1_zipexampleinstall gnome1_zipdistinstall gnome1_clean gnome1_distclean gnome1_cleanall gnome1_info gnome1_makefiles gnome1
+.PHONY: gnome1_all gnome1_debug gnome1_smart gnome1_release gnome1_units gnome1_examples gnome1_shared gnome1_install gnome1_sourceinstall gnome1_exampleinstall gnome1_distinstall gnome1_zipinstall gnome1_zipsourceinstall gnome1_zipexampleinstall gnome1_zipdistinstall gnome1_clean gnome1_distclean gnome1_cleanall gnome1_info gnome1_makefiles gnome1
 endif
 endif
 ifdef TARGET_DIRS_FPGTK
 ifdef TARGET_DIRS_FPGTK
 fpgtk_all:
 fpgtk_all:
@@ -2432,6 +2507,8 @@ fpgtk_smart:
 	$(MAKE) -C fpgtk smart
 	$(MAKE) -C fpgtk smart
 fpgtk_release:
 fpgtk_release:
 	$(MAKE) -C fpgtk release
 	$(MAKE) -C fpgtk release
+fpgtk_units:
+	$(MAKE) -C fpgtk units
 fpgtk_examples:
 fpgtk_examples:
 	$(MAKE) -C fpgtk examples
 	$(MAKE) -C fpgtk examples
 fpgtk_shared:
 fpgtk_shared:
@@ -2464,7 +2541,7 @@ fpgtk_makefiles:
 	$(MAKE) -C fpgtk makefiles
 	$(MAKE) -C fpgtk makefiles
 fpgtk:
 fpgtk:
 	$(MAKE) -C fpgtk all
 	$(MAKE) -C fpgtk all
-.PHONY: fpgtk_all fpgtk_debug fpgtk_smart fpgtk_release fpgtk_examples fpgtk_shared fpgtk_install fpgtk_sourceinstall fpgtk_exampleinstall fpgtk_distinstall fpgtk_zipinstall fpgtk_zipsourceinstall fpgtk_zipexampleinstall fpgtk_zipdistinstall fpgtk_clean fpgtk_distclean fpgtk_cleanall fpgtk_info fpgtk_makefiles fpgtk
+.PHONY: fpgtk_all fpgtk_debug fpgtk_smart fpgtk_release fpgtk_units fpgtk_examples fpgtk_shared fpgtk_install fpgtk_sourceinstall fpgtk_exampleinstall fpgtk_distinstall fpgtk_zipinstall fpgtk_zipsourceinstall fpgtk_zipexampleinstall fpgtk_zipdistinstall fpgtk_clean fpgtk_distclean fpgtk_cleanall fpgtk_info fpgtk_makefiles fpgtk
 endif
 endif
 ifdef TARGET_DIRS_UNIXUTIL
 ifdef TARGET_DIRS_UNIXUTIL
 unixutil_all:
 unixutil_all:
@@ -2475,6 +2552,8 @@ unixutil_smart:
 	$(MAKE) -C unixutil smart
 	$(MAKE) -C unixutil smart
 unixutil_release:
 unixutil_release:
 	$(MAKE) -C unixutil release
 	$(MAKE) -C unixutil release
+unixutil_units:
+	$(MAKE) -C unixutil units
 unixutil_examples:
 unixutil_examples:
 	$(MAKE) -C unixutil examples
 	$(MAKE) -C unixutil examples
 unixutil_shared:
 unixutil_shared:
@@ -2507,7 +2586,7 @@ unixutil_makefiles:
 	$(MAKE) -C unixutil makefiles
 	$(MAKE) -C unixutil makefiles
 unixutil:
 unixutil:
 	$(MAKE) -C unixutil all
 	$(MAKE) -C unixutil all
-.PHONY: unixutil_all unixutil_debug unixutil_smart unixutil_release unixutil_examples unixutil_shared unixutil_install unixutil_sourceinstall unixutil_exampleinstall unixutil_distinstall unixutil_zipinstall unixutil_zipsourceinstall unixutil_zipexampleinstall unixutil_zipdistinstall unixutil_clean unixutil_distclean unixutil_cleanall unixutil_info unixutil_makefiles unixutil
+.PHONY: unixutil_all unixutil_debug unixutil_smart unixutil_release unixutil_units unixutil_examples unixutil_shared unixutil_install unixutil_sourceinstall unixutil_exampleinstall unixutil_distinstall unixutil_zipinstall unixutil_zipsourceinstall unixutil_zipexampleinstall unixutil_zipdistinstall unixutil_clean unixutil_distclean unixutil_cleanall unixutil_info unixutil_makefiles unixutil
 endif
 endif
 ifdef TARGET_DIRS_MMSYSTEM
 ifdef TARGET_DIRS_MMSYSTEM
 mmsystem_all:
 mmsystem_all:
@@ -2518,6 +2597,8 @@ mmsystem_smart:
 	$(MAKE) -C mmsystem smart
 	$(MAKE) -C mmsystem smart
 mmsystem_release:
 mmsystem_release:
 	$(MAKE) -C mmsystem release
 	$(MAKE) -C mmsystem release
+mmsystem_units:
+	$(MAKE) -C mmsystem units
 mmsystem_examples:
 mmsystem_examples:
 	$(MAKE) -C mmsystem examples
 	$(MAKE) -C mmsystem examples
 mmsystem_shared:
 mmsystem_shared:
@@ -2550,7 +2631,7 @@ mmsystem_makefiles:
 	$(MAKE) -C mmsystem makefiles
 	$(MAKE) -C mmsystem makefiles
 mmsystem:
 mmsystem:
 	$(MAKE) -C mmsystem all
 	$(MAKE) -C mmsystem all
-.PHONY: mmsystem_all mmsystem_debug mmsystem_smart mmsystem_release mmsystem_examples mmsystem_shared mmsystem_install mmsystem_sourceinstall mmsystem_exampleinstall mmsystem_distinstall mmsystem_zipinstall mmsystem_zipsourceinstall mmsystem_zipexampleinstall mmsystem_zipdistinstall mmsystem_clean mmsystem_distclean mmsystem_cleanall mmsystem_info mmsystem_makefiles mmsystem
+.PHONY: mmsystem_all mmsystem_debug mmsystem_smart mmsystem_release mmsystem_units mmsystem_examples mmsystem_shared mmsystem_install mmsystem_sourceinstall mmsystem_exampleinstall mmsystem_distinstall mmsystem_zipinstall mmsystem_zipsourceinstall mmsystem_zipexampleinstall mmsystem_zipdistinstall mmsystem_clean mmsystem_distclean mmsystem_cleanall mmsystem_info mmsystem_makefiles mmsystem
 endif
 endif
 ifdef TARGET_DIRS_WINVER
 ifdef TARGET_DIRS_WINVER
 winver_all:
 winver_all:
@@ -2561,6 +2642,8 @@ winver_smart:
 	$(MAKE) -C winver smart
 	$(MAKE) -C winver smart
 winver_release:
 winver_release:
 	$(MAKE) -C winver release
 	$(MAKE) -C winver release
+winver_units:
+	$(MAKE) -C winver units
 winver_examples:
 winver_examples:
 	$(MAKE) -C winver examples
 	$(MAKE) -C winver examples
 winver_shared:
 winver_shared:
@@ -2593,7 +2676,7 @@ winver_makefiles:
 	$(MAKE) -C winver makefiles
 	$(MAKE) -C winver makefiles
 winver:
 winver:
 	$(MAKE) -C winver all
 	$(MAKE) -C winver all
-.PHONY: winver_all winver_debug winver_smart winver_release winver_examples winver_shared winver_install winver_sourceinstall winver_exampleinstall winver_distinstall winver_zipinstall winver_zipsourceinstall winver_zipexampleinstall winver_zipdistinstall winver_clean winver_distclean winver_cleanall winver_info winver_makefiles winver
+.PHONY: winver_all winver_debug winver_smart winver_release winver_units winver_examples winver_shared winver_install winver_sourceinstall winver_exampleinstall winver_distinstall winver_zipinstall winver_zipsourceinstall winver_zipexampleinstall winver_zipdistinstall winver_clean winver_distclean winver_cleanall winver_info winver_makefiles winver
 endif
 endif
 ifdef TARGET_DIRS_OS2UNITS
 ifdef TARGET_DIRS_OS2UNITS
 os2units_all:
 os2units_all:
@@ -2604,6 +2687,8 @@ os2units_smart:
 	$(MAKE) -C os2units smart
 	$(MAKE) -C os2units smart
 os2units_release:
 os2units_release:
 	$(MAKE) -C os2units release
 	$(MAKE) -C os2units release
+os2units_units:
+	$(MAKE) -C os2units units
 os2units_examples:
 os2units_examples:
 	$(MAKE) -C os2units examples
 	$(MAKE) -C os2units examples
 os2units_shared:
 os2units_shared:
@@ -2636,7 +2721,7 @@ os2units_makefiles:
 	$(MAKE) -C os2units makefiles
 	$(MAKE) -C os2units makefiles
 os2units:
 os2units:
 	$(MAKE) -C os2units all
 	$(MAKE) -C os2units all
-.PHONY: os2units_all os2units_debug os2units_smart os2units_release os2units_examples os2units_shared os2units_install os2units_sourceinstall os2units_exampleinstall os2units_distinstall os2units_zipinstall os2units_zipsourceinstall os2units_zipexampleinstall os2units_zipdistinstall os2units_clean os2units_distclean os2units_cleanall os2units_info os2units_makefiles os2units
+.PHONY: os2units_all os2units_debug os2units_smart os2units_release os2units_units os2units_examples os2units_shared os2units_install os2units_sourceinstall os2units_exampleinstall os2units_distinstall os2units_zipinstall os2units_zipsourceinstall os2units_zipexampleinstall os2units_zipdistinstall os2units_clean os2units_distclean os2units_cleanall os2units_info os2units_makefiles os2units
 endif
 endif
 ifdef TARGET_DIRS_REXX
 ifdef TARGET_DIRS_REXX
 rexx_all:
 rexx_all:
@@ -2647,6 +2732,8 @@ rexx_smart:
 	$(MAKE) -C rexx smart
 	$(MAKE) -C rexx smart
 rexx_release:
 rexx_release:
 	$(MAKE) -C rexx release
 	$(MAKE) -C rexx release
+rexx_units:
+	$(MAKE) -C rexx units
 rexx_examples:
 rexx_examples:
 	$(MAKE) -C rexx examples
 	$(MAKE) -C rexx examples
 rexx_shared:
 rexx_shared:
@@ -2679,7 +2766,7 @@ rexx_makefiles:
 	$(MAKE) -C rexx makefiles
 	$(MAKE) -C rexx makefiles
 rexx:
 rexx:
 	$(MAKE) -C rexx all
 	$(MAKE) -C rexx all
-.PHONY: rexx_all rexx_debug rexx_smart rexx_release rexx_examples rexx_shared rexx_install rexx_sourceinstall rexx_exampleinstall rexx_distinstall rexx_zipinstall rexx_zipsourceinstall rexx_zipexampleinstall rexx_zipdistinstall rexx_clean rexx_distclean rexx_cleanall rexx_info rexx_makefiles rexx
+.PHONY: rexx_all rexx_debug rexx_smart rexx_release rexx_units rexx_examples rexx_shared rexx_install rexx_sourceinstall rexx_exampleinstall rexx_distinstall rexx_zipinstall rexx_zipsourceinstall rexx_zipexampleinstall rexx_zipdistinstall rexx_clean rexx_distclean rexx_cleanall rexx_info rexx_makefiles rexx
 endif
 endif
 ifdef TARGET_DIRS_AMUNITS
 ifdef TARGET_DIRS_AMUNITS
 amunits_all:
 amunits_all:
@@ -2690,6 +2777,8 @@ amunits_smart:
 	$(MAKE) -C amunits smart
 	$(MAKE) -C amunits smart
 amunits_release:
 amunits_release:
 	$(MAKE) -C amunits release
 	$(MAKE) -C amunits release
+amunits_units:
+	$(MAKE) -C amunits units
 amunits_examples:
 amunits_examples:
 	$(MAKE) -C amunits examples
 	$(MAKE) -C amunits examples
 amunits_shared:
 amunits_shared:
@@ -2722,7 +2811,7 @@ amunits_makefiles:
 	$(MAKE) -C amunits makefiles
 	$(MAKE) -C amunits makefiles
 amunits:
 amunits:
 	$(MAKE) -C amunits all
 	$(MAKE) -C amunits all
-.PHONY: amunits_all amunits_debug amunits_smart amunits_release amunits_examples amunits_shared amunits_install amunits_sourceinstall amunits_exampleinstall amunits_distinstall amunits_zipinstall amunits_zipsourceinstall amunits_zipexampleinstall amunits_zipdistinstall amunits_clean amunits_distclean amunits_cleanall amunits_info amunits_makefiles amunits
+.PHONY: amunits_all amunits_debug amunits_smart amunits_release amunits_units amunits_examples amunits_shared amunits_install amunits_sourceinstall amunits_exampleinstall amunits_distinstall amunits_zipinstall amunits_zipsourceinstall amunits_zipexampleinstall amunits_zipdistinstall amunits_clean amunits_distclean amunits_cleanall amunits_info amunits_makefiles amunits
 endif
 endif
 ifdef TARGET_DIRS_PALMUNITS
 ifdef TARGET_DIRS_PALMUNITS
 palmunits_all:
 palmunits_all:
@@ -2733,6 +2822,8 @@ palmunits_smart:
 	$(MAKE) -C palmunits smart
 	$(MAKE) -C palmunits smart
 palmunits_release:
 palmunits_release:
 	$(MAKE) -C palmunits release
 	$(MAKE) -C palmunits release
+palmunits_units:
+	$(MAKE) -C palmunits units
 palmunits_examples:
 palmunits_examples:
 	$(MAKE) -C palmunits examples
 	$(MAKE) -C palmunits examples
 palmunits_shared:
 palmunits_shared:
@@ -2765,12 +2856,13 @@ palmunits_makefiles:
 	$(MAKE) -C palmunits makefiles
 	$(MAKE) -C palmunits makefiles
 palmunits:
 palmunits:
 	$(MAKE) -C palmunits all
 	$(MAKE) -C palmunits all
-.PHONY: palmunits_all palmunits_debug palmunits_smart palmunits_release palmunits_examples palmunits_shared palmunits_install palmunits_sourceinstall palmunits_exampleinstall palmunits_distinstall palmunits_zipinstall palmunits_zipsourceinstall palmunits_zipexampleinstall palmunits_zipdistinstall palmunits_clean palmunits_distclean palmunits_cleanall palmunits_info palmunits_makefiles palmunits
+.PHONY: palmunits_all palmunits_debug palmunits_smart palmunits_release palmunits_units palmunits_examples palmunits_shared palmunits_install palmunits_sourceinstall palmunits_exampleinstall palmunits_distinstall palmunits_zipinstall palmunits_zipsourceinstall palmunits_zipexampleinstall palmunits_zipdistinstall palmunits_clean palmunits_distclean palmunits_cleanall palmunits_info palmunits_makefiles palmunits
 endif
 endif
 all: $(addsuffix _all,$(TARGET_DIRS))
 all: $(addsuffix _all,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
@@ -2786,7 +2878,7 @@ distclean: $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 101 - 60
packages/extra/amunits/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -219,7 +225,6 @@ override TARGET_DIRS+=units utilunits
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_INCLUDEDIR+=inc
 override COMPILER_INCLUDEDIR+=inc
 override COMPILER_SOURCEDIR+=units utilunits
 override COMPILER_SOURCEDIR+=units utilunits
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -259,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -272,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -419,21 +422,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -443,33 +445,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -477,7 +479,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -486,68 +488,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -779,6 +786,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -790,7 +811,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1106,10 +1130,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1419,7 +1443,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1445,17 +1469,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1463,6 +1498,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1576,6 +1612,8 @@ units_smart:
 	$(MAKE) -C units smart
 	$(MAKE) -C units smart
 units_release:
 units_release:
 	$(MAKE) -C units release
 	$(MAKE) -C units release
+units_units:
+	$(MAKE) -C units units
 units_examples:
 units_examples:
 	$(MAKE) -C units examples
 	$(MAKE) -C units examples
 units_shared:
 units_shared:
@@ -1608,7 +1646,7 @@ units_makefiles:
 	$(MAKE) -C units makefiles
 	$(MAKE) -C units makefiles
 units:
 units:
 	$(MAKE) -C units all
 	$(MAKE) -C units all
-.PHONY: units_all units_debug units_smart units_release units_examples units_shared units_install units_sourceinstall units_exampleinstall units_distinstall units_zipinstall units_zipsourceinstall units_zipexampleinstall units_zipdistinstall units_clean units_distclean units_cleanall units_info units_makefiles units
+.PHONY: units_all units_debug units_smart units_release units_units units_examples units_shared units_install units_sourceinstall units_exampleinstall units_distinstall units_zipinstall units_zipsourceinstall units_zipexampleinstall units_zipdistinstall units_clean units_distclean units_cleanall units_info units_makefiles units
 endif
 endif
 ifdef TARGET_DIRS_UTILUNITS
 ifdef TARGET_DIRS_UTILUNITS
 utilunits_all:
 utilunits_all:
@@ -1619,6 +1657,8 @@ utilunits_smart:
 	$(MAKE) -C utilunits smart
 	$(MAKE) -C utilunits smart
 utilunits_release:
 utilunits_release:
 	$(MAKE) -C utilunits release
 	$(MAKE) -C utilunits release
+utilunits_units:
+	$(MAKE) -C utilunits units
 utilunits_examples:
 utilunits_examples:
 	$(MAKE) -C utilunits examples
 	$(MAKE) -C utilunits examples
 utilunits_shared:
 utilunits_shared:
@@ -1651,12 +1691,13 @@ utilunits_makefiles:
 	$(MAKE) -C utilunits makefiles
 	$(MAKE) -C utilunits makefiles
 utilunits:
 utilunits:
 	$(MAKE) -C utilunits all
 	$(MAKE) -C utilunits all
-.PHONY: utilunits_all utilunits_debug utilunits_smart utilunits_release utilunits_examples utilunits_shared utilunits_install utilunits_sourceinstall utilunits_exampleinstall utilunits_distinstall utilunits_zipinstall utilunits_zipsourceinstall utilunits_zipexampleinstall utilunits_zipdistinstall utilunits_clean utilunits_distclean utilunits_cleanall utilunits_info utilunits_makefiles utilunits
+.PHONY: utilunits_all utilunits_debug utilunits_smart utilunits_release utilunits_units utilunits_examples utilunits_shared utilunits_install utilunits_sourceinstall utilunits_exampleinstall utilunits_distinstall utilunits_zipinstall utilunits_zipsourceinstall utilunits_zipexampleinstall utilunits_zipdistinstall utilunits_clean utilunits_distclean utilunits_cleanall utilunits_info utilunits_makefiles utilunits
 endif
 endif
 all: $(addsuffix _all,$(TARGET_DIRS))
 all: $(addsuffix _all,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
@@ -1672,7 +1713,7 @@ distclean: $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
packages/extra/amunits/Makefile.fpc

@@ -12,7 +12,6 @@ dirs=units utilunits
 [compiler]
 [compiler]
 sourcedir=units utilunits
 sourcedir=units utilunits
 includedir=inc
 includedir=inc
-targetdir=.
 
 
 [install]
 [install]
 fpcpackage=y
 fpcpackage=y

+ 102 - 60
packages/extra/amunits/units/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -220,7 +226,6 @@ override INSTALL_FPCPACKAGE=y
 override COMPILER_INCLUDEDIR+=../inc
 override COMPILER_INCLUDEDIR+=../inc
 override COMPILER_UNITDIR+=../utilunits
 override COMPILER_UNITDIR+=../utilunits
 override COMPILER_SOURCEDIR+=.
 override COMPILER_SOURCEDIR+=.
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -260,6 +265,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -273,28 +288,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -420,21 +423,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -444,33 +446,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -478,7 +480,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -487,68 +489,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -780,6 +787,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -791,7 +812,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1107,10 +1131,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1269,7 +1293,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1285,13 +1309,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1309,6 +1337,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1465,7 +1494,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1491,17 +1520,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1509,6 +1549,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1615,6 +1656,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1630,7 +1672,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 2
packages/extra/amunits/units/Makefile.fpc

@@ -8,7 +8,7 @@ version=1.0.10
 
 
 [target]
 [target]
 units=amigados amigaguide amigalib amigaprinter asl audio bootblock \
 units=amigados amigaguide amigalib amigaprinter asl audio bootblock \
-	bullet cd clipboard colorwheel commodities configregs configvars \	
+	bullet cd clipboard colorwheel commodities configregs configvars \
 	console conunit datatypes diskfont expansion expansionbase \
 	console conunit datatypes diskfont expansion expansionbase \
 	gadtools gameport gradientslider graphics hardblocks hardware \
 	gadtools gameport gradientslider graphics hardblocks hardware \
 	icon iffparse input inputevent intuition keyboard keymap layers \
 	icon iffparse input inputevent intuition keyboard keymap layers \
@@ -19,7 +19,6 @@ units=amigados amigaguide amigalib amigaprinter asl audio bootblock \
 [compiler]
 [compiler]
 sourcedir=.
 sourcedir=.
 includedir=../inc
 includedir=../inc
-targetdir=.
 unitdir=../utilunits
 unitdir=../utilunits
 
 
 
 

+ 102 - 60
packages/extra/amunits/utilunits/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -220,7 +226,6 @@ override INSTALL_FPCPACKAGE=y
 override COMPILER_INCLUDEDIR+=../inc
 override COMPILER_INCLUDEDIR+=../inc
 override COMPILER_UNITDIR+=../units
 override COMPILER_UNITDIR+=../units
 override COMPILER_SOURCEDIR+=.
 override COMPILER_SOURCEDIR+=.
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -260,6 +265,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -273,28 +288,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -420,21 +423,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -444,33 +446,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -478,7 +480,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -487,68 +489,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -780,6 +787,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -791,7 +812,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1107,10 +1131,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1269,7 +1293,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1285,13 +1309,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1309,6 +1337,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1465,7 +1494,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1491,17 +1520,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1509,6 +1549,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1615,6 +1656,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1630,7 +1672,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
packages/extra/amunits/utilunits/Makefile.fpc

@@ -15,7 +15,6 @@ units=amigautils consoleio deadkeys doublebuffer easyasl hisoft \
 [compiler]
 [compiler]
 sourcedir=.
 sourcedir=.
 includedir=../inc
 includedir=../inc
-targetdir=.
 unitdir=../units
 unitdir=../units
 
 
 [install]
 [install]

+ 102 - 59
packages/extra/bfd/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -256,6 +262,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -269,28 +285,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -416,21 +420,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -440,33 +443,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -474,7 +477,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -483,68 +486,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -776,6 +784,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -787,7 +809,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1103,10 +1128,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1265,7 +1290,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1281,13 +1306,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1305,6 +1334,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1461,7 +1491,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1487,17 +1517,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1505,6 +1546,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1611,6 +1653,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1626,7 +1669,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/extra/cdrom/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -263,6 +269,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -276,28 +292,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -423,21 +427,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -447,33 +450,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -481,7 +484,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -490,68 +493,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -783,6 +791,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -794,7 +816,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1110,10 +1135,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1272,7 +1297,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1306,13 +1331,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1330,6 +1359,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1486,7 +1516,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1512,17 +1542,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1530,6 +1571,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1636,6 +1678,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1651,7 +1694,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 110 - 63
packages/extra/forms/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -258,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -444,21 +448,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -468,33 +471,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -502,7 +505,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -511,68 +514,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -804,6 +812,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -815,7 +837,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1164,10 +1189,10 @@ REQUIRE_PACKAGES_X11=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1192,8 +1217,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1358,8 +1383,9 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1373,7 +1399,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1407,13 +1434,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1431,6 +1462,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1587,7 +1619,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1613,17 +1645,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1631,6 +1674,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1743,6 +1787,8 @@ demo_smart:
 	$(MAKE) -C demo smart
 	$(MAKE) -C demo smart
 demo_release:
 demo_release:
 	$(MAKE) -C demo release
 	$(MAKE) -C demo release
+demo_units:
+	$(MAKE) -C demo units
 demo_examples:
 demo_examples:
 	$(MAKE) -C demo examples
 	$(MAKE) -C demo examples
 demo_shared:
 demo_shared:
@@ -1775,12 +1821,13 @@ demo_makefiles:
 	$(MAKE) -C demo makefiles
 	$(MAKE) -C demo makefiles
 demo:
 demo:
 	$(MAKE) -C demo all
 	$(MAKE) -C demo all
-.PHONY: demo_all demo_debug demo_smart demo_release demo_examples demo_shared demo_install demo_sourceinstall demo_exampleinstall demo_distinstall demo_zipinstall demo_zipsourceinstall demo_zipexampleinstall demo_zipdistinstall demo_clean demo_distclean demo_cleanall demo_info demo_makefiles demo
+.PHONY: demo_all demo_debug demo_smart demo_release demo_units demo_examples demo_shared demo_install demo_sourceinstall demo_exampleinstall demo_distinstall demo_zipinstall demo_zipsourceinstall demo_zipexampleinstall demo_zipdistinstall demo_clean demo_distclean demo_cleanall demo_info demo_makefiles demo
 endif
 endif
 all: fpc_all
 all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1796,7 +1843,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 108 - 63
packages/extra/forms/demo/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -254,6 +260,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -267,28 +283,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -440,21 +444,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -464,33 +467,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -498,7 +501,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -507,68 +510,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -800,6 +808,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -811,7 +833,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1193,10 +1218,10 @@ REQUIRE_PACKAGES_FORMS=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1221,8 +1246,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1247,8 +1272,8 @@ endif
 ifdef REQUIRE_PACKAGES_FORMS
 ifdef REQUIRE_PACKAGES_FORMS
 PACKAGEDIR_FORMS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /forms/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FORMS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /forms/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FORMS),)
 ifneq ($(PACKAGEDIR_FORMS),)
-ifneq ($(wildcard $(PACKAGEDIR_FORMS)/$(OS_TARGET)),)
-UNITDIR_FORMS=$(PACKAGEDIR_FORMS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FORMS)/units/$(FULL_TARGET)),)
+UNITDIR_FORMS=$(PACKAGEDIR_FORMS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FORMS=$(PACKAGEDIR_FORMS)
 UNITDIR_FORMS=$(PACKAGEDIR_FORMS)
 endif
 endif
@@ -1406,6 +1431,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1419,7 +1445,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1435,13 +1462,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1459,6 +1490,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1536,7 +1568,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1562,17 +1594,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1580,6 +1623,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1686,6 +1730,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1701,7 +1746,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 169 - 99
packages/extra/fpgtk/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,68 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -803,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -814,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -975,6 +1000,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -992,6 +1018,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1009,6 +1036,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1026,6 +1054,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1043,6 +1072,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1060,6 +1090,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1073,7 +1104,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1088,6 +1118,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
@@ -1101,7 +1132,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1118,6 +1148,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1135,6 +1166,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1152,6 +1184,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1165,7 +1198,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1181,6 +1213,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1197,6 +1230,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1213,6 +1247,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1229,6 +1264,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1242,7 +1278,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1255,7 +1290,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1268,7 +1302,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1281,7 +1314,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1294,7 +1326,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1307,7 +1338,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1323,6 +1353,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1339,6 +1370,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
@@ -1352,7 +1384,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1365,7 +1396,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1378,7 +1408,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1395,6 +1424,7 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1407,7 +1437,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1420,7 +1449,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1433,7 +1461,6 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1446,17 +1473,16 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1481,8 +1507,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1507,8 +1533,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1533,8 +1559,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1559,8 +1585,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1585,8 +1611,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
 endif
@@ -1611,8 +1637,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1637,8 +1663,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1663,8 +1689,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1686,11 +1712,37 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
 ifdef REQUIRE_PACKAGES_MYSQL
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
 endif
@@ -1715,8 +1767,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1741,8 +1793,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1767,8 +1819,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1933,7 +1985,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1949,13 +2001,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1973,6 +2029,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -2129,7 +2186,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -2155,17 +2212,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -2173,6 +2241,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2279,6 +2348,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -2294,7 +2364,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 267 - 126
packages/extra/fpgtk/demo/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/23]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -441,21 +445,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -465,33 +468,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -499,7 +502,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -508,57 +511,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
+endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -697,6 +716,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
@@ -778,6 +809,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -789,7 +834,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -950,8 +998,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -968,8 +1017,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -986,8 +1036,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1004,8 +1055,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1022,8 +1074,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1040,8 +1093,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1069,8 +1123,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1100,8 +1155,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1118,8 +1174,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1136,8 +1193,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1166,8 +1224,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1183,8 +1242,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1200,8 +1260,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1217,8 +1278,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1312,8 +1374,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1329,8 +1392,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_X11=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
@@ -1386,8 +1450,9 @@ REQUIRE_PACKAGES_FCL=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_GTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_FPGTK=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_PASJPEG=1
-REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
@@ -1418,11 +1483,37 @@ REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_OPENGL=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+ifeq ($(CPU_TARGET),powerpc)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_FPGTK=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
+endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_GTK=1
+REQUIRE_PACKAGES_FPGTK=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1447,8 +1538,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
 endif
@@ -1473,8 +1564,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
 endif
@@ -1499,8 +1590,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
 endif
@@ -1525,8 +1616,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
 endif
@@ -1551,8 +1642,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
 endif
@@ -1577,8 +1668,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1603,8 +1694,8 @@ endif
 ifdef REQUIRE_PACKAGES_FPGTK
 ifdef REQUIRE_PACKAGES_FPGTK
 PACKAGEDIR_FPGTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fpgtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FPGTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fpgtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FPGTK),)
 ifneq ($(PACKAGEDIR_FPGTK),)
-ifneq ($(wildcard $(PACKAGEDIR_FPGTK)/$(OS_TARGET)),)
-UNITDIR_FPGTK=$(PACKAGEDIR_FPGTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FPGTK)/units/$(FULL_TARGET)),)
+UNITDIR_FPGTK=$(PACKAGEDIR_FPGTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_FPGTK=$(PACKAGEDIR_FPGTK)
 UNITDIR_FPGTK=$(PACKAGEDIR_FPGTK)
 endif
 endif
@@ -1629,8 +1720,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
 endif
@@ -1652,37 +1743,11 @@ ifdef UNITDIR_PASJPEG
 override COMPILER_UNITDIR+=$(UNITDIR_PASJPEG)
 override COMPILER_UNITDIR+=$(UNITDIR_PASJPEG)
 endif
 endif
 endif
 endif
-ifdef REQUIRE_PACKAGES_MYSQL
-PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
-else
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_MYSQL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_MYSQL=
-UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_MYSQL),)
-UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL))
-else
-UNITDIR_MYSQL=
-endif
-endif
-ifdef UNITDIR_MYSQL
-override COMPILER_UNITDIR+=$(UNITDIR_MYSQL)
-endif
-endif
 ifdef REQUIRE_PACKAGES_IBASE
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
 endif
@@ -1704,11 +1769,63 @@ ifdef UNITDIR_IBASE
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
 endif
 endif
 endif
 endif
+ifdef REQUIRE_PACKAGES_POSTGRES
+PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_POSTGRES),)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
+else
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_POSTGRES)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_POSTGRES) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_POSTGRES)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_POSTGRES=
+UNITDIR_POSTGRES:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /postgres/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_POSTGRES),)
+UNITDIR_POSTGRES:=$(firstword $(UNITDIR_POSTGRES))
+else
+UNITDIR_POSTGRES=
+endif
+endif
+ifdef UNITDIR_POSTGRES
+override COMPILER_UNITDIR+=$(UNITDIR_POSTGRES)
+endif
+endif
+ifdef REQUIRE_PACKAGES_MYSQL
+PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_MYSQL),)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
+else
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_MYSQL)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_MYSQL=
+UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_MYSQL),)
+UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL))
+else
+UNITDIR_MYSQL=
+endif
+endif
+ifdef UNITDIR_MYSQL
+override COMPILER_UNITDIR+=$(UNITDIR_MYSQL)
+endif
+endif
 ifdef REQUIRE_PACKAGES_SQLITE
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
 endif
@@ -1733,8 +1850,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1759,8 +1876,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1918,6 +2035,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1931,7 +2049,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1946,19 +2065,26 @@ fpc_debug:
 	$(MAKE) all DEBUG=1
 	$(MAKE) all DEBUG=1
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
+%$(EXEEXT): %.lpr
+	$(COMPILER) $<
+	$(EXECPPAS)
 %$(EXEEXT): %.dpr
 %$(EXEEXT): %.dpr
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
@@ -1966,7 +2092,9 @@ fpc_release:
 	windres -i $< -o $@
 	windres -i $< -o $@
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -2044,7 +2172,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -2070,17 +2198,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -2088,6 +2227,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -2194,6 +2334,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -2209,7 +2350,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/extra/gdbm/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -417,21 +421,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -441,33 +444,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -475,7 +478,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -484,68 +487,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -777,6 +785,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -788,7 +810,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1104,10 +1129,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1266,7 +1291,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1300,13 +1325,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1324,6 +1353,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1480,7 +1510,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1506,17 +1536,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1524,6 +1565,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1630,6 +1672,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1645,7 +1688,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 102 - 59
packages/extra/ggi/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -257,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -270,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -443,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -467,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -501,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -510,68 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -803,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -814,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1130,10 +1155,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1298,7 +1323,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1332,13 +1357,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1356,6 +1385,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1512,7 +1542,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1538,17 +1568,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1556,6 +1597,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1662,6 +1704,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1677,7 +1720,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 104 - 60
packages/extra/gnome1/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -415,21 +419,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -439,33 +442,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -473,7 +476,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -482,68 +485,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -775,6 +783,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -786,7 +808,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1102,10 +1127,10 @@ REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1270,7 +1295,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1296,17 +1321,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1314,6 +1350,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1428,6 +1465,8 @@ gnome_smart:
 	$(MAKE) -C gnome smart
 	$(MAKE) -C gnome smart
 gnome_release:
 gnome_release:
 	$(MAKE) -C gnome release
 	$(MAKE) -C gnome release
+gnome_units:
+	$(MAKE) -C gnome units
 gnome_examples:
 gnome_examples:
 	$(MAKE) -C gnome examples
 	$(MAKE) -C gnome examples
 gnome_shared:
 gnome_shared:
@@ -1460,7 +1499,7 @@ gnome_makefiles:
 	$(MAKE) -C gnome makefiles
 	$(MAKE) -C gnome makefiles
 gnome:
 gnome:
 	$(MAKE) -C gnome all
 	$(MAKE) -C gnome all
-.PHONY: gnome_all gnome_debug gnome_smart gnome_release gnome_examples gnome_shared gnome_install gnome_sourceinstall gnome_exampleinstall gnome_distinstall gnome_zipinstall gnome_zipsourceinstall gnome_zipexampleinstall gnome_zipdistinstall gnome_clean gnome_distclean gnome_cleanall gnome_info gnome_makefiles gnome
+.PHONY: gnome_all gnome_debug gnome_smart gnome_release gnome_units gnome_examples gnome_shared gnome_install gnome_sourceinstall gnome_exampleinstall gnome_distinstall gnome_zipinstall gnome_zipsourceinstall gnome_zipexampleinstall gnome_zipdistinstall gnome_clean gnome_distclean gnome_cleanall gnome_info gnome_makefiles gnome
 endif
 endif
 ifdef TARGET_DIRS_GCONF
 ifdef TARGET_DIRS_GCONF
 gconf_all:
 gconf_all:
@@ -1471,6 +1510,8 @@ gconf_smart:
 	$(MAKE) -C gconf smart
 	$(MAKE) -C gconf smart
 gconf_release:
 gconf_release:
 	$(MAKE) -C gconf release
 	$(MAKE) -C gconf release
+gconf_units:
+	$(MAKE) -C gconf units
 gconf_examples:
 gconf_examples:
 	$(MAKE) -C gconf examples
 	$(MAKE) -C gconf examples
 gconf_shared:
 gconf_shared:
@@ -1503,7 +1544,7 @@ gconf_makefiles:
 	$(MAKE) -C gconf makefiles
 	$(MAKE) -C gconf makefiles
 gconf:
 gconf:
 	$(MAKE) -C gconf all
 	$(MAKE) -C gconf all
-.PHONY: gconf_all gconf_debug gconf_smart gconf_release gconf_examples gconf_shared gconf_install gconf_sourceinstall gconf_exampleinstall gconf_distinstall gconf_zipinstall gconf_zipsourceinstall gconf_zipexampleinstall gconf_zipdistinstall gconf_clean gconf_distclean gconf_cleanall gconf_info gconf_makefiles gconf
+.PHONY: gconf_all gconf_debug gconf_smart gconf_release gconf_units gconf_examples gconf_shared gconf_install gconf_sourceinstall gconf_exampleinstall gconf_distinstall gconf_zipinstall gconf_zipsourceinstall gconf_zipexampleinstall gconf_zipdistinstall gconf_clean gconf_distclean gconf_cleanall gconf_info gconf_makefiles gconf
 endif
 endif
 ifdef TARGET_DIRS_ZVT
 ifdef TARGET_DIRS_ZVT
 zvt_all:
 zvt_all:
@@ -1514,6 +1555,8 @@ zvt_smart:
 	$(MAKE) -C zvt smart
 	$(MAKE) -C zvt smart
 zvt_release:
 zvt_release:
 	$(MAKE) -C zvt release
 	$(MAKE) -C zvt release
+zvt_units:
+	$(MAKE) -C zvt units
 zvt_examples:
 zvt_examples:
 	$(MAKE) -C zvt examples
 	$(MAKE) -C zvt examples
 zvt_shared:
 zvt_shared:
@@ -1546,12 +1589,13 @@ zvt_makefiles:
 	$(MAKE) -C zvt makefiles
 	$(MAKE) -C zvt makefiles
 zvt:
 zvt:
 	$(MAKE) -C zvt all
 	$(MAKE) -C zvt all
-.PHONY: zvt_all zvt_debug zvt_smart zvt_release zvt_examples zvt_shared zvt_install zvt_sourceinstall zvt_exampleinstall zvt_distinstall zvt_zipinstall zvt_zipsourceinstall zvt_zipexampleinstall zvt_zipdistinstall zvt_clean zvt_distclean zvt_cleanall zvt_info zvt_makefiles zvt
+.PHONY: zvt_all zvt_debug zvt_smart zvt_release zvt_units zvt_examples zvt_shared zvt_install zvt_sourceinstall zvt_exampleinstall zvt_distinstall zvt_zipinstall zvt_zipsourceinstall zvt_zipexampleinstall zvt_zipdistinstall zvt_clean zvt_distclean zvt_cleanall zvt_info zvt_makefiles zvt
 endif
 endif
 all: $(addsuffix _all,$(TARGET_DIRS))
 all: $(addsuffix _all,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
 release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 examples: $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
 install: $(addsuffix _install,$(TARGET_DIRS))
@@ -1567,7 +1611,7 @@ distclean: $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
 makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 111 - 67
packages/extra/gnome1/gconf/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -219,7 +225,6 @@ override TARGET_UNITS+=gconf gconfclient
 override TARGET_EXAMPLEDIRS+=examples
 override TARGET_EXAMPLEDIRS+=examples
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_SOURCEDIR+=gconf gconfclient
 override COMPILER_SOURCEDIR+=gconf gconfclient
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -259,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -272,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -445,21 +448,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -469,33 +471,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -503,7 +505,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -512,68 +514,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -805,6 +812,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -816,7 +837,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1213,10 +1237,10 @@ REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1241,8 +1265,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1267,8 +1291,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1293,8 +1317,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1459,7 +1483,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1493,13 +1517,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1517,6 +1545,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1673,7 +1702,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1699,17 +1728,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1717,6 +1757,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1829,6 +1870,8 @@ examples_smart:
 	$(MAKE) -C examples smart
 	$(MAKE) -C examples smart
 examples_release:
 examples_release:
 	$(MAKE) -C examples release
 	$(MAKE) -C examples release
+examples_units:
+	$(MAKE) -C examples units
 examples_examples:
 examples_examples:
 	$(MAKE) -C examples examples
 	$(MAKE) -C examples examples
 examples_shared:
 examples_shared:
@@ -1861,12 +1904,13 @@ examples_makefiles:
 	$(MAKE) -C examples makefiles
 	$(MAKE) -C examples makefiles
 examples:
 examples:
 	$(MAKE) -C examples all
 	$(MAKE) -C examples all
-.PHONY: examples_all examples_debug examples_smart examples_release examples_examples examples_shared examples_install examples_sourceinstall examples_exampleinstall examples_distinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_zipdistinstall examples_clean examples_distclean examples_cleanall examples_info examples_makefiles examples
+.PHONY: examples_all examples_debug examples_smart examples_release examples_units examples_examples examples_shared examples_install examples_sourceinstall examples_exampleinstall examples_distinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_zipdistinstall examples_clean examples_distclean examples_cleanall examples_info examples_makefiles examples
 endif
 endif
 all: fpc_all
 all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1882,7 +1926,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
packages/extra/gnome1/gconf/Makefile.fpc

@@ -16,7 +16,6 @@ exampledirs=examples
 
 
 [compiler]
 [compiler]
 sourcedir=gconf gconfclient
 sourcedir=gconf gconfclient
-targetdir=.
 
 
 [libs]
 [libs]
 libname=libfpgconf.so
 libname=libfpgconf.so

+ 112 - 67
packages/extra/gnome1/gconf/examples/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -441,21 +445,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -465,33 +468,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -499,7 +502,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -508,68 +511,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -801,6 +809,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -812,7 +834,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1242,10 +1267,10 @@ REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1270,8 +1295,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1296,8 +1321,8 @@ endif
 ifdef REQUIRE_PACKAGES_GNOME1/GCONF
 ifdef REQUIRE_PACKAGES_GNOME1/GCONF
 PACKAGEDIR_GNOME1/GCONF:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gnome1/gconf/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GNOME1/GCONF:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gnome1/gconf/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GNOME1/GCONF),)
 ifneq ($(PACKAGEDIR_GNOME1/GCONF),)
-ifneq ($(wildcard $(PACKAGEDIR_GNOME1/GCONF)/$(OS_TARGET)),)
-UNITDIR_GNOME1/GCONF=$(PACKAGEDIR_GNOME1/GCONF)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GNOME1/GCONF)/units/$(FULL_TARGET)),)
+UNITDIR_GNOME1/GCONF=$(PACKAGEDIR_GNOME1/GCONF)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GNOME1/GCONF=$(PACKAGEDIR_GNOME1/GCONF)
 UNITDIR_GNOME1/GCONF=$(PACKAGEDIR_GNOME1/GCONF)
 endif
 endif
@@ -1322,8 +1347,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1348,8 +1373,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1507,6 +1532,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1520,7 +1546,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1536,13 +1563,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1560,6 +1591,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1637,7 +1669,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1663,17 +1695,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1681,6 +1724,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1787,6 +1831,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1802,7 +1847,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 110 - 68
packages/extra/gnome1/gnome/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -218,7 +224,6 @@ override PACKAGE_VERSION=1.9.4
 override TARGET_UNITS+=libart libgnome libgnomeui
 override TARGET_UNITS+=libart libgnome libgnomeui
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_SOURCEDIR+=libart_lgpl libgnome libgnomeui
 override COMPILER_SOURCEDIR+=libart_lgpl libgnome libgnomeui
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -258,6 +263,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -271,28 +286,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -444,21 +447,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -468,33 +470,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -502,7 +504,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -511,68 +513,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -804,6 +811,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -815,7 +836,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1263,10 +1287,10 @@ REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1291,8 +1315,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1317,8 +1341,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1343,8 +1367,8 @@ endif
 ifdef REQUIRE_PACKAGES_IMLIB
 ifdef REQUIRE_PACKAGES_IMLIB
 PACKAGEDIR_IMLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /imlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IMLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /imlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IMLIB),)
 ifneq ($(PACKAGEDIR_IMLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_IMLIB)/$(OS_TARGET)),)
-UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IMLIB)/units/$(FULL_TARGET)),)
+UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)
 UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)
 endif
 endif
@@ -1369,8 +1393,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1535,7 +1559,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1551,13 +1575,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1575,6 +1603,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1731,7 +1760,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1757,17 +1786,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1775,6 +1815,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1881,6 +1922,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1896,7 +1938,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
packages/extra/gnome1/gnome/Makefile.fpc

@@ -15,7 +15,6 @@ units=libart libgnome libgnomeui
 
 
 [compiler]
 [compiler]
 sourcedir=libart_lgpl libgnome libgnomeui
 sourcedir=libart_lgpl libgnome libgnomeui
-targetdir=.
 
 
 [libs]
 [libs]
 libname=libfpgnome1.so
 libname=libfpgnome1.so

+ 113 - 69
packages/extra/gnome1/zvt/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -219,7 +225,6 @@ override TARGET_UNITS+=libzvt
 override TARGET_EXAMPLEDIRS+=examples
 override TARGET_EXAMPLEDIRS+=examples
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_SOURCEDIR+=zvt
 override COMPILER_SOURCEDIR+=zvt
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -259,6 +264,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -272,28 +287,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -445,21 +448,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -469,33 +471,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -503,7 +505,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -512,68 +514,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -805,6 +812,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -816,7 +837,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1264,10 +1288,10 @@ REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1292,8 +1316,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1318,8 +1342,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1344,8 +1368,8 @@ endif
 ifdef REQUIRE_PACKAGES_IMLIB
 ifdef REQUIRE_PACKAGES_IMLIB
 PACKAGEDIR_IMLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /imlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IMLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /imlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IMLIB),)
 ifneq ($(PACKAGEDIR_IMLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_IMLIB)/$(OS_TARGET)),)
-UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IMLIB)/units/$(FULL_TARGET)),)
+UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)
 UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)
 endif
 endif
@@ -1370,8 +1394,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1536,7 +1560,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1570,13 +1594,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1594,6 +1622,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1750,7 +1779,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1776,17 +1805,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1794,6 +1834,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1906,6 +1947,8 @@ examples_smart:
 	$(MAKE) -C examples smart
 	$(MAKE) -C examples smart
 examples_release:
 examples_release:
 	$(MAKE) -C examples release
 	$(MAKE) -C examples release
+examples_units:
+	$(MAKE) -C examples units
 examples_examples:
 examples_examples:
 	$(MAKE) -C examples examples
 	$(MAKE) -C examples examples
 examples_shared:
 examples_shared:
@@ -1938,12 +1981,13 @@ examples_makefiles:
 	$(MAKE) -C examples makefiles
 	$(MAKE) -C examples makefiles
 examples:
 examples:
 	$(MAKE) -C examples all
 	$(MAKE) -C examples all
-.PHONY: examples_all examples_debug examples_smart examples_release examples_examples examples_shared examples_install examples_sourceinstall examples_exampleinstall examples_distinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_zipdistinstall examples_clean examples_distclean examples_cleanall examples_info examples_makefiles examples
+.PHONY: examples_all examples_debug examples_smart examples_release examples_units examples_examples examples_shared examples_install examples_sourceinstall examples_exampleinstall examples_distinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_zipdistinstall examples_clean examples_distclean examples_cleanall examples_info examples_makefiles examples
 endif
 endif
 all: fpc_all
 all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples: fpc_examples
 examples: fpc_examples
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1959,7 +2003,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 0 - 1
packages/extra/gnome1/zvt/Makefile.fpc

@@ -16,7 +16,6 @@ exampledirs=examples
 
 
 [compiler]
 [compiler]
 sourcedir=zvt
 sourcedir=zvt
-targetdir=.
 
 
 [libs]
 [libs]
 libname=libfpzvt.so
 libname=libfpzvt.so

+ 116 - 71
packages/extra/gnome1/zvt/examples/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -255,6 +261,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -268,28 +284,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -441,21 +445,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -465,33 +468,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -499,7 +502,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -508,68 +511,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -801,6 +809,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -812,7 +834,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1326,10 +1351,10 @@ REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1354,8 +1379,8 @@ endif
 ifdef REQUIRE_PACKAGES_GTK
 ifdef REQUIRE_PACKAGES_GTK
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GTK:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GTK),)
 ifneq ($(PACKAGEDIR_GTK),)
-ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
-UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GTK)/units/$(FULL_TARGET)),)
+UNITDIR_GTK=$(PACKAGEDIR_GTK)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 UNITDIR_GTK=$(PACKAGEDIR_GTK)
 endif
 endif
@@ -1380,8 +1405,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1406,8 +1431,8 @@ endif
 ifdef REQUIRE_PACKAGES_IMLIB
 ifdef REQUIRE_PACKAGES_IMLIB
 PACKAGEDIR_IMLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /imlib/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_IMLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /imlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IMLIB),)
 ifneq ($(PACKAGEDIR_IMLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_IMLIB)/$(OS_TARGET)),)
-UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IMLIB)/units/$(FULL_TARGET)),)
+UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)
 UNITDIR_IMLIB=$(PACKAGEDIR_IMLIB)
 endif
 endif
@@ -1432,8 +1457,8 @@ endif
 ifdef REQUIRE_PACKAGES_GNOME1/ZVT
 ifdef REQUIRE_PACKAGES_GNOME1/ZVT
 PACKAGEDIR_GNOME1/ZVT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gnome1/zvt/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GNOME1/ZVT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gnome1/zvt/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GNOME1/ZVT),)
 ifneq ($(PACKAGEDIR_GNOME1/ZVT),)
-ifneq ($(wildcard $(PACKAGEDIR_GNOME1/ZVT)/$(OS_TARGET)),)
-UNITDIR_GNOME1/ZVT=$(PACKAGEDIR_GNOME1/ZVT)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GNOME1/ZVT)/units/$(FULL_TARGET)),)
+UNITDIR_GNOME1/ZVT=$(PACKAGEDIR_GNOME1/ZVT)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GNOME1/ZVT=$(PACKAGEDIR_GNOME1/ZVT)
 UNITDIR_GNOME1/ZVT=$(PACKAGEDIR_GNOME1/ZVT)
 endif
 endif
@@ -1458,8 +1483,8 @@ endif
 ifdef REQUIRE_PACKAGES_GNOME1/GNOME
 ifdef REQUIRE_PACKAGES_GNOME1/GNOME
 PACKAGEDIR_GNOME1/GNOME:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gnome1/gnome/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_GNOME1/GNOME:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gnome1/gnome/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_GNOME1/GNOME),)
 ifneq ($(PACKAGEDIR_GNOME1/GNOME),)
-ifneq ($(wildcard $(PACKAGEDIR_GNOME1/GNOME)/$(OS_TARGET)),)
-UNITDIR_GNOME1/GNOME=$(PACKAGEDIR_GNOME1/GNOME)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_GNOME1/GNOME)/units/$(FULL_TARGET)),)
+UNITDIR_GNOME1/GNOME=$(PACKAGEDIR_GNOME1/GNOME)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_GNOME1/GNOME=$(PACKAGEDIR_GNOME1/GNOME)
 UNITDIR_GNOME1/GNOME=$(PACKAGEDIR_GNOME1/GNOME)
 endif
 endif
@@ -1484,8 +1509,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1643,6 +1668,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_exes
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1656,7 +1682,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1672,13 +1699,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1696,6 +1727,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1773,7 +1805,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1799,17 +1831,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1817,6 +1860,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1923,6 +1967,7 @@ all: fpc_all
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units
 examples:
 examples:
 shared:
 shared:
 install: fpc_install
 install: fpc_install
@@ -1938,7 +1983,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 112 - 66
packages/extra/gtk/Makefile

@@ -1,10 +1,11 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/09/04]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/10/30]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -220,7 +226,6 @@ override TARGET_UNITS+=glib gmodule gdk gtk gdkpixbuf
 override TARGET_EXAMPLEDIRS+=examples
 override TARGET_EXAMPLEDIRS+=examples
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_SOURCEDIR+=glib gdk gtk
 override COMPILER_SOURCEDIR+=glib gdk gtk
-override COMPILER_TARGETDIR+=.
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
 endif
@@ -260,6 +265,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -273,28 +288,16 @@ endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -446,21 +449,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 STATICLIBPREFIX=libp
 RSTEXT=.rst
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 PACKAGESUFFIX=v1
 endif
 endif
 ifeq ($(OS_TARGET),go32v2)
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
 ifeq ($(OS_TARGET),watcom)
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 ZIPSUFFIX=watc
 OEXT=.obj
 OEXT=.obj
 ASMEXT=.asm
 ASMEXT=.asm
@@ -470,33 +472,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 ZIPSUFFIX=openbsd
 endif
 endif
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
@@ -504,7 +506,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
@@ -513,68 +515,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ZIPSUFFIX=emx
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),amiga)
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 endif
 ifeq ($(OS_TARGET),morphos)
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
 endif
 endif
 ifeq ($(OS_TARGET),netware)
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),netwlibc)
 ifeq ($(OS_TARGET),netwlibc)
 EXEEXT=.nlm
 EXEEXT=.nlm
 STATICLIBPREFIX=
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nwl
+FPCMADEEXT=nwl
 ZIPSUFFIX=nwl
 ZIPSUFFIX=nwl
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 ZIPSUFFIX=darwin
 endif
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 else
 ifeq ($(OS_TARGET),go32v1)
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
 PPUEXT=.pp1
@@ -806,6 +813,20 @@ MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command__
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
 ifndef inUnix
 ifndef inUnix
 ECHOREDIR=echo
 ECHOREDIR=echo
@@ -817,7 +838,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
 endif
 endif
 ifndef COPYTREE
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 endif
 ifndef MOVE
 ifndef MOVE
 MOVE:=$(MVPROG) -f
 MOVE:=$(MVPROG) -f
@@ -1181,10 +1205,10 @@ REQUIRE_PACKAGES_OPENGL=1
 endif
 endif
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
 endif
@@ -1209,8 +1233,8 @@ endif
 ifdef REQUIRE_PACKAGES_X11
 ifdef REQUIRE_PACKAGES_X11
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_X11),)
 ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(FULL_TARGET)),)
+UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_X11=$(PACKAGEDIR_X11)
 UNITDIR_X11=$(PACKAGEDIR_X11)
 endif
 endif
@@ -1235,8 +1259,8 @@ endif
 ifdef REQUIRE_PACKAGES_OPENGL
 ifdef REQUIRE_PACKAGES_OPENGL
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_OPENGL),)
 ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)),)
+UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(FULL_TARGET)
 else
 else
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
 endif
 endif
@@ -1401,7 +1425,7 @@ override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
 endif
 endif
-fpc_units: $(UNITPPUFILES)
+fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
 ifdef TARGET_RSTS
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1435,13 +1459,17 @@ fpc_debug:
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
@@ -1459,6 +1487,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1615,7 +1644,7 @@ endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -1641,17 +1670,28 @@ ifdef LIB_NAME
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 	-$(DEL) $(CLEANEXEFILES)
 endif
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
@@ -1659,6 +1699,7 @@ endif
 ifdef DEBUGSYMEXT
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1771,6 +1812,8 @@ gtkgl_smart:
 	$(MAKE) -C gtkgl smart
 	$(MAKE) -C gtkgl smart
 gtkgl_release:
 gtkgl_release:
 	$(MAKE) -C gtkgl release
 	$(MAKE) -C gtkgl release
+gtkgl_units:
+	$(MAKE) -C gtkgl units
 gtkgl_examples:
 gtkgl_examples:
 	$(MAKE) -C gtkgl examples
 	$(MAKE) -C gtkgl examples
 gtkgl_shared:
 gtkgl_shared:
@@ -1803,7 +1846,7 @@ gtkgl_makefiles:
 	$(MAKE) -C gtkgl makefiles
 	$(MAKE) -C gtkgl makefiles
 gtkgl:
 gtkgl:
 	$(MAKE) -C gtkgl all
 	$(MAKE) -C gtkgl all
-.PHONY: gtkgl_all gtkgl_debug gtkgl_smart gtkgl_release gtkgl_examples gtkgl_shared gtkgl_install gtkgl_sourceinstall gtkgl_exampleinstall gtkgl_distinstall gtkgl_zipinstall gtkgl_zipsourceinstall gtkgl_zipexampleinstall gtkgl_zipdistinstall gtkgl_clean gtkgl_distclean gtkgl_cleanall gtkgl_info gtkgl_makefiles gtkgl
+.PHONY: gtkgl_all gtkgl_debug gtkgl_smart gtkgl_release gtkgl_units gtkgl_examples gtkgl_shared gtkgl_install gtkgl_sourceinstall gtkgl_exampleinstall gtkgl_distinstall gtkgl_zipinstall gtkgl_zipsourceinstall gtkgl_zipexampleinstall gtkgl_zipdistinstall gtkgl_clean gtkgl_distclean gtkgl_cleanall gtkgl_info gtkgl_makefiles gtkgl
 endif
 endif
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 TARGET_EXAMPLEDIRS_EXAMPLES=1
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
 ifdef TARGET_EXAMPLEDIRS_EXAMPLES
@@ -1815,6 +1858,8 @@ examples_smart:
 	$(MAKE) -C examples smart
 	$(MAKE) -C examples smart
 examples_release:
 examples_release:
 	$(MAKE) -C examples release
 	$(MAKE) -C examples release
+examples_units:
+	$(MAKE) -C examples units
 examples_examples:
 examples_examples:
 	$(MAKE) -C examples examples
 	$(MAKE) -C examples examples
 examples_shared:
 examples_shared:
@@ -1847,12 +1892,13 @@ examples_makefiles:
 	$(MAKE) -C examples makefiles
 	$(MAKE) -C examples makefiles
 examples:
 examples:
 	$(MAKE) -C examples all
 	$(MAKE) -C examples all
-.PHONY: examples_all examples_debug examples_smart examples_release examples_examples examples_shared examples_install examples_sourceinstall examples_exampleinstall examples_distinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_zipdistinstall examples_clean examples_distclean examples_cleanall examples_info examples_makefiles examples
+.PHONY: examples_all examples_debug examples_smart examples_release examples_units examples_examples examples_shared examples_install examples_sourceinstall examples_exampleinstall examples_distinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_zipdistinstall examples_clean examples_distclean examples_cleanall examples_info examples_makefiles examples
 endif
 endif
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
 debug: fpc_debug
 debug: fpc_debug
 smart: fpc_smart
 smart: fpc_smart
 release: fpc_release
 release: fpc_release
+units: fpc_units $(addsuffix _units,$(TARGET_DIRS))
 examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
 examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 shared: $(addsuffix _shared,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
 install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
@@ -1868,7 +1914,7 @@ distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
 info: fpc_info
 info: fpc_info
 makefiles: fpc_makefiles
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif

+ 1 - 1
packages/extra/gtk/Makefile.fpc

@@ -16,7 +16,7 @@ exampledirs=examples
 
 
 [compiler]
 [compiler]
 sourcedir=glib gdk gtk
 sourcedir=glib gdk gtk
-targetdir=.
+
 
 
 [libs]
 [libs]
 libname=libfpgtk.so
 libname=libfpgtk.so

Some files were not shown because too many files changed in this diff