Browse Source

* New FPCMake update

peter 24 years ago
parent
commit
d9b97cc5bf
100 changed files with 11241 additions and 33831 deletions
  1. 49 88
      Makefile.fpc
  2. 181 543
      compiler/Makefile
  3. 20 28
      compiler/Makefile.fpc
  4. 189 544
      compiler/new/Makefile
  5. 69 48
      compiler/new/Makefile.fpc
  6. 843 732
      fcl/Makefile
  7. 24 12
      fcl/Makefile.fpc
  8. 232 586
      fcl/db/Makefile
  9. 14 20
      fcl/db/Makefile.fpc
  10. 227 556
      fcl/db/dbase/Makefile
  11. 7 10
      fcl/db/dbase/Makefile.fpc
  12. 246 454
      fcl/db/interbase/Makefile
  13. 8 9
      fcl/db/interbase/Makefile.fpc
  14. 221 481
      fcl/db/tests/Makefile
  15. 5 9
      fcl/db/tests/Makefile.fpc
  16. 0 1545
      fcl/freebsd/Makefile
  17. 0 48
      fcl/freebsd/Makefile.fpc
  18. 0 1450
      fcl/go32v2/Makefile
  19. 0 45
      fcl/go32v2/Makefile.fpc
  20. 10 8
      fcl/inc/zstream.pp
  21. 0 1547
      fcl/linux/Makefile
  22. 0 49
      fcl/linux/Makefile.fpc
  23. 0 1450
      fcl/os2/Makefile
  24. 0 45
      fcl/os2/Makefile.fpc
  25. 220 537
      fcl/shedit/Makefile
  26. 5 12
      fcl/shedit/Makefile.fpc
  27. 268 467
      fcl/shedit/gtk/Makefile
  28. 1 5
      fcl/shedit/gtk/Makefile.fpc
  29. 215 505
      fcl/tests/Makefile
  30. 5 11
      fcl/tests/Makefile.fpc
  31. 0 1452
      fcl/win32/Makefile
  32. 0 47
      fcl/win32/Makefile.fpc
  33. 220 537
      fcl/xml/Makefile
  34. 5 9
      fcl/xml/Makefile.fpc
  35. 553 386
      ide/Makefile
  36. 5 13
      ide/Makefile.fpc
  37. 626 215
      ide/fake/Makefile
  38. 1 4
      ide/fake/Makefile.fpc
  39. 164 518
      ide/fake/compiler/Makefile
  40. 2 2
      ide/fake/compiler/Makefile.fpc
  41. 164 518
      ide/fake/gdb/Makefile
  42. 3 3
      ide/fake/gdb/Makefile.fpc
  43. 218 543
      ide/text/Makefile
  44. 6 9
      ide/text/Makefile.fpc
  45. 171 564
      install/demo/Makefile
  46. 5 26
      install/demo/Makefile.fpc
  47. 168 576
      install/demo/graph/Makefile
  48. 4 14
      install/demo/graph/Makefile.fpc
  49. 165 535
      install/demo/linux/Makefile
  50. 1 5
      install/demo/linux/Makefile.fpc
  51. 165 535
      install/demo/modex/Makefile
  52. 1 5
      install/demo/modex/Makefile.fpc
  53. 151 532
      install/demo/os2/Makefile
  54. 5 8
      install/demo/os2/Makefile.fpc
  55. 164 534
      install/demo/text/Makefile
  56. 1 5
      install/demo/text/Makefile.fpc
  57. 165 535
      install/demo/win32/Makefile
  58. 1 5
      install/demo/win32/Makefile.fpc
  59. 184 486
      install/fpinst/Makefile
  60. 7 9
      install/fpinst/Makefile.fpc
  61. 7 7
      install/man/Makefile
  62. 769 1445
      packages/Makefile
  63. 7 44
      packages/Makefile.fpc
  64. 172 549
      packages/cmem/Makefile
  65. 6 11
      packages/cmem/Makefile.fpc
  66. 219 592
      packages/forms/Makefile
  67. 6 7
      packages/forms/Makefile.fpc
  68. 207 478
      packages/forms/demo/Makefile
  69. 2 8
      packages/forms/demo/Makefile.fpc
  70. 181 568
      packages/gdbint/Makefile
  71. 10 11
      packages/gdbint/Makefile.fpc
  72. 605 130
      packages/gdbint/libgdb/Makefile
  73. 187 549
      packages/ggi/Makefile
  74. 7 6
      packages/ggi/Makefile.fpc
  75. 190 555
      packages/gtk/Makefile
  76. 15 11
      packages/gtk/Makefile.fpc
  77. 203 590
      packages/gtk/examples/Makefile
  78. 1 9
      packages/gtk/examples/Makefile.fpc
  79. 170 593
      packages/gtk/examples/tutorial/Makefile
  80. 1 9
      packages/gtk/examples/tutorial/Makefile.fpc
  81. 187 549
      packages/ibase/Makefile
  82. 7 6
      packages/ibase/Makefile.fpc
  83. 172 549
      packages/inet/Makefile
  84. 5 12
      packages/inet/Makefile.fpc
  85. 187 549
      packages/mysql/Makefile
  86. 7 10
      packages/mysql/Makefile.fpc
  87. 187 549
      packages/ncurses/Makefile
  88. 7 11
      packages/ncurses/Makefile.fpc
  89. 228 467
      packages/opengl/Makefile
  90. 15 6
      packages/opengl/Makefile.fpc
  91. 233 445
      packages/opengl/build/Makefile
  92. 3 5
      packages/opengl/build/Makefile.fpc
  93. 204 492
      packages/opengl/examples/Makefile
  94. 1 9
      packages/opengl/examples/Makefile.fpc
  95. 199 505
      packages/opengl/gtkgl/Makefile
  96. 0 1272
      packages/opengl/linux/Makefile
  97. 0 15
      packages/opengl/linux/Makefile.fpc
  98. 0 1272
      packages/opengl/win32/Makefile
  99. 0 15
      packages/opengl/win32/Makefile.fpc
  100. 250 447
      packages/oracle/Makefile

+ 49 - 88
Makefile.fpc

@@ -2,40 +2,19 @@
 #   Makefile.fpc for Free Pascal Source Tree
 #
 
-[targets]
-dirs=compiler rtl utils fcl api fv packages ide
+[package]
+name=fpc
+version=1.0.5
 
-[defaults]
-defaultrule=help
+[target]
+dirs=compiler rtl utils fcl fv packages ide
 
-[tools]
-toolzip=1
-toolupx=1
-tooldate=1
+[default]
+rule=help
 
-[sections]
-none=1
-dirs=1
-tools=1
-exts=1
-clean=1
-zipinstall=1
-
-
-[presettings]
-OLDFPCDIR:=$(FPCDIR)
-
-checkfpcdir:
-ifdef OLDFPCDIR
-ifneq ($(OLDFPCDIR),)
-        @echo ---------------------------------------------------------
-        @echo
-        @echo   You must unset FPCDIR to use this the packaging rules.
-        @echo
-        @echo ---------------------------------------------------------
-        @cantcontinuewithfpcdir
-endif
-endif
+[prerules]
+override FPCDIR:=$(BASEDIR)
+export FPCDIR
 
 # Check if install/ subdir is available
 ifneq ($(wildcard install),)
@@ -44,6 +23,13 @@ else
 CVSINSTALL=.
 endif
 
+# Install target
+ifdef SNAPSHOT
+INSTALLTARGET=install
+else
+INSTALLTARGET=distinstall
+endif
+
 # All target
 ifdef SNAPSHOT
 ALLTARGET=all
@@ -58,8 +44,6 @@ else
 ifeq ($(OS_TARGET),linux)
 ALLTARGET=smart
 else
-ALLTARGET=all
-endif
 ifeq ($(OS_TARGET),freebsd)
 ALLTARGET=smart
 else
@@ -69,6 +53,7 @@ endif
 endif
 endif
 endif
+endif
 
 # Stop with an error?
 ifdef SNAPSHOT
@@ -81,21 +66,11 @@ endif
 ifeq ($(OS_TARGET),linux)
 PKGPRE=units
 else
-PKGPRE=u
-endif
 ifeq ($(OS_TARGET),freebsd)
 PKGPRE=units
 else
 PKGPRE=u
 endif
-
-# Test dir if none specified
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/tmp/pptest
-else
-PREFIXINSTALLDIR=/pptest
-endif
 endif
 
 # Always compile for release
@@ -140,10 +115,14 @@ endif
 endif
 endif
 
+
 [rules]
 # These values can change
 unexport FPC_VERSION OS_SOURCE
 
+# Only process directories that really exists
+override TARGET_DIRS:=$(wildcard $(TARGET_DIRS))
+
 #####################################################################
 # Main targets
 #####################################################################
@@ -154,7 +133,7 @@ help:
         @echo
         @echo Directory targets:
         @echo
-        @echo $(DIROBJECTS)
+        @echo $(TARGET_DIRS)
         @echo
         @echo Packing targets are:
         @echo
@@ -275,7 +254,7 @@ export RELEASE DESTZIPDIR
 
 all: build
 
-clean: $(addsuffix _distclean,$(DIROBJECTS))
+clean: $(addsuffix _distclean,$(TARGET_DIRS))
         $(DEL) build-stamp.$(OS_TARGET)
 
 distclean: clean
@@ -291,7 +270,6 @@ else
 endif
 # clean
         $(MAKE) rtl_clean
-        $(MAKE) api_clean
         $(MAKE) fcl_clean
         $(MAKE) packages_clean
         $(MAKE) utils_clean
@@ -301,7 +279,6 @@ ifdef IDE
 endif
 # build everything
         $(MAKE) rtl_$(ALLTARGET) $(BUILDOPTS)
-        $(MAKE) api_$(ALLTARGET) $(BUILDOPTS)
         $(MAKE) fcl_$(ALLTARGET) $(BUILDOPTS)
         $(MAKE) packages_$(ALLTARGET) $(BUILDOPTS)
         $(MAKE) utils_all $(BUILDOPTS)
@@ -313,19 +290,19 @@ endif
 
 installbase: build-stamp.$(OS_TARGET)
 # create dirs
-        $(MKDIR) $(BASEINSTALLDIR)
-        $(MKDIR) $(DOCINSTALLDIR)
-        $(MKDIR) $(BININSTALLDIR)
+        $(MKDIR) $(INSTALL_BASEDIR)
+        $(MKDIR) $(INSTALL_DOCDIR)
+        $(MKDIR) $(INSTALL_BINDIR)
 ifndef SNAPSHOT
 # readme & whatsnew and docs
-        $(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(DOCINSTALLDIR)
+        $(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
 # bingo32 (cwsdpmi,wmemu387.dxe)
 ifeq ($(OS_TARGET),go32v2)
-        $(COPY) $(CVSINSTALL)/bingo32/* $(BININSTALLDIR)
+        $(COPY) $(CVSINSTALL)/bingo32/* $(INSTALL_BINDIR)
 endif
 # binw32 (cygwin1.dll)
 ifeq ($(OS_TARGET),win32)
-        $(COPY) $(CVSINSTALL)/binw32/* $(BININSTALLDIR)
+        $(COPY) $(CVSINSTALL)/binw32/* $(INSTALL_BINDIR)
 endif
 # manpages for linux
 ifeq ($(OS_TARGET),linux)
@@ -334,41 +311,27 @@ endif
 ifeq ($(OS_TARGET),freebsd)
         $(MAKE) -C $(CVSINSTALL)/man installman
 endif
-
 endif
 # install generated things
-        $(MAKE) compiler_install $(INSTALLOPTS)
-        $(MAKE) rtl_install $(INSTALLOPTS)
+        $(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
+        $(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
 
 install: build-stamp.$(OS_TARGET)
         $(MAKE) installbase $(INSTALLOPTS)
-        $(MAKE) utils_install $(INSTALLOPTS)
-        $(MAKE) api_install $(INSTALLOPTS)
-        $(MAKE) fcl_install $(INSTALLOPTS)
-        $(MAKE) packages_install $(INSTALLOPTS)
+        $(MAKE) utils_$(INSTALLTARGET) $(INSTALLOPTS)
+        $(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
+        $(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
 ifdef IDE
-        $(NOSTOP)$(MAKE) ide_install $(BUILDOPTS)
-endif
-# install examples
-ifndef SNAPSHOT
-        $(MAKE) fcl_exampleinstall $(INSTALLOPTS)
-        $(MAKE) api_exampleinstall $(INSTALLOPTS)
-        $(MAKE) packages_exampleinstall $(INSTALLOPTS)
+        $(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
 endif
 
 zipinstall: build-stamp.$(OS_TARGET)
-        $(MAKE) fpc_zipinstall ZIPTARGET=installbase PACKAGENAME=base $(INSTALLOPTS)
-        $(MAKE) utils_zipinstall $(INSTALLOPTS)
-        $(MAKE) api_zipinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
-        $(MAKE) fcl_zipinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
-        $(MAKE) packages_zipinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
+        $(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=base$(ZIPSUFFIX) $(INSTALLOPTS)
+        $(MAKE) utils_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=util$(ZIPSUFFIX)
+        $(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
+        $(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
 ifdef IDE
-        $(NOSTOP)$(MAKE) ide_zipinstall $(INSTALLOPTS)
-endif
-ifndef SNAPSHOT
-        $(MAKE) fcl_zipexampleinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
-        $(MAKE) api_zipexampleinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
-        $(MAKE) packages_zipexampleinstall $(INSTALLOPTS) PACKAGEPREFIX=$(PKGPRE)
+        $(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS)
 endif
 
 
@@ -386,8 +349,8 @@ docs:
 
 docsrcinstall:
         $(MAKE) -C docs clean
-        $(MKDIR) $(SOURCEINSTALLDIR)
-        $(COPYTREE) docs $(SOURCEINSTALLDIR)
+        $(MKDIR) $(INSTALL_SOURCEDIR)
+        $(COPYTREE) docs $(INSTALL_SOURCEDIR)
 
 docsrc:
         $(MAKE) fpc_zipinstall ZIPTARGET=docsrcinstall ZIPNAME=docsrc
@@ -411,18 +374,17 @@ demozip:
 
 sourcebase:
 # base Makefiles needed for sources
-        $(MKDIR) $(SOURCEINSTALLDIR)
-        $(MKDIR) $(SOURCEINSTALLDIR)/rtl
-        $(MKDIR) $(SOURCEINSTALLDIR)/packages
-        $(COPY) Makefile*  $(SOURCEINSTALLDIR)
-        $(COPY) rtl/Makefile* $(SOURCEINSTALLDIR)/rtl
-        $(COPY) packages/Makefile* $(SOURCEINSTALLDIR)/packages
+        $(MKDIR) $(INSTALL_SOURCEDIR)
+        $(MKDIR) $(INSTALL_SOURCEDIR)/rtl
+        $(MKDIR) $(INSTALL_SOURCEDIR)/packages
+        $(COPY) Makefile*  $(INSTALL_SOURCEDIR)
+        $(COPY) rtl/Makefile* $(INSTALL_SOURCEDIR)/rtl
+        $(COPY) packages/Makefile* $(INSTALL_SOURCEDIR)/packages
 
 sourcezip: distclean
         $(MAKE) fpc_zipinstall ZIPTARGET=sourcebase ZIPNAME=basesrc
         $(MAKE) compiler_zipsourceinstall
         $(MAKE) rtl_zipsourceinstall
-        $(MAKE) api_zipsourceinstall
         $(MAKE) fcl_zipsourceinstall
         $(MAKE) packages_zipsourceinstall
         $(MAKE) utils_zipsourceinstall
@@ -461,7 +423,6 @@ win32zip: checkfpcdir
 linuxzip: checkfpcdir
         $(MAKE) zipinstall OS_TARGET=linux
 
-
 freebsdzip : checkfpcdir
         $(MAKE) zipinstall OS_TARGET=freebsd
 

File diff suppressed because it is too large
+ 181 - 543
compiler/Makefile


+ 20 - 28
compiler/Makefile.fpc

@@ -2,28 +2,21 @@
 #   Makefile.fpc for Free Pascal Compiler
 #
 
-[dirs]
-fpcdir=..
+[package]
+name=fpcompiler
+version=1.1
+
+[compiler]
 targetdir=.
 unitdir=$(CPU_TARGET)
-incdir=$(CPU_TARGET)
-
-[install]
-packagename=compiler
-sourcesubdirs=0
+includedir=$(CPU_TARGET)
 
 [require]
-rtl=1
-options=-Sg
+packages=rtl
+tools=diff cmp
 
-[tools]
-tooldiff=1
-toolcmp=1
-tooldate=1
-toolupx=1
 
-
-[presettings]
+[prerules]
 # Don't export OS_SOURCE because it can change after the first compile
 unexport OS_SOURCE FPC_VERSION
 
@@ -97,8 +90,6 @@ override LOCALDEF+=-dUNIX
 endif
 endif
 
-
-[postsettings]
 # Default message file
 MSGFILE=error$(FPCLANG).msg
 
@@ -328,7 +319,7 @@ cvstest:
 
 .PHONY: quickinstall install installsym
 
-MSGINSTALLDIR=$(BASEINSTALLDIR)/msg
+MSGINSTALLDIR=$(INSTALL_BASEDIR)/msg
 override FPCEXEFILE:=$(wildcard $(FPCEXE))
 override PPEXEFILE:=$(wildcard $(EXENAME))
 
@@ -339,8 +330,8 @@ ifneq ($(FPCEXEFILE),)
 ifdef UPXPROG
         -$(UPXPROG) $(FPCEXEFILE)
 endif
-        $(MKDIR) $(BININSTALLDIR)
-        $(INSTALLEXE) $(FPCEXEFILE) $(BININSTALLDIR)
+        $(MKDIR) $(INSTALL_BINDIR)
+        $(INSTALLEXE) $(FPCEXEFILE) $(INSTALL_BINDIR)
 endif
 # Install ppc386.exe
 ifneq ($(PPEXEFILE),)
@@ -348,17 +339,18 @@ ifdef UPXPROG
         -$(UPXPROG) $(EXENAME)
 endif
 ifdef UNIXINSTALLDIR
-        $(MKDIR) $(BASEINSTALLDIR)
-        $(INSTALLEXE) $(EXENAME) $(BASEINSTALLDIR)
+        $(MKDIR) $(INSTALL_BASEDIR)
+        $(INSTALLEXE) $(EXENAME) $(INSTALL_BASEDIR)
 else
-        $(MKDIR) $(BININSTALLDIR)
-        $(INSTALLEXE) $(EXENAME) $(BININSTALLDIR)
+        $(MKDIR) $(INSTALL_BINDIR)
+        $(INSTALLEXE) $(EXENAME) $(INSTALL_BINDIR)
 endif
 endif
 
 install: quickinstall
 ifdef UNIXINSTALLDIR
-        $(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(BASEINSTALLDIR)/samplecfg
+        $(MKDIR) $(INSTALL_BASEDIR)
+        $(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(INSTALL_BASEDIR)/samplecfg
 endif
         $(MKDIR) $(MSGINSTALLDIR)
         $(INSTALL) $(MSGFILES) $(MSGINSTALLDIR)
@@ -366,8 +358,8 @@ endif
 # this also installs the link /usr/bin/ppc386. The .deb does that later
 installsymlink: install
 ifdef UNIXINSTALLDIR
-        $(MKDIR) $(BININSTALLDIR)
-        ln -sf $(BASEINSTALLDIR)/ppc386 $(BININSTALLDIR)/ppc386
+        $(MKDIR) $(INSTALL_BINDIR)
+        ln -sf $(INSTALL_BASEDIR)/ppc386 $(INSTALL_BINDIR)/ppc386
 endif
 
 

File diff suppressed because it is too large
+ 189 - 544
compiler/new/Makefile


+ 69 - 48
compiler/new/Makefile.fpc

@@ -1,32 +1,28 @@
 #
-#   Makefile.fpc for Free Pascal Compiler NEWCG
+#   Makefile.fpc for Free Pascal Compiler
 #
 
-[dirs]
-fpcdir=../..
-unitdir=$(CPU_TARGET) . $(OLDDIR)
-incdir=$(OLDDIR)
-targetdir=.
+[package]
+name=fpcompiler
+version=1.1
 
-[install]
-packagename=compiler
-sourcesubdirs=0
+[compiler]
+targetdir=.
+unitdir=$(OLDDIR)/$(CPU_TARGET)
+includedir=$(OLDDIR)/$(CPU_TARGET) $(OLDDIR)
 
 [require]
-rtl=1
-options=-Sg
+packages=rtl
+tools=diff cmp
 
-[tools]
-tooldiff=1
-toolcmp=1
-tooldate=1
-toolupx=1
 
-
-[presettings]
+[prerules]
 # Don't export OS_SOURCE because it can change after the first compile
 unexport OS_SOURCE FPC_VERSION
 
+# Where is the 'old' compiler located
+OLDDIR=..
+
 # Allow ALPHA, POWERPC, M68K, I386 defines for target cpu
 ifdef ALPHA
 CPU_TARGET=alpha
@@ -41,9 +37,6 @@ ifdef I386
 CPU_TARGET=i386
 endif
 
-# Where is the 'old' compiler located
-OLDDIR=..
-
 # RTL
 UTILSDIR=$(OLDDIR)/../utils
 
@@ -87,8 +80,19 @@ ifeq ($(CPU_TARGET),powerpc)
 CPUSUF=ppc
 endif
 
+# Define Unix also for Linux
+ifeq ($(OS_TARGET),linux)
+ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
+override LOCALDEF+=-dUNIX
+endif
+endif
+
+ifeq ($(OS_TARGET),freebsd)
+ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
+override LOCALDEF+=-dUNIX
+endif
+endif
 
-[postsettings]
 # Default message file
 MSGFILE=$(OLDDIR)/error$(FPCLANG).msg
 
@@ -99,15 +103,11 @@ override LOCALDEF+=-dGDB -dBROWSERLOG -dNEWCG
 ifeq ($(CPU_TARGET),i386)
 # also insert MMX support
 override LOCALDEF+=-dSUPPORT_MMX
-# We don't need the intel and binary writer on linux...
-ifdef inlinux
-override LOCALDEF+=-dNOAG386INT -dNOAG386BIN
-endif
 endif
 
 override LOCALOPT+=$(LOCALDEF)
 
-override FPCOPT+=$(LOCALOPT)
+override FPCOPT:=$(LOCALOPT)
 
 
 [rules]
@@ -119,6 +119,8 @@ ifeq ($(OS_TARGET),win32)
 ifdef CMP
 override DIFF:=$(CMP) -i138
 endif
+# force try to smartlink for windows unit
+override COMPILER+=-XX
 endif
 
 # Used to avoid unnecessary steps in remake3
@@ -137,7 +139,8 @@ endif
 # Setup os-independent filenames
 #####################################################################
 
-FPCEXENAME=pp$(EXEEXT)
+FPCEXE=fpc$(EXEEXT)
+PPEXENAME=pp$(EXEEXT)
 EXENAME=ppc$(CPUSUF)$(EXEEXT)
 TEMPNAME=ppc$(EXEEXT)
 TEMPNAME1=ppc1$(EXEEXT)
@@ -169,7 +172,8 @@ powerpc:
 #####################################################################
 
 all: $(EXENAME)
-        $(MAKE) echotime
+
+fpcexe: $(FPCEXE)
 
 ifeq ($(MAKELEVEL),0)
 ifndef STARTTIME
@@ -200,17 +204,19 @@ else
 next :
         $(MAKE) execlean
         $(MAKE) -C $(UNITDIR_RTL) clean
-        $(MAKE) -C $(UNITDIR_RTL) 'FPC=$(FPC)' 'OPT=$(RTLOPTS)' all
+        $(MAKE) -C $(UNITDIR_RTL) 'FPC=$(FPC)' 'OPT=$(RTLOPTS)'
         $(MAKE) clean
-        $(MAKE) all
+        $(MAKE) $(EXENAME)
+        $(MAKE) echotime
 endif
 
 clean : execlean fpc_cleanall
 
-ppuclean: fpc_cleanall
+ppuclean:
+        -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 
 execlean :
-        -$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT)
+        -$(DEL) fpc$(EXEEXT) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcppc$(EXEEXT)
 
 distclean: clean
         -$(DEL) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC)
@@ -254,7 +260,7 @@ ifndef COMPLETE
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg
         $(COMPILER) pp.pas
         $(EXECPPAS)
-        $(MOVE) $(FPCEXENAME) $(EXENAME)
+        $(MOVE) $(PPEXENAME) $(EXENAME)
 else
 $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg
         $(COMPILER) pp.pas
@@ -263,7 +269,7 @@ $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg
         $(EXECPPAS)
         $(COMPILER) pp.pas
         $(EXECPPAS)
-        $(MOVE) $(FPCEXENAME) $(EXENAME)
+        $(MOVE) $(PPEXENAME) $(EXENAME)
 endif
 
 tokens.dat : $(wildcard *.pas) $(wildcard *.inc)
@@ -316,33 +322,47 @@ cvstest:
 
 .PHONY: quickinstall install installsym
 
-MSGINSTALLDIR=$(BASEINSTALLDIR)/msg
+MSGINSTALLDIR=$(INSTALL_BASEDIR)/msg
+override FPCEXEFILE:=$(wildcard $(FPCEXE))
+override PPEXEFILE:=$(wildcard $(EXENAME))
 
 # This will only install the ppc386.exe, not the message files etc.
 quickinstall:
-ifdef inlinux
-        $(MKDIR) $(BASEINSTALLDIR)
-        $(INSTALLEXE) $(EXENAME) $(BASEINSTALLDIR)
-else
-        $(MKDIR) $(BININSTALLDIR)
+# Install fpc.exe
+ifneq ($(FPCEXEFILE),)
+ifdef UPXPROG
+        -$(UPXPROG) $(FPCEXEFILE)
+endif
+        $(MKDIR) $(INSTALL_BINDIR)
+        $(INSTALLEXE) $(FPCEXEFILE) $(INSTALL_BINDIR)
+endif
+# Install ppc386.exe
+ifneq ($(PPEXEFILE),)
 ifdef UPXPROG
         -$(UPXPROG) $(EXENAME)
 endif
-        $(INSTALLEXE) $(EXENAME) $(BININSTALLDIR)
+ifdef UNIXINSTALLDIR
+        $(MKDIR) $(INSTALL_BASEDIR)
+        $(INSTALLEXE) $(EXENAME) $(INSTALL_BASEDIR)
+else
+        $(MKDIR) $(INSTALL_BINDIR)
+        $(INSTALLEXE) $(EXENAME) $(INSTALL_BINDIR)
+endif
 endif
 
 install: quickinstall
-ifdef inlinux
-        $(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(BASEINSTALLDIR)/samplecfg
+ifdef UNIXINSTALLDIR
+        $(MKDIR) $(INSTALL_BASEDIR)
+        $(INSTALLEXE) $(COMPILERUTILSDIR)/samplecfg $(INSTALL_BASEDIR)/samplecfg
 endif
         $(MKDIR) $(MSGINSTALLDIR)
         $(INSTALL) $(MSGFILES) $(MSGINSTALLDIR)
 
 # this also installs the link /usr/bin/ppc386. The .deb does that later
 installsymlink: install
-ifdef inlinux
-        $(MKDIR) $(BININSTALLDIR)
-        ln -sf $(BASEINSTALLDIR)/ppc386 $(BININSTALLDIR)/ppc386
+ifdef UNIXINSTALLDIR
+        $(MKDIR) $(INSTALL_BINDIR)
+        ln -sf $(INSTALL_BASEDIR)/ppc386 $(INSTALL_BINDIR)/ppc386
 endif
 
 
@@ -361,6 +381,7 @@ rtlclean:
 rtlinstall:
         $(MAKE) -C $(UNITDIR_RTL) install
 
+
 #####################################################################
 # local user configurable file
 # in makefile.loc you can add any desired target
@@ -370,4 +391,4 @@ localmake:=$(strip $(wildcard makefile.loc))
 
 ifdef localmake
 include ./$(localmake)
-endif
+endif

+ 843 - 732
fcl/Makefile

@@ -1,20 +1,8 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/12/23]
+# Don't edit, this file is generated by fpcmake v1.99.0 [2001/01/29]
 #
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
+default: all
 override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
@@ -30,9 +18,6 @@ endif
 else
 PWD:=$(firstword $(PWD))
 endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
 ifndef inUnix
 ifeq ($(OS),Windows_NT)
 inWinNT=1
@@ -42,35 +27,36 @@ inOS2=1
 endif
 endif
 endif
-
-# The extension of executables
 ifdef inUnix
 SRCEXEEXT=
 else
 SRCEXEEXT=.exe
 endif
-
-# The path which is searched separated by spaces
+ifdef inUnix
+BATCHEXT=.sh
+else
+ifdef inOS2
+BATCHEXT=.cmd
+else
+BATCHEXT=.bat
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP=$(subst /,\,/)
+endif
 ifdef inUnix
 SEARCHPATH=$(subst :, ,$(PATH))
 else
 SEARCHPATH=$(subst ;, ,$(PATH))
 endif
-
-# Base dir
 ifdef PWD
 BASEDIR:=$(shell $(PWD))
 else
 BASEDIR=.
 endif
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
 ifndef FPC
-# Compatibility with old makefiles
 ifdef PP
 FPC=$(PP)
 else
@@ -79,39 +65,22 @@ endif
 endif
 override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
 override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
 ifndef OS_TARGET
 OS_TARGET:=$(shell $(FPC) -iTO)
 endif
-
-# Source OS
 ifndef OS_SOURCE
 OS_SOURCE:=$(shell $(FPC) -iSO)
 endif
-
-# Target CPU
 ifndef CPU_TARGET
 CPU_TARGET:=$(shell $(FPC) -iTP)
 endif
-
-# Source CPU
 ifndef CPU_SOURCE
 CPU_SOURCE:=$(shell $(FPC) -iSP)
 endif
-
-# FPC version
 ifndef FPC_VERSION
 FPC_VERSION:=$(shell $(FPC) -iV)
 endif
-
 export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(FPCDIR)/rtl),)
@@ -122,8 +91,6 @@ endif
 else
 override FPCDIR=wrong
 endif
-
-# Detect FPCDIR
 ifeq ($(FPCDIR),wrong)
 ifdef inUnix
 override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
@@ -145,86 +112,62 @@ endif
 endif
 endif
 endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard go32v2 linux win32 os2 freebsd)
-override EXAMPLEDIROBJECTS+=tests shedit/gtk
-
-# Clean
-
-
-# Install
-
-EXAMPLESUBDIR=fcl
-PACKAGENAME=fcl
-ZIPTARGET=install
-
-# Defaults
-
-
-# Directories
-
-
-# Packages
-
-
-# Libraries
-
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
+override FPCDIR:=$(wildcard $(FPCDIR))
+UNITSDIR=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+PACKAGESDIR=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
+override PACKAGE_NAME=fcl
+override PACKAGE_VERSION=1.0.5
+override TARGET_DIRS+=xml db shedit
+override TARGET_UNITS+=classes inifiles registry ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls
+ifeq ($(OS_TARGET),linux)
+override TARGET_UNITS+=process asyncio ssockets http
+endif
+ifeq ($(OS_TARGET),win32)
+override TARGET_UNITS+=process fileinfo
+endif
+ifeq ($(OS_TARGET),freebsd)
+override TARGET_UNITS+=process asyncio ssockets http
+endif
+override TARGET_RSTS+=classes ssockets cachecls
+override TARGET_EXAMPLEDIRS+=tests db/tests shedit/gtk
+override COMPILER_OPTIONS+=-S2
+override COMPILER_INCLUDEDIR+=$(OS_TARGET) inc
+ifeq ($(OS_TARGET),linux)
+override COMPILER_INCLUDEDIR+=unix
+endif
+ifeq ($(OS_TARGET),freebsd)
+override COMPILER_INCLUDEDIR+=unix
+endif
+override COMPILER_SOURCEDIR+=$(OS_TARGET) inc
+override COMPILER_TARGETDIR+=$(OS_TARGET)
 ifndef ECHO
 ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ECHO:=echo
-ECHOE:=echo
 else
 ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
 endif
 else
 ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
 endif
 endif
-
-# To copy pograms
 ifndef COPY
 COPY:=cp -fp
 endif
-
-# Copy a whole tree
 ifndef COPYTREE
 COPYTREE:=cp -rfp
 endif
-
-# To move pograms
 ifndef MOVE
 MOVE:=mv -f
 endif
-
-# Check delete program
 ifndef DEL
 DEL:=rm -f
 endif
-
-# Check deltree program
 ifndef DELTREE
 DELTREE:=rm -rf
 endif
-
-# To install files
 ifndef INSTALL
 ifdef inUnix
 INSTALL:=install -c -m 644
@@ -232,8 +175,6 @@ else
 INSTALL:=$(COPY)
 endif
 endif
-
-# To install programs
 ifndef INSTALLEXE
 ifdef inUnix
 INSTALLEXE:=install -c -m 755
@@ -241,8 +182,6 @@ else
 INSTALLEXE:=$(COPY)
 endif
 endif
-
-# To make a directory.
 ifndef MKDIR
 ifdef inUnix
 MKDIR:=install -m 755 -d
@@ -250,42 +189,75 @@ else
 MKDIR:=ginstall -m 755 -d
 endif
 endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
+export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef AS
 AS=as
 endif
-
-# linker, but probably not used
 ifndef LD
 LD=ld
 endif
-
-# ppas.bat / ppas.sh
+PPAS=$(BATCHEXT)
 ifdef inUnix
-PPAS=ppas.sh
+LDCONFIG=ldconfig
 else
-ifdef inOS2
-PPAS=ppas.cmd
+LDCONFIG=
+endif
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE=
 else
-PPAS=ppas.bat
+PPUMOVE:=$(firstword $(PPUMOVE))
 endif
 endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
+export PPUMOVE
+ifndef PPUFILES
+PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUFILES),)
+PPUFILES=
 else
-LDCONFIG=
+PPUFILES:=$(firstword $(PPUFILES))
+endif
+endif
+export PPUFILES
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEACHPATH))))
+ifeq ($(DATE),)
+DATE=
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ifndef UPXPROG
+ifeq ($(OS_TARGET),go32v2)
+UPXPROG:=1
+endif
+ifeq ($(OS_TARGET),win32)
+UPXPROG:=1
+endif
+ifdef UPXPROG
+UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(UPXPROG),)
+UPXPROG=
+else
+UPXPROG:=$(firstword $(UPXPROG))
 endif
-
-# ZipProg, you can't use Zip as the var name (PFV)
+else
+UPXPROG=
+endif
+endif
+export UPXPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
@@ -295,11 +267,8 @@ ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
 export ZIPPROG
-
 ZIPOPT=-9
 ZIPEXT=.zip
-
-# Tar
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
@@ -309,7 +278,6 @@ TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 export TARPROG
-
 ifeq ($(USETAR),bz2)
 TAROPT=vI
 TAREXT=.tar.bz2
@@ -317,18 +285,73 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+LIBPREFIX=lib
+RSTEXT=.rst
+FPCMADE=fpcmade
+ifeq ($(OS_TARGET),go32v1)
+PPUEXT=.pp1
+OEXT=.o1
+ASMEXT=.s1
+SMARTEXT=.sl1
+STATICLIBEXT=.a1
+SHAREDLIBEXT=.so1
+LIBPREFIX=
+FPCMADE=fpcmade.v1
+PACKAGESUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+LIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=go32
+endif
+ifeq ($(OS_TARGET),linux)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.lnx
+ZIPSUFFIX=linux
+endif
+ifeq ($(OS_TARGET),freebsd)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.freebsd
+ZIPSUFFIX=freebsd
+endif
+ifeq ($(OS_TARGET),win32)
+PPUEXT=.ppw
+OEXT=.ow
+ASMEXT=.sw
+SMARTEXT=.slw
+STATICLIBEXT=.aw
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.w32
+ZIPSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+PPUEXT=.ppo
+ASMEXT=.so2
+OEXT=.oo2
+SMARTEXT=.so
+STATICLIBEXT=.ao2
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.os2
+ZIPSUFFIX=emx
+endif
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
 ifeq ($(OS_TARGET),linux)
 UNIXINSTALLDIR=1
 endif
@@ -336,7 +359,6 @@ ifeq ($(OS_TARGET),freebsd)
 UNIXINSTALLDIR=1
 endif
 else
-# Normal install
 ifeq ($(OS_SOURCE),linux)
 UNIXINSTALLDIR=1
 endif
@@ -344,714 +366,803 @@ ifeq ($(OS_SOURCE),freebsd)
 UNIXINSTALLDIR=1
 endif
 endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
+ifndef INSTALL_PREFIX
 ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
+INSTALL_PREFIX=/usr/local
 else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
+INSTALL_PREFIX=/pp
+endif
+endif
+export INSTALL_PREFIX
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
+endif
+export DIST_DESTDIR
+ifndef INSTALL_BASEDIR
 ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
+INSTALL_BASEDIR=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
+INSTALL_BASEDIR=$(INSTALL_PREFIX)
 endif
 endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
+ifndef INSTALL_BINDIR
 ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
+INSTALL_BINDIR=$(INSTALL_PREFIX)/bin
 else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
+INSTALL_BINDIR=$(INSTALL_BASEDIR)/bin/$(OS_TARGET)
 endif
 endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 endif
 endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
+ifndef INSTALL_LIBDIR
 ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
+INSTALL_LIBDIR=$(INSTALL_PREFIX)/lib
 else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
+INSTALL_LIBDIR=$(INSTALL_UNITDIR)
 endif
 endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
+ifndef INSTALL_SOURCEDIR
 ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
+INSTALL_SOURCEDIR=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)
 else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
+INSTALL_SOURCEDIR=$(INSTALL_BASEDIR)/source
 endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+ifdef PACKAGE_NAME
+INSTALL_SOURCEDIR:=$(INSTALL_SOURCEDIR)/$(PACKAGE_NAME)
 endif
 endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
+ifndef INSTALL_DOCDIR
 ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
+INSTALL_DOCDIR=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)
 else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
+INSTALL_DOCDIR=$(INSTALL_BASEDIR)/doc
 endif
 endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
+ifndef INSTALL_EXAMPLEDIR
 ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
+INSTALL_EXAMPLEDIR=$(INSTALL_DOCDIR)/examples
 else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
+INSTALL_EXAMPLEDIR=$(INSTALL_BASEDIR)/examples
 endif
 ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
+INSTALL_EXAMPLEDIR:=$(INSTALL_EXAMPLEDIR)/$(EXAMPLESUBDIR)
 endif
 endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
 endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+ifeq ($(OS_TARGET),linux)
+REQUIRE_PACKAGES_INET=1
+endif
+ifdef REQUIRE_PACKAGES_RTL
+PACKAGEDIR_RTL:=$(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))
+ifneq ($(PACKAGEDIR_RTL),)
+PACKAGEDIR_RTL:=$(firstword $(PACKAGEDIR_RTL))
+ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
+override COMPILEPACKAGES+=package_rtl
+package_rtl:
+	$(MAKE) -C $(PACKAGEDIR_RTL) all
+endif
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+else
+UNITDIR_RTL=$(PACKAGEDIR_RTL)
+endif
+else
+PACKAGEDIR_RTL=
+UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_RTL),)
+UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
+else
+UNITDIR_RTL=
+endif
+endif
+ifdef UNITDIR_RTL
+override COMPILER_UNITDIR+=$(UNITDIR_RTL)
+endif
+endif
+ifdef REQUIRE_PACKAGES_PASZLIB
+PACKAGEDIR_PASZLIB:=$(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR)))))
+ifneq ($(PACKAGEDIR_PASZLIB),)
+PACKAGEDIR_PASZLIB:=$(firstword $(PACKAGEDIR_PASZLIB))
+ifeq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(FPCMADE)),)
+override COMPILEPACKAGES+=package_paszlib
+package_paszlib:
+	$(MAKE) -C $(PACKAGEDIR_PASZLIB) all
+endif
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+else
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
+endif
+else
+PACKAGEDIR_PASZLIB=
+UNITDIR_PASZLIB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_PASZLIB),)
+UNITDIR_PASZLIB:=$(firstword $(UNITDIR_PASZLIB))
+else
+UNITDIR_PASZLIB=
+endif
+endif
+ifdef UNITDIR_PASZLIB
+override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
+endif
+endif
+ifdef REQUIRE_PACKAGES_INET
+PACKAGEDIR_INET:=$(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /inet/Makefile.fpc,$(PACKAGESDIR)))))
+ifneq ($(PACKAGEDIR_INET),)
+PACKAGEDIR_INET:=$(firstword $(PACKAGEDIR_INET))
+ifeq ($(wildcard $(PACKAGEDIR_INET)/$(FPCMADE)),)
+override COMPILEPACKAGES+=package_inet
+package_inet:
+	$(MAKE) -C $(PACKAGEDIR_INET) all
+endif
+ifneq ($(wildcard $(PACKAGEDIR_INET)/$(OS_TARGET)),)
+UNITDIR_INET=$(PACKAGEDIR_INET)/$(OS_TARGET)
+else
+UNITDIR_INET=$(PACKAGEDIR_INET)
+endif
+else
+PACKAGEDIR_INET=
+UNITDIR_INET:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /inet/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_INET),)
+UNITDIR_INET:=$(firstword $(UNITDIR_INET))
+else
+UNITDIR_INET=
+endif
+endif
+ifdef UNITDIR_INET
+override COMPILER_UNITDIR+=$(UNITDIR_INET)
+endif
+endif
+.PHONY: package_rtl package_paszlib package_inet
+override FPCOPTDEF=$(CPU_TARGET)
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
+endif
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
+endif
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
+endif
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
+endif
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
+endif
+ifdef LINKSMART
+override FPCOPT+=-XX
+endif
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+override FPCOPT+=-Xs -OG2p3 -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-OG2p3
+endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
+endif
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
+else
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+endif
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
+endif
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifeq ($(OS_SOURCE),win32)
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
+endif
+override COMPILER:=$(FPC) $(FPCOPT)
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
+else
+ifeq ($(OS_SOURCE),$(OS_TARGET))
+EXECPPAS:=@$(PPAS)
+endif
+endif
+.PHONY: fpc_units
+ifdef TARGET_UNITS
+override ALLTARGET+=fpc_units
+override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
+override INSTALLPPUFILES+=$(UNITPPUFILES)
+override CLEANPPUFILES+=$(UNITPPUFILES)
+endif
+fpc_units: $(UNITPPUFILES)
+ifdef TARGET_RSTS
+override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
+override CLEANRSTFILES+=$(RSTFILES)
 endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: $(addsuffix _all,$(OS_TARGET))
-
-debug: $(addsuffix _debug,$(OS_TARGET))
-
-examples: fpc_examples
-
-test: fpc_test
-
-smart: $(addsuffix _smart,$(OS_TARGET))
-
-shared: $(addsuffix _shared,$(OS_TARGET))
-
-showinstall: $(addsuffix _showinstall,$(OS_TARGET))
-
-install: $(addsuffix _install,$(OS_TARGET))
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: $(addsuffix _clean,$(OS_TARGET)) $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-
-distclean: $(addsuffix _distclean,$(OS_TARGET))
-
-cleanall: $(addsuffix _cleanall,$(OS_TARGET))
-
-require: $(addsuffix _require,$(OS_TARGET))
-
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require
-
-#####################################################################
-# Examples
-#####################################################################
-
 .PHONY: fpc_examples fpc_test
-
-ifdef EXAMPLEOBJECTS
-override EXAMPLESOURCEFILES:=$(addsuffix $(PASEXT),$(EXAMPLEOBJECTS))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(EXAMPLEOBJECTS))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(EXAMPLEOBJECTS)) $(addprefix $(LIBPREFIX),$(addsuffix $(STATICLIBEXT),$(EXAMPLEOBJECTS)))
-
+ifdef TARGET_EXAMPLES
+override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)))
+override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
+override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(LIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
 override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
 endif
-
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(EXAMPLEDIROBJECTS))
-
-fpc_test: examples
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
+fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
+.PHONY: fpc_packages fpc_all fpc_smart fpc_debug
+$(FPCMADE): $(ALLTARGET)
+	@$(ECHO) Compiled > $(FPCMADE)
+fpc_packages: $(COMPILEPACKAGES)
+fpc_all: fpc_packages $(FPCMADE)
+fpc_smart:
+	$(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+	$(MAKE) all DEBUG=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
+%$(PPUEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(PPUEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALLPPUFILES
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
+ifdef PPUFILES
+INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
+else
+INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
 endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
+override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
+endif
+ifdef INSTALLEXEFILES
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
+endif
+fpc_install: $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+	$(MKDIR) $(INSTALL_BINDIR)
+ifdef UPXPROG
+	-$(UPXPROG) $(INSTALLEXEFILES)
+endif
+	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALLPPUFILES
+	$(MKDIR) $(INSTALL_UNITDIR)
+	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+	$(MKDIR) $(INSTALL_LIBDIR)
+	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
 endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
 endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
 endif
+ifdef INSTALL_FILES
+	$(MKDIR) $(INSTALL_DATADIR)
+	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
 endif
-
-# Temporary path to pack a file
+fpc_sourceinstall: distclean
+	$(MKDIR) $(INSTALL_SOURCEDIR)
+	$(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ifndef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+fpc_distinstall: fpc_install fpc_exampleinstall
+.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
 ifndef PACKDIR
 ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
+PACKDIR=$(BASEDIR)/../pack_tmp/$(PACKAGE_NAME)
 else
-PACKDIR=/tmp/fpc-pack
+PACKDIR=/tmp/fpc-pack/$(PACKAGE_NAME)
 endif
 endif
-
-# Maybe create default zipname from packagename
 ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
+ifdef DIST_ZIPNAME
+ZIPNAME=$(DIST_ZIPNAME)
+else
+ZIPNAME=$(ZIPPREFIX)$(PACKAGE_NAME)$(ZIPSUFFIX)
+endif
+endif
+ifndef ZIPTARGET
+ifdef DIST_ZIPTARGET
+ZIPTARGET=DIST_ZIPTARGET
+else
+ZIPTARGET=install
 endif
 endif
-
-# Use tar by default under linux
 ifndef USEZIP
 ifdef inUnix
 USETAR=1
 endif
 endif
-
+ifdef inOS2
+USEZIPWRAPPER=1
+endif
+ZIPWRAPPER=$(DIST_DESTDIR)/fpczip$(BATCHEXT)
+ZIPCMD_CDPACK:=cd $(subst /,$(PATHSEP),$(PACKDIR))
+ZIPCMD_CDBASE:=cd $(subst /,$(PATHSEP),$(BASEDIR))
+ifdef USETAR
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(TAREXT)
+ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
+else
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(ZIPEXT)
+ZIPCMD_ZIP:=$(subst /,$(PATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
+endif
 fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
+	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
+	$(DEL) $(ZIPDESTFILE)
+ifdef USEZIPWRAPPER
+ifneq ($(ECHO),echo)
+	$(ECHO) "$(ZIPCMD_CDPACK)" > $(ZIPWRAPPER)
+	$(ECHO) "$(ZIPCMD_ZIP)" >> $(ZIPWRAPPER)
+	$(ECHO) "$(ZIPCMD_CDBASE)" >> $(ZIPWRAPPER)
 else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
+	$(ECHO) $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
+	$(ECHO) $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
+	$(ECHO) $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
+endif
+ifdef inUnix
+	/bin/sh $(ZIPWRAPPER)
 else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
+	$(ZIPWRAPPER)
 endif
-	$(DELTREE) $(PACKDIR)
+	$(DEL) $(ZIPWRAPPER)
+else
+	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
 endif
-
-.PHONY:  fpc_zipsourceinstall
-
+	$(DELTREE) $(PACKDIR)
 fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=src
 fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIRGO32V2=1
-OBJECTDIRLINUX=1
-OBJECTDIRWIN32=1
-OBJECTDIROS2=1
-OBJECTDIRFREEBSD=1
-
-# Dir go32v2
-
-ifdef OBJECTDIRGO32V2
-.PHONY:  go32v2_all go32v2_debug go32v2_examples go32v2_test go32v2_smart go32v2_shared go32v2_showinstall go32v2_install go32v2_sourceinstall go32v2_exampleinstall go32v2_zipinstall go32v2_zipsourceinstall go32v2_zipexampleinstall go32v2_clean go32v2_distclean go32v2_cleanall go32v2_require go32v2_info
-
-go32v2_all:
-	$(MAKE) -C go32v2 all
-
-go32v2_debug:
-	$(MAKE) -C go32v2 debug
-
-go32v2_examples:
-	$(MAKE) -C go32v2 examples
-
-go32v2_test:
-	$(MAKE) -C go32v2 test
-
-go32v2_smart:
-	$(MAKE) -C go32v2 smart
-
-go32v2_shared:
-	$(MAKE) -C go32v2 shared
-
-go32v2_showinstall:
-	$(MAKE) -C go32v2 showinstall
-
-go32v2_install:
-	$(MAKE) -C go32v2 install
-
-go32v2_sourceinstall:
-	$(MAKE) -C go32v2 sourceinstall
-
-go32v2_exampleinstall:
-	$(MAKE) -C go32v2 exampleinstall
-
-go32v2_zipinstall:
-	$(MAKE) -C go32v2 zipinstall
-
-go32v2_zipsourceinstall:
-	$(MAKE) -C go32v2 zipsourceinstall
-
-go32v2_zipexampleinstall:
-	$(MAKE) -C go32v2 zipexampleinstall
-
-go32v2_clean:
-	$(MAKE) -C go32v2 clean
-
-go32v2_distclean:
-	$(MAKE) -C go32v2 distclean
-
-go32v2_cleanall:
-	$(MAKE) -C go32v2 cleanall
-
-go32v2_require:
-	$(MAKE) -C go32v2 require
-
-go32v2_info:
-	$(MAKE) -C go32v2 info
-endif
-
-# Dir linux
-
-ifdef OBJECTDIRLINUX
-.PHONY:  linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_exampleinstall linux_zipinstall linux_zipsourceinstall linux_zipexampleinstall linux_clean linux_distclean linux_cleanall linux_require linux_info
-
-linux_all:
-	$(MAKE) -C linux all
-
-linux_debug:
-	$(MAKE) -C linux debug
-
-linux_examples:
-	$(MAKE) -C linux examples
-
-linux_test:
-	$(MAKE) -C linux test
-
-linux_smart:
-	$(MAKE) -C linux smart
-
-linux_shared:
-	$(MAKE) -C linux shared
-
-linux_showinstall:
-	$(MAKE) -C linux showinstall
-
-linux_install:
-	$(MAKE) -C linux install
-
-linux_sourceinstall:
-	$(MAKE) -C linux sourceinstall
-
-linux_exampleinstall:
-	$(MAKE) -C linux exampleinstall
-
-linux_zipinstall:
-	$(MAKE) -C linux zipinstall
-
-linux_zipsourceinstall:
-	$(MAKE) -C linux zipsourceinstall
-
-linux_zipexampleinstall:
-	$(MAKE) -C linux zipexampleinstall
-
-linux_clean:
-	$(MAKE) -C linux clean
-
-linux_distclean:
-	$(MAKE) -C linux distclean
-
-linux_cleanall:
-	$(MAKE) -C linux cleanall
-
-linux_require:
-	$(MAKE) -C linux require
-
-linux_info:
-	$(MAKE) -C linux info
-endif
-
-# Dir win32
-
-ifdef OBJECTDIRWIN32
-.PHONY:  win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_exampleinstall win32_zipinstall win32_zipsourceinstall win32_zipexampleinstall win32_clean win32_distclean win32_cleanall win32_require win32_info
-
-win32_all:
-	$(MAKE) -C win32 all
-
-win32_debug:
-	$(MAKE) -C win32 debug
-
-win32_examples:
-	$(MAKE) -C win32 examples
-
-win32_test:
-	$(MAKE) -C win32 test
-
-win32_smart:
-	$(MAKE) -C win32 smart
-
-win32_shared:
-	$(MAKE) -C win32 shared
-
-win32_showinstall:
-	$(MAKE) -C win32 showinstall
-
-win32_install:
-	$(MAKE) -C win32 install
-
-win32_sourceinstall:
-	$(MAKE) -C win32 sourceinstall
-
-win32_exampleinstall:
-	$(MAKE) -C win32 exampleinstall
-
-win32_zipinstall:
-	$(MAKE) -C win32 zipinstall
-
-win32_zipsourceinstall:
-	$(MAKE) -C win32 zipsourceinstall
-
-win32_zipexampleinstall:
-	$(MAKE) -C win32 zipexampleinstall
-
-win32_clean:
-	$(MAKE) -C win32 clean
-
-win32_distclean:
-	$(MAKE) -C win32 distclean
-
-win32_cleanall:
-	$(MAKE) -C win32 cleanall
-
-win32_require:
-	$(MAKE) -C win32 require
-
-win32_info:
-	$(MAKE) -C win32 info
-endif
-
-# Dir os2
-
-ifdef OBJECTDIROS2
-.PHONY:  os2_all os2_debug os2_examples os2_test os2_smart os2_shared os2_showinstall os2_install os2_sourceinstall os2_exampleinstall os2_zipinstall os2_zipsourceinstall os2_zipexampleinstall os2_clean os2_distclean os2_cleanall os2_require os2_info
-
-os2_all:
-	$(MAKE) -C os2 all
-
-os2_debug:
-	$(MAKE) -C os2 debug
-
-os2_examples:
-	$(MAKE) -C os2 examples
-
-os2_test:
-	$(MAKE) -C os2 test
-
-os2_smart:
-	$(MAKE) -C os2 smart
-
-os2_shared:
-	$(MAKE) -C os2 shared
-
-os2_showinstall:
-	$(MAKE) -C os2 showinstall
-
-os2_install:
-	$(MAKE) -C os2 install
-
-os2_sourceinstall:
-	$(MAKE) -C os2 sourceinstall
-
-os2_exampleinstall:
-	$(MAKE) -C os2 exampleinstall
-
-os2_zipinstall:
-	$(MAKE) -C os2 zipinstall
-
-os2_zipsourceinstall:
-	$(MAKE) -C os2 zipsourceinstall
-
-os2_zipexampleinstall:
-	$(MAKE) -C os2 zipexampleinstall
-
-os2_clean:
-	$(MAKE) -C os2 clean
-
-os2_distclean:
-	$(MAKE) -C os2 distclean
-
-os2_cleanall:
-	$(MAKE) -C os2 cleanall
-
-os2_require:
-	$(MAKE) -C os2 require
-
-os2_info:
-	$(MAKE) -C os2 info
-endif
-
-# Dir freebsd
-
-ifdef OBJECTDIRFREEBSD
-.PHONY:  freebsd_all freebsd_debug freebsd_examples freebsd_test freebsd_smart freebsd_shared freebsd_showinstall freebsd_install freebsd_sourceinstall freebsd_exampleinstall freebsd_zipinstall freebsd_zipsourceinstall freebsd_zipexampleinstall freebsd_clean freebsd_distclean freebsd_cleanall freebsd_require freebsd_info
-
-freebsd_all:
-	$(MAKE) -C freebsd all
-
-freebsd_debug:
-	$(MAKE) -C freebsd debug
-
-freebsd_examples:
-	$(MAKE) -C freebsd examples
-
-freebsd_test:
-	$(MAKE) -C freebsd test
-
-freebsd_smart:
-	$(MAKE) -C freebsd smart
-
-freebsd_shared:
-	$(MAKE) -C freebsd shared
-
-freebsd_showinstall:
-	$(MAKE) -C freebsd showinstall
-
-freebsd_install:
-	$(MAKE) -C freebsd install
-
-freebsd_sourceinstall:
-	$(MAKE) -C freebsd sourceinstall
-
-freebsd_exampleinstall:
-	$(MAKE) -C freebsd exampleinstall
-
-freebsd_zipinstall:
-	$(MAKE) -C freebsd zipinstall
-
-freebsd_zipsourceinstall:
-	$(MAKE) -C freebsd zipsourceinstall
-
-freebsd_zipexampleinstall:
-	$(MAKE) -C freebsd zipexampleinstall
-
-freebsd_clean:
-	$(MAKE) -C freebsd clean
-
-freebsd_distclean:
-	$(MAKE) -C freebsd distclean
-
-freebsd_cleanall:
-	$(MAKE) -C freebsd cleanall
-
-freebsd_require:
-	$(MAKE) -C freebsd require
-
-freebsd_info:
-	$(MAKE) -C freebsd info
-endif
-EXAMPLEDIRTESTS=1
-EXAMPLEDIRSHEDIT/GTK=1
-
-# Dir tests
-
-ifdef EXAMPLEDIRTESTS
-.PHONY:  tests_all tests_debug tests_examples tests_test tests_smart tests_shared tests_showinstall tests_install tests_sourceinstall tests_exampleinstall tests_zipinstall tests_zipsourceinstall tests_zipexampleinstall tests_clean tests_distclean tests_cleanall tests_require tests_info
-
+	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=exm
+fpc_zipdistinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=distinstall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+ifdef PPUFILES
+CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
+else
+CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
+endif
+override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+	-$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+fpc_distclean: fpc_clean
+ifdef COMPILER_UNITTARGETDIR
+TARGETDIRCLEAN=fpc_clean
+endif
+fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+	-$(DELTREE) *$(SMARTEXT)
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+.PHONY: fpc_info
+fpc_info:
+	@$(ECHO)
+	@$(ECHO)  == Package info ==
+	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
+	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
+	@$(ECHO)
+	@$(ECHO)  == Configuration info ==
+	@$(ECHO)
+	@$(ECHO)  FPC.......... $(FPC)
+	@$(ECHO)  FPC Version.. $(FPC_VERSION)
+	@$(ECHO)  Source CPU... $(CPU_SOURCE)
+	@$(ECHO)  Target CPU... $(CPU_TARGET)
+	@$(ECHO)  Source OS.... $(OS_SOURCE)
+	@$(ECHO)  Target OS.... $(OS_TARGET)
+	@$(ECHO)
+	@$(ECHO)  == Directory info ==
+	@$(ECHO)
+	@$(ECHO)  Basedir......... $(BASEDIR)
+	@$(ECHO)  FPCDir.......... $(FPCDIR)
+	@$(ECHO)  UnitsDir........ $(UNITSDIR)
+	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
+	@$(ECHO)
+	@$(ECHO)  GCC library..... $(GCCLIBDIR)
+	@$(ECHO)  Other library... $(OTHERLIBDIR)
+	@$(ECHO)
+	@$(ECHO)  == Tools info ==
+	@$(ECHO)
+	@$(ECHO)  Pwd....... $(PWD)
+	@$(ECHO)  Echo...... $(ECHO)
+	@$(ECHO)  PPUMove... $(PPUMOVE)
+	@$(ECHO)  PPUFiles.. $(PPUFILES)
+	@$(ECHO)  Date...... $(DATE)
+	@$(ECHO)  Upx....... $(UPXPROG)
+	@$(ECHO)  Zip....... $(ZIPPROG)
+	@$(ECHO)
+	@$(ECHO)  == Object info ==
+	@$(ECHO)
+	@$(ECHO)  Target Loaders...... $(TARGET_LOADERS)
+	@$(ECHO)  Target Units........ $(TARGET_UNITS)
+	@$(ECHO)  Target Programs..... $(TARGET_PROGRAMS)
+	@$(ECHO)  Target Dirs......... $(TARGET_DIRS)
+	@$(ECHO)  Target Examples..... $(TARGET_EXAMPLES)
+	@$(ECHO)  Target ExampleDirs.. $(TARGET_EXAMPLEDIRS)
+	@$(ECHO)
+	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
+	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
+	@$(ECHO)
+	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
+	@$(ECHO)  Install Files....... $(INSTALL_FILES)
+	@$(ECHO)
+	@$(ECHO)  == Install info ==
+	@$(ECHO)
+	@$(ECHO)  DateStr.............. $(DATESTR)
+	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
+	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
+	@$(ECHO)
+	@$(ECHO)  INSTALL_BASEDIR...... $(INSTALL_BASEDIR)
+	@$(ECHO)  INSTALL_BINDIR....... $(INSTALL_BINDIR)
+	@$(ECHO)  INSTALL_LIBDIR....... $(INSTALL_LIBDIR)
+	@$(ECHO)  INSTALL_UNITDIR...... $(INSTALL_UNITDIR)
+	@$(ECHO)  INSTALL_SOURCEDIR.... $(INSTALL_SOURCEDIR)
+	@$(ECHO)  INSTALL_DOCDIR....... $(INSTALL_DOCDIR)
+	@$(ECHO)  INSTALL_DATADIR...... $(INSTALL_DATADIR)
+	@$(ECHO)
+	@$(ECHO)  DIST_DESTDIR......... $(DIST_DESTDIR)
+	@$(ECHO)  DIST_ZIPNAME......... $(DIST_ZIPNAME)
+	@$(ECHO)
+TARGET_DIRS_XML=1
+TARGET_DIRS_DB=1
+TARGET_DIRS_SHEDIT=1
+ifdef TARGET_DIRS_XML
+xml_all:
+	$(MAKE) -C xml all
+xml_debug:
+	$(MAKE) -C xml debug
+xml_examples:
+	$(MAKE) -C xml examples
+xml_smart:
+	$(MAKE) -C xml smart
+xml_shared:
+	$(MAKE) -C xml shared
+xml_install:
+	$(MAKE) -C xml install
+xml_sourceinstall:
+	$(MAKE) -C xml sourceinstall
+xml_exampleinstall:
+	$(MAKE) -C xml exampleinstall
+xml_distinstall:
+	$(MAKE) -C xml distinstall
+xml_zipinstall:
+	$(MAKE) -C xml zipinstall
+xml_zipsourceinstall:
+	$(MAKE) -C xml zipsourceinstall
+xml_zipexampleinstall:
+	$(MAKE) -C xml zipexampleinstall
+xml_zipdistinstall:
+	$(MAKE) -C xml zipdistinstall
+xml_clean:
+	$(MAKE) -C xml clean
+xml_distclean:
+	$(MAKE) -C xml distclean
+xml_cleanall:
+	$(MAKE) -C xml cleanall
+xml_info:
+	$(MAKE) -C xml info
+xml:
+	$(MAKE) -C xml all
+.PHONY: xml_all xml_debug xml_examples xml_smart 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
+endif
+ifdef TARGET_DIRS_DB
+db_all:
+	$(MAKE) -C db all
+db_debug:
+	$(MAKE) -C db debug
+db_examples:
+	$(MAKE) -C db examples
+db_smart:
+	$(MAKE) -C db smart
+db_shared:
+	$(MAKE) -C db shared
+db_install:
+	$(MAKE) -C db install
+db_sourceinstall:
+	$(MAKE) -C db sourceinstall
+db_exampleinstall:
+	$(MAKE) -C db exampleinstall
+db_distinstall:
+	$(MAKE) -C db distinstall
+db_zipinstall:
+	$(MAKE) -C db zipinstall
+db_zipsourceinstall:
+	$(MAKE) -C db zipsourceinstall
+db_zipexampleinstall:
+	$(MAKE) -C db zipexampleinstall
+db_zipdistinstall:
+	$(MAKE) -C db zipdistinstall
+db_clean:
+	$(MAKE) -C db clean
+db_distclean:
+	$(MAKE) -C db distclean
+db_cleanall:
+	$(MAKE) -C db cleanall
+db_info:
+	$(MAKE) -C db info
+db:
+	$(MAKE) -C db all
+.PHONY: db_all db_debug db_examples db_smart 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
+endif
+ifdef TARGET_DIRS_SHEDIT
+shedit_all:
+	$(MAKE) -C shedit all
+shedit_debug:
+	$(MAKE) -C shedit debug
+shedit_examples:
+	$(MAKE) -C shedit examples
+shedit_smart:
+	$(MAKE) -C shedit smart
+shedit_shared:
+	$(MAKE) -C shedit shared
+shedit_install:
+	$(MAKE) -C shedit install
+shedit_sourceinstall:
+	$(MAKE) -C shedit sourceinstall
+shedit_exampleinstall:
+	$(MAKE) -C shedit exampleinstall
+shedit_distinstall:
+	$(MAKE) -C shedit distinstall
+shedit_zipinstall:
+	$(MAKE) -C shedit zipinstall
+shedit_zipsourceinstall:
+	$(MAKE) -C shedit zipsourceinstall
+shedit_zipexampleinstall:
+	$(MAKE) -C shedit zipexampleinstall
+shedit_zipdistinstall:
+	$(MAKE) -C shedit zipdistinstall
+shedit_clean:
+	$(MAKE) -C shedit clean
+shedit_distclean:
+	$(MAKE) -C shedit distclean
+shedit_cleanall:
+	$(MAKE) -C shedit cleanall
+shedit_info:
+	$(MAKE) -C shedit info
+shedit:
+	$(MAKE) -C shedit all
+.PHONY: shedit_all shedit_debug shedit_examples shedit_smart 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
+endif
+TARGET_EXAMPLEDIRS_TESTS=1
+TARGET_EXAMPLEDIRS_DB/TESTS=1
+TARGET_EXAMPLEDIRS_SHEDIT/GTK=1
+ifdef TARGET_EXAMPLEDIRS_TESTS
 tests_all:
 	$(MAKE) -C tests all
-
 tests_debug:
 	$(MAKE) -C tests debug
-
 tests_examples:
 	$(MAKE) -C tests examples
-
-tests_test:
-	$(MAKE) -C tests test
-
 tests_smart:
 	$(MAKE) -C tests smart
-
 tests_shared:
 	$(MAKE) -C tests shared
-
-tests_showinstall:
-	$(MAKE) -C tests showinstall
-
 tests_install:
 	$(MAKE) -C tests install
-
 tests_sourceinstall:
 	$(MAKE) -C tests sourceinstall
-
 tests_exampleinstall:
 	$(MAKE) -C tests exampleinstall
-
+tests_distinstall:
+	$(MAKE) -C tests distinstall
 tests_zipinstall:
 	$(MAKE) -C tests zipinstall
-
 tests_zipsourceinstall:
 	$(MAKE) -C tests zipsourceinstall
-
 tests_zipexampleinstall:
 	$(MAKE) -C tests zipexampleinstall
-
+tests_zipdistinstall:
+	$(MAKE) -C tests zipdistinstall
 tests_clean:
 	$(MAKE) -C tests clean
-
 tests_distclean:
 	$(MAKE) -C tests distclean
-
 tests_cleanall:
 	$(MAKE) -C tests cleanall
-
-tests_require:
-	$(MAKE) -C tests require
-
 tests_info:
 	$(MAKE) -C tests info
-endif
-
-# Dir shedit/gtk
-
-ifdef EXAMPLEDIRSHEDIT/GTK
-.PHONY:  shedit/gtk_all shedit/gtk_debug shedit/gtk_examples shedit/gtk_test shedit/gtk_smart shedit/gtk_shared shedit/gtk_showinstall shedit/gtk_install shedit/gtk_sourceinstall shedit/gtk_exampleinstall shedit/gtk_zipinstall shedit/gtk_zipsourceinstall shedit/gtk_zipexampleinstall shedit/gtk_clean shedit/gtk_distclean shedit/gtk_cleanall shedit/gtk_require shedit/gtk_info
-
+tests:
+	$(MAKE) -C tests all
+.PHONY: tests_all tests_debug tests_examples tests_smart 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
+endif
+ifdef TARGET_EXAMPLEDIRS_DB/TESTS
+db/tests_all:
+	$(MAKE) -C db/tests all
+db/tests_debug:
+	$(MAKE) -C db/tests debug
+db/tests_examples:
+	$(MAKE) -C db/tests examples
+db/tests_smart:
+	$(MAKE) -C db/tests smart
+db/tests_shared:
+	$(MAKE) -C db/tests shared
+db/tests_install:
+	$(MAKE) -C db/tests install
+db/tests_sourceinstall:
+	$(MAKE) -C db/tests sourceinstall
+db/tests_exampleinstall:
+	$(MAKE) -C db/tests exampleinstall
+db/tests_distinstall:
+	$(MAKE) -C db/tests distinstall
+db/tests_zipinstall:
+	$(MAKE) -C db/tests zipinstall
+db/tests_zipsourceinstall:
+	$(MAKE) -C db/tests zipsourceinstall
+db/tests_zipexampleinstall:
+	$(MAKE) -C db/tests zipexampleinstall
+db/tests_zipdistinstall:
+	$(MAKE) -C db/tests zipdistinstall
+db/tests_clean:
+	$(MAKE) -C db/tests clean
+db/tests_distclean:
+	$(MAKE) -C db/tests distclean
+db/tests_cleanall:
+	$(MAKE) -C db/tests cleanall
+db/tests_info:
+	$(MAKE) -C db/tests info
+db/tests:
+	$(MAKE) -C db/tests all
+.PHONY: db/tests_all db/tests_debug db/tests_examples db/tests_smart db/tests_shared db/tests_install db/tests_sourceinstall db/tests_exampleinstall db/tests_distinstall db/tests_zipinstall db/tests_zipsourceinstall db/tests_zipexampleinstall db/tests_zipdistinstall db/tests_clean db/tests_distclean db/tests_cleanall db/tests_info db/tests
+endif
+ifdef TARGET_EXAMPLEDIRS_SHEDIT/GTK
 shedit/gtk_all:
 	$(MAKE) -C shedit/gtk all
-
 shedit/gtk_debug:
 	$(MAKE) -C shedit/gtk debug
-
 shedit/gtk_examples:
 	$(MAKE) -C shedit/gtk examples
-
-shedit/gtk_test:
-	$(MAKE) -C shedit/gtk test
-
 shedit/gtk_smart:
 	$(MAKE) -C shedit/gtk smart
-
 shedit/gtk_shared:
 	$(MAKE) -C shedit/gtk shared
-
-shedit/gtk_showinstall:
-	$(MAKE) -C shedit/gtk showinstall
-
 shedit/gtk_install:
 	$(MAKE) -C shedit/gtk install
-
 shedit/gtk_sourceinstall:
 	$(MAKE) -C shedit/gtk sourceinstall
-
 shedit/gtk_exampleinstall:
 	$(MAKE) -C shedit/gtk exampleinstall
-
+shedit/gtk_distinstall:
+	$(MAKE) -C shedit/gtk distinstall
 shedit/gtk_zipinstall:
 	$(MAKE) -C shedit/gtk zipinstall
-
 shedit/gtk_zipsourceinstall:
 	$(MAKE) -C shedit/gtk zipsourceinstall
-
 shedit/gtk_zipexampleinstall:
 	$(MAKE) -C shedit/gtk zipexampleinstall
-
+shedit/gtk_zipdistinstall:
+	$(MAKE) -C shedit/gtk zipdistinstall
 shedit/gtk_clean:
 	$(MAKE) -C shedit/gtk clean
-
 shedit/gtk_distclean:
 	$(MAKE) -C shedit/gtk distclean
-
 shedit/gtk_cleanall:
 	$(MAKE) -C shedit/gtk cleanall
-
-shedit/gtk_require:
-	$(MAKE) -C shedit/gtk require
-
 shedit/gtk_info:
 	$(MAKE) -C shedit/gtk info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
+shedit/gtk:
+	$(MAKE) -C shedit/gtk all
+.PHONY: shedit/gtk_all shedit/gtk_debug shedit/gtk_examples shedit/gtk_smart shedit/gtk_shared shedit/gtk_install shedit/gtk_sourceinstall shedit/gtk_exampleinstall shedit/gtk_distinstall shedit/gtk_zipinstall shedit/gtk_zipsourceinstall shedit/gtk_zipexampleinstall shedit/gtk_zipdistinstall shedit/gtk_clean shedit/gtk_distclean shedit/gtk_cleanall shedit/gtk_info shedit/gtk
+endif
+all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
+debug: fpc_debug $(addsuffix _debug,$(TARGET_DIRS))
+examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
+smart: fpc_smart $(addsuffix _smart,$(TARGET_DIRS))
+shared: fpc_shared $(addsuffix _shared,$(TARGET_DIRS))
+install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
+sourceinstall: fpc_sourceinstall
+exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS))
+distinstall: fpc_distinstall $(addsuffix _distinstall,$(TARGET_DIRS))
+zipinstall: fpc_zipinstall
+zipsourceinstall: fpc_zipsourceinstall
+zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
+zipdistinstall: fpc_zipdistinstall $(addsuffix _zipdistinstall,$(TARGET_DIRS))
+clean: fpc_clean $(addsuffix _clean,$(TARGET_DIRS)) $(addsuffix _clean,$(TARGET_EXAMPLEDIRS))
+distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
+cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
+info: fpc_info $(addsuffix _info,$(TARGET_DIRS))
+.PHONY: all debug examples smart shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif
-

+ 24 - 12
fcl/Makefile.fpc

@@ -2,18 +2,30 @@
 #   Makefile.fpc for Free Component Library
 #
 
-[targets]
-dirs=go32v2 linux win32 os2 freebsd
-exampledirs=tests shedit/gtk
+[package]
+name=fcl
+version=1.0.5
 
-[install]
-examplesubdir=fcl
-packagename=fcl
+[require]
+packages=paszlib
+packages_linux=inet
 
-[sections]
-none=1
-zipsourceinstall=1
-zipexampleinstall=1
+[target]
+dirs=xml db shedit
+units=classes inifiles registry ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls
+units_freebsd=process asyncio ssockets http
+units_linux=process asyncio ssockets http
+units_win32=process fileinfo
+rsts=classes ssockets cachecls
+exampledirs=tests db/tests shedit/gtk
 
-[defaults]
-defaultdir=$(OS_TARGET)
+[compiler]
+options=-S2
+targetdir=$(OS_TARGET)
+includedir=$(OS_TARGET) inc
+includedir_linux=unix
+includedir_freebsd=unix
+sourcedir=$(OS_TARGET) inc
+
+[libs]
+libname=fpfcl

File diff suppressed because it is too large
+ 232 - 586
fcl/db/Makefile


+ 14 - 20
fcl/db/Makefile.fpc

@@ -2,33 +2,27 @@
 #   Makefile.fpc for TDataSet for FCL
 #
 
-[targets]
-units=db ddg_ds ddg_rec mysqldb
-examples=testds createds mtest tested
+[package]
+main=fcl
 
-[require]
-options=-S2
-packages=mysql
-
-[install]
-unitsubdir=fcl
-packagename=fcl
+[target]
+dirs=dbase
+dirs_linux=mysql interbase
+dirs_win32=mysql interbase
+units=db ddg_ds ddg_rec
+exampledirs=tests
 
-[dirs]
-fpcdir=../..
+[compiler]
+options=-S2
 targetdir=../$(OS_TARGET)
 
 [rules]
 db$(PPUEXT): db.pp fields.inc dataset.inc dbs.inc
 
-ddg_ds$(PPUEXT): db$(PPUEXT) ddg_rec$(PPUEXT) ddg_ds$(PASEXT)
-
-testds$(EXEEXT): ddg_ds$(PPUEXT) testds$(PASEXT)
-
-tested$(EXEEXT): ddg_ds$(PPUEXT) tested$(PASEXT)
+ddg_ds$(PPUEXT): db$(PPUEXT) ddg_rec$(PPUEXT) ddg_ds.pp
 
-createds$(EXEEXT): createds$(PASEXT) ddg_rec$(PPUEXT)
+testds$(EXEEXT): ddg_ds$(PPUEXT) testds.pp
 
-mysqldb$(PPUEXT): db$(PPUEXT) mysqldb$(PASEXT)
+tested$(EXEEXT): ddg_ds$(PPUEXT) tested.pp
 
-mtest$(EXEEXT): mysqldb$(PPUEXT) mtest$(PASEXT)
+createds$(EXEEXT): createds.pp ddg_rec$(PPUEXT)

File diff suppressed because it is too large
+ 227 - 556
fcl/db/dbase/Makefile


+ 7 - 10
fcl/db/dbase/Makefile.fpc

@@ -1,17 +1,14 @@
 #
-# Makefile.fpc for interbase.pp units
+# Makefile.fpc for DBase FCL db units
+#
+
+[package]
+main=fcl
 
-[targets]
+[target]
 units=dbf
 examples=testdbf
 
-[require]
+[compiler]
 options=-S2 -Sh
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[dirs]
-fpcdir=../../..
 targetdir=../../$(OS_TARGET)

File diff suppressed because it is too large
+ 246 - 454
fcl/db/interbase/Makefile


+ 8 - 9
fcl/db/interbase/Makefile.fpc

@@ -1,18 +1,17 @@
 #
-# Makefile.fpc for interbase.pp units
+# Makefile.fpc for interbase FCL db units
+#
+
+[package]
+main=fcl
 
-[targets]
+[target]
 units=interbase
 examples=testib
 
 [require]
-options=-S2 
 packages=ibase
 
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[dirs]
-fpcdir=../../..
+[compiler]
+options=-S2 
 targetdir=../../$(OS_TARGET)

File diff suppressed because it is too large
+ 221 - 481
fcl/db/tests/Makefile


+ 5 - 9
fcl/db/tests/Makefile.fpc

@@ -2,15 +2,11 @@
 #   Makefile.fpc for TDataSet Tests
 #
 
-[targets]
-programs=testds createds mtest tested
+[target]
+programs=testds createds tested
 
 [require]
-options=-S2
-packages=fcl mysql
-
-[dirs]
-fpcdir=../../..
+packages=fcl
 
-[libs]
-libgcc=1
+[compiler]
+options=-S2

+ 0 - 1545
fcl/freebsd/Makefile

@@ -1,1545 +0,0 @@
-#
-# Makefile generated by fpcmake v1.00 [2000/12/19]
-#
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
-override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
-ifeq ($(PWD),)
-nopwd:
-	@echo You need the GNU utils package to use this Makefile!
-	@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
-	@exit
-else
-inUnix=1
-PWD:=$(firstword $(PWD))
-endif
-else
-PWD:=$(firstword $(PWD))
-endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-endif
-
-# The extension of executables
-ifdef inUnix
-SRCEXEEXT=
-else
-SRCEXEEXT=.exe
-endif
-
-# The path which is searched separated by spaces
-ifdef inUnix
-SEARCHPATH=$(subst :, ,$(PATH))
-else
-SEARCHPATH=$(subst ;, ,$(PATH))
-endif
-
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
-#####################################################################
-# Default target
-#####################################################################
-
-override OS_TARGET:=freebsd
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
-ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
-FPC=ppc386
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
-ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
-endif
-
-# Source OS
-ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
-endif
-
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
-endif
-
-# FPC version
-ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
-endif
-
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# Pre Settings
-#####################################################################
-
-# Include files
-UNIXINC=../unix
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
-
-# Default FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR=../..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-endif
-
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard ../db ../xml ../shedit)
-override UNITOBJECTS+=classes $(INCUNITS) process asyncio ssockets http
-override RSTOBJECTS+=classes ssockets cachecls
-
-# Clean
-
-
-# Install
-
-UNITSUBDIR=fcl
-PACKAGENAME=fcl
-ZIPTARGET=install
-
-# Defaults
-
-override NEEDOPT=-S2
-
-# Directories
-
-vpath %$(PASEXT) $(INC) $(UNIXINC)
-override NEEDINCDIR=$(INC) $(UNIXINC)
-ifndef TARGETDIR
-TARGETDIR=.
-endif
-
-# Packages
-
-override PACKAGES+=rtl zlib inet
-
-# Libraries
-
-LIBNAME=libfpfcl.so
-LIBVERSION=1.0
-
-# Info
-
-INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=echo
-ECHOE:=echo
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-endif
-
-# To copy pograms
-ifndef COPY
-COPY:=cp -fp
-endif
-
-# Copy a whole tree
-ifndef COPYTREE
-COPYTREE:=cp -rfp
-endif
-
-# To move pograms
-ifndef MOVE
-MOVE:=mv -f
-endif
-
-# Check delete program
-ifndef DEL
-DEL:=rm -f
-endif
-
-# Check deltree program
-ifndef DELTREE
-DELTREE:=rm -rf
-endif
-
-# To install files
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=install -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-
-# To install programs
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=install -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifdef inUnix
-MKDIR:=install -m 755 -d
-else
-MKDIR:=ginstall -m 755 -d
-endif
-endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
-ifndef AS
-AS=as
-endif
-
-# linker, but probably not used
-ifndef LD
-LD=ld
-endif
-
-# ppas.bat / ppas.sh
-ifdef inUnix
-PPAS=ppas.sh
-else
-ifdef inOS2
-PPAS=ppas.cmd
-else
-PPAS=ppas.bat
-endif
-endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-
-ZIPOPT=-9
-ZIPEXT=.zip
-
-# Tar
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG=
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-
-ifeq ($(USETAR),bz2)
-TAROPT=vI
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-
-#####################################################################
-# Default extensions
-#####################################################################
-
-# Default needed extensions (Go32v2,Linux)
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
-
-# Go32v1
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
-endif
-
-# Go32v2
-ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
-endif
-
-# Linux
-ifeq ($(OS_TARGET),linux)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
-endif
-
-# Linux
-ifeq ($(OS_TARGET),freebsd)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
-endif
-
-# Win32
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
-endif
-
-# OS/2
-ifeq ($(OS_TARGET),os2)
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-SMARTEXT=.so
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
-endif
-
-# library prefix
-LIBPREFIX=lib
-ifeq ($(OS_TARGET),go32v2)
-LIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v1)
-LIBPREFIX=
-endif
-
-# determine which .pas extension is used
-ifndef PASEXT
-ifdef EXEOBJECTS
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
-else
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
-endif
-ifeq ($(TESTPAS),)
-PASEXT=.pp
-else
-PASEXT=.pas
-endif
-endif
-
-
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-PACKAGEZLIB=1
-PACKAGEINET=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef PACKAGEZLIB
-ifneq ($(wildcard $(PACKAGESDIR)/zlib),)
-ifneq ($(wildcard $(PACKAGESDIR)/zlib/$(OS_TARGET)),)
-PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib/$(OS_TARGET)
-else
-PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib
-endif
-ifeq ($(wildcard $(PACKAGEDIR_ZLIB)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_zlib
-package_zlib:
-	$(MAKE) -C $(PACKAGEDIR_ZLIB) all
-endif
-UNITDIR_ZLIB=$(PACKAGEDIR_ZLIB)
-else
-PACKAGEDIR_ZLIB=
-ifneq ($(wildcard $(UNITSDIR)/zlib),)
-ifneq ($(wildcard $(UNITSDIR)/zlib/$(OS_TARGET)),)
-UNITDIR_ZLIB=$(UNITSDIR)/zlib/$(OS_TARGET)
-else
-UNITDIR_ZLIB=$(UNITSDIR)/zlib
-endif
-else
-UNITDIR_ZLIB=
-endif
-endif
-ifdef UNITDIR_ZLIB
-override NEEDUNITDIR+=$(UNITDIR_ZLIB)
-endif
-endif
-ifdef PACKAGEINET
-ifneq ($(wildcard $(PACKAGESDIR)/inet),)
-ifneq ($(wildcard $(PACKAGESDIR)/inet/$(OS_TARGET)),)
-PACKAGEDIR_INET=$(PACKAGESDIR)/inet/$(OS_TARGET)
-else
-PACKAGEDIR_INET=$(PACKAGESDIR)/inet
-endif
-ifeq ($(wildcard $(PACKAGEDIR_INET)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_inet
-package_inet:
-	$(MAKE) -C $(PACKAGEDIR_INET) all
-endif
-UNITDIR_INET=$(PACKAGEDIR_INET)
-else
-PACKAGEDIR_INET=
-ifneq ($(wildcard $(UNITSDIR)/inet),)
-ifneq ($(wildcard $(UNITSDIR)/inet/$(OS_TARGET)),)
-UNITDIR_INET=$(UNITSDIR)/inet/$(OS_TARGET)
-else
-UNITDIR_INET=$(UNITSDIR)/inet
-endif
-else
-UNITDIR_INET=
-endif
-endif
-ifdef UNITDIR_INET
-override NEEDUNITDIR+=$(UNITDIR_INET)
-endif
-endif
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-else
-# Normal install
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
-else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
-ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
-else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
-endif
-endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
-ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
-else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
-endif
-endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
-endif
-endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
-ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
-else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
-endif
-endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
-ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
-else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
-endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
-endif
-endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
-ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
-else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
-endif
-endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
-ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
-else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
-endif
-ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
-endif
-endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
-endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
-endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-
-#####################################################################
-# Compiler Command Line
-#####################################################################
-
-# Load commandline OPTDEF and add FPC_CPU define
-override FPCOPTDEF:=-d$(CPU_TARGET)
-
-# Load commandline OPT and add target and unit dir to be sure
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-
-# User dirs should be first, so they are looked at first
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-
-# Smartlinking
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-
-# Smartlinking creation
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-
-# Debug
-ifdef DEBUG
-override FPCOPT+=-gl -dDEBUG
-endif
-
-# Release mode (strip, optimize and don't load ppc386.cfg)
-# 0.99.12b has a bug in the optimizer so don't use it by default
-ifdef RELEASE
-ifeq ($(FPC_VERSION),0.99.12)
-override FPCOPT+=-Xs -OGp3 -n
-else
-override FPCOPT+=-Xs -OG2p3 -n
-endif
-endif
-
-# Strip
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-
-# Optimizer
-ifdef OPTIMIZE
-override FPCOPT+=-OG2p3
-endif
-
-# Verbose settings (warning,note,info)
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-
-ifdef NEEDOPT
-override FPCOPT+=$(NEEDOPT)
-endif
-
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
-ifdef UNITSDIR
-override FPCOPT+=-Fu$(UNITSDIR)
-endif
-
-ifdef NEEDINCDIR
-override FPCOPT+=$(addprefix -Fi,$(NEEDINCDIR))
-endif
-
-
-# Target dirs and the prefix to use for clean/install
-ifdef TARGETDIR
-override FPCOPT+=-FE$(TARGETDIR)
-ifeq ($(TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(TARGETDIR)/
-endif
-endif
-ifdef UNITTARGETDIR
-override FPCOPT+=-FU$(UNITTARGETDIR)
-ifeq ($(UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(TARGETDIR)/
-endif
-else
-ifdef TARGETDIR
-override UNITTARGETDIR=$(TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-
-# Add commandline options last so they can override
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-
-# Add defines from FPCOPTDEF to FPCOPT
-ifdef FPCOPTDEF
-override FPCOPT+=$(FPCOPTDEF)
-endif
-
-# Error file ?
-ifdef ERRORFILE
-override FPCOPT+=-Fr$(ERRORFILE)
-endif
-
-# Was a config file specified ?
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-
-# For win32 the options are passed using the environment FPCEXTCMD
-ifeq ($(OS_SOURCE),win32)
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-
-# Compiler commandline
-override COMPILER:=$(FPC) $(FPCOPT)
-
-# also call ppas if with command option -s
-# but only if the OS_SOURCE and OS_TARGE are equal
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(OS_SOURCE),$(OS_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: fpc_all $(addsuffix _all,$(DIROBJECTS))
-
-debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
-
-smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
-
-shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
-
-install: fpc_install $(addsuffix _install,$(DIROBJECTS))
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: fpc_distclean $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-info: fpc_info
-
-.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require info
-
-#####################################################################
-# Units
-#####################################################################
-
-.PHONY: fpc_units
-
-override ALLTARGET+=fpc_units
-
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
-override INSTALLPPUFILES+=$(UNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES)
-
-fpc_units: $(UNITPPUFILES)
-
-#####################################################################
-# Resource strings
-#####################################################################
-
-ifdef RSTOBJECTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(RSTOBJECTS))
-
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-
-#####################################################################
-# General compile rules
-#####################################################################
-
-.PHONY: fpc_packages fpc_all fpc_debug
-
-$(FPCMADE): $(ALLTARGET)
-	@$(ECHO) Compiled > $(FPCMADE)
-
-fpc_packages: $(COMPILEPACKAGES)
-
-fpc_all: fpc_packages $(FPCMADE)
-
-fpc_debug:
-	$(MAKE) all DEBUG=1
-
-# Search paths for .ppu if targetdir is set
-ifdef UNITTARGETDIR
-vpath %$(PPUEXT) $(UNITTARGETDIR)
-endif
-
-# General compile rules, available for both possible PASEXT
-
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
-
-%$(PPUEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(PPUEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-#####################################################################
-# Library
-#####################################################################
-
-.PHONY: fpc_smart fpc_shared
-
-ifdef LIBVERSION
-LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
-else
-LIBFULLNAME=$(LIBNAME)
-endif
-
-# Default sharedlib units are all unit objects
-ifndef SHAREDLIBUNITOBJECTS
-SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
-endif
-
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-
-fpc_shared: all
-ifdef HASSHAREDLIB
-ifndef LIBNAME
-	@$(ECHO) "LIBNAME not set"
-else
-	$(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
-endif
-else
-	@$(ECHO) "Shared Libraries not supported"
-endif
-
-#####################################################################
-# Install rules
-#####################################################################
-
-.PHONY: fpc_showinstall fpc_install
-
-ifdef EXTRAINSTALLUNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
-endif
-
-ifdef INSTALLPPUFILES
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
-ifdef PPUFILES
-INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
-else
-INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
-endif
-override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
-endif
-
-ifdef INSTALLEXEFILES
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
-endif
-
-fpc_showinstall: $(SHOWINSTALLTARGET)
-ifdef INSTALLEXEFILES
-	@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
-endif
-ifdef INSTALLPPUFILES
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
-ifneq ($(INSTALLPPULINKFILES),)
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
-ifdef HASSHAREDLIB
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
-endif
-
-fpc_install: $(INSTALLTARGET)
-# Create UnitInstallFiles
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(BININSTALLDIR)
-# Compress the exes if upx is defined
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
-ifdef inUnix
-	ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	$(MKDIR) $(DATAINSTALLDIR)
-	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
-endif
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
-endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
-endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
-endif
-endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
-else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Clean rules
-#####################################################################
-
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-
-ifdef EXTRACLEANUNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
-endif
-
-ifdef CLEANPPUFILES
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-# Get the .o and .a files created for the units
-ifdef PPUFILES
-CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
-else
-CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
-endif
-override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
-endif
-
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef EXTRACLEANFILES
-	-$(DEL) $(EXTRACLEANFILES)
-endif
-ifdef LIBNAME
-	-$(DEL) $(LIBNAME) $(LIBFULLNAME)
-endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-fpc_distclean: fpc_clean
-
-# Also run clean first if targetdir is set. Unittargetdir is always
-# set if targetdir or unittargetdir is specified
-ifdef UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-#####################################################################
-# Info rules
-#####################################################################
-
-.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
-	fpc_dirinfo
-
-fpc_info: $(INFOTARGET)
-
-fpc_infocfg:
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC....... $(FPC)
-	@$(ECHO)  Version... $(FPC_VERSION)
-	@$(ECHO)  CPU....... $(CPU_TARGET)
-	@$(ECHO)  Source.... $(OS_SOURCE)
-	@$(ECHO)  Target.... $(OS_TARGET)
-	@$(ECHO)
-
-fpc_infoobjects:
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  LoaderObjects..... $(LOADEROBJECTS)
-	@$(ECHO)  UnitObjects....... $(UNITOBJECTS)
-	@$(ECHO)  ExeObjects........ $(EXEOBJECTS)
-	@$(ECHO)
-	@$(ECHO)  ExtraCleanUnits... $(EXTRACLEANUNITS)
-	@$(ECHO)  ExtraCleanFiles... $(EXTRACLEANFILES)
-	@$(ECHO)
-	@$(ECHO)  ExtraInstallUnits. $(EXTRAINSTALLUNITS)
-	@$(ECHO)  ExtraInstallFiles. $(EXTRAINSTALLFILES)
-	@$(ECHO)
-
-fpc_infoinstall:
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-ifdef DATE
-	@$(ECHO)  DateStr.............. $(DATESTR)
-endif
-ifdef PACKAGEPREFIX
-	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
-endif
-ifdef PACKAGENAME
-	@$(ECHO)  PackageName.......... $(PACKAGENAME)
-endif
-	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
-	@$(ECHO)
-	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
-	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
-	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
-	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
-	@$(ECHO)  SourceInstallDir..... $(SOURCEINSTALLDIR)
-	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
-	@$(ECHO)  DataInstallDir....... $(DATAINSTALLDIR)
-	@$(ECHO)
-	@$(ECHO)  DestZipDir........... $(DESTZIPDIR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIR../DB=1
-OBJECTDIR../XML=1
-OBJECTDIR../SHEDIT=1
-
-# Dir ../db
-
-ifdef OBJECTDIR../DB
-.PHONY:  ../db_all ../db_debug ../db_examples ../db_test ../db_smart ../db_shared ../db_showinstall ../db_install ../db_sourceinstall ../db_exampleinstall ../db_zipinstall ../db_zipsourceinstall ../db_zipexampleinstall ../db_clean ../db_distclean ../db_cleanall ../db_require ../db_info
-
-../db_all:
-	$(MAKE) -C ../db all
-
-../db_debug:
-	$(MAKE) -C ../db debug
-
-../db_examples:
-	$(MAKE) -C ../db examples
-
-../db_test:
-	$(MAKE) -C ../db test
-
-../db_smart:
-	$(MAKE) -C ../db smart
-
-../db_shared:
-	$(MAKE) -C ../db shared
-
-../db_showinstall:
-	$(MAKE) -C ../db showinstall
-
-../db_install:
-	$(MAKE) -C ../db install
-
-../db_sourceinstall:
-	$(MAKE) -C ../db sourceinstall
-
-../db_exampleinstall:
-	$(MAKE) -C ../db exampleinstall
-
-../db_zipinstall:
-	$(MAKE) -C ../db zipinstall
-
-../db_zipsourceinstall:
-	$(MAKE) -C ../db zipsourceinstall
-
-../db_zipexampleinstall:
-	$(MAKE) -C ../db zipexampleinstall
-
-../db_clean:
-	$(MAKE) -C ../db clean
-
-../db_distclean:
-	$(MAKE) -C ../db distclean
-
-../db_cleanall:
-	$(MAKE) -C ../db cleanall
-
-../db_require:
-	$(MAKE) -C ../db require
-
-../db_info:
-	$(MAKE) -C ../db info
-endif
-
-# Dir ../xml
-
-ifdef OBJECTDIR../XML
-.PHONY:  ../xml_all ../xml_debug ../xml_examples ../xml_test ../xml_smart ../xml_shared ../xml_showinstall ../xml_install ../xml_sourceinstall ../xml_exampleinstall ../xml_zipinstall ../xml_zipsourceinstall ../xml_zipexampleinstall ../xml_clean ../xml_distclean ../xml_cleanall ../xml_require ../xml_info
-
-../xml_all:
-	$(MAKE) -C ../xml all
-
-../xml_debug:
-	$(MAKE) -C ../xml debug
-
-../xml_examples:
-	$(MAKE) -C ../xml examples
-
-../xml_test:
-	$(MAKE) -C ../xml test
-
-../xml_smart:
-	$(MAKE) -C ../xml smart
-
-../xml_shared:
-	$(MAKE) -C ../xml shared
-
-../xml_showinstall:
-	$(MAKE) -C ../xml showinstall
-
-../xml_install:
-	$(MAKE) -C ../xml install
-
-../xml_sourceinstall:
-	$(MAKE) -C ../xml sourceinstall
-
-../xml_exampleinstall:
-	$(MAKE) -C ../xml exampleinstall
-
-../xml_zipinstall:
-	$(MAKE) -C ../xml zipinstall
-
-../xml_zipsourceinstall:
-	$(MAKE) -C ../xml zipsourceinstall
-
-../xml_zipexampleinstall:
-	$(MAKE) -C ../xml zipexampleinstall
-
-../xml_clean:
-	$(MAKE) -C ../xml clean
-
-../xml_distclean:
-	$(MAKE) -C ../xml distclean
-
-../xml_cleanall:
-	$(MAKE) -C ../xml cleanall
-
-../xml_require:
-	$(MAKE) -C ../xml require
-
-../xml_info:
-	$(MAKE) -C ../xml info
-endif
-
-# Dir ../shedit
-
-ifdef OBJECTDIR../SHEDIT
-.PHONY:  ../shedit_all ../shedit_debug ../shedit_examples ../shedit_test ../shedit_smart ../shedit_shared ../shedit_showinstall ../shedit_install ../shedit_sourceinstall ../shedit_exampleinstall ../shedit_zipinstall ../shedit_zipsourceinstall ../shedit_zipexampleinstall ../shedit_clean ../shedit_distclean ../shedit_cleanall ../shedit_require ../shedit_info
-
-../shedit_all:
-	$(MAKE) -C ../shedit all
-
-../shedit_debug:
-	$(MAKE) -C ../shedit debug
-
-../shedit_examples:
-	$(MAKE) -C ../shedit examples
-
-../shedit_test:
-	$(MAKE) -C ../shedit test
-
-../shedit_smart:
-	$(MAKE) -C ../shedit smart
-
-../shedit_shared:
-	$(MAKE) -C ../shedit shared
-
-../shedit_showinstall:
-	$(MAKE) -C ../shedit showinstall
-
-../shedit_install:
-	$(MAKE) -C ../shedit install
-
-../shedit_sourceinstall:
-	$(MAKE) -C ../shedit sourceinstall
-
-../shedit_exampleinstall:
-	$(MAKE) -C ../shedit exampleinstall
-
-../shedit_zipinstall:
-	$(MAKE) -C ../shedit zipinstall
-
-../shedit_zipsourceinstall:
-	$(MAKE) -C ../shedit zipsourceinstall
-
-../shedit_zipexampleinstall:
-	$(MAKE) -C ../shedit zipexampleinstall
-
-../shedit_clean:
-	$(MAKE) -C ../shedit clean
-
-../shedit_distclean:
-	$(MAKE) -C ../shedit distclean
-
-../shedit_cleanall:
-	$(MAKE) -C ../shedit cleanall
-
-../shedit_require:
-	$(MAKE) -C ../shedit require
-
-../shedit_info:
-	$(MAKE) -C ../shedit info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-
-#####################################################################
-# Users rules
-#####################################################################
-
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
-
-process$(PPUEXT): process$(PASEXT) process.inc

+ 0 - 48
fcl/freebsd/Makefile.fpc

@@ -1,48 +0,0 @@
-#
-#   Makefile.fpc for Free Component Library for FreeBSD
-#
-
-[targets]
-dirs=../db ../xml ../shedit
-units=classes $(INCUNITS) process asyncio ssockets http
-rst=classes ssockets cachecls
-
-[defaults]
-defaulttarget=freebsd
-
-[require]
-options=-S2
-packages=zlib inet
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[libs]
-libname=libfpfcl.so
-libversion=1.0
-
-[dirs]
-fpcdir=../..
-targetdir=.
-incdir=$(INC) $(UNIXINC)
-sourcesdir=$(INC) $(UNIXINC)
-
-[presettings]
-# Include files
-UNIXINC=../unix
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-
-
-[rules]
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
-
-process$(PPUEXT): process$(PASEXT) process.inc

+ 0 - 1450
fcl/go32v2/Makefile

@@ -1,1450 +0,0 @@
-#
-# Makefile generated by fpcmake v1.00 [2000/12/19]
-#
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
-override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
-ifeq ($(PWD),)
-nopwd:
-	@echo You need the GNU utils package to use this Makefile!
-	@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
-	@exit
-else
-inUnix=1
-PWD:=$(firstword $(PWD))
-endif
-else
-PWD:=$(firstword $(PWD))
-endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-endif
-
-# The extension of executables
-ifdef inUnix
-SRCEXEEXT=
-else
-SRCEXEEXT=.exe
-endif
-
-# The path which is searched separated by spaces
-ifdef inUnix
-SEARCHPATH=$(subst :, ,$(PATH))
-else
-SEARCHPATH=$(subst ;, ,$(PATH))
-endif
-
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
-#####################################################################
-# Default target
-#####################################################################
-
-override OS_TARGET:=go32v2
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
-ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
-FPC=ppc386
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
-ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
-endif
-
-# Source OS
-ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
-endif
-
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
-endif
-
-# FPC version
-ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
-endif
-
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# Pre Settings
-#####################################################################
-
-# Include files
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
-
-# Default FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR=../..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-endif
-
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard ../xml ../shedit)
-override UNITOBJECTS+=classes $(INCUNITS)
-override RSTOBJECTS+=classes ssockets cachecls
-
-# Clean
-
-
-# Install
-
-UNITSUBDIR=fcl
-PACKAGENAME=fcl
-ZIPTARGET=install
-
-# Defaults
-
-override NEEDOPT=-S2
-
-# Directories
-
-vpath %$(PASEXT) $(INC)
-override NEEDINCDIR=$(INC)
-ifndef TARGETDIR
-TARGETDIR=.
-endif
-
-# Packages
-
-override PACKAGES+=rtl paszlib
-
-# Libraries
-
-LIBNAME=fpfcl
-
-# Info
-
-INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=echo
-ECHOE:=echo
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-endif
-
-# To copy pograms
-ifndef COPY
-COPY:=cp -fp
-endif
-
-# Copy a whole tree
-ifndef COPYTREE
-COPYTREE:=cp -rfp
-endif
-
-# To move pograms
-ifndef MOVE
-MOVE:=mv -f
-endif
-
-# Check delete program
-ifndef DEL
-DEL:=rm -f
-endif
-
-# Check deltree program
-ifndef DELTREE
-DELTREE:=rm -rf
-endif
-
-# To install files
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=install -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-
-# To install programs
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=install -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifdef inUnix
-MKDIR:=install -m 755 -d
-else
-MKDIR:=ginstall -m 755 -d
-endif
-endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
-ifndef AS
-AS=as
-endif
-
-# linker, but probably not used
-ifndef LD
-LD=ld
-endif
-
-# ppas.bat / ppas.sh
-ifdef inUnix
-PPAS=ppas.sh
-else
-ifdef inOS2
-PPAS=ppas.cmd
-else
-PPAS=ppas.bat
-endif
-endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-
-ZIPOPT=-9
-ZIPEXT=.zip
-
-# Tar
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG=
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-
-ifeq ($(USETAR),bz2)
-TAROPT=vI
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-
-#####################################################################
-# Default extensions
-#####################################################################
-
-# Default needed extensions (Go32v2,Linux)
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
-
-# Go32v1
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
-endif
-
-# Go32v2
-ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
-endif
-
-# Linux
-ifeq ($(OS_TARGET),linux)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
-endif
-
-# Linux
-ifeq ($(OS_TARGET),freebsd)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
-endif
-
-# Win32
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
-endif
-
-# OS/2
-ifeq ($(OS_TARGET),os2)
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-SMARTEXT=.so
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
-endif
-
-# library prefix
-LIBPREFIX=lib
-ifeq ($(OS_TARGET),go32v2)
-LIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v1)
-LIBPREFIX=
-endif
-
-# determine which .pas extension is used
-ifndef PASEXT
-ifdef EXEOBJECTS
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
-else
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
-endif
-ifeq ($(TESTPAS),)
-PASEXT=.pp
-else
-PASEXT=.pas
-endif
-endif
-
-
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-PACKAGEPASZLIB=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef PACKAGEPASZLIB
-ifneq ($(wildcard $(PACKAGESDIR)/paszlib),)
-ifneq ($(wildcard $(PACKAGESDIR)/paszlib/$(OS_TARGET)),)
-PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib/$(OS_TARGET)
-else
-PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib
-endif
-ifeq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_paszlib
-package_paszlib:
-	$(MAKE) -C $(PACKAGEDIR_PASZLIB) all
-endif
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
-else
-PACKAGEDIR_PASZLIB=
-ifneq ($(wildcard $(UNITSDIR)/paszlib),)
-ifneq ($(wildcard $(UNITSDIR)/paszlib/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(UNITSDIR)/paszlib/$(OS_TARGET)
-else
-UNITDIR_PASZLIB=$(UNITSDIR)/paszlib
-endif
-else
-UNITDIR_PASZLIB=
-endif
-endif
-ifdef UNITDIR_PASZLIB
-override NEEDUNITDIR+=$(UNITDIR_PASZLIB)
-endif
-endif
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-else
-# Normal install
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
-else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
-ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
-else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
-endif
-endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
-ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
-else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
-endif
-endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
-endif
-endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
-ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
-else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
-endif
-endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
-ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
-else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
-endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
-endif
-endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
-ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
-else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
-endif
-endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
-ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
-else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
-endif
-ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
-endif
-endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
-endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
-endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-
-#####################################################################
-# Compiler Command Line
-#####################################################################
-
-# Load commandline OPTDEF and add FPC_CPU define
-override FPCOPTDEF:=-d$(CPU_TARGET)
-
-# Load commandline OPT and add target and unit dir to be sure
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-
-# User dirs should be first, so they are looked at first
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-
-# Smartlinking
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-
-# Smartlinking creation
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-
-# Debug
-ifdef DEBUG
-override FPCOPT+=-gl -dDEBUG
-endif
-
-# Release mode (strip, optimize and don't load ppc386.cfg)
-# 0.99.12b has a bug in the optimizer so don't use it by default
-ifdef RELEASE
-ifeq ($(FPC_VERSION),0.99.12)
-override FPCOPT+=-Xs -OGp3 -n
-else
-override FPCOPT+=-Xs -OG2p3 -n
-endif
-endif
-
-# Strip
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-
-# Optimizer
-ifdef OPTIMIZE
-override FPCOPT+=-OG2p3
-endif
-
-# Verbose settings (warning,note,info)
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-
-ifdef NEEDOPT
-override FPCOPT+=$(NEEDOPT)
-endif
-
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
-ifdef UNITSDIR
-override FPCOPT+=-Fu$(UNITSDIR)
-endif
-
-ifdef NEEDINCDIR
-override FPCOPT+=$(addprefix -Fi,$(NEEDINCDIR))
-endif
-
-
-# Target dirs and the prefix to use for clean/install
-ifdef TARGETDIR
-override FPCOPT+=-FE$(TARGETDIR)
-ifeq ($(TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(TARGETDIR)/
-endif
-endif
-ifdef UNITTARGETDIR
-override FPCOPT+=-FU$(UNITTARGETDIR)
-ifeq ($(UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(TARGETDIR)/
-endif
-else
-ifdef TARGETDIR
-override UNITTARGETDIR=$(TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-
-# Add commandline options last so they can override
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-
-# Add defines from FPCOPTDEF to FPCOPT
-ifdef FPCOPTDEF
-override FPCOPT+=$(FPCOPTDEF)
-endif
-
-# Error file ?
-ifdef ERRORFILE
-override FPCOPT+=-Fr$(ERRORFILE)
-endif
-
-# Was a config file specified ?
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-
-# For win32 the options are passed using the environment FPCEXTCMD
-ifeq ($(OS_SOURCE),win32)
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-
-# Compiler commandline
-override COMPILER:=$(FPC) $(FPCOPT)
-
-# also call ppas if with command option -s
-# but only if the OS_SOURCE and OS_TARGE are equal
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(OS_SOURCE),$(OS_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: fpc_all $(addsuffix _all,$(DIROBJECTS))
-
-debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
-
-smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
-
-shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
-
-install: fpc_install $(addsuffix _install,$(DIROBJECTS))
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: fpc_distclean $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-info: fpc_info
-
-.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require info
-
-#####################################################################
-# Units
-#####################################################################
-
-.PHONY: fpc_units
-
-override ALLTARGET+=fpc_units
-
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
-override INSTALLPPUFILES+=$(UNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES)
-
-fpc_units: $(UNITPPUFILES)
-
-#####################################################################
-# Resource strings
-#####################################################################
-
-ifdef RSTOBJECTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(RSTOBJECTS))
-
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-
-#####################################################################
-# General compile rules
-#####################################################################
-
-.PHONY: fpc_packages fpc_all fpc_debug
-
-$(FPCMADE): $(ALLTARGET)
-	@$(ECHO) Compiled > $(FPCMADE)
-
-fpc_packages: $(COMPILEPACKAGES)
-
-fpc_all: fpc_packages $(FPCMADE)
-
-fpc_debug:
-	$(MAKE) all DEBUG=1
-
-# Search paths for .ppu if targetdir is set
-ifdef UNITTARGETDIR
-vpath %$(PPUEXT) $(UNITTARGETDIR)
-endif
-
-# General compile rules, available for both possible PASEXT
-
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
-
-%$(PPUEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(PPUEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-#####################################################################
-# Library
-#####################################################################
-
-.PHONY: fpc_smart fpc_shared
-
-ifdef LIBVERSION
-LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
-else
-LIBFULLNAME=$(LIBNAME)
-endif
-
-# Default sharedlib units are all unit objects
-ifndef SHAREDLIBUNITOBJECTS
-SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
-endif
-
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-
-fpc_shared: all
-ifdef HASSHAREDLIB
-ifndef LIBNAME
-	@$(ECHO) "LIBNAME not set"
-else
-	$(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
-endif
-else
-	@$(ECHO) "Shared Libraries not supported"
-endif
-
-#####################################################################
-# Install rules
-#####################################################################
-
-.PHONY: fpc_showinstall fpc_install
-
-ifdef EXTRAINSTALLUNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
-endif
-
-ifdef INSTALLPPUFILES
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
-ifdef PPUFILES
-INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
-else
-INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
-endif
-override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
-endif
-
-ifdef INSTALLEXEFILES
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
-endif
-
-fpc_showinstall: $(SHOWINSTALLTARGET)
-ifdef INSTALLEXEFILES
-	@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
-endif
-ifdef INSTALLPPUFILES
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
-ifneq ($(INSTALLPPULINKFILES),)
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
-ifdef HASSHAREDLIB
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
-endif
-
-fpc_install: $(INSTALLTARGET)
-# Create UnitInstallFiles
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(BININSTALLDIR)
-# Compress the exes if upx is defined
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
-ifdef inUnix
-	ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	$(MKDIR) $(DATAINSTALLDIR)
-	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
-endif
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
-endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
-endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
-endif
-endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
-else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Clean rules
-#####################################################################
-
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-
-ifdef EXTRACLEANUNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
-endif
-
-ifdef CLEANPPUFILES
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-# Get the .o and .a files created for the units
-ifdef PPUFILES
-CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
-else
-CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
-endif
-override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
-endif
-
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef EXTRACLEANFILES
-	-$(DEL) $(EXTRACLEANFILES)
-endif
-ifdef LIBNAME
-	-$(DEL) $(LIBNAME) $(LIBFULLNAME)
-endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-fpc_distclean: fpc_clean
-
-# Also run clean first if targetdir is set. Unittargetdir is always
-# set if targetdir or unittargetdir is specified
-ifdef UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-#####################################################################
-# Info rules
-#####################################################################
-
-.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
-	fpc_dirinfo
-
-fpc_info: $(INFOTARGET)
-
-fpc_infocfg:
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC....... $(FPC)
-	@$(ECHO)  Version... $(FPC_VERSION)
-	@$(ECHO)  CPU....... $(CPU_TARGET)
-	@$(ECHO)  Source.... $(OS_SOURCE)
-	@$(ECHO)  Target.... $(OS_TARGET)
-	@$(ECHO)
-
-fpc_infoobjects:
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  LoaderObjects..... $(LOADEROBJECTS)
-	@$(ECHO)  UnitObjects....... $(UNITOBJECTS)
-	@$(ECHO)  ExeObjects........ $(EXEOBJECTS)
-	@$(ECHO)
-	@$(ECHO)  ExtraCleanUnits... $(EXTRACLEANUNITS)
-	@$(ECHO)  ExtraCleanFiles... $(EXTRACLEANFILES)
-	@$(ECHO)
-	@$(ECHO)  ExtraInstallUnits. $(EXTRAINSTALLUNITS)
-	@$(ECHO)  ExtraInstallFiles. $(EXTRAINSTALLFILES)
-	@$(ECHO)
-
-fpc_infoinstall:
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-ifdef DATE
-	@$(ECHO)  DateStr.............. $(DATESTR)
-endif
-ifdef PACKAGEPREFIX
-	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
-endif
-ifdef PACKAGENAME
-	@$(ECHO)  PackageName.......... $(PACKAGENAME)
-endif
-	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
-	@$(ECHO)
-	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
-	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
-	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
-	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
-	@$(ECHO)  SourceInstallDir..... $(SOURCEINSTALLDIR)
-	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
-	@$(ECHO)  DataInstallDir....... $(DATAINSTALLDIR)
-	@$(ECHO)
-	@$(ECHO)  DestZipDir........... $(DESTZIPDIR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIR../XML=1
-OBJECTDIR../SHEDIT=1
-
-# Dir ../xml
-
-ifdef OBJECTDIR../XML
-.PHONY:  ../xml_all ../xml_debug ../xml_examples ../xml_test ../xml_smart ../xml_shared ../xml_showinstall ../xml_install ../xml_sourceinstall ../xml_exampleinstall ../xml_zipinstall ../xml_zipsourceinstall ../xml_zipexampleinstall ../xml_clean ../xml_distclean ../xml_cleanall ../xml_require ../xml_info
-
-../xml_all:
-	$(MAKE) -C ../xml all
-
-../xml_debug:
-	$(MAKE) -C ../xml debug
-
-../xml_examples:
-	$(MAKE) -C ../xml examples
-
-../xml_test:
-	$(MAKE) -C ../xml test
-
-../xml_smart:
-	$(MAKE) -C ../xml smart
-
-../xml_shared:
-	$(MAKE) -C ../xml shared
-
-../xml_showinstall:
-	$(MAKE) -C ../xml showinstall
-
-../xml_install:
-	$(MAKE) -C ../xml install
-
-../xml_sourceinstall:
-	$(MAKE) -C ../xml sourceinstall
-
-../xml_exampleinstall:
-	$(MAKE) -C ../xml exampleinstall
-
-../xml_zipinstall:
-	$(MAKE) -C ../xml zipinstall
-
-../xml_zipsourceinstall:
-	$(MAKE) -C ../xml zipsourceinstall
-
-../xml_zipexampleinstall:
-	$(MAKE) -C ../xml zipexampleinstall
-
-../xml_clean:
-	$(MAKE) -C ../xml clean
-
-../xml_distclean:
-	$(MAKE) -C ../xml distclean
-
-../xml_cleanall:
-	$(MAKE) -C ../xml cleanall
-
-../xml_require:
-	$(MAKE) -C ../xml require
-
-../xml_info:
-	$(MAKE) -C ../xml info
-endif
-
-# Dir ../shedit
-
-ifdef OBJECTDIR../SHEDIT
-.PHONY:  ../shedit_all ../shedit_debug ../shedit_examples ../shedit_test ../shedit_smart ../shedit_shared ../shedit_showinstall ../shedit_install ../shedit_sourceinstall ../shedit_exampleinstall ../shedit_zipinstall ../shedit_zipsourceinstall ../shedit_zipexampleinstall ../shedit_clean ../shedit_distclean ../shedit_cleanall ../shedit_require ../shedit_info
-
-../shedit_all:
-	$(MAKE) -C ../shedit all
-
-../shedit_debug:
-	$(MAKE) -C ../shedit debug
-
-../shedit_examples:
-	$(MAKE) -C ../shedit examples
-
-../shedit_test:
-	$(MAKE) -C ../shedit test
-
-../shedit_smart:
-	$(MAKE) -C ../shedit smart
-
-../shedit_shared:
-	$(MAKE) -C ../shedit shared
-
-../shedit_showinstall:
-	$(MAKE) -C ../shedit showinstall
-
-../shedit_install:
-	$(MAKE) -C ../shedit install
-
-../shedit_sourceinstall:
-	$(MAKE) -C ../shedit sourceinstall
-
-../shedit_exampleinstall:
-	$(MAKE) -C ../shedit exampleinstall
-
-../shedit_zipinstall:
-	$(MAKE) -C ../shedit zipinstall
-
-../shedit_zipsourceinstall:
-	$(MAKE) -C ../shedit zipsourceinstall
-
-../shedit_zipexampleinstall:
-	$(MAKE) -C ../shedit zipexampleinstall
-
-../shedit_clean:
-	$(MAKE) -C ../shedit clean
-
-../shedit_distclean:
-	$(MAKE) -C ../shedit distclean
-
-../shedit_cleanall:
-	$(MAKE) -C ../shedit cleanall
-
-../shedit_require:
-	$(MAKE) -C ../shedit require
-
-../shedit_info:
-	$(MAKE) -C ../shedit info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-
-#####################################################################
-# Users rules
-#####################################################################
-
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)

+ 0 - 45
fcl/go32v2/Makefile.fpc

@@ -1,45 +0,0 @@
-#
-#   Makefile.fpc for Free Component Library for Go32v2
-#
-
-[targets]
-dirs=../xml ../shedit
-units=classes $(INCUNITS)
-rst=classes ssockets cachecls
-
-[defaults]
-defaulttarget=go32v2
-
-[require]
-options=-S2
-packages=paszlib
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[libs]
-libname=fpfcl
-
-[dirs]
-fpcdir=../..
-targetdir=.
-incdir=$(INC)
-sourcesdir=$(INC)
-
-
-[presettings]
-# Include files
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-
-
-[rules]
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)

+ 10 - 8
fcl/inc/zstream.pp

@@ -17,15 +17,14 @@
 
 unit zstream;
 
+
 { ---------------------------------------------------------------------
-  On linux, the default is to use the zlib libraries.
-  On all other platforms we use paszlib. If you want to use
-  paszlib in all cases, just define -dUsePasZlib
+  For linux and freebsd it's also possible to use ZLib instead
+  of paszlib. You need to undefine 'usepaszlib'.
   ---------------------------------------------------------------------}
 
-{$ifndef Unix}
-  {$define usepaszlib}
-{$endif}
+{$define usepaszlib}
+
 
 interface
 
@@ -449,10 +448,13 @@ end;
 end.
 {
   $Log$
-  Revision 1.3  2000-11-13 15:46:55  marco
+  Revision 1.4  2001-01-29 21:52:17  peter
+    * New FPCMake update
+
+  Revision 1.3  2000/11/13 15:46:55  marco
    * Unix renamefest for defines.
 
   Revision 1.2  2000/07/13 11:33:01  michael
   + removed logs
- 
+
 }

+ 0 - 1547
fcl/linux/Makefile

@@ -1,1547 +0,0 @@
-#
-# Makefile generated by fpcmake v1.00 [2000/12/19]
-#
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
-override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
-ifeq ($(PWD),)
-nopwd:
-	@echo You need the GNU utils package to use this Makefile!
-	@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
-	@exit
-else
-inUnix=1
-PWD:=$(firstword $(PWD))
-endif
-else
-PWD:=$(firstword $(PWD))
-endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-endif
-
-# The extension of executables
-ifdef inUnix
-SRCEXEEXT=
-else
-SRCEXEEXT=.exe
-endif
-
-# The path which is searched separated by spaces
-ifdef inUnix
-SEARCHPATH=$(subst :, ,$(PATH))
-else
-SEARCHPATH=$(subst ;, ,$(PATH))
-endif
-
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
-#####################################################################
-# Default target
-#####################################################################
-
-override OS_TARGET:=linux
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
-ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
-FPC=ppc386
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
-ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
-endif
-
-# Source OS
-ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
-endif
-
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
-endif
-
-# FPC version
-ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
-endif
-
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# Pre Settings
-#####################################################################
-
-# Include files
-
-INC=../inc
-UNIXINC=../unix
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-
-include $(INC)/Makefile.inc
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
-
-# Default FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR=../..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-endif
-
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard ../db ../xml ../shedit)
-override UNITOBJECTS+=classes $(INCUNITS) process asyncio ssockets http
-override RSTOBJECTS+=classes ssockets cachecls
-
-# Clean
-
-
-# Install
-
-UNITSUBDIR=fcl
-PACKAGENAME=fcl
-ZIPTARGET=install
-
-# Defaults
-
-override NEEDOPT=-S2
-
-# Directories
-
-vpath %$(PASEXT) $(INC) $(UNIXINC)
-override NEEDINCDIR=$(INC) $(UNIXINC)
-ifndef TARGETDIR
-TARGETDIR=.
-endif
-
-# Packages
-
-override PACKAGES+=rtl zlib inet
-
-# Libraries
-
-LIBNAME=libfpfcl.so
-LIBVERSION=1.0
-
-# Info
-
-INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=echo
-ECHOE:=echo
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-endif
-
-# To copy pograms
-ifndef COPY
-COPY:=cp -fp
-endif
-
-# Copy a whole tree
-ifndef COPYTREE
-COPYTREE:=cp -rfp
-endif
-
-# To move pograms
-ifndef MOVE
-MOVE:=mv -f
-endif
-
-# Check delete program
-ifndef DEL
-DEL:=rm -f
-endif
-
-# Check deltree program
-ifndef DELTREE
-DELTREE:=rm -rf
-endif
-
-# To install files
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=install -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-
-# To install programs
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=install -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifdef inUnix
-MKDIR:=install -m 755 -d
-else
-MKDIR:=ginstall -m 755 -d
-endif
-endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
-ifndef AS
-AS=as
-endif
-
-# linker, but probably not used
-ifndef LD
-LD=ld
-endif
-
-# ppas.bat / ppas.sh
-ifdef inUnix
-PPAS=ppas.sh
-else
-ifdef inOS2
-PPAS=ppas.cmd
-else
-PPAS=ppas.bat
-endif
-endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-
-ZIPOPT=-9
-ZIPEXT=.zip
-
-# Tar
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG=
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-
-ifeq ($(USETAR),bz2)
-TAROPT=vI
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-
-#####################################################################
-# Default extensions
-#####################################################################
-
-# Default needed extensions (Go32v2,Linux)
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
-
-# Go32v1
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
-endif
-
-# Go32v2
-ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
-endif
-
-# Linux
-ifeq ($(OS_TARGET),linux)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
-endif
-
-# Linux
-ifeq ($(OS_TARGET),freebsd)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
-endif
-
-# Win32
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
-endif
-
-# OS/2
-ifeq ($(OS_TARGET),os2)
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-SMARTEXT=.so
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
-endif
-
-# library prefix
-LIBPREFIX=lib
-ifeq ($(OS_TARGET),go32v2)
-LIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v1)
-LIBPREFIX=
-endif
-
-# determine which .pas extension is used
-ifndef PASEXT
-ifdef EXEOBJECTS
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
-else
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
-endif
-ifeq ($(TESTPAS),)
-PASEXT=.pp
-else
-PASEXT=.pas
-endif
-endif
-
-
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-PACKAGEZLIB=1
-PACKAGEINET=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef PACKAGEZLIB
-ifneq ($(wildcard $(PACKAGESDIR)/zlib),)
-ifneq ($(wildcard $(PACKAGESDIR)/zlib/$(OS_TARGET)),)
-PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib/$(OS_TARGET)
-else
-PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib
-endif
-ifeq ($(wildcard $(PACKAGEDIR_ZLIB)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_zlib
-package_zlib:
-	$(MAKE) -C $(PACKAGEDIR_ZLIB) all
-endif
-UNITDIR_ZLIB=$(PACKAGEDIR_ZLIB)
-else
-PACKAGEDIR_ZLIB=
-ifneq ($(wildcard $(UNITSDIR)/zlib),)
-ifneq ($(wildcard $(UNITSDIR)/zlib/$(OS_TARGET)),)
-UNITDIR_ZLIB=$(UNITSDIR)/zlib/$(OS_TARGET)
-else
-UNITDIR_ZLIB=$(UNITSDIR)/zlib
-endif
-else
-UNITDIR_ZLIB=
-endif
-endif
-ifdef UNITDIR_ZLIB
-override NEEDUNITDIR+=$(UNITDIR_ZLIB)
-endif
-endif
-ifdef PACKAGEINET
-ifneq ($(wildcard $(PACKAGESDIR)/inet),)
-ifneq ($(wildcard $(PACKAGESDIR)/inet/$(OS_TARGET)),)
-PACKAGEDIR_INET=$(PACKAGESDIR)/inet/$(OS_TARGET)
-else
-PACKAGEDIR_INET=$(PACKAGESDIR)/inet
-endif
-ifeq ($(wildcard $(PACKAGEDIR_INET)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_inet
-package_inet:
-	$(MAKE) -C $(PACKAGEDIR_INET) all
-endif
-UNITDIR_INET=$(PACKAGEDIR_INET)
-else
-PACKAGEDIR_INET=
-ifneq ($(wildcard $(UNITSDIR)/inet),)
-ifneq ($(wildcard $(UNITSDIR)/inet/$(OS_TARGET)),)
-UNITDIR_INET=$(UNITSDIR)/inet/$(OS_TARGET)
-else
-UNITDIR_INET=$(UNITSDIR)/inet
-endif
-else
-UNITDIR_INET=
-endif
-endif
-ifdef UNITDIR_INET
-override NEEDUNITDIR+=$(UNITDIR_INET)
-endif
-endif
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-else
-# Normal install
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
-else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
-ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
-else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
-endif
-endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
-ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
-else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
-endif
-endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
-endif
-endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
-ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
-else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
-endif
-endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
-ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
-else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
-endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
-endif
-endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
-ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
-else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
-endif
-endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
-ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
-else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
-endif
-ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
-endif
-endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
-endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
-endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-
-#####################################################################
-# Compiler Command Line
-#####################################################################
-
-# Load commandline OPTDEF and add FPC_CPU define
-override FPCOPTDEF:=-d$(CPU_TARGET)
-
-# Load commandline OPT and add target and unit dir to be sure
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-
-# User dirs should be first, so they are looked at first
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-
-# Smartlinking
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-
-# Smartlinking creation
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-
-# Debug
-ifdef DEBUG
-override FPCOPT+=-gl -dDEBUG
-endif
-
-# Release mode (strip, optimize and don't load ppc386.cfg)
-# 0.99.12b has a bug in the optimizer so don't use it by default
-ifdef RELEASE
-ifeq ($(FPC_VERSION),0.99.12)
-override FPCOPT+=-Xs -OGp3 -n
-else
-override FPCOPT+=-Xs -OG2p3 -n
-endif
-endif
-
-# Strip
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-
-# Optimizer
-ifdef OPTIMIZE
-override FPCOPT+=-OG2p3
-endif
-
-# Verbose settings (warning,note,info)
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-
-ifdef NEEDOPT
-override FPCOPT+=$(NEEDOPT)
-endif
-
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
-ifdef UNITSDIR
-override FPCOPT+=-Fu$(UNITSDIR)
-endif
-
-ifdef NEEDINCDIR
-override FPCOPT+=$(addprefix -Fi,$(NEEDINCDIR))
-endif
-
-
-# Target dirs and the prefix to use for clean/install
-ifdef TARGETDIR
-override FPCOPT+=-FE$(TARGETDIR)
-ifeq ($(TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(TARGETDIR)/
-endif
-endif
-ifdef UNITTARGETDIR
-override FPCOPT+=-FU$(UNITTARGETDIR)
-ifeq ($(UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(TARGETDIR)/
-endif
-else
-ifdef TARGETDIR
-override UNITTARGETDIR=$(TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-
-# Add commandline options last so they can override
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-
-# Add defines from FPCOPTDEF to FPCOPT
-ifdef FPCOPTDEF
-override FPCOPT+=$(FPCOPTDEF)
-endif
-
-# Error file ?
-ifdef ERRORFILE
-override FPCOPT+=-Fr$(ERRORFILE)
-endif
-
-# Was a config file specified ?
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-
-# For win32 the options are passed using the environment FPCEXTCMD
-ifeq ($(OS_SOURCE),win32)
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-
-# Compiler commandline
-override COMPILER:=$(FPC) $(FPCOPT)
-
-# also call ppas if with command option -s
-# but only if the OS_SOURCE and OS_TARGE are equal
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(OS_SOURCE),$(OS_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: fpc_all $(addsuffix _all,$(DIROBJECTS))
-
-debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
-
-smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
-
-shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
-
-install: fpc_install $(addsuffix _install,$(DIROBJECTS))
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: fpc_distclean $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-info: fpc_info
-
-.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require info
-
-#####################################################################
-# Units
-#####################################################################
-
-.PHONY: fpc_units
-
-override ALLTARGET+=fpc_units
-
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
-override INSTALLPPUFILES+=$(UNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES)
-
-fpc_units: $(UNITPPUFILES)
-
-#####################################################################
-# Resource strings
-#####################################################################
-
-ifdef RSTOBJECTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(RSTOBJECTS))
-
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-
-#####################################################################
-# General compile rules
-#####################################################################
-
-.PHONY: fpc_packages fpc_all fpc_debug
-
-$(FPCMADE): $(ALLTARGET)
-	@$(ECHO) Compiled > $(FPCMADE)
-
-fpc_packages: $(COMPILEPACKAGES)
-
-fpc_all: fpc_packages $(FPCMADE)
-
-fpc_debug:
-	$(MAKE) all DEBUG=1
-
-# Search paths for .ppu if targetdir is set
-ifdef UNITTARGETDIR
-vpath %$(PPUEXT) $(UNITTARGETDIR)
-endif
-
-# General compile rules, available for both possible PASEXT
-
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
-
-%$(PPUEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(PPUEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-#####################################################################
-# Library
-#####################################################################
-
-.PHONY: fpc_smart fpc_shared
-
-ifdef LIBVERSION
-LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
-else
-LIBFULLNAME=$(LIBNAME)
-endif
-
-# Default sharedlib units are all unit objects
-ifndef SHAREDLIBUNITOBJECTS
-SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
-endif
-
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-
-fpc_shared: all
-ifdef HASSHAREDLIB
-ifndef LIBNAME
-	@$(ECHO) "LIBNAME not set"
-else
-	$(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
-endif
-else
-	@$(ECHO) "Shared Libraries not supported"
-endif
-
-#####################################################################
-# Install rules
-#####################################################################
-
-.PHONY: fpc_showinstall fpc_install
-
-ifdef EXTRAINSTALLUNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
-endif
-
-ifdef INSTALLPPUFILES
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
-ifdef PPUFILES
-INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
-else
-INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
-endif
-override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
-endif
-
-ifdef INSTALLEXEFILES
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
-endif
-
-fpc_showinstall: $(SHOWINSTALLTARGET)
-ifdef INSTALLEXEFILES
-	@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
-endif
-ifdef INSTALLPPUFILES
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
-ifneq ($(INSTALLPPULINKFILES),)
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
-ifdef HASSHAREDLIB
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
-endif
-
-fpc_install: $(INSTALLTARGET)
-# Create UnitInstallFiles
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(BININSTALLDIR)
-# Compress the exes if upx is defined
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
-ifdef inUnix
-	ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	$(MKDIR) $(DATAINSTALLDIR)
-	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
-endif
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
-endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
-endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
-endif
-endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
-else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Clean rules
-#####################################################################
-
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-
-ifdef EXTRACLEANUNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
-endif
-
-ifdef CLEANPPUFILES
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-# Get the .o and .a files created for the units
-ifdef PPUFILES
-CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
-else
-CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
-endif
-override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
-endif
-
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef EXTRACLEANFILES
-	-$(DEL) $(EXTRACLEANFILES)
-endif
-ifdef LIBNAME
-	-$(DEL) $(LIBNAME) $(LIBFULLNAME)
-endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-fpc_distclean: fpc_clean
-
-# Also run clean first if targetdir is set. Unittargetdir is always
-# set if targetdir or unittargetdir is specified
-ifdef UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-#####################################################################
-# Info rules
-#####################################################################
-
-.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
-	fpc_dirinfo
-
-fpc_info: $(INFOTARGET)
-
-fpc_infocfg:
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC....... $(FPC)
-	@$(ECHO)  Version... $(FPC_VERSION)
-	@$(ECHO)  CPU....... $(CPU_TARGET)
-	@$(ECHO)  Source.... $(OS_SOURCE)
-	@$(ECHO)  Target.... $(OS_TARGET)
-	@$(ECHO)
-
-fpc_infoobjects:
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  LoaderObjects..... $(LOADEROBJECTS)
-	@$(ECHO)  UnitObjects....... $(UNITOBJECTS)
-	@$(ECHO)  ExeObjects........ $(EXEOBJECTS)
-	@$(ECHO)
-	@$(ECHO)  ExtraCleanUnits... $(EXTRACLEANUNITS)
-	@$(ECHO)  ExtraCleanFiles... $(EXTRACLEANFILES)
-	@$(ECHO)
-	@$(ECHO)  ExtraInstallUnits. $(EXTRAINSTALLUNITS)
-	@$(ECHO)  ExtraInstallFiles. $(EXTRAINSTALLFILES)
-	@$(ECHO)
-
-fpc_infoinstall:
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-ifdef DATE
-	@$(ECHO)  DateStr.............. $(DATESTR)
-endif
-ifdef PACKAGEPREFIX
-	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
-endif
-ifdef PACKAGENAME
-	@$(ECHO)  PackageName.......... $(PACKAGENAME)
-endif
-	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
-	@$(ECHO)
-	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
-	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
-	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
-	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
-	@$(ECHO)  SourceInstallDir..... $(SOURCEINSTALLDIR)
-	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
-	@$(ECHO)  DataInstallDir....... $(DATAINSTALLDIR)
-	@$(ECHO)
-	@$(ECHO)  DestZipDir........... $(DESTZIPDIR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIR../DB=1
-OBJECTDIR../XML=1
-OBJECTDIR../SHEDIT=1
-
-# Dir ../db
-
-ifdef OBJECTDIR../DB
-.PHONY:  ../db_all ../db_debug ../db_examples ../db_test ../db_smart ../db_shared ../db_showinstall ../db_install ../db_sourceinstall ../db_exampleinstall ../db_zipinstall ../db_zipsourceinstall ../db_zipexampleinstall ../db_clean ../db_distclean ../db_cleanall ../db_require ../db_info
-
-../db_all:
-	$(MAKE) -C ../db all
-
-../db_debug:
-	$(MAKE) -C ../db debug
-
-../db_examples:
-	$(MAKE) -C ../db examples
-
-../db_test:
-	$(MAKE) -C ../db test
-
-../db_smart:
-	$(MAKE) -C ../db smart
-
-../db_shared:
-	$(MAKE) -C ../db shared
-
-../db_showinstall:
-	$(MAKE) -C ../db showinstall
-
-../db_install:
-	$(MAKE) -C ../db install
-
-../db_sourceinstall:
-	$(MAKE) -C ../db sourceinstall
-
-../db_exampleinstall:
-	$(MAKE) -C ../db exampleinstall
-
-../db_zipinstall:
-	$(MAKE) -C ../db zipinstall
-
-../db_zipsourceinstall:
-	$(MAKE) -C ../db zipsourceinstall
-
-../db_zipexampleinstall:
-	$(MAKE) -C ../db zipexampleinstall
-
-../db_clean:
-	$(MAKE) -C ../db clean
-
-../db_distclean:
-	$(MAKE) -C ../db distclean
-
-../db_cleanall:
-	$(MAKE) -C ../db cleanall
-
-../db_require:
-	$(MAKE) -C ../db require
-
-../db_info:
-	$(MAKE) -C ../db info
-endif
-
-# Dir ../xml
-
-ifdef OBJECTDIR../XML
-.PHONY:  ../xml_all ../xml_debug ../xml_examples ../xml_test ../xml_smart ../xml_shared ../xml_showinstall ../xml_install ../xml_sourceinstall ../xml_exampleinstall ../xml_zipinstall ../xml_zipsourceinstall ../xml_zipexampleinstall ../xml_clean ../xml_distclean ../xml_cleanall ../xml_require ../xml_info
-
-../xml_all:
-	$(MAKE) -C ../xml all
-
-../xml_debug:
-	$(MAKE) -C ../xml debug
-
-../xml_examples:
-	$(MAKE) -C ../xml examples
-
-../xml_test:
-	$(MAKE) -C ../xml test
-
-../xml_smart:
-	$(MAKE) -C ../xml smart
-
-../xml_shared:
-	$(MAKE) -C ../xml shared
-
-../xml_showinstall:
-	$(MAKE) -C ../xml showinstall
-
-../xml_install:
-	$(MAKE) -C ../xml install
-
-../xml_sourceinstall:
-	$(MAKE) -C ../xml sourceinstall
-
-../xml_exampleinstall:
-	$(MAKE) -C ../xml exampleinstall
-
-../xml_zipinstall:
-	$(MAKE) -C ../xml zipinstall
-
-../xml_zipsourceinstall:
-	$(MAKE) -C ../xml zipsourceinstall
-
-../xml_zipexampleinstall:
-	$(MAKE) -C ../xml zipexampleinstall
-
-../xml_clean:
-	$(MAKE) -C ../xml clean
-
-../xml_distclean:
-	$(MAKE) -C ../xml distclean
-
-../xml_cleanall:
-	$(MAKE) -C ../xml cleanall
-
-../xml_require:
-	$(MAKE) -C ../xml require
-
-../xml_info:
-	$(MAKE) -C ../xml info
-endif
-
-# Dir ../shedit
-
-ifdef OBJECTDIR../SHEDIT
-.PHONY:  ../shedit_all ../shedit_debug ../shedit_examples ../shedit_test ../shedit_smart ../shedit_shared ../shedit_showinstall ../shedit_install ../shedit_sourceinstall ../shedit_exampleinstall ../shedit_zipinstall ../shedit_zipsourceinstall ../shedit_zipexampleinstall ../shedit_clean ../shedit_distclean ../shedit_cleanall ../shedit_require ../shedit_info
-
-../shedit_all:
-	$(MAKE) -C ../shedit all
-
-../shedit_debug:
-	$(MAKE) -C ../shedit debug
-
-../shedit_examples:
-	$(MAKE) -C ../shedit examples
-
-../shedit_test:
-	$(MAKE) -C ../shedit test
-
-../shedit_smart:
-	$(MAKE) -C ../shedit smart
-
-../shedit_shared:
-	$(MAKE) -C ../shedit shared
-
-../shedit_showinstall:
-	$(MAKE) -C ../shedit showinstall
-
-../shedit_install:
-	$(MAKE) -C ../shedit install
-
-../shedit_sourceinstall:
-	$(MAKE) -C ../shedit sourceinstall
-
-../shedit_exampleinstall:
-	$(MAKE) -C ../shedit exampleinstall
-
-../shedit_zipinstall:
-	$(MAKE) -C ../shedit zipinstall
-
-../shedit_zipsourceinstall:
-	$(MAKE) -C ../shedit zipsourceinstall
-
-../shedit_zipexampleinstall:
-	$(MAKE) -C ../shedit zipexampleinstall
-
-../shedit_clean:
-	$(MAKE) -C ../shedit clean
-
-../shedit_distclean:
-	$(MAKE) -C ../shedit distclean
-
-../shedit_cleanall:
-	$(MAKE) -C ../shedit cleanall
-
-../shedit_require:
-	$(MAKE) -C ../shedit require
-
-../shedit_info:
-	$(MAKE) -C ../shedit info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-
-#####################################################################
-# Users rules
-#####################################################################
-
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
-
-process$(PPUEXT): process$(PASEXT) process.inc

+ 0 - 49
fcl/linux/Makefile.fpc

@@ -1,49 +0,0 @@
-#
-#   Makefile.fpc for Free Component Library for Linux
-#
-
-[targets]
-dirs=../db ../xml ../shedit
-units=classes $(INCUNITS) process asyncio ssockets http
-rst=classes ssockets cachecls
-
-[defaults]
-defaulttarget=linux
-
-[require]
-options=-S2
-packages=zlib inet
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[libs]
-libname=libfpfcl.so
-libversion=1.0
-
-[dirs]
-fpcdir=../..
-targetdir=.
-incdir=$(INC) $(UNIXINC)
-sourcesdir=$(INC) $(UNIXINC)
-
-[presettings]
-# Include files
-
-INC=../inc
-UNIXINC=../unix
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-
-include $(INC)/Makefile.inc
-
-[rules]
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
-
-process$(PPUEXT): process$(PASEXT) process.inc

+ 0 - 1450
fcl/os2/Makefile

@@ -1,1450 +0,0 @@
-#
-# Makefile generated by fpcmake v1.00 [2000/12/19]
-#
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
-override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
-ifeq ($(PWD),)
-nopwd:
-	@echo You need the GNU utils package to use this Makefile!
-	@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
-	@exit
-else
-inUnix=1
-PWD:=$(firstword $(PWD))
-endif
-else
-PWD:=$(firstword $(PWD))
-endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-endif
-
-# The extension of executables
-ifdef inUnix
-SRCEXEEXT=
-else
-SRCEXEEXT=.exe
-endif
-
-# The path which is searched separated by spaces
-ifdef inUnix
-SEARCHPATH=$(subst :, ,$(PATH))
-else
-SEARCHPATH=$(subst ;, ,$(PATH))
-endif
-
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
-#####################################################################
-# Default target
-#####################################################################
-
-override OS_TARGET:=os2
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
-ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
-FPC=ppc386
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
-ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
-endif
-
-# Source OS
-ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
-endif
-
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
-endif
-
-# FPC version
-ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
-endif
-
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# Pre Settings
-#####################################################################
-
-# Include files
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
-
-# Default FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR=../..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-endif
-
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard ../xml ../shedit)
-override UNITOBJECTS+=classes $(INCUNITS)
-override RSTOBJECTS+=classes cachecls
-
-# Clean
-
-
-# Install
-
-UNITSUBDIR=fcl
-PACKAGENAME=fcl
-ZIPTARGET=install
-
-# Defaults
-
-override NEEDOPT=-S2
-
-# Directories
-
-vpath %$(PASEXT) $(INC)
-override NEEDINCDIR=$(INC)
-ifndef TARGETDIR
-TARGETDIR=.
-endif
-
-# Packages
-
-override PACKAGES+=rtl paszlib
-
-# Libraries
-
-LIBNAME=fpfcl
-
-# Info
-
-INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=echo
-ECHOE:=echo
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-endif
-
-# To copy pograms
-ifndef COPY
-COPY:=cp -fp
-endif
-
-# Copy a whole tree
-ifndef COPYTREE
-COPYTREE:=cp -rfp
-endif
-
-# To move pograms
-ifndef MOVE
-MOVE:=mv -f
-endif
-
-# Check delete program
-ifndef DEL
-DEL:=rm -f
-endif
-
-# Check deltree program
-ifndef DELTREE
-DELTREE:=rm -rf
-endif
-
-# To install files
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=install -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-
-# To install programs
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=install -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifdef inUnix
-MKDIR:=install -m 755 -d
-else
-MKDIR:=ginstall -m 755 -d
-endif
-endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
-ifndef AS
-AS=as
-endif
-
-# linker, but probably not used
-ifndef LD
-LD=ld
-endif
-
-# ppas.bat / ppas.sh
-ifdef inUnix
-PPAS=ppas.sh
-else
-ifdef inOS2
-PPAS=ppas.cmd
-else
-PPAS=ppas.bat
-endif
-endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-
-ZIPOPT=-9
-ZIPEXT=.zip
-
-# Tar
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG=
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-
-ifeq ($(USETAR),bz2)
-TAROPT=vI
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-
-#####################################################################
-# Default extensions
-#####################################################################
-
-# Default needed extensions (Go32v2,Linux)
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
-
-# Go32v1
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
-endif
-
-# Go32v2
-ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
-endif
-
-# Linux
-ifeq ($(OS_TARGET),linux)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
-endif
-
-# Linux
-ifeq ($(OS_TARGET),freebsd)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
-endif
-
-# Win32
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
-endif
-
-# OS/2
-ifeq ($(OS_TARGET),os2)
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-SMARTEXT=.so
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
-endif
-
-# library prefix
-LIBPREFIX=lib
-ifeq ($(OS_TARGET),go32v2)
-LIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v1)
-LIBPREFIX=
-endif
-
-# determine which .pas extension is used
-ifndef PASEXT
-ifdef EXEOBJECTS
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
-else
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
-endif
-ifeq ($(TESTPAS),)
-PASEXT=.pp
-else
-PASEXT=.pas
-endif
-endif
-
-
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-PACKAGEPASZLIB=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef PACKAGEPASZLIB
-ifneq ($(wildcard $(PACKAGESDIR)/paszlib),)
-ifneq ($(wildcard $(PACKAGESDIR)/paszlib/$(OS_TARGET)),)
-PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib/$(OS_TARGET)
-else
-PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib
-endif
-ifeq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_paszlib
-package_paszlib:
-	$(MAKE) -C $(PACKAGEDIR_PASZLIB) all
-endif
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
-else
-PACKAGEDIR_PASZLIB=
-ifneq ($(wildcard $(UNITSDIR)/paszlib),)
-ifneq ($(wildcard $(UNITSDIR)/paszlib/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(UNITSDIR)/paszlib/$(OS_TARGET)
-else
-UNITDIR_PASZLIB=$(UNITSDIR)/paszlib
-endif
-else
-UNITDIR_PASZLIB=
-endif
-endif
-ifdef UNITDIR_PASZLIB
-override NEEDUNITDIR+=$(UNITDIR_PASZLIB)
-endif
-endif
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-else
-# Normal install
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
-else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
-ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
-else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
-endif
-endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
-ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
-else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
-endif
-endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
-endif
-endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
-ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
-else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
-endif
-endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
-ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
-else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
-endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
-endif
-endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
-ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
-else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
-endif
-endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
-ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
-else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
-endif
-ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
-endif
-endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
-endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
-endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-
-#####################################################################
-# Compiler Command Line
-#####################################################################
-
-# Load commandline OPTDEF and add FPC_CPU define
-override FPCOPTDEF:=-d$(CPU_TARGET)
-
-# Load commandline OPT and add target and unit dir to be sure
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-
-# User dirs should be first, so they are looked at first
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-
-# Smartlinking
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-
-# Smartlinking creation
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-
-# Debug
-ifdef DEBUG
-override FPCOPT+=-gl -dDEBUG
-endif
-
-# Release mode (strip, optimize and don't load ppc386.cfg)
-# 0.99.12b has a bug in the optimizer so don't use it by default
-ifdef RELEASE
-ifeq ($(FPC_VERSION),0.99.12)
-override FPCOPT+=-Xs -OGp3 -n
-else
-override FPCOPT+=-Xs -OG2p3 -n
-endif
-endif
-
-# Strip
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-
-# Optimizer
-ifdef OPTIMIZE
-override FPCOPT+=-OG2p3
-endif
-
-# Verbose settings (warning,note,info)
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-
-ifdef NEEDOPT
-override FPCOPT+=$(NEEDOPT)
-endif
-
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
-ifdef UNITSDIR
-override FPCOPT+=-Fu$(UNITSDIR)
-endif
-
-ifdef NEEDINCDIR
-override FPCOPT+=$(addprefix -Fi,$(NEEDINCDIR))
-endif
-
-
-# Target dirs and the prefix to use for clean/install
-ifdef TARGETDIR
-override FPCOPT+=-FE$(TARGETDIR)
-ifeq ($(TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(TARGETDIR)/
-endif
-endif
-ifdef UNITTARGETDIR
-override FPCOPT+=-FU$(UNITTARGETDIR)
-ifeq ($(UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(TARGETDIR)/
-endif
-else
-ifdef TARGETDIR
-override UNITTARGETDIR=$(TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-
-# Add commandline options last so they can override
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-
-# Add defines from FPCOPTDEF to FPCOPT
-ifdef FPCOPTDEF
-override FPCOPT+=$(FPCOPTDEF)
-endif
-
-# Error file ?
-ifdef ERRORFILE
-override FPCOPT+=-Fr$(ERRORFILE)
-endif
-
-# Was a config file specified ?
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-
-# For win32 the options are passed using the environment FPCEXTCMD
-ifeq ($(OS_SOURCE),win32)
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-
-# Compiler commandline
-override COMPILER:=$(FPC) $(FPCOPT)
-
-# also call ppas if with command option -s
-# but only if the OS_SOURCE and OS_TARGE are equal
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(OS_SOURCE),$(OS_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: fpc_all $(addsuffix _all,$(DIROBJECTS))
-
-debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
-
-smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
-
-shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
-
-install: fpc_install $(addsuffix _install,$(DIROBJECTS))
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: fpc_distclean $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-info: fpc_info
-
-.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require info
-
-#####################################################################
-# Units
-#####################################################################
-
-.PHONY: fpc_units
-
-override ALLTARGET+=fpc_units
-
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
-override INSTALLPPUFILES+=$(UNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES)
-
-fpc_units: $(UNITPPUFILES)
-
-#####################################################################
-# Resource strings
-#####################################################################
-
-ifdef RSTOBJECTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(RSTOBJECTS))
-
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-
-#####################################################################
-# General compile rules
-#####################################################################
-
-.PHONY: fpc_packages fpc_all fpc_debug
-
-$(FPCMADE): $(ALLTARGET)
-	@$(ECHO) Compiled > $(FPCMADE)
-
-fpc_packages: $(COMPILEPACKAGES)
-
-fpc_all: fpc_packages $(FPCMADE)
-
-fpc_debug:
-	$(MAKE) all DEBUG=1
-
-# Search paths for .ppu if targetdir is set
-ifdef UNITTARGETDIR
-vpath %$(PPUEXT) $(UNITTARGETDIR)
-endif
-
-# General compile rules, available for both possible PASEXT
-
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
-
-%$(PPUEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(PPUEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-#####################################################################
-# Library
-#####################################################################
-
-.PHONY: fpc_smart fpc_shared
-
-ifdef LIBVERSION
-LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
-else
-LIBFULLNAME=$(LIBNAME)
-endif
-
-# Default sharedlib units are all unit objects
-ifndef SHAREDLIBUNITOBJECTS
-SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
-endif
-
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-
-fpc_shared: all
-ifdef HASSHAREDLIB
-ifndef LIBNAME
-	@$(ECHO) "LIBNAME not set"
-else
-	$(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
-endif
-else
-	@$(ECHO) "Shared Libraries not supported"
-endif
-
-#####################################################################
-# Install rules
-#####################################################################
-
-.PHONY: fpc_showinstall fpc_install
-
-ifdef EXTRAINSTALLUNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
-endif
-
-ifdef INSTALLPPUFILES
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
-ifdef PPUFILES
-INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
-else
-INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
-endif
-override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
-endif
-
-ifdef INSTALLEXEFILES
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
-endif
-
-fpc_showinstall: $(SHOWINSTALLTARGET)
-ifdef INSTALLEXEFILES
-	@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
-endif
-ifdef INSTALLPPUFILES
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
-ifneq ($(INSTALLPPULINKFILES),)
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
-ifdef HASSHAREDLIB
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
-endif
-
-fpc_install: $(INSTALLTARGET)
-# Create UnitInstallFiles
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(BININSTALLDIR)
-# Compress the exes if upx is defined
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
-ifdef inUnix
-	ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	$(MKDIR) $(DATAINSTALLDIR)
-	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
-endif
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
-endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
-endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
-endif
-endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
-else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Clean rules
-#####################################################################
-
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-
-ifdef EXTRACLEANUNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
-endif
-
-ifdef CLEANPPUFILES
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-# Get the .o and .a files created for the units
-ifdef PPUFILES
-CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
-else
-CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
-endif
-override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
-endif
-
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef EXTRACLEANFILES
-	-$(DEL) $(EXTRACLEANFILES)
-endif
-ifdef LIBNAME
-	-$(DEL) $(LIBNAME) $(LIBFULLNAME)
-endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-fpc_distclean: fpc_clean
-
-# Also run clean first if targetdir is set. Unittargetdir is always
-# set if targetdir or unittargetdir is specified
-ifdef UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-#####################################################################
-# Info rules
-#####################################################################
-
-.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
-	fpc_dirinfo
-
-fpc_info: $(INFOTARGET)
-
-fpc_infocfg:
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC....... $(FPC)
-	@$(ECHO)  Version... $(FPC_VERSION)
-	@$(ECHO)  CPU....... $(CPU_TARGET)
-	@$(ECHO)  Source.... $(OS_SOURCE)
-	@$(ECHO)  Target.... $(OS_TARGET)
-	@$(ECHO)
-
-fpc_infoobjects:
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  LoaderObjects..... $(LOADEROBJECTS)
-	@$(ECHO)  UnitObjects....... $(UNITOBJECTS)
-	@$(ECHO)  ExeObjects........ $(EXEOBJECTS)
-	@$(ECHO)
-	@$(ECHO)  ExtraCleanUnits... $(EXTRACLEANUNITS)
-	@$(ECHO)  ExtraCleanFiles... $(EXTRACLEANFILES)
-	@$(ECHO)
-	@$(ECHO)  ExtraInstallUnits. $(EXTRAINSTALLUNITS)
-	@$(ECHO)  ExtraInstallFiles. $(EXTRAINSTALLFILES)
-	@$(ECHO)
-
-fpc_infoinstall:
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-ifdef DATE
-	@$(ECHO)  DateStr.............. $(DATESTR)
-endif
-ifdef PACKAGEPREFIX
-	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
-endif
-ifdef PACKAGENAME
-	@$(ECHO)  PackageName.......... $(PACKAGENAME)
-endif
-	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
-	@$(ECHO)
-	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
-	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
-	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
-	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
-	@$(ECHO)  SourceInstallDir..... $(SOURCEINSTALLDIR)
-	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
-	@$(ECHO)  DataInstallDir....... $(DATAINSTALLDIR)
-	@$(ECHO)
-	@$(ECHO)  DestZipDir........... $(DESTZIPDIR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIR../XML=1
-OBJECTDIR../SHEDIT=1
-
-# Dir ../xml
-
-ifdef OBJECTDIR../XML
-.PHONY:  ../xml_all ../xml_debug ../xml_examples ../xml_test ../xml_smart ../xml_shared ../xml_showinstall ../xml_install ../xml_sourceinstall ../xml_exampleinstall ../xml_zipinstall ../xml_zipsourceinstall ../xml_zipexampleinstall ../xml_clean ../xml_distclean ../xml_cleanall ../xml_require ../xml_info
-
-../xml_all:
-	$(MAKE) -C ../xml all
-
-../xml_debug:
-	$(MAKE) -C ../xml debug
-
-../xml_examples:
-	$(MAKE) -C ../xml examples
-
-../xml_test:
-	$(MAKE) -C ../xml test
-
-../xml_smart:
-	$(MAKE) -C ../xml smart
-
-../xml_shared:
-	$(MAKE) -C ../xml shared
-
-../xml_showinstall:
-	$(MAKE) -C ../xml showinstall
-
-../xml_install:
-	$(MAKE) -C ../xml install
-
-../xml_sourceinstall:
-	$(MAKE) -C ../xml sourceinstall
-
-../xml_exampleinstall:
-	$(MAKE) -C ../xml exampleinstall
-
-../xml_zipinstall:
-	$(MAKE) -C ../xml zipinstall
-
-../xml_zipsourceinstall:
-	$(MAKE) -C ../xml zipsourceinstall
-
-../xml_zipexampleinstall:
-	$(MAKE) -C ../xml zipexampleinstall
-
-../xml_clean:
-	$(MAKE) -C ../xml clean
-
-../xml_distclean:
-	$(MAKE) -C ../xml distclean
-
-../xml_cleanall:
-	$(MAKE) -C ../xml cleanall
-
-../xml_require:
-	$(MAKE) -C ../xml require
-
-../xml_info:
-	$(MAKE) -C ../xml info
-endif
-
-# Dir ../shedit
-
-ifdef OBJECTDIR../SHEDIT
-.PHONY:  ../shedit_all ../shedit_debug ../shedit_examples ../shedit_test ../shedit_smart ../shedit_shared ../shedit_showinstall ../shedit_install ../shedit_sourceinstall ../shedit_exampleinstall ../shedit_zipinstall ../shedit_zipsourceinstall ../shedit_zipexampleinstall ../shedit_clean ../shedit_distclean ../shedit_cleanall ../shedit_require ../shedit_info
-
-../shedit_all:
-	$(MAKE) -C ../shedit all
-
-../shedit_debug:
-	$(MAKE) -C ../shedit debug
-
-../shedit_examples:
-	$(MAKE) -C ../shedit examples
-
-../shedit_test:
-	$(MAKE) -C ../shedit test
-
-../shedit_smart:
-	$(MAKE) -C ../shedit smart
-
-../shedit_shared:
-	$(MAKE) -C ../shedit shared
-
-../shedit_showinstall:
-	$(MAKE) -C ../shedit showinstall
-
-../shedit_install:
-	$(MAKE) -C ../shedit install
-
-../shedit_sourceinstall:
-	$(MAKE) -C ../shedit sourceinstall
-
-../shedit_exampleinstall:
-	$(MAKE) -C ../shedit exampleinstall
-
-../shedit_zipinstall:
-	$(MAKE) -C ../shedit zipinstall
-
-../shedit_zipsourceinstall:
-	$(MAKE) -C ../shedit zipsourceinstall
-
-../shedit_zipexampleinstall:
-	$(MAKE) -C ../shedit zipexampleinstall
-
-../shedit_clean:
-	$(MAKE) -C ../shedit clean
-
-../shedit_distclean:
-	$(MAKE) -C ../shedit distclean
-
-../shedit_cleanall:
-	$(MAKE) -C ../shedit cleanall
-
-../shedit_require:
-	$(MAKE) -C ../shedit require
-
-../shedit_info:
-	$(MAKE) -C ../shedit info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-
-#####################################################################
-# Users rules
-#####################################################################
-
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)

+ 0 - 45
fcl/os2/Makefile.fpc

@@ -1,45 +0,0 @@
-#
-#   Makefile.fpc for Free Component Library for OS/2
-#
-
-[targets]
-dirs=../xml ../shedit
-units=classes $(INCUNITS)
-rst=classes cachecls
-
-[defaults]
-defaulttarget=os2
-
-[require]
-options=-S2
-packages=paszlib
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[libs]
-libname=fpfcl
-
-[dirs]
-fpcdir=../..
-targetdir=.
-incdir=$(INC)
-sourcesdir=$(INC)
-
-
-[presettings]
-# Include files
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-
-
-[rules]
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)

File diff suppressed because it is too large
+ 220 - 537
fcl/shedit/Makefile


+ 5 - 12
fcl/shedit/Makefile.fpc

@@ -2,19 +2,12 @@
 #   Makefile.fpc for XML for FCL
 #
 
-[targets]
+[package]
+main=fcl
+
+[target]
 units=doc_text shedit sh_xml sh_pas
 
-[require]
+[compiler]
 options=-S2
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[dirs]
-fpcdir=../..
 targetdir=../$(OS_TARGET)
-
-[rules]
-vpath %$(PPUEXT) $(UNITTARGETDIR)

File diff suppressed because it is too large
+ 268 - 467
fcl/shedit/gtk/Makefile


+ 1 - 5
fcl/shedit/gtk/Makefile.fpc

@@ -2,13 +2,9 @@
 #   Makefile.fpc for GTK shedit
 #
 
-[targets]
+[target]
 units=gtkshedit
 programs=gtkdemo
 
 [require]
 packages=fcl gtk
-
-[dirs]
-fpcdir=../../..
-

File diff suppressed because it is too large
+ 215 - 505
fcl/tests/Makefile


+ 5 - 11
fcl/tests/Makefile.fpc

@@ -2,23 +2,17 @@
 #   Makefile.fpc for Free Component Library Examples/Tests
 #
 
-[targets]
+[target]
 programs=stringl dparser fstream mstream list threads testrtf \
          cfgtest xmldump htdump testcgi tidea \
          b64test b64test2 b64enc b64dec restest testz testz2 \
-         istream doecho testproc
-programs_win32=showver
+         istream doecho
+programs_win32=showver testproc
 programs_linux=sockcli isockcli dsockcli socksvr isocksvr dsocksvr
-
 rst=restest
 
 [require]
-options=-S2
 packages=fcl
-packages_linux=zlib
-packages_win32=paszlib
-packages_go32=paszlib
 
-[dirs]
-fpcdir=../..
-targetdir=.
+[compiler]
+options=-S2

+ 0 - 1452
fcl/win32/Makefile

@@ -1,1452 +0,0 @@
-#
-# Makefile generated by fpcmake v1.00 [2000/12/19]
-#
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
-override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
-ifeq ($(PWD),)
-nopwd:
-	@echo You need the GNU utils package to use this Makefile!
-	@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
-	@exit
-else
-inUnix=1
-PWD:=$(firstword $(PWD))
-endif
-else
-PWD:=$(firstword $(PWD))
-endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-endif
-
-# The extension of executables
-ifdef inUnix
-SRCEXEEXT=
-else
-SRCEXEEXT=.exe
-endif
-
-# The path which is searched separated by spaces
-ifdef inUnix
-SEARCHPATH=$(subst :, ,$(PATH))
-else
-SEARCHPATH=$(subst ;, ,$(PATH))
-endif
-
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
-#####################################################################
-# Default target
-#####################################################################
-
-override OS_TARGET:=win32
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
-ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
-FPC=ppc386
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
-ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
-endif
-
-# Source OS
-ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
-endif
-
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
-endif
-
-# FPC version
-ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
-endif
-
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# Pre Settings
-#####################################################################
-
-# Include files
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
-
-# Default FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR=../..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-endif
-
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard ../xml ../shedit)
-override UNITOBJECTS+=classes $(INCUNITS) process fileinfo
-override RSTOBJECTS+=classes ssockets cachecls
-
-# Clean
-
-
-# Install
-
-UNITSUBDIR=fcl
-PACKAGENAME=fcl
-ZIPTARGET=install
-
-# Defaults
-
-override NEEDOPT=-S2
-
-# Directories
-
-vpath %$(PASEXT) $(INC)
-override NEEDINCDIR=$(INC)
-ifndef TARGETDIR
-TARGETDIR=.
-endif
-
-# Packages
-
-override PACKAGES+=rtl paszlib
-
-# Libraries
-
-LIBNAME=fpfcl
-
-# Info
-
-INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=echo
-ECHOE:=echo
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-endif
-
-# To copy pograms
-ifndef COPY
-COPY:=cp -fp
-endif
-
-# Copy a whole tree
-ifndef COPYTREE
-COPYTREE:=cp -rfp
-endif
-
-# To move pograms
-ifndef MOVE
-MOVE:=mv -f
-endif
-
-# Check delete program
-ifndef DEL
-DEL:=rm -f
-endif
-
-# Check deltree program
-ifndef DELTREE
-DELTREE:=rm -rf
-endif
-
-# To install files
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=install -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-
-# To install programs
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=install -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifdef inUnix
-MKDIR:=install -m 755 -d
-else
-MKDIR:=ginstall -m 755 -d
-endif
-endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
-ifndef AS
-AS=as
-endif
-
-# linker, but probably not used
-ifndef LD
-LD=ld
-endif
-
-# ppas.bat / ppas.sh
-ifdef inUnix
-PPAS=ppas.sh
-else
-ifdef inOS2
-PPAS=ppas.cmd
-else
-PPAS=ppas.bat
-endif
-endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-
-ZIPOPT=-9
-ZIPEXT=.zip
-
-# Tar
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG=
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-
-ifeq ($(USETAR),bz2)
-TAROPT=vI
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-
-#####################################################################
-# Default extensions
-#####################################################################
-
-# Default needed extensions (Go32v2,Linux)
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
-
-# Go32v1
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
-endif
-
-# Go32v2
-ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
-endif
-
-# Linux
-ifeq ($(OS_TARGET),linux)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
-endif
-
-# Linux
-ifeq ($(OS_TARGET),freebsd)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
-endif
-
-# Win32
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
-endif
-
-# OS/2
-ifeq ($(OS_TARGET),os2)
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-SMARTEXT=.so
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
-endif
-
-# library prefix
-LIBPREFIX=lib
-ifeq ($(OS_TARGET),go32v2)
-LIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v1)
-LIBPREFIX=
-endif
-
-# determine which .pas extension is used
-ifndef PASEXT
-ifdef EXEOBJECTS
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
-else
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
-endif
-ifeq ($(TESTPAS),)
-PASEXT=.pp
-else
-PASEXT=.pas
-endif
-endif
-
-
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-PACKAGEPASZLIB=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef PACKAGEPASZLIB
-ifneq ($(wildcard $(PACKAGESDIR)/paszlib),)
-ifneq ($(wildcard $(PACKAGESDIR)/paszlib/$(OS_TARGET)),)
-PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib/$(OS_TARGET)
-else
-PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib
-endif
-ifeq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_paszlib
-package_paszlib:
-	$(MAKE) -C $(PACKAGEDIR_PASZLIB) all
-endif
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
-else
-PACKAGEDIR_PASZLIB=
-ifneq ($(wildcard $(UNITSDIR)/paszlib),)
-ifneq ($(wildcard $(UNITSDIR)/paszlib/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(UNITSDIR)/paszlib/$(OS_TARGET)
-else
-UNITDIR_PASZLIB=$(UNITSDIR)/paszlib
-endif
-else
-UNITDIR_PASZLIB=
-endif
-endif
-ifdef UNITDIR_PASZLIB
-override NEEDUNITDIR+=$(UNITDIR_PASZLIB)
-endif
-endif
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-else
-# Normal install
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
-else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
-ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
-else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
-endif
-endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
-ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
-else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
-endif
-endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
-endif
-endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
-ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
-else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
-endif
-endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
-ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
-else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
-endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
-endif
-endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
-ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
-else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
-endif
-endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
-ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
-else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
-endif
-ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
-endif
-endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
-endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
-endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-
-#####################################################################
-# Compiler Command Line
-#####################################################################
-
-# Load commandline OPTDEF and add FPC_CPU define
-override FPCOPTDEF:=-d$(CPU_TARGET)
-
-# Load commandline OPT and add target and unit dir to be sure
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-
-# User dirs should be first, so they are looked at first
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-
-# Smartlinking
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-
-# Smartlinking creation
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-
-# Debug
-ifdef DEBUG
-override FPCOPT+=-gl -dDEBUG
-endif
-
-# Release mode (strip, optimize and don't load ppc386.cfg)
-# 0.99.12b has a bug in the optimizer so don't use it by default
-ifdef RELEASE
-ifeq ($(FPC_VERSION),0.99.12)
-override FPCOPT+=-Xs -OGp3 -n
-else
-override FPCOPT+=-Xs -OG2p3 -n
-endif
-endif
-
-# Strip
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-
-# Optimizer
-ifdef OPTIMIZE
-override FPCOPT+=-OG2p3
-endif
-
-# Verbose settings (warning,note,info)
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-
-ifdef NEEDOPT
-override FPCOPT+=$(NEEDOPT)
-endif
-
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
-ifdef UNITSDIR
-override FPCOPT+=-Fu$(UNITSDIR)
-endif
-
-ifdef NEEDINCDIR
-override FPCOPT+=$(addprefix -Fi,$(NEEDINCDIR))
-endif
-
-
-# Target dirs and the prefix to use for clean/install
-ifdef TARGETDIR
-override FPCOPT+=-FE$(TARGETDIR)
-ifeq ($(TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(TARGETDIR)/
-endif
-endif
-ifdef UNITTARGETDIR
-override FPCOPT+=-FU$(UNITTARGETDIR)
-ifeq ($(UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(TARGETDIR)/
-endif
-else
-ifdef TARGETDIR
-override UNITTARGETDIR=$(TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-
-# Add commandline options last so they can override
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-
-# Add defines from FPCOPTDEF to FPCOPT
-ifdef FPCOPTDEF
-override FPCOPT+=$(FPCOPTDEF)
-endif
-
-# Error file ?
-ifdef ERRORFILE
-override FPCOPT+=-Fr$(ERRORFILE)
-endif
-
-# Was a config file specified ?
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-
-# For win32 the options are passed using the environment FPCEXTCMD
-ifeq ($(OS_SOURCE),win32)
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-
-# Compiler commandline
-override COMPILER:=$(FPC) $(FPCOPT)
-
-# also call ppas if with command option -s
-# but only if the OS_SOURCE and OS_TARGE are equal
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(OS_SOURCE),$(OS_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: fpc_all $(addsuffix _all,$(DIROBJECTS))
-
-debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
-
-smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
-
-shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
-
-install: fpc_install $(addsuffix _install,$(DIROBJECTS))
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: fpc_distclean $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-info: fpc_info
-
-.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require info
-
-#####################################################################
-# Units
-#####################################################################
-
-.PHONY: fpc_units
-
-override ALLTARGET+=fpc_units
-
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
-override INSTALLPPUFILES+=$(UNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES)
-
-fpc_units: $(UNITPPUFILES)
-
-#####################################################################
-# Resource strings
-#####################################################################
-
-ifdef RSTOBJECTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(RSTOBJECTS))
-
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-
-#####################################################################
-# General compile rules
-#####################################################################
-
-.PHONY: fpc_packages fpc_all fpc_debug
-
-$(FPCMADE): $(ALLTARGET)
-	@$(ECHO) Compiled > $(FPCMADE)
-
-fpc_packages: $(COMPILEPACKAGES)
-
-fpc_all: fpc_packages $(FPCMADE)
-
-fpc_debug:
-	$(MAKE) all DEBUG=1
-
-# Search paths for .ppu if targetdir is set
-ifdef UNITTARGETDIR
-vpath %$(PPUEXT) $(UNITTARGETDIR)
-endif
-
-# General compile rules, available for both possible PASEXT
-
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
-
-%$(PPUEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(PPUEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-#####################################################################
-# Library
-#####################################################################
-
-.PHONY: fpc_smart fpc_shared
-
-ifdef LIBVERSION
-LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
-else
-LIBFULLNAME=$(LIBNAME)
-endif
-
-# Default sharedlib units are all unit objects
-ifndef SHAREDLIBUNITOBJECTS
-SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
-endif
-
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-
-fpc_shared: all
-ifdef HASSHAREDLIB
-ifndef LIBNAME
-	@$(ECHO) "LIBNAME not set"
-else
-	$(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
-endif
-else
-	@$(ECHO) "Shared Libraries not supported"
-endif
-
-#####################################################################
-# Install rules
-#####################################################################
-
-.PHONY: fpc_showinstall fpc_install
-
-ifdef EXTRAINSTALLUNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
-endif
-
-ifdef INSTALLPPUFILES
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
-ifdef PPUFILES
-INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
-else
-INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
-endif
-override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
-endif
-
-ifdef INSTALLEXEFILES
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
-endif
-
-fpc_showinstall: $(SHOWINSTALLTARGET)
-ifdef INSTALLEXEFILES
-	@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
-endif
-ifdef INSTALLPPUFILES
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
-ifneq ($(INSTALLPPULINKFILES),)
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
-ifdef HASSHAREDLIB
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
-endif
-
-fpc_install: $(INSTALLTARGET)
-# Create UnitInstallFiles
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(BININSTALLDIR)
-# Compress the exes if upx is defined
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
-ifdef inUnix
-	ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	$(MKDIR) $(DATAINSTALLDIR)
-	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
-endif
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
-endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
-endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
-endif
-endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
-else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Clean rules
-#####################################################################
-
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-
-ifdef EXTRACLEANUNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
-endif
-
-ifdef CLEANPPUFILES
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-# Get the .o and .a files created for the units
-ifdef PPUFILES
-CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
-else
-CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
-endif
-override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
-endif
-
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef EXTRACLEANFILES
-	-$(DEL) $(EXTRACLEANFILES)
-endif
-ifdef LIBNAME
-	-$(DEL) $(LIBNAME) $(LIBFULLNAME)
-endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-fpc_distclean: fpc_clean
-
-# Also run clean first if targetdir is set. Unittargetdir is always
-# set if targetdir or unittargetdir is specified
-ifdef UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-#####################################################################
-# Info rules
-#####################################################################
-
-.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
-	fpc_dirinfo
-
-fpc_info: $(INFOTARGET)
-
-fpc_infocfg:
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC....... $(FPC)
-	@$(ECHO)  Version... $(FPC_VERSION)
-	@$(ECHO)  CPU....... $(CPU_TARGET)
-	@$(ECHO)  Source.... $(OS_SOURCE)
-	@$(ECHO)  Target.... $(OS_TARGET)
-	@$(ECHO)
-
-fpc_infoobjects:
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  LoaderObjects..... $(LOADEROBJECTS)
-	@$(ECHO)  UnitObjects....... $(UNITOBJECTS)
-	@$(ECHO)  ExeObjects........ $(EXEOBJECTS)
-	@$(ECHO)
-	@$(ECHO)  ExtraCleanUnits... $(EXTRACLEANUNITS)
-	@$(ECHO)  ExtraCleanFiles... $(EXTRACLEANFILES)
-	@$(ECHO)
-	@$(ECHO)  ExtraInstallUnits. $(EXTRAINSTALLUNITS)
-	@$(ECHO)  ExtraInstallFiles. $(EXTRAINSTALLFILES)
-	@$(ECHO)
-
-fpc_infoinstall:
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-ifdef DATE
-	@$(ECHO)  DateStr.............. $(DATESTR)
-endif
-ifdef PACKAGEPREFIX
-	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
-endif
-ifdef PACKAGENAME
-	@$(ECHO)  PackageName.......... $(PACKAGENAME)
-endif
-	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
-	@$(ECHO)
-	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
-	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
-	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
-	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
-	@$(ECHO)  SourceInstallDir..... $(SOURCEINSTALLDIR)
-	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
-	@$(ECHO)  DataInstallDir....... $(DATAINSTALLDIR)
-	@$(ECHO)
-	@$(ECHO)  DestZipDir........... $(DESTZIPDIR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIR../XML=1
-OBJECTDIR../SHEDIT=1
-
-# Dir ../xml
-
-ifdef OBJECTDIR../XML
-.PHONY:  ../xml_all ../xml_debug ../xml_examples ../xml_test ../xml_smart ../xml_shared ../xml_showinstall ../xml_install ../xml_sourceinstall ../xml_exampleinstall ../xml_zipinstall ../xml_zipsourceinstall ../xml_zipexampleinstall ../xml_clean ../xml_distclean ../xml_cleanall ../xml_require ../xml_info
-
-../xml_all:
-	$(MAKE) -C ../xml all
-
-../xml_debug:
-	$(MAKE) -C ../xml debug
-
-../xml_examples:
-	$(MAKE) -C ../xml examples
-
-../xml_test:
-	$(MAKE) -C ../xml test
-
-../xml_smart:
-	$(MAKE) -C ../xml smart
-
-../xml_shared:
-	$(MAKE) -C ../xml shared
-
-../xml_showinstall:
-	$(MAKE) -C ../xml showinstall
-
-../xml_install:
-	$(MAKE) -C ../xml install
-
-../xml_sourceinstall:
-	$(MAKE) -C ../xml sourceinstall
-
-../xml_exampleinstall:
-	$(MAKE) -C ../xml exampleinstall
-
-../xml_zipinstall:
-	$(MAKE) -C ../xml zipinstall
-
-../xml_zipsourceinstall:
-	$(MAKE) -C ../xml zipsourceinstall
-
-../xml_zipexampleinstall:
-	$(MAKE) -C ../xml zipexampleinstall
-
-../xml_clean:
-	$(MAKE) -C ../xml clean
-
-../xml_distclean:
-	$(MAKE) -C ../xml distclean
-
-../xml_cleanall:
-	$(MAKE) -C ../xml cleanall
-
-../xml_require:
-	$(MAKE) -C ../xml require
-
-../xml_info:
-	$(MAKE) -C ../xml info
-endif
-
-# Dir ../shedit
-
-ifdef OBJECTDIR../SHEDIT
-.PHONY:  ../shedit_all ../shedit_debug ../shedit_examples ../shedit_test ../shedit_smart ../shedit_shared ../shedit_showinstall ../shedit_install ../shedit_sourceinstall ../shedit_exampleinstall ../shedit_zipinstall ../shedit_zipsourceinstall ../shedit_zipexampleinstall ../shedit_clean ../shedit_distclean ../shedit_cleanall ../shedit_require ../shedit_info
-
-../shedit_all:
-	$(MAKE) -C ../shedit all
-
-../shedit_debug:
-	$(MAKE) -C ../shedit debug
-
-../shedit_examples:
-	$(MAKE) -C ../shedit examples
-
-../shedit_test:
-	$(MAKE) -C ../shedit test
-
-../shedit_smart:
-	$(MAKE) -C ../shedit smart
-
-../shedit_shared:
-	$(MAKE) -C ../shedit shared
-
-../shedit_showinstall:
-	$(MAKE) -C ../shedit showinstall
-
-../shedit_install:
-	$(MAKE) -C ../shedit install
-
-../shedit_sourceinstall:
-	$(MAKE) -C ../shedit sourceinstall
-
-../shedit_exampleinstall:
-	$(MAKE) -C ../shedit exampleinstall
-
-../shedit_zipinstall:
-	$(MAKE) -C ../shedit zipinstall
-
-../shedit_zipsourceinstall:
-	$(MAKE) -C ../shedit zipsourceinstall
-
-../shedit_zipexampleinstall:
-	$(MAKE) -C ../shedit zipexampleinstall
-
-../shedit_clean:
-	$(MAKE) -C ../shedit clean
-
-../shedit_distclean:
-	$(MAKE) -C ../shedit distclean
-
-../shedit_cleanall:
-	$(MAKE) -C ../shedit cleanall
-
-../shedit_require:
-	$(MAKE) -C ../shedit require
-
-../shedit_info:
-	$(MAKE) -C ../shedit info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-
-#####################################################################
-# Users rules
-#####################################################################
-
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
-
-process$(PPUEXT): process$(PASEXT) process.inc

+ 0 - 47
fcl/win32/Makefile.fpc

@@ -1,47 +0,0 @@
-#
-#   Makefile.fpc for Free Component Library for Win32
-#
-
-[targets]
-dirs=../xml ../shedit
-units=classes $(INCUNITS) process fileinfo
-rst=classes ssockets cachecls
-
-[defaults]
-defaulttarget=win32
-
-[require]
-options=-S2
-packages=paszlib
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[libs]
-libname=fpfcl
-
-[dirs]
-fpcdir=../..
-targetdir=.
-incdir=$(INC)
-sourcesdir=$(INC)
-
-
-[presettings]
-# Include files
-INC=../inc
-
-# INCUNITS is defined in makefile.inc
-# They are default units for all platforms.
-include $(INC)/Makefile.inc
-
-
-[rules]
-classes$(PPUEXT): $(addprefix $(INC)/,$(INCNAMES)) classes$(PASEXT)
-
-inifiles$(PPUEXT): classes$(PPUEXT) $(INC)/inifiles$(PASEXT)
-
-ezcgi$(PPUEXT): $(INC)/ezcgi$(PASEXT)
-
-process$(PPUEXT): process$(PASEXT) process.inc

File diff suppressed because it is too large
+ 220 - 537
fcl/xml/Makefile


+ 5 - 9
fcl/xml/Makefile.fpc

@@ -2,16 +2,12 @@
 #   Makefile.fpc for XML for FCL
 #
 
-[targets]
+[package]
+main=fcl
+
+[target]
 units=dom htmldoc xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite
 
-[require]
+[compiler]
 options=-S2
-
-[install]
-unitsubdir=fcl
-packagename=fcl
-
-[dirs]
-fpcdir=../..
 targetdir=../$(OS_TARGET)

+ 553 - 386
ide/Makefile

@@ -1,20 +1,8 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/12/19]
+# Don't edit, this file is generated by fpcmake v1.99.0 [2001/01/29]
 #
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
+default: all
 override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
@@ -30,9 +18,6 @@ endif
 else
 PWD:=$(firstword $(PWD))
 endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
 ifndef inUnix
 ifeq ($(OS),Windows_NT)
 inWinNT=1
@@ -42,35 +27,36 @@ inOS2=1
 endif
 endif
 endif
-
-# The extension of executables
 ifdef inUnix
 SRCEXEEXT=
 else
 SRCEXEEXT=.exe
 endif
-
-# The path which is searched separated by spaces
+ifdef inUnix
+BATCHEXT=.sh
+else
+ifdef inOS2
+BATCHEXT=.cmd
+else
+BATCHEXT=.bat
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP=$(subst /,\,/)
+endif
 ifdef inUnix
 SEARCHPATH=$(subst :, ,$(PATH))
 else
 SEARCHPATH=$(subst ;, ,$(PATH))
 endif
-
-# Base dir
 ifdef PWD
 BASEDIR:=$(shell $(PWD))
 else
 BASEDIR=.
 endif
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
 ifndef FPC
-# Compatibility with old makefiles
 ifdef PP
 FPC=$(PP)
 else
@@ -79,39 +65,22 @@ endif
 endif
 override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
 override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
 ifndef OS_TARGET
 OS_TARGET:=$(shell $(FPC) -iTO)
 endif
-
-# Source OS
 ifndef OS_SOURCE
 OS_SOURCE:=$(shell $(FPC) -iSO)
 endif
-
-# Target CPU
 ifndef CPU_TARGET
 CPU_TARGET:=$(shell $(FPC) -iTP)
 endif
-
-# Source CPU
 ifndef CPU_SOURCE
 CPU_SOURCE:=$(shell $(FPC) -iSP)
 endif
-
-# FPC version
 ifndef FPC_VERSION
 FPC_VERSION:=$(shell $(FPC) -iV)
 endif
-
 export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(FPCDIR)/rtl),)
@@ -122,8 +91,6 @@ endif
 else
 override FPCDIR=wrong
 endif
-
-# Detect FPCDIR
 ifeq ($(FPCDIR),wrong)
 ifdef inUnix
 override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
@@ -145,84 +112,40 @@ endif
 endif
 endif
 endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard fake text)
-
-# Clean
-
-
-# Install
-
-PACKAGENAME=ide
-ZIPTARGET=install
-
-# Defaults
-
-
-# Directories
-
-
-# Packages
-
-
-# Libraries
-
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
+override FPCDIR:=$(wildcard $(FPCDIR))
+UNITSDIR=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+PACKAGESDIR=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
+override PACKAGE_NAME=ide
+override PACKAGE_VERSION=1.0.5
+override TARGET_DIRS+=fake text
 ifndef ECHO
 ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ECHO:=echo
-ECHOE:=echo
 else
 ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
 endif
 else
 ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
 endif
 endif
-
-# To copy pograms
 ifndef COPY
 COPY:=cp -fp
 endif
-
-# Copy a whole tree
 ifndef COPYTREE
 COPYTREE:=cp -rfp
 endif
-
-# To move pograms
 ifndef MOVE
 MOVE:=mv -f
 endif
-
-# Check delete program
 ifndef DEL
 DEL:=rm -f
 endif
-
-# Check deltree program
 ifndef DELTREE
 DELTREE:=rm -rf
 endif
-
-# To install files
 ifndef INSTALL
 ifdef inUnix
 INSTALL:=install -c -m 644
@@ -230,8 +153,6 @@ else
 INSTALL:=$(COPY)
 endif
 endif
-
-# To install programs
 ifndef INSTALLEXE
 ifdef inUnix
 INSTALLEXE:=install -c -m 755
@@ -239,8 +160,6 @@ else
 INSTALLEXE:=$(COPY)
 endif
 endif
-
-# To make a directory.
 ifndef MKDIR
 ifdef inUnix
 MKDIR:=install -m 755 -d
@@ -248,42 +167,75 @@ else
 MKDIR:=ginstall -m 755 -d
 endif
 endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
+export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef AS
 AS=as
 endif
-
-# linker, but probably not used
 ifndef LD
 LD=ld
 endif
-
-# ppas.bat / ppas.sh
+PPAS=$(BATCHEXT)
 ifdef inUnix
-PPAS=ppas.sh
+LDCONFIG=ldconfig
 else
-ifdef inOS2
-PPAS=ppas.cmd
+LDCONFIG=
+endif
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE=
 else
-PPAS=ppas.bat
+PPUMOVE:=$(firstword $(PPUMOVE))
 endif
 endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
+export PPUMOVE
+ifndef PPUFILES
+PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUFILES),)
+PPUFILES=
 else
-LDCONFIG=
+PPUFILES:=$(firstword $(PPUFILES))
+endif
+endif
+export PPUFILES
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEACHPATH))))
+ifeq ($(DATE),)
+DATE=
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ifndef UPXPROG
+ifeq ($(OS_TARGET),go32v2)
+UPXPROG:=1
+endif
+ifeq ($(OS_TARGET),win32)
+UPXPROG:=1
 endif
-
-# ZipProg, you can't use Zip as the var name (PFV)
+ifdef UPXPROG
+UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(UPXPROG),)
+UPXPROG=
+else
+UPXPROG:=$(firstword $(UPXPROG))
+endif
+else
+UPXPROG=
+endif
+endif
+export UPXPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
@@ -293,11 +245,8 @@ ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
 export ZIPPROG
-
 ZIPOPT=-9
 ZIPEXT=.zip
-
-# Tar
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
@@ -307,7 +256,6 @@ TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 export TARPROG
-
 ifeq ($(USETAR),bz2)
 TAROPT=vI
 TAREXT=.tar.bz2
@@ -315,18 +263,73 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+LIBPREFIX=lib
+RSTEXT=.rst
+FPCMADE=fpcmade
+ifeq ($(OS_TARGET),go32v1)
+PPUEXT=.pp1
+OEXT=.o1
+ASMEXT=.s1
+SMARTEXT=.sl1
+STATICLIBEXT=.a1
+SHAREDLIBEXT=.so1
+LIBPREFIX=
+FPCMADE=fpcmade.v1
+PACKAGESUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+LIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=go32
+endif
+ifeq ($(OS_TARGET),linux)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.lnx
+ZIPSUFFIX=linux
+endif
+ifeq ($(OS_TARGET),freebsd)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.freebsd
+ZIPSUFFIX=freebsd
+endif
+ifeq ($(OS_TARGET),win32)
+PPUEXT=.ppw
+OEXT=.ow
+ASMEXT=.sw
+SMARTEXT=.slw
+STATICLIBEXT=.aw
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.w32
+ZIPSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+PPUEXT=.ppo
+ASMEXT=.so2
+OEXT=.oo2
+SMARTEXT=.so
+STATICLIBEXT=.ao2
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.os2
+ZIPSUFFIX=emx
+endif
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
 ifeq ($(OS_TARGET),linux)
 UNIXINSTALLDIR=1
 endif
@@ -334,7 +337,6 @@ ifeq ($(OS_TARGET),freebsd)
 UNIXINSTALLDIR=1
 endif
 else
-# Normal install
 ifeq ($(OS_SOURCE),linux)
 UNIXINSTALLDIR=1
 endif
@@ -342,381 +344,546 @@ ifeq ($(OS_SOURCE),freebsd)
 UNIXINSTALLDIR=1
 endif
 endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
+ifndef INSTALL_PREFIX
 ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
+INSTALL_PREFIX=/usr/local
 else
-PREFIXINSTALLDIR=/pp
+INSTALL_PREFIX=/pp
 endif
 endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
+export INSTALL_PREFIX
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
 endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
+export DIST_DESTDIR
+ifndef INSTALL_BASEDIR
 ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
+INSTALL_BASEDIR=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
+INSTALL_BASEDIR=$(INSTALL_PREFIX)
 endif
 endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
+ifndef INSTALL_BINDIR
 ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
+INSTALL_BINDIR=$(INSTALL_PREFIX)/bin
 else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
+INSTALL_BINDIR=$(INSTALL_BASEDIR)/bin/$(OS_TARGET)
 endif
 endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 endif
 endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
+ifndef INSTALL_LIBDIR
 ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
+INSTALL_LIBDIR=$(INSTALL_PREFIX)/lib
 else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
+INSTALL_LIBDIR=$(INSTALL_UNITDIR)
 endif
 endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
+ifndef INSTALL_SOURCEDIR
 ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
+INSTALL_SOURCEDIR=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)
 else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
+INSTALL_SOURCEDIR=$(INSTALL_BASEDIR)/source
 endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+ifdef PACKAGE_NAME
+INSTALL_SOURCEDIR:=$(INSTALL_SOURCEDIR)/$(PACKAGE_NAME)
 endif
 endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
+ifndef INSTALL_DOCDIR
 ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
+INSTALL_DOCDIR=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)
 else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
+INSTALL_DOCDIR=$(INSTALL_BASEDIR)/doc
 endif
 endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
+ifndef INSTALL_EXAMPLEDIR
 ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
+INSTALL_EXAMPLEDIR=$(INSTALL_DOCDIR)/examples
 else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
+INSTALL_EXAMPLEDIR=$(INSTALL_BASEDIR)/examples
 endif
 ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
+INSTALL_EXAMPLEDIR:=$(INSTALL_EXAMPLEDIR)/$(EXAMPLESUBDIR)
 endif
 endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
 endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
+override FPCOPTDEF=$(CPU_TARGET)
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
 endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-debug: $(addsuffix _debug,$(DIROBJECTS))
-
-smart: $(addsuffix _smart,$(DIROBJECTS))
-
-shared: $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: $(addsuffix _showinstall,text)
-
-install: $(addsuffix _install,text)
-
-sourceinstall: fpc_sourceinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-clean: $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-.PHONY:  debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean distclean cleanall require
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
 endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
+endif
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
+endif
+ifdef LINKSMART
+override FPCOPT+=-XX
+endif
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+override FPCOPT+=-Xs -OG2p3 -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-OG2p3
 endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
 endif
-
-# Temporary path to pack a file
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
+else
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+endif
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
+endif
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifeq ($(OS_SOURCE),win32)
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
+endif
+override COMPILER:=$(FPC) $(FPCOPT)
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
+else
+ifeq ($(OS_SOURCE),$(OS_TARGET))
+EXECPPAS:=@$(PPAS)
+endif
+endif
+.PHONY: fpc_packages fpc_all fpc_smart fpc_debug
+$(FPCMADE): $(ALLTARGET)
+	@$(ECHO) Compiled > $(FPCMADE)
+fpc_packages: $(COMPILEPACKAGES)
+fpc_all: fpc_packages $(FPCMADE)
+fpc_smart:
+	$(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+	$(MAKE) all DEBUG=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
+%$(PPUEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(PPUEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALLPPUFILES
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
+ifdef PPUFILES
+INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
+else
+INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
+endif
+override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
+endif
+ifdef INSTALLEXEFILES
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
+endif
+fpc_install: $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+	$(MKDIR) $(INSTALL_BINDIR)
+ifdef UPXPROG
+	-$(UPXPROG) $(INSTALLEXEFILES)
+endif
+	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALLPPUFILES
+	$(MKDIR) $(INSTALL_UNITDIR)
+	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+	$(MKDIR) $(INSTALL_LIBDIR)
+	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
+endif
+endif
+endif
+ifdef INSTALL_FILES
+	$(MKDIR) $(INSTALL_DATADIR)
+	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
+endif
+fpc_sourceinstall: distclean
+	$(MKDIR) $(INSTALL_SOURCEDIR)
+	$(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ifndef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+fpc_distinstall: fpc_install fpc_exampleinstall
+.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
 ifndef PACKDIR
 ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
+PACKDIR=$(BASEDIR)/../pack_tmp/$(PACKAGE_NAME)
 else
-PACKDIR=/tmp/fpc-pack
+PACKDIR=/tmp/fpc-pack/$(PACKAGE_NAME)
 endif
 endif
-
-# Maybe create default zipname from packagename
 ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
+ifdef DIST_ZIPNAME
+ZIPNAME=$(DIST_ZIPNAME)
+else
+ZIPNAME=$(ZIPPREFIX)$(PACKAGE_NAME)$(ZIPSUFFIX)
+endif
+endif
+ifndef ZIPTARGET
+ifdef DIST_ZIPTARGET
+ZIPTARGET=DIST_ZIPTARGET
+else
+ZIPTARGET=install
 endif
 endif
-
-# Use tar by default under linux
 ifndef USEZIP
 ifdef inUnix
 USETAR=1
 endif
 endif
-
+ifdef inOS2
+USEZIPWRAPPER=1
+endif
+ZIPWRAPPER=$(DIST_DESTDIR)/fpczip$(BATCHEXT)
+ZIPCMD_CDPACK:=cd $(subst /,$(PATHSEP),$(PACKDIR))
+ZIPCMD_CDBASE:=cd $(subst /,$(PATHSEP),$(BASEDIR))
+ifdef USETAR
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(TAREXT)
+ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
+else
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(ZIPEXT)
+ZIPCMD_ZIP:=$(subst /,$(PATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
+endif
 fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
+	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
+	$(DEL) $(ZIPDESTFILE)
+ifdef USEZIPWRAPPER
+ifneq ($(ECHO),echo)
+	$(ECHO) "$(ZIPCMD_CDPACK)" > $(ZIPWRAPPER)
+	$(ECHO) "$(ZIPCMD_ZIP)" >> $(ZIPWRAPPER)
+	$(ECHO) "$(ZIPCMD_CDBASE)" >> $(ZIPWRAPPER)
 else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
+	$(ECHO) $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
+	$(ECHO) $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
+	$(ECHO) $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
+endif
+ifdef inUnix
+	/bin/sh $(ZIPWRAPPER)
 else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
+	$(ZIPWRAPPER)
 endif
-	$(DELTREE) $(PACKDIR)
+	$(DEL) $(ZIPWRAPPER)
+else
+	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
 endif
-
-.PHONY:  fpc_zipsourceinstall
-
+	$(DELTREE) $(PACKDIR)
 fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIRFAKE=1
-OBJECTDIRTEXT=1
-
-# Dir fake
-
-ifdef OBJECTDIRFAKE
-.PHONY:  fake_all fake_debug fake_examples fake_test fake_smart fake_shared fake_showinstall fake_install fake_sourceinstall fake_exampleinstall fake_zipinstall fake_zipsourceinstall fake_zipexampleinstall fake_clean fake_distclean fake_cleanall fake_require fake_info
-
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=src
+fpc_zipexampleinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=exm
+fpc_zipdistinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=distinstall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+ifdef PPUFILES
+CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
+else
+CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
+endif
+override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+	-$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+fpc_distclean: fpc_clean
+ifdef COMPILER_UNITTARGETDIR
+TARGETDIRCLEAN=fpc_clean
+endif
+fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+	-$(DELTREE) *$(SMARTEXT)
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+.PHONY: fpc_info
+fpc_info:
+	@$(ECHO)
+	@$(ECHO)  == Package info ==
+	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
+	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
+	@$(ECHO)
+	@$(ECHO)  == Configuration info ==
+	@$(ECHO)
+	@$(ECHO)  FPC.......... $(FPC)
+	@$(ECHO)  FPC Version.. $(FPC_VERSION)
+	@$(ECHO)  Source CPU... $(CPU_SOURCE)
+	@$(ECHO)  Target CPU... $(CPU_TARGET)
+	@$(ECHO)  Source OS.... $(OS_SOURCE)
+	@$(ECHO)  Target OS.... $(OS_TARGET)
+	@$(ECHO)
+	@$(ECHO)  == Directory info ==
+	@$(ECHO)
+	@$(ECHO)  Basedir......... $(BASEDIR)
+	@$(ECHO)  FPCDir.......... $(FPCDIR)
+	@$(ECHO)  UnitsDir........ $(UNITSDIR)
+	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
+	@$(ECHO)
+	@$(ECHO)  GCC library..... $(GCCLIBDIR)
+	@$(ECHO)  Other library... $(OTHERLIBDIR)
+	@$(ECHO)
+	@$(ECHO)  == Tools info ==
+	@$(ECHO)
+	@$(ECHO)  Pwd....... $(PWD)
+	@$(ECHO)  Echo...... $(ECHO)
+	@$(ECHO)  PPUMove... $(PPUMOVE)
+	@$(ECHO)  PPUFiles.. $(PPUFILES)
+	@$(ECHO)  Date...... $(DATE)
+	@$(ECHO)  Upx....... $(UPXPROG)
+	@$(ECHO)  Zip....... $(ZIPPROG)
+	@$(ECHO)
+	@$(ECHO)  == Object info ==
+	@$(ECHO)
+	@$(ECHO)  Target Loaders...... $(TARGET_LOADERS)
+	@$(ECHO)  Target Units........ $(TARGET_UNITS)
+	@$(ECHO)  Target Programs..... $(TARGET_PROGRAMS)
+	@$(ECHO)  Target Dirs......... $(TARGET_DIRS)
+	@$(ECHO)  Target Examples..... $(TARGET_EXAMPLES)
+	@$(ECHO)  Target ExampleDirs.. $(TARGET_EXAMPLEDIRS)
+	@$(ECHO)
+	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
+	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
+	@$(ECHO)
+	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
+	@$(ECHO)  Install Files....... $(INSTALL_FILES)
+	@$(ECHO)
+	@$(ECHO)  == Install info ==
+	@$(ECHO)
+	@$(ECHO)  DateStr.............. $(DATESTR)
+	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
+	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
+	@$(ECHO)
+	@$(ECHO)  INSTALL_BASEDIR...... $(INSTALL_BASEDIR)
+	@$(ECHO)  INSTALL_BINDIR....... $(INSTALL_BINDIR)
+	@$(ECHO)  INSTALL_LIBDIR....... $(INSTALL_LIBDIR)
+	@$(ECHO)  INSTALL_UNITDIR...... $(INSTALL_UNITDIR)
+	@$(ECHO)  INSTALL_SOURCEDIR.... $(INSTALL_SOURCEDIR)
+	@$(ECHO)  INSTALL_DOCDIR....... $(INSTALL_DOCDIR)
+	@$(ECHO)  INSTALL_DATADIR...... $(INSTALL_DATADIR)
+	@$(ECHO)
+	@$(ECHO)  DIST_DESTDIR......... $(DIST_DESTDIR)
+	@$(ECHO)  DIST_ZIPNAME......... $(DIST_ZIPNAME)
+	@$(ECHO)
+TARGET_DIRS_FAKE=1
+TARGET_DIRS_TEXT=1
+ifdef TARGET_DIRS_FAKE
 fake_all:
 	$(MAKE) -C fake all
-
 fake_debug:
 	$(MAKE) -C fake debug
-
 fake_examples:
 	$(MAKE) -C fake examples
-
-fake_test:
-	$(MAKE) -C fake test
-
 fake_smart:
 	$(MAKE) -C fake smart
-
 fake_shared:
 	$(MAKE) -C fake shared
-
-fake_showinstall:
-	$(MAKE) -C fake showinstall
-
 fake_install:
 	$(MAKE) -C fake install
-
 fake_sourceinstall:
 	$(MAKE) -C fake sourceinstall
-
 fake_exampleinstall:
 	$(MAKE) -C fake exampleinstall
-
+fake_distinstall:
+	$(MAKE) -C fake distinstall
 fake_zipinstall:
 	$(MAKE) -C fake zipinstall
-
 fake_zipsourceinstall:
 	$(MAKE) -C fake zipsourceinstall
-
 fake_zipexampleinstall:
 	$(MAKE) -C fake zipexampleinstall
-
+fake_zipdistinstall:
+	$(MAKE) -C fake zipdistinstall
 fake_clean:
 	$(MAKE) -C fake clean
-
 fake_distclean:
 	$(MAKE) -C fake distclean
-
 fake_cleanall:
 	$(MAKE) -C fake cleanall
-
-fake_require:
-	$(MAKE) -C fake require
-
 fake_info:
 	$(MAKE) -C fake info
+fake:
+	$(MAKE) -C fake all
+.PHONY: fake_all fake_debug fake_examples fake_smart fake_shared fake_install fake_sourceinstall fake_exampleinstall fake_distinstall fake_zipinstall fake_zipsourceinstall fake_zipexampleinstall fake_zipdistinstall fake_clean fake_distclean fake_cleanall fake_info fake
 endif
-
-# Dir text
-
-ifdef OBJECTDIRTEXT
-.PHONY:  text_all text_debug text_examples text_test text_smart text_shared text_showinstall text_install text_sourceinstall text_exampleinstall text_zipinstall text_zipsourceinstall text_zipexampleinstall text_clean text_distclean text_cleanall text_require text_info
-
+ifdef TARGET_DIRS_TEXT
 text_all:
 	$(MAKE) -C text all
-
 text_debug:
 	$(MAKE) -C text debug
-
 text_examples:
 	$(MAKE) -C text examples
-
-text_test:
-	$(MAKE) -C text test
-
 text_smart:
 	$(MAKE) -C text smart
-
 text_shared:
 	$(MAKE) -C text shared
-
-text_showinstall:
-	$(MAKE) -C text showinstall
-
 text_install:
 	$(MAKE) -C text install
-
 text_sourceinstall:
 	$(MAKE) -C text sourceinstall
-
 text_exampleinstall:
 	$(MAKE) -C text exampleinstall
-
+text_distinstall:
+	$(MAKE) -C text distinstall
 text_zipinstall:
 	$(MAKE) -C text zipinstall
-
 text_zipsourceinstall:
 	$(MAKE) -C text zipsourceinstall
-
 text_zipexampleinstall:
 	$(MAKE) -C text zipexampleinstall
-
+text_zipdistinstall:
+	$(MAKE) -C text zipdistinstall
 text_clean:
 	$(MAKE) -C text clean
-
 text_distclean:
 	$(MAKE) -C text distclean
-
 text_cleanall:
 	$(MAKE) -C text cleanall
-
-text_require:
-	$(MAKE) -C text require
-
 text_info:
 	$(MAKE) -C text info
+text:
+	$(MAKE) -C text all
+.PHONY: text_all text_debug text_examples text_smart text_shared text_install text_sourceinstall text_exampleinstall text_distinstall text_zipinstall text_zipsourceinstall text_zipexampleinstall text_zipdistinstall text_clean text_distclean text_cleanall text_info text
 endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
+debug: fpc_debug $(addsuffix _debug,$(TARGET_DIRS))
+examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
+smart: fpc_smart $(addsuffix _smart,$(TARGET_DIRS))
+shared: fpc_shared $(addsuffix _shared,$(TARGET_DIRS))
+install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
+sourceinstall: fpc_sourceinstall
+exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS))
+distinstall: fpc_distinstall $(addsuffix _distinstall,$(TARGET_DIRS))
+zipinstall: fpc_zipinstall
+zipsourceinstall: fpc_zipsourceinstall
+zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
+zipdistinstall: fpc_zipdistinstall $(addsuffix _zipdistinstall,$(TARGET_DIRS))
+clean: fpc_clean $(addsuffix _clean,$(TARGET_DIRS))
+distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
+cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
+info: fpc_info $(addsuffix _info,$(TARGET_DIRS))
+.PHONY: debug examples smart shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif
-
-#####################################################################
-# Users rules
-#####################################################################
-
 .PHONY: gdb full fullgdb clean_compiler
-
 all:
 	$(MAKE) -C text all
-
 gdb:
 	$(MAKE) -C text all GDB=1
-
 full:
 	$(MAKE) -C text all FULL=1 "NEEDOPT+=-Sg -dGDB -dBROWSERCOL"
-
 fullgdb:
 	$(MAKE) -C text all FULL=1 GDB=1 "NEEDOPT+=-Sg -dGDB -dBROWSERCOL"
-
-#
-# Misc
-#
 clean_compiler:
 	$(MAKE) -C ../compiler clean

+ 5 - 13
ide/Makefile.fpc

@@ -2,20 +2,12 @@
 #   Makefile.fpc for FP IDE
 #
 
-[targets]
-dirs=fake text
-
-[install]
-packagename=ide
-sourcesubdirs=0
-
-[sections]
-none=1
-zipsourceinstall=1
-
-[defaults]
-defaultinstalldir=text
+[package]
+name=ide
+version=1.0.5
 
+[target]
+dirs=fake text
 
 [rules]
 .PHONY: gdb full fullgdb clean_compiler

+ 626 - 215
ide/fake/Makefile

@@ -1,20 +1,8 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/12/19]
+# Don't edit, this file is generated by fpcmake v1.99.0 [2001/01/29]
 #
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
+default: all
 override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
@@ -30,9 +18,6 @@ endif
 else
 PWD:=$(firstword $(PWD))
 endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
 ifndef inUnix
 ifeq ($(OS),Windows_NT)
 inWinNT=1
@@ -42,35 +27,36 @@ inOS2=1
 endif
 endif
 endif
-
-# The extension of executables
 ifdef inUnix
 SRCEXEEXT=
 else
 SRCEXEEXT=.exe
 endif
-
-# The path which is searched separated by spaces
+ifdef inUnix
+BATCHEXT=.sh
+else
+ifdef inOS2
+BATCHEXT=.cmd
+else
+BATCHEXT=.bat
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP=$(subst /,\,/)
+endif
 ifdef inUnix
 SEARCHPATH=$(subst :, ,$(PATH))
 else
 SEARCHPATH=$(subst ;, ,$(PATH))
 endif
-
-# Base dir
 ifdef PWD
 BASEDIR:=$(shell $(PWD))
 else
 BASEDIR=.
 endif
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
 ifndef FPC
-# Compatibility with old makefiles
 ifdef PP
 FPC=$(PP)
 else
@@ -79,39 +65,22 @@ endif
 endif
 override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
 override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
 ifndef OS_TARGET
 OS_TARGET:=$(shell $(FPC) -iTO)
 endif
-
-# Source OS
 ifndef OS_SOURCE
 OS_SOURCE:=$(shell $(FPC) -iSO)
 endif
-
-# Target CPU
 ifndef CPU_TARGET
 CPU_TARGET:=$(shell $(FPC) -iTP)
 endif
-
-# Source CPU
 ifndef CPU_SOURCE
 CPU_SOURCE:=$(shell $(FPC) -iSP)
 endif
-
-# FPC version
 ifndef FPC_VERSION
 FPC_VERSION:=$(shell $(FPC) -iV)
 endif
-
 export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(FPCDIR)/rtl),)
@@ -122,8 +91,6 @@ endif
 else
 override FPCDIR=wrong
 endif
-
-# Detect FPCDIR
 ifeq ($(FPCDIR),wrong)
 ifdef inUnix
 override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
@@ -145,46 +112,222 @@ endif
 endif
 endif
 endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override DIROBJECTS+=$(wildcard compiler gdb)
-
-# Clean
-
-
-# Install
-
-ZIPTARGET=install
-
-# Defaults
-
-
-# Directories
-
-
-# Packages
-
-
-# Libraries
-
-
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
+override FPCDIR:=$(wildcard $(FPCDIR))
+UNITSDIR=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+PACKAGESDIR=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
+override TARGET_DIRS+=compiler gdb
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=echo
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+ifndef COPY
+COPY:=cp -fp
+endif
+ifndef COPYTREE
+COPYTREE:=cp -rfp
+endif
+ifndef MOVE
+MOVE:=mv -f
+endif
+ifndef DEL
+DEL:=rm -f
+endif
+ifndef DELTREE
+DELTREE:=rm -rf
+endif
+ifndef INSTALL
+ifdef inUnix
+INSTALL:=install -c -m 644
+else
+INSTALL:=$(COPY)
+endif
+endif
+ifndef INSTALLEXE
+ifdef inUnix
+INSTALLEXE:=install -c -m 755
+else
+INSTALLEXE:=$(COPY)
+endif
+endif
+ifndef MKDIR
+ifdef inUnix
+MKDIR:=install -m 755 -d
+else
+MKDIR:=ginstall -m 755 -d
+endif
+endif
+export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
+ifndef AS
+AS=as
+endif
+ifndef LD
+LD=ld
+endif
+PPAS=$(BATCHEXT)
+ifdef inUnix
+LDCONFIG=ldconfig
+else
+LDCONFIG=
+endif
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE=
+else
+PPUMOVE:=$(firstword $(PPUMOVE))
+endif
+endif
+export PPUMOVE
+ifndef PPUFILES
+PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUFILES),)
+PPUFILES=
+else
+PPUFILES:=$(firstword $(PPUFILES))
+endif
+endif
+export PPUFILES
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEACHPATH))))
+ifeq ($(DATE),)
+DATE=
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ifndef UPXPROG
+ifeq ($(OS_TARGET),go32v2)
+UPXPROG:=1
+endif
+ifeq ($(OS_TARGET),win32)
+UPXPROG:=1
+endif
+ifdef UPXPROG
+UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(UPXPROG),)
+UPXPROG=
+else
+UPXPROG:=$(firstword $(UPXPROG))
+endif
+else
+UPXPROG=
+endif
+endif
+export UPXPROG
+ifndef ZIPPROG
+ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ZIPPROG),)
+ZIPPROG=
+else
+ZIPPROG:=$(firstword $(ZIPPROG))
+endif
+endif
+export ZIPPROG
+ZIPOPT=-9
+ZIPEXT=.zip
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
+endif
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+LIBPREFIX=lib
+RSTEXT=.rst
+FPCMADE=fpcmade
+ifeq ($(OS_TARGET),go32v1)
+PPUEXT=.pp1
+OEXT=.o1
+ASMEXT=.s1
+SMARTEXT=.sl1
+STATICLIBEXT=.a1
+SHAREDLIBEXT=.so1
+LIBPREFIX=
+FPCMADE=fpcmade.v1
+PACKAGESUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+LIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=go32
+endif
+ifeq ($(OS_TARGET),linux)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.lnx
+ZIPSUFFIX=linux
+endif
+ifeq ($(OS_TARGET),freebsd)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.freebsd
+ZIPSUFFIX=freebsd
+endif
+ifeq ($(OS_TARGET),win32)
+PPUEXT=.ppw
+OEXT=.ow
+ASMEXT=.sw
+SMARTEXT=.slw
+STATICLIBEXT=.aw
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.w32
+ZIPSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+PPUEXT=.ppo
+ASMEXT=.so2
+OEXT=.oo2
+SMARTEXT=.so
+STATICLIBEXT=.ao2
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.os2
+ZIPSUFFIX=emx
+endif
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
 ifeq ($(OS_TARGET),linux)
 UNIXINSTALLDIR=1
 endif
@@ -192,7 +335,6 @@ ifeq ($(OS_TARGET),freebsd)
 UNIXINSTALLDIR=1
 endif
 else
-# Normal install
 ifeq ($(OS_SOURCE),linux)
 UNIXINSTALLDIR=1
 endif
@@ -200,198 +342,467 @@ ifeq ($(OS_SOURCE),freebsd)
 UNIXINSTALLDIR=1
 endif
 endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
+ifndef INSTALL_PREFIX
 ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
+INSTALL_PREFIX=/usr/local
 else
-PREFIXINSTALLDIR=/pp
+INSTALL_PREFIX=/pp
 endif
 endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
+export INSTALL_PREFIX
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
 endif
-export DESTZIPDIR
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
+export DIST_DESTDIR
+ifndef INSTALL_BASEDIR
+ifdef UNIXINSTALLDIR
+INSTALL_BASEDIR=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
+else
+INSTALL_BASEDIR=$(INSTALL_PREFIX)
 endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: $(addsuffix _all,$(DIROBJECTS))
-
-debug: $(addsuffix _debug,$(DIROBJECTS))
-
-smart: $(addsuffix _smart,$(DIROBJECTS))
-
-shared: $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: $(addsuffix _showinstall,$(DIROBJECTS))
-
-install: $(addsuffix _install,$(DIROBJECTS))
-
-clean: $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-.PHONY:  all debug smart shared showinstall install clean distclean cleanall require
-
-#####################################################################
-# Directories
-#####################################################################
-
-OBJECTDIRCOMPILER=1
-OBJECTDIRGDB=1
-
-# Dir compiler
-
-ifdef OBJECTDIRCOMPILER
-.PHONY:  compiler_all compiler_debug compiler_examples compiler_test compiler_smart compiler_shared compiler_showinstall compiler_install compiler_sourceinstall compiler_exampleinstall compiler_zipinstall compiler_zipsourceinstall compiler_zipexampleinstall compiler_clean compiler_distclean compiler_cleanall compiler_require compiler_info
-
+endif
+ifndef INSTALL_BINDIR
+ifdef UNIXINSTALLDIR
+INSTALL_BINDIR=$(INSTALL_PREFIX)/bin
+else
+INSTALL_BINDIR=$(INSTALL_BASEDIR)/bin/$(OS_TARGET)
+endif
+endif
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
+endif
+endif
+ifndef INSTALL_LIBDIR
+ifdef UNIXINSTALLDIR
+INSTALL_LIBDIR=$(INSTALL_PREFIX)/lib
+else
+INSTALL_LIBDIR=$(INSTALL_UNITDIR)
+endif
+endif
+ifndef INSTALL_SOURCEDIR
+ifdef UNIXINSTALLDIR
+INSTALL_SOURCEDIR=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)
+else
+INSTALL_SOURCEDIR=$(INSTALL_BASEDIR)/source
+endif
+ifdef PACKAGE_NAME
+INSTALL_SOURCEDIR:=$(INSTALL_SOURCEDIR)/$(PACKAGE_NAME)
+endif
+endif
+ifndef INSTALL_DOCDIR
+ifdef UNIXINSTALLDIR
+INSTALL_DOCDIR=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)
+else
+INSTALL_DOCDIR=$(INSTALL_BASEDIR)/doc
+endif
+endif
+ifndef INSTALL_EXAMPLEDIR
+ifdef UNIXINSTALLDIR
+INSTALL_EXAMPLEDIR=$(INSTALL_DOCDIR)/examples
+else
+INSTALL_EXAMPLEDIR=$(INSTALL_BASEDIR)/examples
+endif
+ifdef EXAMPLESUBDIR
+INSTALL_EXAMPLEDIR:=$(INSTALL_EXAMPLEDIR)/$(EXAMPLESUBDIR)
+endif
+endif
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
+endif
+override FPCOPTDEF=$(CPU_TARGET)
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
+endif
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
+endif
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
+endif
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
+endif
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
+endif
+ifdef LINKSMART
+override FPCOPT+=-XX
+endif
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+override FPCOPT+=-Xs -OG2p3 -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-OG2p3
+endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
+endif
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
+else
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+endif
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
+endif
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifeq ($(OS_SOURCE),win32)
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
+endif
+override COMPILER:=$(FPC) $(FPCOPT)
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
+else
+ifeq ($(OS_SOURCE),$(OS_TARGET))
+EXECPPAS:=@$(PPAS)
+endif
+endif
+.PHONY: fpc_packages fpc_all fpc_smart fpc_debug
+$(FPCMADE): $(ALLTARGET)
+	@$(ECHO) Compiled > $(FPCMADE)
+fpc_packages: $(COMPILEPACKAGES)
+fpc_all: fpc_packages $(FPCMADE)
+fpc_smart:
+	$(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+	$(MAKE) all DEBUG=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
+%$(PPUEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(PPUEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALLPPUFILES
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
+ifdef PPUFILES
+INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
+else
+INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
+endif
+override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
+endif
+ifdef INSTALLEXEFILES
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
+endif
+fpc_install: $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+	$(MKDIR) $(INSTALL_BINDIR)
+ifdef UPXPROG
+	-$(UPXPROG) $(INSTALLEXEFILES)
+endif
+	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALLPPUFILES
+	$(MKDIR) $(INSTALL_UNITDIR)
+	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+	$(MKDIR) $(INSTALL_LIBDIR)
+	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
+endif
+endif
+endif
+ifdef INSTALL_FILES
+	$(MKDIR) $(INSTALL_DATADIR)
+	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
+endif
+fpc_sourceinstall: distclean
+	$(MKDIR) $(INSTALL_SOURCEDIR)
+	$(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ifndef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+fpc_distinstall: fpc_install fpc_exampleinstall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+ifdef PPUFILES
+CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
+else
+CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
+endif
+override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+	-$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+fpc_distclean: fpc_clean
+ifdef COMPILER_UNITTARGETDIR
+TARGETDIRCLEAN=fpc_clean
+endif
+fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+	-$(DELTREE) *$(SMARTEXT)
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+.PHONY: fpc_info
+fpc_info:
+	@$(ECHO)
+	@$(ECHO)  == Package info ==
+	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
+	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
+	@$(ECHO)
+	@$(ECHO)  == Configuration info ==
+	@$(ECHO)
+	@$(ECHO)  FPC.......... $(FPC)
+	@$(ECHO)  FPC Version.. $(FPC_VERSION)
+	@$(ECHO)  Source CPU... $(CPU_SOURCE)
+	@$(ECHO)  Target CPU... $(CPU_TARGET)
+	@$(ECHO)  Source OS.... $(OS_SOURCE)
+	@$(ECHO)  Target OS.... $(OS_TARGET)
+	@$(ECHO)
+	@$(ECHO)  == Directory info ==
+	@$(ECHO)
+	@$(ECHO)  Basedir......... $(BASEDIR)
+	@$(ECHO)  FPCDir.......... $(FPCDIR)
+	@$(ECHO)  UnitsDir........ $(UNITSDIR)
+	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
+	@$(ECHO)
+	@$(ECHO)  GCC library..... $(GCCLIBDIR)
+	@$(ECHO)  Other library... $(OTHERLIBDIR)
+	@$(ECHO)
+	@$(ECHO)  == Tools info ==
+	@$(ECHO)
+	@$(ECHO)  Pwd....... $(PWD)
+	@$(ECHO)  Echo...... $(ECHO)
+	@$(ECHO)  PPUMove... $(PPUMOVE)
+	@$(ECHO)  PPUFiles.. $(PPUFILES)
+	@$(ECHO)  Date...... $(DATE)
+	@$(ECHO)  Upx....... $(UPXPROG)
+	@$(ECHO)  Zip....... $(ZIPPROG)
+	@$(ECHO)
+	@$(ECHO)  == Object info ==
+	@$(ECHO)
+	@$(ECHO)  Target Loaders...... $(TARGET_LOADERS)
+	@$(ECHO)  Target Units........ $(TARGET_UNITS)
+	@$(ECHO)  Target Programs..... $(TARGET_PROGRAMS)
+	@$(ECHO)  Target Dirs......... $(TARGET_DIRS)
+	@$(ECHO)  Target Examples..... $(TARGET_EXAMPLES)
+	@$(ECHO)  Target ExampleDirs.. $(TARGET_EXAMPLEDIRS)
+	@$(ECHO)
+	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
+	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
+	@$(ECHO)
+	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
+	@$(ECHO)  Install Files....... $(INSTALL_FILES)
+	@$(ECHO)
+	@$(ECHO)  == Install info ==
+	@$(ECHO)
+	@$(ECHO)  DateStr.............. $(DATESTR)
+	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
+	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
+	@$(ECHO)
+	@$(ECHO)  INSTALL_BASEDIR...... $(INSTALL_BASEDIR)
+	@$(ECHO)  INSTALL_BINDIR....... $(INSTALL_BINDIR)
+	@$(ECHO)  INSTALL_LIBDIR....... $(INSTALL_LIBDIR)
+	@$(ECHO)  INSTALL_UNITDIR...... $(INSTALL_UNITDIR)
+	@$(ECHO)  INSTALL_SOURCEDIR.... $(INSTALL_SOURCEDIR)
+	@$(ECHO)  INSTALL_DOCDIR....... $(INSTALL_DOCDIR)
+	@$(ECHO)  INSTALL_DATADIR...... $(INSTALL_DATADIR)
+	@$(ECHO)
+	@$(ECHO)  DIST_DESTDIR......... $(DIST_DESTDIR)
+	@$(ECHO)  DIST_ZIPNAME......... $(DIST_ZIPNAME)
+	@$(ECHO)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_GDB=1
+ifdef TARGET_DIRS_COMPILER
 compiler_all:
 	$(MAKE) -C compiler all
-
 compiler_debug:
 	$(MAKE) -C compiler debug
-
 compiler_examples:
 	$(MAKE) -C compiler examples
-
-compiler_test:
-	$(MAKE) -C compiler test
-
 compiler_smart:
 	$(MAKE) -C compiler smart
-
 compiler_shared:
 	$(MAKE) -C compiler shared
-
-compiler_showinstall:
-	$(MAKE) -C compiler showinstall
-
 compiler_install:
 	$(MAKE) -C compiler install
-
 compiler_sourceinstall:
 	$(MAKE) -C compiler sourceinstall
-
 compiler_exampleinstall:
 	$(MAKE) -C compiler exampleinstall
-
+compiler_distinstall:
+	$(MAKE) -C compiler distinstall
 compiler_zipinstall:
 	$(MAKE) -C compiler zipinstall
-
 compiler_zipsourceinstall:
 	$(MAKE) -C compiler zipsourceinstall
-
 compiler_zipexampleinstall:
 	$(MAKE) -C compiler zipexampleinstall
-
+compiler_zipdistinstall:
+	$(MAKE) -C compiler zipdistinstall
 compiler_clean:
 	$(MAKE) -C compiler clean
-
 compiler_distclean:
 	$(MAKE) -C compiler distclean
-
 compiler_cleanall:
 	$(MAKE) -C compiler cleanall
-
-compiler_require:
-	$(MAKE) -C compiler require
-
 compiler_info:
 	$(MAKE) -C compiler info
+compiler:
+	$(MAKE) -C compiler all
+.PHONY: compiler_all compiler_debug compiler_examples compiler_smart 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
 endif
-
-# Dir gdb
-
-ifdef OBJECTDIRGDB
-.PHONY:  gdb_all gdb_debug gdb_examples gdb_test gdb_smart gdb_shared gdb_showinstall gdb_install gdb_sourceinstall gdb_exampleinstall gdb_zipinstall gdb_zipsourceinstall gdb_zipexampleinstall gdb_clean gdb_distclean gdb_cleanall gdb_require gdb_info
-
+ifdef TARGET_DIRS_GDB
 gdb_all:
 	$(MAKE) -C gdb all
-
 gdb_debug:
 	$(MAKE) -C gdb debug
-
 gdb_examples:
 	$(MAKE) -C gdb examples
-
-gdb_test:
-	$(MAKE) -C gdb test
-
 gdb_smart:
 	$(MAKE) -C gdb smart
-
 gdb_shared:
 	$(MAKE) -C gdb shared
-
-gdb_showinstall:
-	$(MAKE) -C gdb showinstall
-
 gdb_install:
 	$(MAKE) -C gdb install
-
 gdb_sourceinstall:
 	$(MAKE) -C gdb sourceinstall
-
 gdb_exampleinstall:
 	$(MAKE) -C gdb exampleinstall
-
+gdb_distinstall:
+	$(MAKE) -C gdb distinstall
 gdb_zipinstall:
 	$(MAKE) -C gdb zipinstall
-
 gdb_zipsourceinstall:
 	$(MAKE) -C gdb zipsourceinstall
-
 gdb_zipexampleinstall:
 	$(MAKE) -C gdb zipexampleinstall
-
+gdb_zipdistinstall:
+	$(MAKE) -C gdb zipdistinstall
 gdb_clean:
 	$(MAKE) -C gdb clean
-
 gdb_distclean:
 	$(MAKE) -C gdb distclean
-
 gdb_cleanall:
 	$(MAKE) -C gdb cleanall
-
-gdb_require:
-	$(MAKE) -C gdb require
-
 gdb_info:
 	$(MAKE) -C gdb info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
+gdb:
+	$(MAKE) -C gdb all
+.PHONY: gdb_all gdb_debug gdb_examples gdb_smart gdb_shared gdb_install gdb_sourceinstall gdb_exampleinstall gdb_distinstall gdb_zipinstall gdb_zipsourceinstall gdb_zipexampleinstall gdb_zipdistinstall gdb_clean gdb_distclean gdb_cleanall gdb_info gdb
+endif
+all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
+debug: fpc_debug $(addsuffix _debug,$(TARGET_DIRS))
+examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
+smart: fpc_smart $(addsuffix _smart,$(TARGET_DIRS))
+shared: fpc_shared $(addsuffix _shared,$(TARGET_DIRS))
+install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
+sourceinstall: fpc_sourceinstall $(addsuffix _sourceinstall,$(TARGET_DIRS))
+exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS))
+distinstall: fpc_distinstall $(addsuffix _distinstall,$(TARGET_DIRS))
+zipinstall: $(addsuffix _zipinstall,$(TARGET_DIRS))
+zipsourceinstall: $(addsuffix _zipsourceinstall,$(TARGET_DIRS))
+zipexampleinstall: $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
+zipdistinstall: $(addsuffix _zipdistinstall,$(TARGET_DIRS))
+clean: fpc_clean $(addsuffix _clean,$(TARGET_DIRS))
+distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
+cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
+info: fpc_info $(addsuffix _info,$(TARGET_DIRS))
+.PHONY: all debug examples smart shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif
-

+ 1 - 4
ide/fake/Makefile.fpc

@@ -2,8 +2,5 @@
 #   Makefile.fpc for Fake compiler/gdb
 #
 
-[targets]
+[target]
 dirs=compiler gdb
-
-[sections]
-none=1

File diff suppressed because it is too large
+ 164 - 518
ide/fake/compiler/Makefile


+ 2 - 2
ide/fake/compiler/Makefile.fpc

@@ -1,6 +1,6 @@
 #
-#   Makefile.fpc for Fake GDB
+#   Makefile.fpc for Fake Compiler
 #
 
-[targets]
+[target]
 units=browcol compiler systems version comphook globtype tokens

File diff suppressed because it is too large
+ 164 - 518
ide/fake/gdb/Makefile


+ 3 - 3
ide/fake/gdb/Makefile.fpc

@@ -2,10 +2,10 @@
 #   Makefile.fpc for Fake GDB
 #
 
-[targets]
+[target]
 units=gdbcon gdbint
 
 [rules]
-gdbint$(PPUEXT): gdbint$(PASEXT)
+gdbint$(PPUEXT): gdbint.pas
 
-gdbcon$(PPUEXT): gdbcon$(PASEXT) gdbint$(PPUEXT)
+gdbcon$(PPUEXT): gdbcon.pas gdbint$(PPUEXT)

File diff suppressed because it is too large
+ 218 - 543
ide/text/Makefile


+ 6 - 9
ide/text/Makefile.fpc

@@ -2,25 +2,24 @@
 #   Makefile.fpc for FP IDE
 #
 
-[targets]
+[target]
 programs=fp
 rst=fpstrings
 
 [install]
-datadir=$(BASEINSTALLDIR)/ide
+datadir=$(INSTALL_BASEDIR)/ide
 
-[dirs]
-fpcdir=../..
+[compiler]
+options=-Sg
 targetdir=.
 
 [require]
-options=-Sg
-packages=api fv gdbint
+packages=fv gdbint
 
 [libs]
 libgcc=1
 
-[presettings]
+[prerules]
 ifeq ($(OS_TARGET),linux)
 ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 override FPCOPT+=-dUNIX
@@ -33,8 +32,6 @@ override FPCOPT+=-dUNIX
 endif
 endif
 
-
-[postsettings]
 # when making a full version include the compiler
 ifeq ($(FULL),1)
 override UNITDIR+=../../compiler ../../compiler/$(CPU_TARGET)

File diff suppressed because it is too large
+ 171 - 564
install/demo/Makefile


+ 5 - 26
install/demo/Makefile.fpc

@@ -2,40 +2,19 @@
 #   Makefile.fpc for FPC demo package
 #
 
-[targets]
+[package]
+name=demo
+version=1.0.5
+
+[target]
 dirs=text graph
 dirs_go32v2=modex
 dirs_win32=win32
 dirs_linux=linux
 dirs_os2=os2
 
-[install]
-packagename=demo
-
-[defaults]
-defaultrule=all
-
-[dirs]
-fpcdir=..
-targetdir=.
-
-[sections]
-info=0
 
 [rules]
-.PHONY: info
-
-info:
-        @echo Makefile targets are
-        @echo - all
-        @echo - text
-        @echo - graph
-        @echo - modex
-        @echo - win32
-        @echo - os2
-        @echo
-        @echo - installexamples
-
 #################################
 # Demo installation for linux
 #

File diff suppressed because it is too large
+ 168 - 576
install/demo/graph/Makefile


+ 4 - 14
install/demo/graph/Makefile.fpc

@@ -2,21 +2,11 @@
 #   Makefile.fpc for FPC graph demos (part of FPC demo package)
 #
 
-[targets]
+[target]
 units=gameunit
 programs=fpctris mandel samegame quad maze gravwars
 
-[require]
-packages=api
-
-[install]
-packagename=demo
-
-[dirs]
-fpcdir=../..
-targetdir=.
-
-[postsettings]
+[prerules]
 ifdef GRAPHICS
 override FPCOPT+=-dUSEGRAPHICS
 endif
@@ -36,11 +26,11 @@ execlean :
 
 text:
         $(MKDIR) text
-        $(MAKE) fpc_all TARGETDIR=text
+        $(MAKE) fpc_all COMPILER_TARGETDIR=text
 
 graph:
         $(MKDIR) graph
-        $(MAKE) fpc_all TARGETDIR=graph GRAPHICS=1
+        $(MAKE) fpc_all COMPILER_TARGETDIR=graph GRAPHICS=1
 
 both:
         $(MAKE) text

File diff suppressed because it is too large
+ 165 - 535
install/demo/linux/Makefile


+ 1 - 5
install/demo/linux/Makefile.fpc

@@ -2,9 +2,5 @@
 #   Makefile.fpc for FPC linux demos (part of FPC demo package)
 #
 
-[targets]
+[target]
 programs_linux=daemon
-
-[dirs]
-fpcdir=../..
-targetdir=.

File diff suppressed because it is too large
+ 165 - 535
install/demo/modex/Makefile


+ 1 - 5
install/demo/modex/Makefile.fpc

@@ -2,9 +2,5 @@
 #   Makefile.fpc for FPC modex demos (part of FPC demo paackage)
 #
 
-[targets]
+[target]
 programs_go32v2=voxel
-
-[dirs]
-fpcdir=../..
-targetdir=.

File diff suppressed because it is too large
+ 151 - 532
install/demo/os2/Makefile


+ 5 - 8
install/demo/os2/Makefile.fpc

@@ -2,9 +2,13 @@
 #   Makefile.fpc for FPC OS/2 demos (part of FPC demo package)
 #
 
-[targets]
+[target]
 programs_os2=basicpm pmdemo1 getctry
 
+[require]
+tools=rc
+
+[rules]
 basicpm: basicpm.pas
         $(COMPILER) -Dw -Ch8096 -Cs8096 basicpm.pas
 
@@ -13,10 +17,3 @@ pmdemo1: pmdemo1.pp pmdemo1.res
 
 pmdemo1.res: pmdemo1.rc pmdemo1.h
         $(RC) -r pmdemo1
-
-[tools]
-toolrc=1
-
-[dirs]
-fpcdir=../..
-targetdir=.

File diff suppressed because it is too large
+ 164 - 534
install/demo/text/Makefile


+ 1 - 5
install/demo/text/Makefile.fpc

@@ -2,9 +2,5 @@
 #   Makefile.fpc for FPC text demos (part of FPC demo package)
 #
 
-[targets]
+[target]
 programs=eratos qsort hello blackbox magic lines
-
-[dirs]
-fpcdir=../..
-targetdir=.

File diff suppressed because it is too large
+ 165 - 535
install/demo/win32/Makefile


+ 1 - 5
install/demo/win32/Makefile.fpc

@@ -2,9 +2,5 @@
 #   Makefile.fpc for FPC win32 demos (part of FPC demo package)
 #
 
-[targets]
+[target]
 programs_win32=winhello menu dlltest testdll edit
-
-[dirs]
-fpcdir=../..
-targetdir=.

File diff suppressed because it is too large
+ 184 - 486
install/fpinst/Makefile


+ 7 - 9
install/fpinst/Makefile.fpc

@@ -2,27 +2,25 @@
 #   Makefile.fpc for Free Pascal installer
 #
 
-[targets]
+[package]
+name=fpinst
+version=1.0.5
+
+[target]
 programs_go32v2=install
 programs_win32=install
 programs_os2=install
 programs_linux=installer
 
-[install]
-packagename=fpinst
-sourcesubdir=fpinst
-
 [clean]
 units=ziptypes unzip
 units_os2=unzipdll
 files_linux=installer.pas
 
 [require]
-packages=api fv
+packages=fv
 
-[dirs]
-fpcdir=..
-targetdir=.
+[compiler]
 unitdir=../ide/text
 
 [rules]

+ 7 - 7
install/man/Makefile

@@ -2,14 +2,14 @@
 # Man page installation for linux
 #
 
-ifndef PREFIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
+ifndef INSTALL_PREFIX
+INSTALL_PREFIX=/usr/local
 endif
 
-MANINSTALLDIR=$(PREFIXINSTALLDIR)/man
+INSTALL_MANDIR=$(INSTALL_PREFIX)/man
 
 installman:
-	install -d -m 755 $(MANINSTALLDIR)/man1
-	install -d -m 755 $(MANINSTALLDIR)/man5
-	install -m 644 man1/*.1 $(MANINSTALLDIR)/man1
-	install -m 644 man5/*.5 $(MANINSTALLDIR)/man5
+	install -d -m 755 $(INSTALL_MANDIR)/man1
+	install -d -m 755 $(INSTALL_MANDIR)/man5
+	install -m 644 man1/*.1 $(INSTALL_MANDIR)/man1
+	install -m 644 man5/*.5 $(INSTALL_MANDIR)/man5

+ 769 - 1445
packages/Makefile

@@ -1,20 +1,8 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/12/19]
+# Don't edit, this file is generated by fpcmake v1.99.0 [2001/01/29]
 #
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
+default: all
 override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
@@ -30,9 +18,6 @@ endif
 else
 PWD:=$(firstword $(PWD))
 endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
 ifndef inUnix
 ifeq ($(OS),Windows_NT)
 inWinNT=1
@@ -42,35 +27,36 @@ inOS2=1
 endif
 endif
 endif
-
-# The extension of executables
 ifdef inUnix
 SRCEXEEXT=
 else
 SRCEXEEXT=.exe
 endif
-
-# The path which is searched separated by spaces
+ifdef inUnix
+BATCHEXT=.sh
+else
+ifdef inOS2
+BATCHEXT=.cmd
+else
+BATCHEXT=.bat
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP=$(subst /,\,/)
+endif
 ifdef inUnix
 SEARCHPATH=$(subst :, ,$(PATH))
 else
 SEARCHPATH=$(subst ;, ,$(PATH))
 endif
-
-# Base dir
 ifdef PWD
 BASEDIR:=$(shell $(PWD))
 else
 BASEDIR=.
 endif
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
 ifndef FPC
-# Compatibility with old makefiles
 ifdef PP
 FPC=$(PP)
 else
@@ -79,39 +65,22 @@ endif
 endif
 override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
 override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
 ifndef OS_TARGET
 OS_TARGET:=$(shell $(FPC) -iTO)
 endif
-
-# Source OS
 ifndef OS_SOURCE
 OS_SOURCE:=$(shell $(FPC) -iSO)
 endif
-
-# Target CPU
 ifndef CPU_TARGET
 CPU_TARGET:=$(shell $(FPC) -iTP)
 endif
-
-# Source CPU
 ifndef CPU_SOURCE
 CPU_SOURCE:=$(shell $(FPC) -iSP)
 endif
-
-# FPC version
 ifndef FPC_VERSION
 FPC_VERSION:=$(shell $(FPC) -iV)
 endif
-
 export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(FPCDIR)/rtl),)
@@ -122,8 +91,6 @@ endif
 else
 override FPCDIR=wrong
 endif
-
-# Detect FPCDIR
 ifeq ($(FPCDIR),wrong)
 ifdef inUnix
 override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
@@ -145,98 +112,52 @@ endif
 endif
 endif
 endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
+override FPCDIR:=$(wildcard $(FPCDIR))
+UNITSDIR=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+PACKAGESDIR=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
 ifeq ($(OS_TARGET),linux)
-override DIROBJECTS+=$(wildcard zlib ncurses x11 gtk syslog inet uncgi mysql ibase postgres opengl forms svgalib ggi utmp paszlib gdbint cmem regexpr zip)
+override TARGET_DIRS+=zlib ncurses x11 gtk syslog inet uncgi mysql ibase postgres oracle opengl forms svgalib ggi utmp paszlib gdbint cmem regexpr unzip
 endif
 ifeq ($(OS_TARGET),go32v2)
-override DIROBJECTS+=$(wildcard uncgi gdbint paszlib zip regexpr)
+override TARGET_DIRS+=uncgi gdbint paszlib unzip regexpr
 endif
 ifeq ($(OS_TARGET),win32)
-override DIROBJECTS+=$(wildcard uncgi gtk gdbint ibase mysql zlib paszlib zip regexpr opengl)
+override TARGET_DIRS+=uncgi gtk gdbint ibase mysql zlib paszlib unzip regexpr opengl
 endif
 ifeq ($(OS_TARGET),os2)
-override DIROBJECTS+=$(wildcard uncgi paszlib zip regexpr)
+override TARGET_DIRS+=uncgi paszlib unzip regexpr
 endif
 ifeq ($(OS_TARGET),freebsd)
-override DIROBJECTS+=$(wildcard zlib ncurses x11 gtk syslog inet uncgi mysql ibase postgres opengl forms svgalib ggi utmp paszlib gdbint cmem regexpr zip)
-endif
-
-# Clean
-
-
-# Install
-
-PACKAGENAME=packages
-ZIPTARGET=install
-
-# Defaults
-
-
-# Directories
-
-
-# Packages
-
-
-# Libraries
-
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
+override TARGET_DIRS+=zlib ncurses x11 gtk syslog inet uncgi mysql ibase postgres opengl forms svgalib ggi utmp paszlib gdbint cmem regexpr unzip
+endif
 ifndef ECHO
 ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ECHO:=echo
-ECHOE:=echo
 else
 ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
 endif
 else
 ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
 endif
 endif
-
-# To copy pograms
 ifndef COPY
 COPY:=cp -fp
 endif
-
-# Copy a whole tree
 ifndef COPYTREE
 COPYTREE:=cp -rfp
 endif
-
-# To move pograms
 ifndef MOVE
 MOVE:=mv -f
 endif
-
-# Check delete program
 ifndef DEL
 DEL:=rm -f
 endif
-
-# Check deltree program
 ifndef DELTREE
 DELTREE:=rm -rf
 endif
-
-# To install files
 ifndef INSTALL
 ifdef inUnix
 INSTALL:=install -c -m 644
@@ -244,8 +165,6 @@ else
 INSTALL:=$(COPY)
 endif
 endif
-
-# To install programs
 ifndef INSTALLEXE
 ifdef inUnix
 INSTALLEXE:=install -c -m 755
@@ -253,8 +172,6 @@ else
 INSTALLEXE:=$(COPY)
 endif
 endif
-
-# To make a directory.
 ifndef MKDIR
 ifdef inUnix
 MKDIR:=install -m 755 -d
@@ -262,42 +179,75 @@ else
 MKDIR:=ginstall -m 755 -d
 endif
 endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
+export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef AS
 AS=as
 endif
-
-# linker, but probably not used
 ifndef LD
 LD=ld
 endif
-
-# ppas.bat / ppas.sh
+PPAS=$(BATCHEXT)
 ifdef inUnix
-PPAS=ppas.sh
+LDCONFIG=ldconfig
 else
-ifdef inOS2
-PPAS=ppas.cmd
+LDCONFIG=
+endif
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE=
 else
-PPAS=ppas.bat
+PPUMOVE:=$(firstword $(PPUMOVE))
 endif
 endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
+export PPUMOVE
+ifndef PPUFILES
+PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUFILES),)
+PPUFILES=
 else
-LDCONFIG=
+PPUFILES:=$(firstword $(PPUFILES))
+endif
+endif
+export PPUFILES
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEACHPATH))))
+ifeq ($(DATE),)
+DATE=
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ifndef UPXPROG
+ifeq ($(OS_TARGET),go32v2)
+UPXPROG:=1
 endif
-
-# ZipProg, you can't use Zip as the var name (PFV)
+ifeq ($(OS_TARGET),win32)
+UPXPROG:=1
+endif
+ifdef UPXPROG
+UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(UPXPROG),)
+UPXPROG=
+else
+UPXPROG:=$(firstword $(UPXPROG))
+endif
+else
+UPXPROG=
+endif
+endif
+export UPXPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
@@ -307,11 +257,8 @@ ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
 export ZIPPROG
-
 ZIPOPT=-9
 ZIPEXT=.zip
-
-# Tar
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
@@ -321,7 +268,6 @@ TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 export TARPROG
-
 ifeq ($(USETAR),bz2)
 TAROPT=vI
 TAREXT=.tar.bz2
@@ -329,432 +275,73 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-
-
-
-PKGALL=1
-ifeq ($(OS_TARGET),linux)
-PKGBASE=zlib ncurses x11 regexpr
-PKGGTK=gtk
-PKGNET=inet uncgi
-PKGDB=mysql ibase postgres
-PKGGFX=opengl forms svgalib ggi
-PKGMISC=utmp syslog gdbint paszlib zip
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+LIBPREFIX=lib
+RSTEXT=.rst
+FPCMADE=fpcmade
+ifeq ($(OS_TARGET),go32v1)
+PPUEXT=.pp1
+OEXT=.o1
+ASMEXT=.s1
+SMARTEXT=.sl1
+STATICLIBEXT=.a1
+SHAREDLIBEXT=.so1
+LIBPREFIX=
+FPCMADE=fpcmade.v1
+PACKAGESUFFIX=v1
 endif
 ifeq ($(OS_TARGET),go32v2)
-PKGBAS=paszlib regexpr
-PKGNET=uncgi
-PKGMIS=gdbint zip
+LIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=go32
+endif
+ifeq ($(OS_TARGET),linux)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.lnx
+ZIPSUFFIX=linux
+endif
+ifeq ($(OS_TARGET),freebsd)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.freebsd
+ZIPSUFFIX=freebsd
 endif
 ifeq ($(OS_TARGET),win32)
-PKGBAS=paszlib regexpr
-PKGGTK=gtk
-PKGNET=uncgi
-PKGDB=ibase mysql
-PKGGFX=opengl
-PKGMIS=gdbint zip
+PPUEXT=.ppw
+OEXT=.ow
+ASMEXT=.sw
+SMARTEXT=.slw
+STATICLIBEXT=.aw
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.w32
+ZIPSUFFIX=w32
 endif
 ifeq ($(OS_TARGET),os2)
-PKGBAS=paszlib regexpr
-PKGNET=uncgi
-PKGMIS=zip
-endif
-ifeq ($(OS_TARGET),freebsd)
-PKGBASE=zlib ncurses x11 regexpr
-PKGGTK=gtk
-PKGNET=inet uncgi
-PKGDB=mysql ibase postgres
-PKGGFX=opengl forms svgalib ggi
-PKGMISC=utmp syslog gdbint paszlib zip
-endif
-
-
-# Pkg all
-
-ifdef PKGALL
-.PHONY:  pkgall_all pkgall_debug pkgall_examples pkgall_test pkgall_smart pkgall_shared pkgall_showinstall pkgall_install pkgall_sourceinstall pkgall_exampleinstall pkgall_zipinstall pkgall_zipsourceinstall pkgall_zipexampleinstall pkgall_clean pkgall_distclean pkgall_cleanall pkgall_require pkgall_info
-
-pkgall_all: $(addsuffix _all,$(DIROBJECTS))
-
-pkgall_debug: $(addsuffix _debug,$(DIROBJECTS))
-
-pkgall_examples: $(addsuffix _examples,$(DIROBJECTS))
-
-pkgall_test: $(addsuffix _test,$(DIROBJECTS))
-
-pkgall_smart: $(addsuffix _smart,$(DIROBJECTS))
-
-pkgall_shared: $(addsuffix _shared,$(DIROBJECTS))
-
-pkgall_showinstall: $(addsuffix _showinstall,$(DIROBJECTS))
-
-pkgall_install: $(addsuffix _install,$(DIROBJECTS))
-
-pkgall_sourceinstall: $(addsuffix _sourceinstall,$(DIROBJECTS))
-
-pkgall_exampleinstall: $(addsuffix _exampleinstall,$(DIROBJECTS))
-
-pkgall_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=all ZIPTARGET=pkgall_install
-
-pkgall_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=all PACKAGESUFFIX=src ZIPTARGET=pkgall_sourceinstall
-
-pkgall_clean: $(addsuffix _clean,$(DIROBJECTS))
-
-pkgall_distclean: $(addsuffix _distclean,$(DIROBJECTS))
-
-pkgall_cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
-
-pkgall_require: $(addsuffix _require,$(DIROBJECTS))
-
-endif
-
-# Pkg base
-
-ifdef PKGBASE
-.PHONY:  pkgbase_all pkgbase_debug pkgbase_examples pkgbase_test pkgbase_smart pkgbase_shared pkgbase_showinstall pkgbase_install pkgbase_sourceinstall pkgbase_exampleinstall pkgbase_zipinstall pkgbase_zipsourceinstall pkgbase_zipexampleinstall pkgbase_clean pkgbase_distclean pkgbase_cleanall pkgbase_require pkgbase_info
-
-override PKGOBJECTS+=pkgbase
-pkgbase_all: $(addsuffix _all,$(PKGBASE))
-
-pkgbase_debug: $(addsuffix _debug,$(PKGBASE))
-
-pkgbase_examples: $(addsuffix _examples,$(PKGBASE))
-
-pkgbase_test: $(addsuffix _test,$(PKGBASE))
-
-pkgbase_smart: $(addsuffix _smart,$(PKGBASE))
-
-pkgbase_shared: $(addsuffix _shared,$(PKGBASE))
-
-pkgbase_showinstall: $(addsuffix _showinstall,$(PKGBASE))
-
-pkgbase_install: $(addsuffix _install,$(PKGBASE))
-
-pkgbase_sourceinstall: $(addsuffix _sourceinstall,$(PKGBASE))
-
-pkgbase_exampleinstall: $(addsuffix _exampleinstall,$(PKGBASE))
-
-pkgbase_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=base ZIPTARGET=pkgbase_install
-
-pkgbase_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=base PACKAGESUFFIX=src ZIPTARGET=pkgbase_sourceinstall
-
-pkgbase_clean: $(addsuffix _clean,$(PKGBASE))
-
-pkgbase_distclean: $(addsuffix _distclean,$(PKGBASE))
-
-pkgbase_cleanall: $(addsuffix _cleanall,$(PKGBASE))
-
-pkgbase_require: $(addsuffix _require,$(PKGBASE))
-
-endif
-
-# Pkg gtk
-
-ifdef PKGGTK
-.PHONY:  pkggtk_all pkggtk_debug pkggtk_examples pkggtk_test pkggtk_smart pkggtk_shared pkggtk_showinstall pkggtk_install pkggtk_sourceinstall pkggtk_exampleinstall pkggtk_zipinstall pkggtk_zipsourceinstall pkggtk_zipexampleinstall pkggtk_clean pkggtk_distclean pkggtk_cleanall pkggtk_require pkggtk_info
-
-override PKGOBJECTS+=pkggtk
-pkggtk_all: $(addsuffix _all,$(PKGGTK))
-
-pkggtk_debug: $(addsuffix _debug,$(PKGGTK))
-
-pkggtk_examples: $(addsuffix _examples,$(PKGGTK))
-
-pkggtk_test: $(addsuffix _test,$(PKGGTK))
-
-pkggtk_smart: $(addsuffix _smart,$(PKGGTK))
-
-pkggtk_shared: $(addsuffix _shared,$(PKGGTK))
-
-pkggtk_showinstall: $(addsuffix _showinstall,$(PKGGTK))
-
-pkggtk_install: $(addsuffix _install,$(PKGGTK))
-
-pkggtk_sourceinstall: $(addsuffix _sourceinstall,$(PKGGTK))
-
-pkggtk_exampleinstall: $(addsuffix _exampleinstall,$(PKGGTK))
-
-pkggtk_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=gtk ZIPTARGET=pkggtk_install
-
-pkggtk_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=gtk PACKAGESUFFIX=src ZIPTARGET=pkggtk_sourceinstall
-
-pkggtk_clean: $(addsuffix _clean,$(PKGGTK))
-
-pkggtk_distclean: $(addsuffix _distclean,$(PKGGTK))
-
-pkggtk_cleanall: $(addsuffix _cleanall,$(PKGGTK))
-
-pkggtk_require: $(addsuffix _require,$(PKGGTK))
-
-endif
-
-# Pkg net
-
-ifdef PKGNET
-.PHONY:  pkgnet_all pkgnet_debug pkgnet_examples pkgnet_test pkgnet_smart pkgnet_shared pkgnet_showinstall pkgnet_install pkgnet_sourceinstall pkgnet_exampleinstall pkgnet_zipinstall pkgnet_zipsourceinstall pkgnet_zipexampleinstall pkgnet_clean pkgnet_distclean pkgnet_cleanall pkgnet_require pkgnet_info
-
-override PKGOBJECTS+=pkgnet
-pkgnet_all: $(addsuffix _all,$(PKGNET))
-
-pkgnet_debug: $(addsuffix _debug,$(PKGNET))
-
-pkgnet_examples: $(addsuffix _examples,$(PKGNET))
-
-pkgnet_test: $(addsuffix _test,$(PKGNET))
-
-pkgnet_smart: $(addsuffix _smart,$(PKGNET))
-
-pkgnet_shared: $(addsuffix _shared,$(PKGNET))
-
-pkgnet_showinstall: $(addsuffix _showinstall,$(PKGNET))
-
-pkgnet_install: $(addsuffix _install,$(PKGNET))
-
-pkgnet_sourceinstall: $(addsuffix _sourceinstall,$(PKGNET))
-
-pkgnet_exampleinstall: $(addsuffix _exampleinstall,$(PKGNET))
-
-pkgnet_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=net ZIPTARGET=pkgnet_install
-
-pkgnet_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=net PACKAGESUFFIX=src ZIPTARGET=pkgnet_sourceinstall
-
-pkgnet_clean: $(addsuffix _clean,$(PKGNET))
-
-pkgnet_distclean: $(addsuffix _distclean,$(PKGNET))
-
-pkgnet_cleanall: $(addsuffix _cleanall,$(PKGNET))
-
-pkgnet_require: $(addsuffix _require,$(PKGNET))
-
-endif
-
-# Pkg db
-
-ifdef PKGDB
-.PHONY:  pkgdb_all pkgdb_debug pkgdb_examples pkgdb_test pkgdb_smart pkgdb_shared pkgdb_showinstall pkgdb_install pkgdb_sourceinstall pkgdb_exampleinstall pkgdb_zipinstall pkgdb_zipsourceinstall pkgdb_zipexampleinstall pkgdb_clean pkgdb_distclean pkgdb_cleanall pkgdb_require pkgdb_info
-
-override PKGOBJECTS+=pkgdb
-pkgdb_all: $(addsuffix _all,$(PKGDB))
-
-pkgdb_debug: $(addsuffix _debug,$(PKGDB))
-
-pkgdb_examples: $(addsuffix _examples,$(PKGDB))
-
-pkgdb_test: $(addsuffix _test,$(PKGDB))
-
-pkgdb_smart: $(addsuffix _smart,$(PKGDB))
-
-pkgdb_shared: $(addsuffix _shared,$(PKGDB))
-
-pkgdb_showinstall: $(addsuffix _showinstall,$(PKGDB))
-
-pkgdb_install: $(addsuffix _install,$(PKGDB))
-
-pkgdb_sourceinstall: $(addsuffix _sourceinstall,$(PKGDB))
-
-pkgdb_exampleinstall: $(addsuffix _exampleinstall,$(PKGDB))
-
-pkgdb_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=db ZIPTARGET=pkgdb_install
-
-pkgdb_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=db PACKAGESUFFIX=src ZIPTARGET=pkgdb_sourceinstall
-
-pkgdb_clean: $(addsuffix _clean,$(PKGDB))
-
-pkgdb_distclean: $(addsuffix _distclean,$(PKGDB))
-
-pkgdb_cleanall: $(addsuffix _cleanall,$(PKGDB))
-
-pkgdb_require: $(addsuffix _require,$(PKGDB))
-
-endif
-
-# Pkg gfx
-
-ifdef PKGGFX
-.PHONY:  pkggfx_all pkggfx_debug pkggfx_examples pkggfx_test pkggfx_smart pkggfx_shared pkggfx_showinstall pkggfx_install pkggfx_sourceinstall pkggfx_exampleinstall pkggfx_zipinstall pkggfx_zipsourceinstall pkggfx_zipexampleinstall pkggfx_clean pkggfx_distclean pkggfx_cleanall pkggfx_require pkggfx_info
-
-override PKGOBJECTS+=pkggfx
-pkggfx_all: $(addsuffix _all,$(PKGGFX))
-
-pkggfx_debug: $(addsuffix _debug,$(PKGGFX))
-
-pkggfx_examples: $(addsuffix _examples,$(PKGGFX))
-
-pkggfx_test: $(addsuffix _test,$(PKGGFX))
-
-pkggfx_smart: $(addsuffix _smart,$(PKGGFX))
-
-pkggfx_shared: $(addsuffix _shared,$(PKGGFX))
-
-pkggfx_showinstall: $(addsuffix _showinstall,$(PKGGFX))
-
-pkggfx_install: $(addsuffix _install,$(PKGGFX))
-
-pkggfx_sourceinstall: $(addsuffix _sourceinstall,$(PKGGFX))
-
-pkggfx_exampleinstall: $(addsuffix _exampleinstall,$(PKGGFX))
-
-pkggfx_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=gfx ZIPTARGET=pkggfx_install
-
-pkggfx_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=gfx PACKAGESUFFIX=src ZIPTARGET=pkggfx_sourceinstall
-
-pkggfx_clean: $(addsuffix _clean,$(PKGGFX))
-
-pkggfx_distclean: $(addsuffix _distclean,$(PKGGFX))
-
-pkggfx_cleanall: $(addsuffix _cleanall,$(PKGGFX))
-
-pkggfx_require: $(addsuffix _require,$(PKGGFX))
-
-endif
-
-# Pkg misc
-
-ifdef PKGMISC
-.PHONY:  pkgmisc_all pkgmisc_debug pkgmisc_examples pkgmisc_test pkgmisc_smart pkgmisc_shared pkgmisc_showinstall pkgmisc_install pkgmisc_sourceinstall pkgmisc_exampleinstall pkgmisc_zipinstall pkgmisc_zipsourceinstall pkgmisc_zipexampleinstall pkgmisc_clean pkgmisc_distclean pkgmisc_cleanall pkgmisc_require pkgmisc_info
-
-override PKGOBJECTS+=pkgmisc
-pkgmisc_all: $(addsuffix _all,$(PKGMISC))
-
-pkgmisc_debug: $(addsuffix _debug,$(PKGMISC))
-
-pkgmisc_examples: $(addsuffix _examples,$(PKGMISC))
-
-pkgmisc_test: $(addsuffix _test,$(PKGMISC))
-
-pkgmisc_smart: $(addsuffix _smart,$(PKGMISC))
-
-pkgmisc_shared: $(addsuffix _shared,$(PKGMISC))
-
-pkgmisc_showinstall: $(addsuffix _showinstall,$(PKGMISC))
-
-pkgmisc_install: $(addsuffix _install,$(PKGMISC))
-
-pkgmisc_sourceinstall: $(addsuffix _sourceinstall,$(PKGMISC))
-
-pkgmisc_exampleinstall: $(addsuffix _exampleinstall,$(PKGMISC))
-
-pkgmisc_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=misc ZIPTARGET=pkgmisc_install
-
-pkgmisc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=misc PACKAGESUFFIX=src ZIPTARGET=pkgmisc_sourceinstall
-
-pkgmisc_clean: $(addsuffix _clean,$(PKGMISC))
-
-pkgmisc_distclean: $(addsuffix _distclean,$(PKGMISC))
-
-pkgmisc_cleanall: $(addsuffix _cleanall,$(PKGMISC))
-
-pkgmisc_require: $(addsuffix _require,$(PKGMISC))
-
-endif
-
-# Pkg bas
-
-ifdef PKGBAS
-.PHONY:  pkgbas_all pkgbas_debug pkgbas_examples pkgbas_test pkgbas_smart pkgbas_shared pkgbas_showinstall pkgbas_install pkgbas_sourceinstall pkgbas_exampleinstall pkgbas_zipinstall pkgbas_zipsourceinstall pkgbas_zipexampleinstall pkgbas_clean pkgbas_distclean pkgbas_cleanall pkgbas_require pkgbas_info
-
-override PKGOBJECTS+=pkgbas
-pkgbas_all: $(addsuffix _all,$(PKGBAS))
-
-pkgbas_debug: $(addsuffix _debug,$(PKGBAS))
-
-pkgbas_examples: $(addsuffix _examples,$(PKGBAS))
-
-pkgbas_test: $(addsuffix _test,$(PKGBAS))
-
-pkgbas_smart: $(addsuffix _smart,$(PKGBAS))
-
-pkgbas_shared: $(addsuffix _shared,$(PKGBAS))
-
-pkgbas_showinstall: $(addsuffix _showinstall,$(PKGBAS))
-
-pkgbas_install: $(addsuffix _install,$(PKGBAS))
-
-pkgbas_sourceinstall: $(addsuffix _sourceinstall,$(PKGBAS))
-
-pkgbas_exampleinstall: $(addsuffix _exampleinstall,$(PKGBAS))
-
-pkgbas_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=bas ZIPTARGET=pkgbas_install
-
-pkgbas_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=bas PACKAGESUFFIX=src ZIPTARGET=pkgbas_sourceinstall
-
-pkgbas_clean: $(addsuffix _clean,$(PKGBAS))
-
-pkgbas_distclean: $(addsuffix _distclean,$(PKGBAS))
-
-pkgbas_cleanall: $(addsuffix _cleanall,$(PKGBAS))
-
-pkgbas_require: $(addsuffix _require,$(PKGBAS))
-
-endif
-
-# Pkg mis
-
-ifdef PKGMIS
-.PHONY:  pkgmis_all pkgmis_debug pkgmis_examples pkgmis_test pkgmis_smart pkgmis_shared pkgmis_showinstall pkgmis_install pkgmis_sourceinstall pkgmis_exampleinstall pkgmis_zipinstall pkgmis_zipsourceinstall pkgmis_zipexampleinstall pkgmis_clean pkgmis_distclean pkgmis_cleanall pkgmis_require pkgmis_info
-
-override PKGOBJECTS+=pkgmis
-pkgmis_all: $(addsuffix _all,$(PKGMIS))
-
-pkgmis_debug: $(addsuffix _debug,$(PKGMIS))
-
-pkgmis_examples: $(addsuffix _examples,$(PKGMIS))
-
-pkgmis_test: $(addsuffix _test,$(PKGMIS))
-
-pkgmis_smart: $(addsuffix _smart,$(PKGMIS))
-
-pkgmis_shared: $(addsuffix _shared,$(PKGMIS))
-
-pkgmis_showinstall: $(addsuffix _showinstall,$(PKGMIS))
-
-pkgmis_install: $(addsuffix _install,$(PKGMIS))
-
-pkgmis_sourceinstall: $(addsuffix _sourceinstall,$(PKGMIS))
-
-pkgmis_exampleinstall: $(addsuffix _exampleinstall,$(PKGMIS))
-
-pkgmis_zipinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=mis ZIPTARGET=pkgmis_install
-
-pkgmis_zipsourceinstall:
-	$(MAKE) fpc_zipinstall PACKAGENAME=mis PACKAGESUFFIX=src ZIPTARGET=pkgmis_sourceinstall
-
-pkgmis_clean: $(addsuffix _clean,$(PKGMIS))
-
-pkgmis_distclean: $(addsuffix _distclean,$(PKGMIS))
-
-pkgmis_cleanall: $(addsuffix _cleanall,$(PKGMIS))
-
-pkgmis_require: $(addsuffix _require,$(PKGMIS))
-
-endif
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
+PPUEXT=.ppo
+ASMEXT=.so2
+OEXT=.oo2
+SMARTEXT=.so
+STATICLIBEXT=.ao2
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.os2
+ZIPSUFFIX=emx
+endif
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
 ifeq ($(OS_TARGET),linux)
 UNIXINSTALLDIR=1
 endif
@@ -762,7 +349,6 @@ ifeq ($(OS_TARGET),freebsd)
 UNIXINSTALLDIR=1
 endif
 else
-# Normal install
 ifeq ($(OS_SOURCE),linux)
 UNIXINSTALLDIR=1
 endif
@@ -770,1538 +356,1276 @@ ifeq ($(OS_SOURCE),freebsd)
 UNIXINSTALLDIR=1
 endif
 endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
+ifndef INSTALL_PREFIX
 ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
+INSTALL_PREFIX=/usr/local
 else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
+INSTALL_PREFIX=/pp
+endif
+endif
+export INSTALL_PREFIX
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
+endif
+export DIST_DESTDIR
+ifndef INSTALL_BASEDIR
 ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
+INSTALL_BASEDIR=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
+INSTALL_BASEDIR=$(INSTALL_PREFIX)
 endif
 endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
+ifndef INSTALL_BINDIR
 ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
+INSTALL_BINDIR=$(INSTALL_PREFIX)/bin
 else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
+INSTALL_BINDIR=$(INSTALL_BASEDIR)/bin/$(OS_TARGET)
 endif
 endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
 endif
 endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
+ifndef INSTALL_LIBDIR
 ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
+INSTALL_LIBDIR=$(INSTALL_PREFIX)/lib
 else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
+INSTALL_LIBDIR=$(INSTALL_UNITDIR)
 endif
 endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
+ifndef INSTALL_SOURCEDIR
 ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
+INSTALL_SOURCEDIR=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)
 else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
+INSTALL_SOURCEDIR=$(INSTALL_BASEDIR)/source
 endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
+ifdef PACKAGE_NAME
+INSTALL_SOURCEDIR:=$(INSTALL_SOURCEDIR)/$(PACKAGE_NAME)
 endif
 endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
+ifndef INSTALL_DOCDIR
 ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
+INSTALL_DOCDIR=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)
 else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
+INSTALL_DOCDIR=$(INSTALL_BASEDIR)/doc
 endif
 endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
+ifndef INSTALL_EXAMPLEDIR
 ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
+INSTALL_EXAMPLEDIR=$(INSTALL_DOCDIR)/examples
 else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
+INSTALL_EXAMPLEDIR=$(INSTALL_BASEDIR)/examples
 endif
 ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
+INSTALL_EXAMPLEDIR:=$(INSTALL_EXAMPLEDIR)/$(EXAMPLESUBDIR)
 endif
 endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
 endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
+override FPCOPTDEF=$(CPU_TARGET)
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
 endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: $(addsuffix _all,$(DIROBJECTS))
-
-debug: $(addsuffix _debug,$(DIROBJECTS))
-
-examples: $(addsuffix _examples,$(DIROBJECTS))
-
-test: $(addsuffix _test,$(DIROBJECTS))
-
-smart: $(addsuffix _smart,$(DIROBJECTS))
-
-shared: $(addsuffix _shared,$(DIROBJECTS))
-
-showinstall: $(addsuffix _showinstall,$(DIROBJECTS))
-
-install: $(addsuffix _install,$(DIROBJECTS))
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(DIROBJECTS))
-
-zipinstall: $(addsuffix _zipinstall,$(PKGOBJECTS))
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: $(addsuffix _clean,$(DIROBJECTS))
-
-distclean: $(addsuffix _distclean,$(DIROBJECTS))
-
-cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
-
-require: $(addsuffix _require,$(DIROBJECTS))
-
-.PHONY:  all debug examples test smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
 endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
 endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
 endif
+ifdef LINKSMART
+override FPCOPT+=-XX
 endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+override FPCOPT+=-Xs -OG2p3 -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-OG2p3
+endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
+endif
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
 else
-PACKDIR=/tmp/fpc-pack
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
 endif
 endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
 endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
 endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
 endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifeq ($(OS_SOURCE),win32)
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
 endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
+override COMPILER:=$(FPC) $(FPCOPT)
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
 else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
+ifeq ($(OS_SOURCE),$(OS_TARGET))
+EXECPPAS:=@$(PPAS)
+endif
+endif
+.PHONY: fpc_packages fpc_all fpc_smart fpc_debug
+$(FPCMADE): $(ALLTARGET)
+	@$(ECHO) Compiled > $(FPCMADE)
+fpc_packages: $(COMPILEPACKAGES)
+fpc_all: fpc_packages $(FPCMADE)
+fpc_smart:
+	$(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+	$(MAKE) all DEBUG=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
+%$(PPUEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(PPUEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALLPPUFILES
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
+ifdef PPUFILES
+INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
+else
+INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
+endif
+override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
+endif
+ifdef INSTALLEXEFILES
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
+endif
+fpc_install: $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+	$(MKDIR) $(INSTALL_BINDIR)
+ifdef UPXPROG
+	-$(UPXPROG) $(INSTALLEXEFILES)
+endif
+	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALLPPUFILES
+	$(MKDIR) $(INSTALL_UNITDIR)
+	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+	$(MKDIR) $(INSTALL_LIBDIR)
+	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
+endif
+endif
+endif
+ifdef INSTALL_FILES
+	$(MKDIR) $(INSTALL_DATADIR)
+	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
+endif
+fpc_sourceinstall: distclean
+	$(MKDIR) $(INSTALL_SOURCEDIR)
+	$(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ifndef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+fpc_distinstall: fpc_install fpc_exampleinstall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+ifdef PPUFILES
+CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
 else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Directories
-#####################################################################
-
+CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
+endif
+override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+	-$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+fpc_distclean: fpc_clean
+ifdef COMPILER_UNITTARGETDIR
+TARGETDIRCLEAN=fpc_clean
+endif
+fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+	-$(DELTREE) *$(SMARTEXT)
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+.PHONY: fpc_info
+fpc_info:
+	@$(ECHO)
+	@$(ECHO)  == Package info ==
+	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
+	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
+	@$(ECHO)
+	@$(ECHO)  == Configuration info ==
+	@$(ECHO)
+	@$(ECHO)  FPC.......... $(FPC)
+	@$(ECHO)  FPC Version.. $(FPC_VERSION)
+	@$(ECHO)  Source CPU... $(CPU_SOURCE)
+	@$(ECHO)  Target CPU... $(CPU_TARGET)
+	@$(ECHO)  Source OS.... $(OS_SOURCE)
+	@$(ECHO)  Target OS.... $(OS_TARGET)
+	@$(ECHO)
+	@$(ECHO)  == Directory info ==
+	@$(ECHO)
+	@$(ECHO)  Basedir......... $(BASEDIR)
+	@$(ECHO)  FPCDir.......... $(FPCDIR)
+	@$(ECHO)  UnitsDir........ $(UNITSDIR)
+	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
+	@$(ECHO)
+	@$(ECHO)  GCC library..... $(GCCLIBDIR)
+	@$(ECHO)  Other library... $(OTHERLIBDIR)
+	@$(ECHO)
+	@$(ECHO)  == Tools info ==
+	@$(ECHO)
+	@$(ECHO)  Pwd....... $(PWD)
+	@$(ECHO)  Echo...... $(ECHO)
+	@$(ECHO)  PPUMove... $(PPUMOVE)
+	@$(ECHO)  PPUFiles.. $(PPUFILES)
+	@$(ECHO)  Date...... $(DATE)
+	@$(ECHO)  Upx....... $(UPXPROG)
+	@$(ECHO)  Zip....... $(ZIPPROG)
+	@$(ECHO)
+	@$(ECHO)  == Object info ==
+	@$(ECHO)
+	@$(ECHO)  Target Loaders...... $(TARGET_LOADERS)
+	@$(ECHO)  Target Units........ $(TARGET_UNITS)
+	@$(ECHO)  Target Programs..... $(TARGET_PROGRAMS)
+	@$(ECHO)  Target Dirs......... $(TARGET_DIRS)
+	@$(ECHO)  Target Examples..... $(TARGET_EXAMPLES)
+	@$(ECHO)  Target ExampleDirs.. $(TARGET_EXAMPLEDIRS)
+	@$(ECHO)
+	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
+	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
+	@$(ECHO)
+	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
+	@$(ECHO)  Install Files....... $(INSTALL_FILES)
+	@$(ECHO)
+	@$(ECHO)  == Install info ==
+	@$(ECHO)
+	@$(ECHO)  DateStr.............. $(DATESTR)
+	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
+	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
+	@$(ECHO)
+	@$(ECHO)  INSTALL_BASEDIR...... $(INSTALL_BASEDIR)
+	@$(ECHO)  INSTALL_BINDIR....... $(INSTALL_BINDIR)
+	@$(ECHO)  INSTALL_LIBDIR....... $(INSTALL_LIBDIR)
+	@$(ECHO)  INSTALL_UNITDIR...... $(INSTALL_UNITDIR)
+	@$(ECHO)  INSTALL_SOURCEDIR.... $(INSTALL_SOURCEDIR)
+	@$(ECHO)  INSTALL_DOCDIR....... $(INSTALL_DOCDIR)
+	@$(ECHO)  INSTALL_DATADIR...... $(INSTALL_DATADIR)
+	@$(ECHO)
+	@$(ECHO)  DIST_DESTDIR......... $(DIST_DESTDIR)
+	@$(ECHO)  DIST_ZIPNAME......... $(DIST_ZIPNAME)
+	@$(ECHO)
 ifeq ($(OS_TARGET),linux)
-OBJECTDIRZLIB=1
-OBJECTDIRNCURSES=1
-OBJECTDIRX11=1
-OBJECTDIRGTK=1
-OBJECTDIRSYSLOG=1
-OBJECTDIRINET=1
-OBJECTDIRUNCGI=1
-OBJECTDIRMYSQL=1
-OBJECTDIRIBASE=1
-OBJECTDIRPOSTGRES=1
-OBJECTDIROPENGL=1
-OBJECTDIRFORMS=1
-OBJECTDIRSVGALIB=1
-OBJECTDIRGGI=1
-OBJECTDIRUTMP=1
-OBJECTDIRPASZLIB=1
-OBJECTDIRGDBINT=1
-OBJECTDIRCMEM=1
-OBJECTDIRREGEXPR=1
-OBJECTDIRZIP=1
+TARGET_DIRS_ZLIB=1
+TARGET_DIRS_NCURSES=1
+TARGET_DIRS_X11=1
+TARGET_DIRS_GTK=1
+TARGET_DIRS_SYSLOG=1
+TARGET_DIRS_INET=1
+TARGET_DIRS_UNCGI=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_IBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_ORACLE=1
+TARGET_DIRS_OPENGL=1
+TARGET_DIRS_FORMS=1
+TARGET_DIRS_SVGALIB=1
+TARGET_DIRS_GGI=1
+TARGET_DIRS_UTMP=1
+TARGET_DIRS_PASZLIB=1
+TARGET_DIRS_GDBINT=1
+TARGET_DIRS_CMEM=1
+TARGET_DIRS_REGEXPR=1
+TARGET_DIRS_UNZIP=1
 endif
 ifeq ($(OS_TARGET),go32v2)
-OBJECTDIRUNCGI=1
-OBJECTDIRGDBINT=1
-OBJECTDIRPASZLIB=1
-OBJECTDIRZIP=1
-OBJECTDIRREGEXPR=1
+TARGET_DIRS_UNCGI=1
+TARGET_DIRS_GDBINT=1
+TARGET_DIRS_PASZLIB=1
+TARGET_DIRS_UNZIP=1
+TARGET_DIRS_REGEXPR=1
 endif
 ifeq ($(OS_TARGET),win32)
-OBJECTDIRUNCGI=1
-OBJECTDIRGTK=1
-OBJECTDIRGDBINT=1
-OBJECTDIRIBASE=1
-OBJECTDIRMYSQL=1
-OBJECTDIRZLIB=1
-OBJECTDIRPASZLIB=1
-OBJECTDIRZIP=1
-OBJECTDIRREGEXPR=1
-OBJECTDIROPENGL=1
+TARGET_DIRS_UNCGI=1
+TARGET_DIRS_GTK=1
+TARGET_DIRS_GDBINT=1
+TARGET_DIRS_IBASE=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_ZLIB=1
+TARGET_DIRS_PASZLIB=1
+TARGET_DIRS_UNZIP=1
+TARGET_DIRS_REGEXPR=1
+TARGET_DIRS_OPENGL=1
 endif
 ifeq ($(OS_TARGET),os2)
-OBJECTDIRUNCGI=1
-OBJECTDIRPASZLIB=1
-OBJECTDIRZIP=1
-OBJECTDIRREGEXPR=1
+TARGET_DIRS_UNCGI=1
+TARGET_DIRS_PASZLIB=1
+TARGET_DIRS_UNZIP=1
+TARGET_DIRS_REGEXPR=1
 endif
 ifeq ($(OS_TARGET),freebsd)
-OBJECTDIRZLIB=1
-OBJECTDIRNCURSES=1
-OBJECTDIRX11=1
-OBJECTDIRGTK=1
-OBJECTDIRSYSLOG=1
-OBJECTDIRINET=1
-OBJECTDIRUNCGI=1
-OBJECTDIRMYSQL=1
-OBJECTDIRIBASE=1
-OBJECTDIRPOSTGRES=1
-OBJECTDIROPENGL=1
-OBJECTDIRFORMS=1
-OBJECTDIRSVGALIB=1
-OBJECTDIRGGI=1
-OBJECTDIRUTMP=1
-OBJECTDIRPASZLIB=1
-OBJECTDIRGDBINT=1
-OBJECTDIRCMEM=1
-OBJECTDIRREGEXPR=1
-OBJECTDIRZIP=1
-endif
-
-# Dir zlib
-
-ifdef OBJECTDIRZLIB
-.PHONY:  zlib_all zlib_debug zlib_examples zlib_test zlib_smart zlib_shared zlib_showinstall zlib_install zlib_sourceinstall zlib_exampleinstall zlib_zipinstall zlib_zipsourceinstall zlib_zipexampleinstall zlib_clean zlib_distclean zlib_cleanall zlib_require zlib_info
-
+TARGET_DIRS_ZLIB=1
+TARGET_DIRS_NCURSES=1
+TARGET_DIRS_X11=1
+TARGET_DIRS_GTK=1
+TARGET_DIRS_SYSLOG=1
+TARGET_DIRS_INET=1
+TARGET_DIRS_UNCGI=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_IBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_OPENGL=1
+TARGET_DIRS_FORMS=1
+TARGET_DIRS_SVGALIB=1
+TARGET_DIRS_GGI=1
+TARGET_DIRS_UTMP=1
+TARGET_DIRS_PASZLIB=1
+TARGET_DIRS_GDBINT=1
+TARGET_DIRS_CMEM=1
+TARGET_DIRS_REGEXPR=1
+TARGET_DIRS_UNZIP=1
+endif
+ifdef TARGET_DIRS_ZLIB
 zlib_all:
 	$(MAKE) -C zlib all
-
 zlib_debug:
 	$(MAKE) -C zlib debug
-
 zlib_examples:
 	$(MAKE) -C zlib examples
-
-zlib_test:
-	$(MAKE) -C zlib test
-
 zlib_smart:
 	$(MAKE) -C zlib smart
-
 zlib_shared:
 	$(MAKE) -C zlib shared
-
-zlib_showinstall:
-	$(MAKE) -C zlib showinstall
-
 zlib_install:
 	$(MAKE) -C zlib install
-
 zlib_sourceinstall:
 	$(MAKE) -C zlib sourceinstall
-
 zlib_exampleinstall:
 	$(MAKE) -C zlib exampleinstall
-
+zlib_distinstall:
+	$(MAKE) -C zlib distinstall
 zlib_zipinstall:
 	$(MAKE) -C zlib zipinstall
-
 zlib_zipsourceinstall:
 	$(MAKE) -C zlib zipsourceinstall
-
 zlib_zipexampleinstall:
 	$(MAKE) -C zlib zipexampleinstall
-
+zlib_zipdistinstall:
+	$(MAKE) -C zlib zipdistinstall
 zlib_clean:
 	$(MAKE) -C zlib clean
-
 zlib_distclean:
 	$(MAKE) -C zlib distclean
-
 zlib_cleanall:
 	$(MAKE) -C zlib cleanall
-
-zlib_require:
-	$(MAKE) -C zlib require
-
 zlib_info:
 	$(MAKE) -C zlib info
+zlib:
+	$(MAKE) -C zlib all
+.PHONY: zlib_all zlib_debug zlib_examples zlib_smart 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
 endif
-
-# Dir ncurses
-
-ifdef OBJECTDIRNCURSES
-.PHONY:  ncurses_all ncurses_debug ncurses_examples ncurses_test ncurses_smart ncurses_shared ncurses_showinstall ncurses_install ncurses_sourceinstall ncurses_exampleinstall ncurses_zipinstall ncurses_zipsourceinstall ncurses_zipexampleinstall ncurses_clean ncurses_distclean ncurses_cleanall ncurses_require ncurses_info
-
+ifdef TARGET_DIRS_NCURSES
 ncurses_all:
 	$(MAKE) -C ncurses all
-
 ncurses_debug:
 	$(MAKE) -C ncurses debug
-
 ncurses_examples:
 	$(MAKE) -C ncurses examples
-
-ncurses_test:
-	$(MAKE) -C ncurses test
-
 ncurses_smart:
 	$(MAKE) -C ncurses smart
-
 ncurses_shared:
 	$(MAKE) -C ncurses shared
-
-ncurses_showinstall:
-	$(MAKE) -C ncurses showinstall
-
 ncurses_install:
 	$(MAKE) -C ncurses install
-
 ncurses_sourceinstall:
 	$(MAKE) -C ncurses sourceinstall
-
 ncurses_exampleinstall:
 	$(MAKE) -C ncurses exampleinstall
-
+ncurses_distinstall:
+	$(MAKE) -C ncurses distinstall
 ncurses_zipinstall:
 	$(MAKE) -C ncurses zipinstall
-
 ncurses_zipsourceinstall:
 	$(MAKE) -C ncurses zipsourceinstall
-
 ncurses_zipexampleinstall:
 	$(MAKE) -C ncurses zipexampleinstall
-
+ncurses_zipdistinstall:
+	$(MAKE) -C ncurses zipdistinstall
 ncurses_clean:
 	$(MAKE) -C ncurses clean
-
 ncurses_distclean:
 	$(MAKE) -C ncurses distclean
-
 ncurses_cleanall:
 	$(MAKE) -C ncurses cleanall
-
-ncurses_require:
-	$(MAKE) -C ncurses require
-
 ncurses_info:
 	$(MAKE) -C ncurses info
+ncurses:
+	$(MAKE) -C ncurses all
+.PHONY: ncurses_all ncurses_debug ncurses_examples ncurses_smart 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
 endif
-
-# Dir x11
-
-ifdef OBJECTDIRX11
-.PHONY:  x11_all x11_debug x11_examples x11_test x11_smart x11_shared x11_showinstall x11_install x11_sourceinstall x11_exampleinstall x11_zipinstall x11_zipsourceinstall x11_zipexampleinstall x11_clean x11_distclean x11_cleanall x11_require x11_info
-
+ifdef TARGET_DIRS_X11
 x11_all:
 	$(MAKE) -C x11 all
-
 x11_debug:
 	$(MAKE) -C x11 debug
-
 x11_examples:
 	$(MAKE) -C x11 examples
-
-x11_test:
-	$(MAKE) -C x11 test
-
 x11_smart:
 	$(MAKE) -C x11 smart
-
 x11_shared:
 	$(MAKE) -C x11 shared
-
-x11_showinstall:
-	$(MAKE) -C x11 showinstall
-
 x11_install:
 	$(MAKE) -C x11 install
-
 x11_sourceinstall:
 	$(MAKE) -C x11 sourceinstall
-
 x11_exampleinstall:
 	$(MAKE) -C x11 exampleinstall
-
+x11_distinstall:
+	$(MAKE) -C x11 distinstall
 x11_zipinstall:
 	$(MAKE) -C x11 zipinstall
-
 x11_zipsourceinstall:
 	$(MAKE) -C x11 zipsourceinstall
-
 x11_zipexampleinstall:
 	$(MAKE) -C x11 zipexampleinstall
-
+x11_zipdistinstall:
+	$(MAKE) -C x11 zipdistinstall
 x11_clean:
 	$(MAKE) -C x11 clean
-
 x11_distclean:
 	$(MAKE) -C x11 distclean
-
 x11_cleanall:
 	$(MAKE) -C x11 cleanall
-
-x11_require:
-	$(MAKE) -C x11 require
-
 x11_info:
 	$(MAKE) -C x11 info
+x11:
+	$(MAKE) -C x11 all
+.PHONY: x11_all x11_debug x11_examples x11_smart 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
 endif
-
-# Dir gtk
-
-ifdef OBJECTDIRGTK
-.PHONY:  gtk_all gtk_debug gtk_examples gtk_test gtk_smart gtk_shared gtk_showinstall gtk_install gtk_sourceinstall gtk_exampleinstall gtk_zipinstall gtk_zipsourceinstall gtk_zipexampleinstall gtk_clean gtk_distclean gtk_cleanall gtk_require gtk_info
-
+ifdef TARGET_DIRS_GTK
 gtk_all:
 	$(MAKE) -C gtk all
-
 gtk_debug:
 	$(MAKE) -C gtk debug
-
 gtk_examples:
 	$(MAKE) -C gtk examples
-
-gtk_test:
-	$(MAKE) -C gtk test
-
 gtk_smart:
 	$(MAKE) -C gtk smart
-
 gtk_shared:
 	$(MAKE) -C gtk shared
-
-gtk_showinstall:
-	$(MAKE) -C gtk showinstall
-
 gtk_install:
 	$(MAKE) -C gtk install
-
 gtk_sourceinstall:
 	$(MAKE) -C gtk sourceinstall
-
 gtk_exampleinstall:
 	$(MAKE) -C gtk exampleinstall
-
+gtk_distinstall:
+	$(MAKE) -C gtk distinstall
 gtk_zipinstall:
 	$(MAKE) -C gtk zipinstall
-
 gtk_zipsourceinstall:
 	$(MAKE) -C gtk zipsourceinstall
-
 gtk_zipexampleinstall:
 	$(MAKE) -C gtk zipexampleinstall
-
+gtk_zipdistinstall:
+	$(MAKE) -C gtk zipdistinstall
 gtk_clean:
 	$(MAKE) -C gtk clean
-
 gtk_distclean:
 	$(MAKE) -C gtk distclean
-
 gtk_cleanall:
 	$(MAKE) -C gtk cleanall
-
-gtk_require:
-	$(MAKE) -C gtk require
-
 gtk_info:
 	$(MAKE) -C gtk info
+gtk:
+	$(MAKE) -C gtk all
+.PHONY: gtk_all gtk_debug gtk_examples gtk_smart 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
 endif
-
-# Dir syslog
-
-ifdef OBJECTDIRSYSLOG
-.PHONY:  syslog_all syslog_debug syslog_examples syslog_test syslog_smart syslog_shared syslog_showinstall syslog_install syslog_sourceinstall syslog_exampleinstall syslog_zipinstall syslog_zipsourceinstall syslog_zipexampleinstall syslog_clean syslog_distclean syslog_cleanall syslog_require syslog_info
-
+ifdef TARGET_DIRS_SYSLOG
 syslog_all:
 	$(MAKE) -C syslog all
-
 syslog_debug:
 	$(MAKE) -C syslog debug
-
 syslog_examples:
 	$(MAKE) -C syslog examples
-
-syslog_test:
-	$(MAKE) -C syslog test
-
 syslog_smart:
 	$(MAKE) -C syslog smart
-
 syslog_shared:
 	$(MAKE) -C syslog shared
-
-syslog_showinstall:
-	$(MAKE) -C syslog showinstall
-
 syslog_install:
 	$(MAKE) -C syslog install
-
 syslog_sourceinstall:
 	$(MAKE) -C syslog sourceinstall
-
 syslog_exampleinstall:
 	$(MAKE) -C syslog exampleinstall
-
+syslog_distinstall:
+	$(MAKE) -C syslog distinstall
 syslog_zipinstall:
 	$(MAKE) -C syslog zipinstall
-
 syslog_zipsourceinstall:
 	$(MAKE) -C syslog zipsourceinstall
-
 syslog_zipexampleinstall:
 	$(MAKE) -C syslog zipexampleinstall
-
+syslog_zipdistinstall:
+	$(MAKE) -C syslog zipdistinstall
 syslog_clean:
 	$(MAKE) -C syslog clean
-
 syslog_distclean:
 	$(MAKE) -C syslog distclean
-
 syslog_cleanall:
 	$(MAKE) -C syslog cleanall
-
-syslog_require:
-	$(MAKE) -C syslog require
-
 syslog_info:
 	$(MAKE) -C syslog info
+syslog:
+	$(MAKE) -C syslog all
+.PHONY: syslog_all syslog_debug syslog_examples syslog_smart 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
 endif
-
-# Dir inet
-
-ifdef OBJECTDIRINET
-.PHONY:  inet_all inet_debug inet_examples inet_test inet_smart inet_shared inet_showinstall inet_install inet_sourceinstall inet_exampleinstall inet_zipinstall inet_zipsourceinstall inet_zipexampleinstall inet_clean inet_distclean inet_cleanall inet_require inet_info
-
+ifdef TARGET_DIRS_INET
 inet_all:
 	$(MAKE) -C inet all
-
 inet_debug:
 	$(MAKE) -C inet debug
-
 inet_examples:
 	$(MAKE) -C inet examples
-
-inet_test:
-	$(MAKE) -C inet test
-
 inet_smart:
 	$(MAKE) -C inet smart
-
 inet_shared:
 	$(MAKE) -C inet shared
-
-inet_showinstall:
-	$(MAKE) -C inet showinstall
-
 inet_install:
 	$(MAKE) -C inet install
-
 inet_sourceinstall:
 	$(MAKE) -C inet sourceinstall
-
 inet_exampleinstall:
 	$(MAKE) -C inet exampleinstall
-
+inet_distinstall:
+	$(MAKE) -C inet distinstall
 inet_zipinstall:
 	$(MAKE) -C inet zipinstall
-
 inet_zipsourceinstall:
 	$(MAKE) -C inet zipsourceinstall
-
 inet_zipexampleinstall:
 	$(MAKE) -C inet zipexampleinstall
-
+inet_zipdistinstall:
+	$(MAKE) -C inet zipdistinstall
 inet_clean:
 	$(MAKE) -C inet clean
-
 inet_distclean:
 	$(MAKE) -C inet distclean
-
 inet_cleanall:
 	$(MAKE) -C inet cleanall
-
-inet_require:
-	$(MAKE) -C inet require
-
 inet_info:
 	$(MAKE) -C inet info
+inet:
+	$(MAKE) -C inet all
+.PHONY: inet_all inet_debug inet_examples inet_smart 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
 endif
-
-# Dir uncgi
-
-ifdef OBJECTDIRUNCGI
-.PHONY:  uncgi_all uncgi_debug uncgi_examples uncgi_test uncgi_smart uncgi_shared uncgi_showinstall uncgi_install uncgi_sourceinstall uncgi_exampleinstall uncgi_zipinstall uncgi_zipsourceinstall uncgi_zipexampleinstall uncgi_clean uncgi_distclean uncgi_cleanall uncgi_require uncgi_info
-
+ifdef TARGET_DIRS_UNCGI
 uncgi_all:
 	$(MAKE) -C uncgi all
-
 uncgi_debug:
 	$(MAKE) -C uncgi debug
-
 uncgi_examples:
 	$(MAKE) -C uncgi examples
-
-uncgi_test:
-	$(MAKE) -C uncgi test
-
 uncgi_smart:
 	$(MAKE) -C uncgi smart
-
 uncgi_shared:
 	$(MAKE) -C uncgi shared
-
-uncgi_showinstall:
-	$(MAKE) -C uncgi showinstall
-
 uncgi_install:
 	$(MAKE) -C uncgi install
-
 uncgi_sourceinstall:
 	$(MAKE) -C uncgi sourceinstall
-
 uncgi_exampleinstall:
 	$(MAKE) -C uncgi exampleinstall
-
+uncgi_distinstall:
+	$(MAKE) -C uncgi distinstall
 uncgi_zipinstall:
 	$(MAKE) -C uncgi zipinstall
-
 uncgi_zipsourceinstall:
 	$(MAKE) -C uncgi zipsourceinstall
-
 uncgi_zipexampleinstall:
 	$(MAKE) -C uncgi zipexampleinstall
-
+uncgi_zipdistinstall:
+	$(MAKE) -C uncgi zipdistinstall
 uncgi_clean:
 	$(MAKE) -C uncgi clean
-
 uncgi_distclean:
 	$(MAKE) -C uncgi distclean
-
 uncgi_cleanall:
 	$(MAKE) -C uncgi cleanall
-
-uncgi_require:
-	$(MAKE) -C uncgi require
-
 uncgi_info:
 	$(MAKE) -C uncgi info
+uncgi:
+	$(MAKE) -C uncgi all
+.PHONY: uncgi_all uncgi_debug uncgi_examples uncgi_smart uncgi_shared uncgi_install uncgi_sourceinstall uncgi_exampleinstall uncgi_distinstall uncgi_zipinstall uncgi_zipsourceinstall uncgi_zipexampleinstall uncgi_zipdistinstall uncgi_clean uncgi_distclean uncgi_cleanall uncgi_info uncgi
 endif
-
-# Dir mysql
-
-ifdef OBJECTDIRMYSQL
-.PHONY:  mysql_all mysql_debug mysql_examples mysql_test mysql_smart mysql_shared mysql_showinstall mysql_install mysql_sourceinstall mysql_exampleinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_clean mysql_distclean mysql_cleanall mysql_require mysql_info
-
+ifdef TARGET_DIRS_MYSQL
 mysql_all:
 	$(MAKE) -C mysql all
-
 mysql_debug:
 	$(MAKE) -C mysql debug
-
 mysql_examples:
 	$(MAKE) -C mysql examples
-
-mysql_test:
-	$(MAKE) -C mysql test
-
 mysql_smart:
 	$(MAKE) -C mysql smart
-
 mysql_shared:
 	$(MAKE) -C mysql shared
-
-mysql_showinstall:
-	$(MAKE) -C mysql showinstall
-
 mysql_install:
 	$(MAKE) -C mysql install
-
 mysql_sourceinstall:
 	$(MAKE) -C mysql sourceinstall
-
 mysql_exampleinstall:
 	$(MAKE) -C mysql exampleinstall
-
+mysql_distinstall:
+	$(MAKE) -C mysql distinstall
 mysql_zipinstall:
 	$(MAKE) -C mysql zipinstall
-
 mysql_zipsourceinstall:
 	$(MAKE) -C mysql zipsourceinstall
-
 mysql_zipexampleinstall:
 	$(MAKE) -C mysql zipexampleinstall
-
+mysql_zipdistinstall:
+	$(MAKE) -C mysql zipdistinstall
 mysql_clean:
 	$(MAKE) -C mysql clean
-
 mysql_distclean:
 	$(MAKE) -C mysql distclean
-
 mysql_cleanall:
 	$(MAKE) -C mysql cleanall
-
-mysql_require:
-	$(MAKE) -C mysql require
-
 mysql_info:
 	$(MAKE) -C mysql info
+mysql:
+	$(MAKE) -C mysql all
+.PHONY: mysql_all mysql_debug mysql_examples mysql_smart 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
 endif
-
-# Dir ibase
-
-ifdef OBJECTDIRIBASE
-.PHONY:  ibase_all ibase_debug ibase_examples ibase_test ibase_smart ibase_shared ibase_showinstall ibase_install ibase_sourceinstall ibase_exampleinstall ibase_zipinstall ibase_zipsourceinstall ibase_zipexampleinstall ibase_clean ibase_distclean ibase_cleanall ibase_require ibase_info
-
+ifdef TARGET_DIRS_IBASE
 ibase_all:
 	$(MAKE) -C ibase all
-
 ibase_debug:
 	$(MAKE) -C ibase debug
-
 ibase_examples:
 	$(MAKE) -C ibase examples
-
-ibase_test:
-	$(MAKE) -C ibase test
-
 ibase_smart:
 	$(MAKE) -C ibase smart
-
 ibase_shared:
 	$(MAKE) -C ibase shared
-
-ibase_showinstall:
-	$(MAKE) -C ibase showinstall
-
 ibase_install:
 	$(MAKE) -C ibase install
-
 ibase_sourceinstall:
 	$(MAKE) -C ibase sourceinstall
-
 ibase_exampleinstall:
 	$(MAKE) -C ibase exampleinstall
-
+ibase_distinstall:
+	$(MAKE) -C ibase distinstall
 ibase_zipinstall:
 	$(MAKE) -C ibase zipinstall
-
 ibase_zipsourceinstall:
 	$(MAKE) -C ibase zipsourceinstall
-
 ibase_zipexampleinstall:
 	$(MAKE) -C ibase zipexampleinstall
-
+ibase_zipdistinstall:
+	$(MAKE) -C ibase zipdistinstall
 ibase_clean:
 	$(MAKE) -C ibase clean
-
 ibase_distclean:
 	$(MAKE) -C ibase distclean
-
 ibase_cleanall:
 	$(MAKE) -C ibase cleanall
-
-ibase_require:
-	$(MAKE) -C ibase require
-
 ibase_info:
 	$(MAKE) -C ibase info
+ibase:
+	$(MAKE) -C ibase all
+.PHONY: ibase_all ibase_debug ibase_examples ibase_smart 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
 endif
-
-# Dir postgres
-
-ifdef OBJECTDIRPOSTGRES
-.PHONY:  postgres_all postgres_debug postgres_examples postgres_test postgres_smart postgres_shared postgres_showinstall postgres_install postgres_sourceinstall postgres_exampleinstall postgres_zipinstall postgres_zipsourceinstall postgres_zipexampleinstall postgres_clean postgres_distclean postgres_cleanall postgres_require postgres_info
-
+ifdef TARGET_DIRS_POSTGRES
 postgres_all:
 	$(MAKE) -C postgres all
-
 postgres_debug:
 	$(MAKE) -C postgres debug
-
 postgres_examples:
 	$(MAKE) -C postgres examples
-
-postgres_test:
-	$(MAKE) -C postgres test
-
 postgres_smart:
 	$(MAKE) -C postgres smart
-
 postgres_shared:
 	$(MAKE) -C postgres shared
-
-postgres_showinstall:
-	$(MAKE) -C postgres showinstall
-
 postgres_install:
 	$(MAKE) -C postgres install
-
 postgres_sourceinstall:
 	$(MAKE) -C postgres sourceinstall
-
 postgres_exampleinstall:
 	$(MAKE) -C postgres exampleinstall
-
+postgres_distinstall:
+	$(MAKE) -C postgres distinstall
 postgres_zipinstall:
 	$(MAKE) -C postgres zipinstall
-
 postgres_zipsourceinstall:
 	$(MAKE) -C postgres zipsourceinstall
-
 postgres_zipexampleinstall:
 	$(MAKE) -C postgres zipexampleinstall
-
+postgres_zipdistinstall:
+	$(MAKE) -C postgres zipdistinstall
 postgres_clean:
 	$(MAKE) -C postgres clean
-
 postgres_distclean:
 	$(MAKE) -C postgres distclean
-
 postgres_cleanall:
 	$(MAKE) -C postgres cleanall
-
-postgres_require:
-	$(MAKE) -C postgres require
-
 postgres_info:
 	$(MAKE) -C postgres info
-endif
-
-# Dir opengl
-
-ifdef OBJECTDIROPENGL
-.PHONY:  opengl_all opengl_debug opengl_examples opengl_test opengl_smart opengl_shared opengl_showinstall opengl_install opengl_sourceinstall opengl_exampleinstall opengl_zipinstall opengl_zipsourceinstall opengl_zipexampleinstall opengl_clean opengl_distclean opengl_cleanall opengl_require opengl_info
-
+postgres:
+	$(MAKE) -C postgres all
+.PHONY: postgres_all postgres_debug postgres_examples postgres_smart 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
+endif
+ifdef TARGET_DIRS_ORACLE
+oracle_all:
+	$(MAKE) -C oracle all
+oracle_debug:
+	$(MAKE) -C oracle debug
+oracle_examples:
+	$(MAKE) -C oracle examples
+oracle_smart:
+	$(MAKE) -C oracle smart
+oracle_shared:
+	$(MAKE) -C oracle shared
+oracle_install:
+	$(MAKE) -C oracle install
+oracle_sourceinstall:
+	$(MAKE) -C oracle sourceinstall
+oracle_exampleinstall:
+	$(MAKE) -C oracle exampleinstall
+oracle_distinstall:
+	$(MAKE) -C oracle distinstall
+oracle_zipinstall:
+	$(MAKE) -C oracle zipinstall
+oracle_zipsourceinstall:
+	$(MAKE) -C oracle zipsourceinstall
+oracle_zipexampleinstall:
+	$(MAKE) -C oracle zipexampleinstall
+oracle_zipdistinstall:
+	$(MAKE) -C oracle zipdistinstall
+oracle_clean:
+	$(MAKE) -C oracle clean
+oracle_distclean:
+	$(MAKE) -C oracle distclean
+oracle_cleanall:
+	$(MAKE) -C oracle cleanall
+oracle_info:
+	$(MAKE) -C oracle info
+oracle:
+	$(MAKE) -C oracle all
+.PHONY: oracle_all oracle_debug oracle_examples oracle_smart 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
+endif
+ifdef TARGET_DIRS_OPENGL
 opengl_all:
 	$(MAKE) -C opengl all
-
 opengl_debug:
 	$(MAKE) -C opengl debug
-
 opengl_examples:
 	$(MAKE) -C opengl examples
-
-opengl_test:
-	$(MAKE) -C opengl test
-
 opengl_smart:
 	$(MAKE) -C opengl smart
-
 opengl_shared:
 	$(MAKE) -C opengl shared
-
-opengl_showinstall:
-	$(MAKE) -C opengl showinstall
-
 opengl_install:
 	$(MAKE) -C opengl install
-
 opengl_sourceinstall:
 	$(MAKE) -C opengl sourceinstall
-
 opengl_exampleinstall:
 	$(MAKE) -C opengl exampleinstall
-
+opengl_distinstall:
+	$(MAKE) -C opengl distinstall
 opengl_zipinstall:
 	$(MAKE) -C opengl zipinstall
-
 opengl_zipsourceinstall:
 	$(MAKE) -C opengl zipsourceinstall
-
 opengl_zipexampleinstall:
 	$(MAKE) -C opengl zipexampleinstall
-
+opengl_zipdistinstall:
+	$(MAKE) -C opengl zipdistinstall
 opengl_clean:
 	$(MAKE) -C opengl clean
-
 opengl_distclean:
 	$(MAKE) -C opengl distclean
-
 opengl_cleanall:
 	$(MAKE) -C opengl cleanall
-
-opengl_require:
-	$(MAKE) -C opengl require
-
 opengl_info:
 	$(MAKE) -C opengl info
+opengl:
+	$(MAKE) -C opengl all
+.PHONY: opengl_all opengl_debug opengl_examples opengl_smart 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
 endif
-
-# Dir forms
-
-ifdef OBJECTDIRFORMS
-.PHONY:  forms_all forms_debug forms_examples forms_test forms_smart forms_shared forms_showinstall forms_install forms_sourceinstall forms_exampleinstall forms_zipinstall forms_zipsourceinstall forms_zipexampleinstall forms_clean forms_distclean forms_cleanall forms_require forms_info
-
+ifdef TARGET_DIRS_FORMS
 forms_all:
 	$(MAKE) -C forms all
-
 forms_debug:
 	$(MAKE) -C forms debug
-
 forms_examples:
 	$(MAKE) -C forms examples
-
-forms_test:
-	$(MAKE) -C forms test
-
 forms_smart:
 	$(MAKE) -C forms smart
-
 forms_shared:
 	$(MAKE) -C forms shared
-
-forms_showinstall:
-	$(MAKE) -C forms showinstall
-
 forms_install:
 	$(MAKE) -C forms install
-
 forms_sourceinstall:
 	$(MAKE) -C forms sourceinstall
-
 forms_exampleinstall:
 	$(MAKE) -C forms exampleinstall
-
+forms_distinstall:
+	$(MAKE) -C forms distinstall
 forms_zipinstall:
 	$(MAKE) -C forms zipinstall
-
 forms_zipsourceinstall:
 	$(MAKE) -C forms zipsourceinstall
-
 forms_zipexampleinstall:
 	$(MAKE) -C forms zipexampleinstall
-
+forms_zipdistinstall:
+	$(MAKE) -C forms zipdistinstall
 forms_clean:
 	$(MAKE) -C forms clean
-
 forms_distclean:
 	$(MAKE) -C forms distclean
-
 forms_cleanall:
 	$(MAKE) -C forms cleanall
-
-forms_require:
-	$(MAKE) -C forms require
-
 forms_info:
 	$(MAKE) -C forms info
+forms:
+	$(MAKE) -C forms all
+.PHONY: forms_all forms_debug forms_examples forms_smart 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
 endif
-
-# Dir svgalib
-
-ifdef OBJECTDIRSVGALIB
-.PHONY:  svgalib_all svgalib_debug svgalib_examples svgalib_test svgalib_smart svgalib_shared svgalib_showinstall svgalib_install svgalib_sourceinstall svgalib_exampleinstall svgalib_zipinstall svgalib_zipsourceinstall svgalib_zipexampleinstall svgalib_clean svgalib_distclean svgalib_cleanall svgalib_require svgalib_info
-
+ifdef TARGET_DIRS_SVGALIB
 svgalib_all:
 	$(MAKE) -C svgalib all
-
 svgalib_debug:
 	$(MAKE) -C svgalib debug
-
 svgalib_examples:
 	$(MAKE) -C svgalib examples
-
-svgalib_test:
-	$(MAKE) -C svgalib test
-
 svgalib_smart:
 	$(MAKE) -C svgalib smart
-
 svgalib_shared:
 	$(MAKE) -C svgalib shared
-
-svgalib_showinstall:
-	$(MAKE) -C svgalib showinstall
-
 svgalib_install:
 	$(MAKE) -C svgalib install
-
 svgalib_sourceinstall:
 	$(MAKE) -C svgalib sourceinstall
-
 svgalib_exampleinstall:
 	$(MAKE) -C svgalib exampleinstall
-
+svgalib_distinstall:
+	$(MAKE) -C svgalib distinstall
 svgalib_zipinstall:
 	$(MAKE) -C svgalib zipinstall
-
 svgalib_zipsourceinstall:
 	$(MAKE) -C svgalib zipsourceinstall
-
 svgalib_zipexampleinstall:
 	$(MAKE) -C svgalib zipexampleinstall
-
+svgalib_zipdistinstall:
+	$(MAKE) -C svgalib zipdistinstall
 svgalib_clean:
 	$(MAKE) -C svgalib clean
-
 svgalib_distclean:
 	$(MAKE) -C svgalib distclean
-
 svgalib_cleanall:
 	$(MAKE) -C svgalib cleanall
-
-svgalib_require:
-	$(MAKE) -C svgalib require
-
 svgalib_info:
 	$(MAKE) -C svgalib info
+svgalib:
+	$(MAKE) -C svgalib all
+.PHONY: svgalib_all svgalib_debug svgalib_examples svgalib_smart 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
 endif
-
-# Dir ggi
-
-ifdef OBJECTDIRGGI
-.PHONY:  ggi_all ggi_debug ggi_examples ggi_test ggi_smart ggi_shared ggi_showinstall ggi_install ggi_sourceinstall ggi_exampleinstall ggi_zipinstall ggi_zipsourceinstall ggi_zipexampleinstall ggi_clean ggi_distclean ggi_cleanall ggi_require ggi_info
-
+ifdef TARGET_DIRS_GGI
 ggi_all:
 	$(MAKE) -C ggi all
-
 ggi_debug:
 	$(MAKE) -C ggi debug
-
 ggi_examples:
 	$(MAKE) -C ggi examples
-
-ggi_test:
-	$(MAKE) -C ggi test
-
 ggi_smart:
 	$(MAKE) -C ggi smart
-
 ggi_shared:
 	$(MAKE) -C ggi shared
-
-ggi_showinstall:
-	$(MAKE) -C ggi showinstall
-
 ggi_install:
 	$(MAKE) -C ggi install
-
 ggi_sourceinstall:
 	$(MAKE) -C ggi sourceinstall
-
 ggi_exampleinstall:
 	$(MAKE) -C ggi exampleinstall
-
+ggi_distinstall:
+	$(MAKE) -C ggi distinstall
 ggi_zipinstall:
 	$(MAKE) -C ggi zipinstall
-
 ggi_zipsourceinstall:
 	$(MAKE) -C ggi zipsourceinstall
-
 ggi_zipexampleinstall:
 	$(MAKE) -C ggi zipexampleinstall
-
+ggi_zipdistinstall:
+	$(MAKE) -C ggi zipdistinstall
 ggi_clean:
 	$(MAKE) -C ggi clean
-
 ggi_distclean:
 	$(MAKE) -C ggi distclean
-
 ggi_cleanall:
 	$(MAKE) -C ggi cleanall
-
-ggi_require:
-	$(MAKE) -C ggi require
-
 ggi_info:
 	$(MAKE) -C ggi info
+ggi:
+	$(MAKE) -C ggi all
+.PHONY: ggi_all ggi_debug ggi_examples ggi_smart 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
 endif
-
-# Dir utmp
-
-ifdef OBJECTDIRUTMP
-.PHONY:  utmp_all utmp_debug utmp_examples utmp_test utmp_smart utmp_shared utmp_showinstall utmp_install utmp_sourceinstall utmp_exampleinstall utmp_zipinstall utmp_zipsourceinstall utmp_zipexampleinstall utmp_clean utmp_distclean utmp_cleanall utmp_require utmp_info
-
+ifdef TARGET_DIRS_UTMP
 utmp_all:
 	$(MAKE) -C utmp all
-
 utmp_debug:
 	$(MAKE) -C utmp debug
-
 utmp_examples:
 	$(MAKE) -C utmp examples
-
-utmp_test:
-	$(MAKE) -C utmp test
-
 utmp_smart:
 	$(MAKE) -C utmp smart
-
 utmp_shared:
 	$(MAKE) -C utmp shared
-
-utmp_showinstall:
-	$(MAKE) -C utmp showinstall
-
 utmp_install:
 	$(MAKE) -C utmp install
-
 utmp_sourceinstall:
 	$(MAKE) -C utmp sourceinstall
-
 utmp_exampleinstall:
 	$(MAKE) -C utmp exampleinstall
-
+utmp_distinstall:
+	$(MAKE) -C utmp distinstall
 utmp_zipinstall:
 	$(MAKE) -C utmp zipinstall
-
 utmp_zipsourceinstall:
 	$(MAKE) -C utmp zipsourceinstall
-
 utmp_zipexampleinstall:
 	$(MAKE) -C utmp zipexampleinstall
-
+utmp_zipdistinstall:
+	$(MAKE) -C utmp zipdistinstall
 utmp_clean:
 	$(MAKE) -C utmp clean
-
 utmp_distclean:
 	$(MAKE) -C utmp distclean
-
 utmp_cleanall:
 	$(MAKE) -C utmp cleanall
-
-utmp_require:
-	$(MAKE) -C utmp require
-
 utmp_info:
 	$(MAKE) -C utmp info
+utmp:
+	$(MAKE) -C utmp all
+.PHONY: utmp_all utmp_debug utmp_examples utmp_smart 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
 endif
-
-# Dir paszlib
-
-ifdef OBJECTDIRPASZLIB
-.PHONY:  paszlib_all paszlib_debug paszlib_examples paszlib_test paszlib_smart paszlib_shared paszlib_showinstall paszlib_install paszlib_sourceinstall paszlib_exampleinstall paszlib_zipinstall paszlib_zipsourceinstall paszlib_zipexampleinstall paszlib_clean paszlib_distclean paszlib_cleanall paszlib_require paszlib_info
-
+ifdef TARGET_DIRS_PASZLIB
 paszlib_all:
 	$(MAKE) -C paszlib all
-
 paszlib_debug:
 	$(MAKE) -C paszlib debug
-
 paszlib_examples:
 	$(MAKE) -C paszlib examples
-
-paszlib_test:
-	$(MAKE) -C paszlib test
-
 paszlib_smart:
 	$(MAKE) -C paszlib smart
-
 paszlib_shared:
 	$(MAKE) -C paszlib shared
-
-paszlib_showinstall:
-	$(MAKE) -C paszlib showinstall
-
 paszlib_install:
 	$(MAKE) -C paszlib install
-
 paszlib_sourceinstall:
 	$(MAKE) -C paszlib sourceinstall
-
 paszlib_exampleinstall:
 	$(MAKE) -C paszlib exampleinstall
-
+paszlib_distinstall:
+	$(MAKE) -C paszlib distinstall
 paszlib_zipinstall:
 	$(MAKE) -C paszlib zipinstall
-
 paszlib_zipsourceinstall:
 	$(MAKE) -C paszlib zipsourceinstall
-
 paszlib_zipexampleinstall:
 	$(MAKE) -C paszlib zipexampleinstall
-
+paszlib_zipdistinstall:
+	$(MAKE) -C paszlib zipdistinstall
 paszlib_clean:
 	$(MAKE) -C paszlib clean
-
 paszlib_distclean:
 	$(MAKE) -C paszlib distclean
-
 paszlib_cleanall:
 	$(MAKE) -C paszlib cleanall
-
-paszlib_require:
-	$(MAKE) -C paszlib require
-
 paszlib_info:
 	$(MAKE) -C paszlib info
+paszlib:
+	$(MAKE) -C paszlib all
+.PHONY: paszlib_all paszlib_debug paszlib_examples paszlib_smart 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
 endif
-
-# Dir gdbint
-
-ifdef OBJECTDIRGDBINT
-.PHONY:  gdbint_all gdbint_debug gdbint_examples gdbint_test gdbint_smart gdbint_shared gdbint_showinstall gdbint_install gdbint_sourceinstall gdbint_exampleinstall gdbint_zipinstall gdbint_zipsourceinstall gdbint_zipexampleinstall gdbint_clean gdbint_distclean gdbint_cleanall gdbint_require gdbint_info
-
+ifdef TARGET_DIRS_GDBINT
 gdbint_all:
 	$(MAKE) -C gdbint all
-
 gdbint_debug:
 	$(MAKE) -C gdbint debug
-
 gdbint_examples:
 	$(MAKE) -C gdbint examples
-
-gdbint_test:
-	$(MAKE) -C gdbint test
-
 gdbint_smart:
 	$(MAKE) -C gdbint smart
-
 gdbint_shared:
 	$(MAKE) -C gdbint shared
-
-gdbint_showinstall:
-	$(MAKE) -C gdbint showinstall
-
 gdbint_install:
 	$(MAKE) -C gdbint install
-
 gdbint_sourceinstall:
 	$(MAKE) -C gdbint sourceinstall
-
 gdbint_exampleinstall:
 	$(MAKE) -C gdbint exampleinstall
-
+gdbint_distinstall:
+	$(MAKE) -C gdbint distinstall
 gdbint_zipinstall:
 	$(MAKE) -C gdbint zipinstall
-
 gdbint_zipsourceinstall:
 	$(MAKE) -C gdbint zipsourceinstall
-
 gdbint_zipexampleinstall:
 	$(MAKE) -C gdbint zipexampleinstall
-
+gdbint_zipdistinstall:
+	$(MAKE) -C gdbint zipdistinstall
 gdbint_clean:
 	$(MAKE) -C gdbint clean
-
 gdbint_distclean:
 	$(MAKE) -C gdbint distclean
-
 gdbint_cleanall:
 	$(MAKE) -C gdbint cleanall
-
-gdbint_require:
-	$(MAKE) -C gdbint require
-
 gdbint_info:
 	$(MAKE) -C gdbint info
+gdbint:
+	$(MAKE) -C gdbint all
+.PHONY: gdbint_all gdbint_debug gdbint_examples gdbint_smart 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
 endif
-
-# Dir cmem
-
-ifdef OBJECTDIRCMEM
-.PHONY:  cmem_all cmem_debug cmem_examples cmem_test cmem_smart cmem_shared cmem_showinstall cmem_install cmem_sourceinstall cmem_exampleinstall cmem_zipinstall cmem_zipsourceinstall cmem_zipexampleinstall cmem_clean cmem_distclean cmem_cleanall cmem_require cmem_info
-
+ifdef TARGET_DIRS_CMEM
 cmem_all:
 	$(MAKE) -C cmem all
-
 cmem_debug:
 	$(MAKE) -C cmem debug
-
 cmem_examples:
 	$(MAKE) -C cmem examples
-
-cmem_test:
-	$(MAKE) -C cmem test
-
 cmem_smart:
 	$(MAKE) -C cmem smart
-
 cmem_shared:
 	$(MAKE) -C cmem shared
-
-cmem_showinstall:
-	$(MAKE) -C cmem showinstall
-
 cmem_install:
 	$(MAKE) -C cmem install
-
 cmem_sourceinstall:
 	$(MAKE) -C cmem sourceinstall
-
 cmem_exampleinstall:
 	$(MAKE) -C cmem exampleinstall
-
+cmem_distinstall:
+	$(MAKE) -C cmem distinstall
 cmem_zipinstall:
 	$(MAKE) -C cmem zipinstall
-
 cmem_zipsourceinstall:
 	$(MAKE) -C cmem zipsourceinstall
-
 cmem_zipexampleinstall:
 	$(MAKE) -C cmem zipexampleinstall
-
+cmem_zipdistinstall:
+	$(MAKE) -C cmem zipdistinstall
 cmem_clean:
 	$(MAKE) -C cmem clean
-
 cmem_distclean:
 	$(MAKE) -C cmem distclean
-
 cmem_cleanall:
 	$(MAKE) -C cmem cleanall
-
-cmem_require:
-	$(MAKE) -C cmem require
-
 cmem_info:
 	$(MAKE) -C cmem info
+cmem:
+	$(MAKE) -C cmem all
+.PHONY: cmem_all cmem_debug cmem_examples cmem_smart cmem_shared cmem_install cmem_sourceinstall cmem_exampleinstall cmem_distinstall cmem_zipinstall cmem_zipsourceinstall cmem_zipexampleinstall cmem_zipdistinstall cmem_clean cmem_distclean cmem_cleanall cmem_info cmem
 endif
-
-# Dir regexpr
-
-ifdef OBJECTDIRREGEXPR
-.PHONY:  regexpr_all regexpr_debug regexpr_examples regexpr_test regexpr_smart regexpr_shared regexpr_showinstall regexpr_install regexpr_sourceinstall regexpr_exampleinstall regexpr_zipinstall regexpr_zipsourceinstall regexpr_zipexampleinstall regexpr_clean regexpr_distclean regexpr_cleanall regexpr_require regexpr_info
-
+ifdef TARGET_DIRS_REGEXPR
 regexpr_all:
 	$(MAKE) -C regexpr all
-
 regexpr_debug:
 	$(MAKE) -C regexpr debug
-
 regexpr_examples:
 	$(MAKE) -C regexpr examples
-
-regexpr_test:
-	$(MAKE) -C regexpr test
-
 regexpr_smart:
 	$(MAKE) -C regexpr smart
-
 regexpr_shared:
 	$(MAKE) -C regexpr shared
-
-regexpr_showinstall:
-	$(MAKE) -C regexpr showinstall
-
 regexpr_install:
 	$(MAKE) -C regexpr install
-
 regexpr_sourceinstall:
 	$(MAKE) -C regexpr sourceinstall
-
 regexpr_exampleinstall:
 	$(MAKE) -C regexpr exampleinstall
-
+regexpr_distinstall:
+	$(MAKE) -C regexpr distinstall
 regexpr_zipinstall:
 	$(MAKE) -C regexpr zipinstall
-
 regexpr_zipsourceinstall:
 	$(MAKE) -C regexpr zipsourceinstall
-
 regexpr_zipexampleinstall:
 	$(MAKE) -C regexpr zipexampleinstall
-
+regexpr_zipdistinstall:
+	$(MAKE) -C regexpr zipdistinstall
 regexpr_clean:
 	$(MAKE) -C regexpr clean
-
 regexpr_distclean:
 	$(MAKE) -C regexpr distclean
-
 regexpr_cleanall:
 	$(MAKE) -C regexpr cleanall
-
-regexpr_require:
-	$(MAKE) -C regexpr require
-
 regexpr_info:
 	$(MAKE) -C regexpr info
-endif
-
-# Dir zip
-
-ifdef OBJECTDIRZIP
-.PHONY:  zip_all zip_debug zip_examples zip_test zip_smart zip_shared zip_showinstall zip_install zip_sourceinstall zip_exampleinstall zip_zipinstall zip_zipsourceinstall zip_zipexampleinstall zip_clean zip_distclean zip_cleanall zip_require zip_info
-
-zip_all:
-	$(MAKE) -C zip all
-
-zip_debug:
-	$(MAKE) -C zip debug
-
-zip_examples:
-	$(MAKE) -C zip examples
-
-zip_test:
-	$(MAKE) -C zip test
-
-zip_smart:
-	$(MAKE) -C zip smart
-
-zip_shared:
-	$(MAKE) -C zip shared
-
-zip_showinstall:
-	$(MAKE) -C zip showinstall
-
-zip_install:
-	$(MAKE) -C zip install
-
-zip_sourceinstall:
-	$(MAKE) -C zip sourceinstall
-
-zip_exampleinstall:
-	$(MAKE) -C zip exampleinstall
-
-zip_zipinstall:
-	$(MAKE) -C zip zipinstall
-
-zip_zipsourceinstall:
-	$(MAKE) -C zip zipsourceinstall
-
-zip_zipexampleinstall:
-	$(MAKE) -C zip zipexampleinstall
-
-zip_clean:
-	$(MAKE) -C zip clean
-
-zip_distclean:
-	$(MAKE) -C zip distclean
-
-zip_cleanall:
-	$(MAKE) -C zip cleanall
-
-zip_require:
-	$(MAKE) -C zip require
-
-zip_info:
-	$(MAKE) -C zip info
-endif
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
+regexpr:
+	$(MAKE) -C regexpr all
+.PHONY: regexpr_all regexpr_debug regexpr_examples regexpr_smart 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
+endif
+ifdef TARGET_DIRS_UNZIP
+unzip_all:
+	$(MAKE) -C unzip all
+unzip_debug:
+	$(MAKE) -C unzip debug
+unzip_examples:
+	$(MAKE) -C unzip examples
+unzip_smart:
+	$(MAKE) -C unzip smart
+unzip_shared:
+	$(MAKE) -C unzip shared
+unzip_install:
+	$(MAKE) -C unzip install
+unzip_sourceinstall:
+	$(MAKE) -C unzip sourceinstall
+unzip_exampleinstall:
+	$(MAKE) -C unzip exampleinstall
+unzip_distinstall:
+	$(MAKE) -C unzip distinstall
+unzip_zipinstall:
+	$(MAKE) -C unzip zipinstall
+unzip_zipsourceinstall:
+	$(MAKE) -C unzip zipsourceinstall
+unzip_zipexampleinstall:
+	$(MAKE) -C unzip zipexampleinstall
+unzip_zipdistinstall:
+	$(MAKE) -C unzip zipdistinstall
+unzip_clean:
+	$(MAKE) -C unzip clean
+unzip_distclean:
+	$(MAKE) -C unzip distclean
+unzip_cleanall:
+	$(MAKE) -C unzip cleanall
+unzip_info:
+	$(MAKE) -C unzip info
+unzip:
+	$(MAKE) -C unzip all
+.PHONY: unzip_all unzip_debug unzip_examples unzip_smart 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
+endif
+all: fpc_all $(addsuffix _all,$(TARGET_DIRS))
+debug: fpc_debug $(addsuffix _debug,$(TARGET_DIRS))
+examples: fpc_examples $(addsuffix _examples,$(TARGET_DIRS))
+smart: fpc_smart $(addsuffix _smart,$(TARGET_DIRS))
+shared: fpc_shared $(addsuffix _shared,$(TARGET_DIRS))
+install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
+sourceinstall: fpc_sourceinstall $(addsuffix _sourceinstall,$(TARGET_DIRS))
+exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS))
+distinstall: fpc_distinstall $(addsuffix _distinstall,$(TARGET_DIRS))
+zipinstall: $(addsuffix _zipinstall,$(TARGET_DIRS))
+zipsourceinstall: $(addsuffix _zipsourceinstall,$(TARGET_DIRS))
+zipexampleinstall: $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
+zipdistinstall: $(addsuffix _zipdistinstall,$(TARGET_DIRS))
+clean: fpc_clean $(addsuffix _clean,$(TARGET_DIRS))
+distclean: fpc_distclean $(addsuffix _distclean,$(TARGET_DIRS))
+cleanall: fpc_cleanall $(addsuffix _cleanall,$(TARGET_DIRS))
+info: fpc_info $(addsuffix _info,$(TARGET_DIRS))
+.PHONY: all debug examples smart shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif
-

+ 7 - 44
packages/Makefile.fpc

@@ -2,54 +2,17 @@
 #   Makefile.fpc for Free Pascal Packages
 #
 
-[targets]
+[target]
 dirs_linux=zlib ncurses x11 gtk syslog \
            inet uncgi \
-           mysql ibase postgres \
+           mysql ibase postgres oracle \
            opengl forms svgalib ggi \
-           utmp paszlib gdbint cmem regexpr zip
-dirs_win32=uncgi gtk gdbint ibase mysql zlib paszlib zip regexpr opengl
-dirs_go32v2=uncgi gdbint paszlib zip regexpr
-dirs_os2=uncgi paszlib zip regexpr
+           utmp paszlib gdbint cmem regexpr unzip
+dirs_win32=uncgi gtk gdbint ibase mysql zlib paszlib unzip regexpr opengl
+dirs_go32v2=uncgi gdbint paszlib unzip regexpr
+dirs_os2=uncgi paszlib unzip regexpr
 dirs_freebsd=zlib ncurses x11 gtk syslog \
            inet uncgi \
            mysql ibase postgres \
            opengl forms svgalib ggi \
-           utmp paszlib gdbint cmem regexpr zip
-
-pkgs_linux=base{zlib,ncurses,x11,regexpr} \
-           gtk{gtk} \
-           net{inet,uncgi} \
-           db{mysql,ibase,postgres} \
-           gfx{opengl,forms,svgalib,ggi} \
-           misc{utmp,syslog,gdbint,paszlib,zip}
-pkgs_freebsd=base{zlib,ncurses,x11,regexpr} \
-           gtk{gtk} \
-           net{inet,uncgi} \
-           db{mysql,ibase,postgres} \
-           gfx{opengl,forms,svgalib,ggi} \
-           misc{utmp,syslog,gdbint,paszlib,zip}
-# We use shorternames due the 8.3 limit of fat16
-pkgs_win32=bas{paszlib,regexpr} \
-           gtk{gtk} \
-           net{uncgi} \
-           db{ibase,mysql} \
-           gfx{opengl} \
-           mis{gdbint,zip}
-pkgs_go32v2=bas{paszlib,regexpr} \
-            net{uncgi} \
-            mis{gdbint,zip}
-pkgs_os2=bas{paszlib,regexpr} \
-            net{uncgi} \
-            mis{zip}
-
-[install]
-packagename=packages
-sourcesubdirs=0
-examplesubdirs=1
-
-[sections]
-none=1
-zipsourceinstall=1
-zipexampleinstall=1
-
+           utmp paszlib gdbint cmem regexpr unzip

File diff suppressed because it is too large
+ 172 - 549
packages/cmem/Makefile


+ 6 - 11
packages/cmem/Makefile.fpc

@@ -1,16 +1,11 @@
 #
-#   Makefile.fpc for InterBase bindings
+#   Makefile.fpc for C Memory Manager
 #
 
-[targets]
+[package]
+name=cmem
+version=1.0.5
+
+[target]
 units=cmem
 examples=testcmem
-
-[install]
-examplesubdir=cmem
-
-[dirs]
-fpcdir=../..
-
-[rules]
-testcmem$(EXEEXT): testcmem.pp cmem$(PPUEXT)

File diff suppressed because it is too large
+ 219 - 592
packages/forms/Makefile


+ 6 - 7
packages/forms/Makefile.fpc

@@ -2,16 +2,15 @@
 #   Makefile.fpc for Forms Bindings
 #
 
-[targets]
+[package]
+name=forms
+version=1.0.5
+
+[target]
 units=forms
 programs=fd2pascal
 exampledirs=demo
 
-[install]
-examplesubdir=forms
-
 [require]
 packages=x11
-
-[dirs]
-fpcdir=../..
+libc=y

File diff suppressed because it is too large
+ 207 - 478
packages/forms/demo/Makefile


+ 2 - 8
packages/forms/demo/Makefile.fpc

@@ -2,7 +2,7 @@
 #   Makefile.fpc for Forms Examples
 #
 
-[targets]
+[target]
 programs=pushme yesno pushbutton touchbutton minput inputall choice butttypes \
          colsel colsel1 buttonall chartall positioner secretinput cursor fdial \
          ldial ndial invslider sliderall borderwidth boxtype xyplotover \
@@ -11,10 +11,4 @@ programs=pushme yesno pushbutton touchbutton minput inputall choice butttypes \
          objinactive objpos newbutton multilabel objreturn
 
 [require]
-packages=forms x11
-
-[libs]
-libother=1
-
-[dirs]
-fpcdir=../../..
+packages=forms

File diff suppressed because it is too large
+ 181 - 568
packages/gdbint/Makefile


+ 10 - 11
packages/gdbint/Makefile.fpc

@@ -2,27 +2,26 @@
 #   Makefile.fpc for Free Pascal GDB Interface
 #
 
-[targets]
+[package]
+name=gdbint
+version=1.0.5
+
+[target]
 units=gdbint gdbcon
 examples=testgdb symify
 
-[install]
-examplesubdir=gdbint
-
-[dirs]
-fpcdir=../..
-targetdir=.
+[compiler]
 objdir=libgdb/$(OS_TARGET)
 libdir=libgdb/$(OS_TARGET)
 
-[libs]
-libgcc=1
+[require]
+libc=y
 
 
 [rules]
-gdbint$(PPUEXT): gdbint$(PASEXT)
+gdbint$(PPUEXT): gdbint.pp
 
-gdbcon$(PPUEXT): gdbcon$(PASEXT) gdbint$(PPUEXT)
+gdbcon$(PPUEXT): gdbcon.pp gdbint$(PPUEXT)
 
 ifeq ($(OS_TARGET),go32v2)
 DBGCOM=dbgcom$(OEXT)

+ 605 - 130
packages/gdbint/libgdb/Makefile

@@ -1,20 +1,8 @@
 #
-# Makefile generated by fpcmake v1.00 [2000/12/19]
+# Don't edit, this file is generated by fpcmake v1.99.0 [2001/01/29]
 #
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
+default: all
 override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
@@ -30,9 +18,6 @@ endif
 else
 PWD:=$(firstword $(PWD))
 endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
 ifndef inUnix
 ifeq ($(OS),Windows_NT)
 inWinNT=1
@@ -42,35 +27,36 @@ inOS2=1
 endif
 endif
 endif
-
-# The extension of executables
 ifdef inUnix
 SRCEXEEXT=
 else
 SRCEXEEXT=.exe
 endif
-
-# The path which is searched separated by spaces
+ifdef inUnix
+BATCHEXT=.sh
+else
+ifdef inOS2
+BATCHEXT=.cmd
+else
+BATCHEXT=.bat
+endif
+endif
+ifdef inUnix
+PATHSEP=/
+else
+PATHSEP=$(subst /,\,/)
+endif
 ifdef inUnix
 SEARCHPATH=$(subst :, ,$(PATH))
 else
 SEARCHPATH=$(subst ;, ,$(PATH))
 endif
-
-# Base dir
 ifdef PWD
 BASEDIR:=$(shell $(PWD))
 else
 BASEDIR=.
 endif
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
 ifndef FPC
-# Compatibility with old makefiles
 ifdef PP
 FPC=$(PP)
 else
@@ -79,39 +65,22 @@ endif
 endif
 override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
 override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
 ifndef OS_TARGET
 OS_TARGET:=$(shell $(FPC) -iTO)
 endif
-
-# Source OS
 ifndef OS_SOURCE
 OS_SOURCE:=$(shell $(FPC) -iSO)
 endif
-
-# Target CPU
 ifndef CPU_TARGET
 CPU_TARGET:=$(shell $(FPC) -iTP)
 endif
-
-# Source CPU
 ifndef CPU_SOURCE
 CPU_SOURCE:=$(shell $(FPC) -iSP)
 endif
-
-# FPC version
 ifndef FPC_VERSION
 FPC_VERSION:=$(shell $(FPC) -iV)
 endif
-
 export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(FPCDIR)/rtl),)
@@ -122,8 +91,6 @@ endif
 else
 override FPCDIR=wrong
 endif
-
-# Detect FPCDIR
 ifeq ($(FPCDIR),wrong)
 ifdef inUnix
 override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
@@ -145,45 +112,221 @@ endif
 endif
 endif
 endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-
-# Clean
-
-
-# Install
-
-ZIPTARGET=install
-
-# Defaults
-
-
-# Directories
-
-
-# Packages
-
-
-# Libraries
-
-
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
+override FPCDIR:=$(wildcard $(FPCDIR))
+UNITSDIR=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+PACKAGESDIR=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
+ifndef ECHO
+ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ECHO),)
+ECHO:=echo
+else
+ECHO:=$(firstword $(ECHO))
+endif
+else
+ECHO:=$(firstword $(ECHO))
+endif
+endif
+ifndef COPY
+COPY:=cp -fp
+endif
+ifndef COPYTREE
+COPYTREE:=cp -rfp
+endif
+ifndef MOVE
+MOVE:=mv -f
+endif
+ifndef DEL
+DEL:=rm -f
+endif
+ifndef DELTREE
+DELTREE:=rm -rf
+endif
+ifndef INSTALL
+ifdef inUnix
+INSTALL:=install -c -m 644
+else
+INSTALL:=$(COPY)
+endif
+endif
+ifndef INSTALLEXE
+ifdef inUnix
+INSTALLEXE:=install -c -m 755
+else
+INSTALLEXE:=$(COPY)
+endif
+endif
+ifndef MKDIR
+ifdef inUnix
+MKDIR:=install -m 755 -d
+else
+MKDIR:=ginstall -m 755 -d
+endif
+endif
+export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
+ifndef AS
+AS=as
+endif
+ifndef LD
+LD=ld
+endif
+PPAS=$(BATCHEXT)
+ifdef inUnix
+LDCONFIG=ldconfig
+else
+LDCONFIG=
+endif
+ifndef PPUMOVE
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUMOVE),)
+PPUMOVE=
+else
+PPUMOVE:=$(firstword $(PPUMOVE))
+endif
+endif
+export PPUMOVE
+ifndef PPUFILES
+PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(PPUFILES),)
+PPUFILES=
+else
+PPUFILES:=$(firstword $(PPUFILES))
+endif
+endif
+export PPUFILES
+ifndef DATE
+DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(DATE),)
+DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEACHPATH))))
+ifeq ($(DATE),)
+DATE=
+else
+DATE:=$(firstword $(DATE))
+endif
+else
+DATE:=$(firstword $(DATE))
+endif
+endif
+export DATE
+ifdef DATE
+DATESTR:=$(shell $(DATE) +%Y%m%d)
+else
+DATESTR=
+endif
+ifndef UPXPROG
+ifeq ($(OS_TARGET),go32v2)
+UPXPROG:=1
+endif
+ifeq ($(OS_TARGET),win32)
+UPXPROG:=1
+endif
+ifdef UPXPROG
+UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(UPXPROG),)
+UPXPROG=
+else
+UPXPROG:=$(firstword $(UPXPROG))
+endif
+else
+UPXPROG=
+endif
+endif
+export UPXPROG
+ifndef ZIPPROG
+ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(ZIPPROG),)
+ZIPPROG=
+else
+ZIPPROG:=$(firstword $(ZIPPROG))
+endif
+endif
+export ZIPPROG
+ZIPOPT=-9
+ZIPEXT=.zip
+ifndef TARPROG
+TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(TARPROG),)
+TARPROG=
+else
+TARPROG:=$(firstword $(TARPROG))
+endif
+endif
+export TARPROG
+ifeq ($(USETAR),bz2)
+TAROPT=vI
+TAREXT=.tar.bz2
+else
+TAROPT=vz
+TAREXT=.tar.gz
+endif
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.so
+LIBPREFIX=lib
+RSTEXT=.rst
+FPCMADE=fpcmade
+ifeq ($(OS_TARGET),go32v1)
+PPUEXT=.pp1
+OEXT=.o1
+ASMEXT=.s1
+SMARTEXT=.sl1
+STATICLIBEXT=.a1
+SHAREDLIBEXT=.so1
+LIBPREFIX=
+FPCMADE=fpcmade.v1
+PACKAGESUFFIX=v1
+endif
+ifeq ($(OS_TARGET),go32v2)
+LIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=go32
+endif
+ifeq ($(OS_TARGET),linux)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.lnx
+ZIPSUFFIX=linux
+endif
+ifeq ($(OS_TARGET),freebsd)
+EXEEXT=
+HASSHAREDLIB=1
+FPCMADE=fpcmade.freebsd
+ZIPSUFFIX=freebsd
+endif
+ifeq ($(OS_TARGET),win32)
+PPUEXT=.ppw
+OEXT=.ow
+ASMEXT=.sw
+SMARTEXT=.slw
+STATICLIBEXT=.aw
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.w32
+ZIPSUFFIX=w32
+endif
+ifeq ($(OS_TARGET),os2)
+PPUEXT=.ppo
+ASMEXT=.so2
+OEXT=.oo2
+SMARTEXT=.so
+STATICLIBEXT=.ao2
+SHAREDLIBEXT=.dll
+FPCMADE=fpcmade.os2
+ZIPSUFFIX=emx
+endif
+ifdef REQUIRE_UNITSDIR
+override UNITSDIR+=$(REQUIRE_UNITSDIR)
+endif
+ifdef REQUIRE_PACKAGESDIR
+override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
+endif
+ifdef ZIPINSTALL
 ifeq ($(OS_TARGET),linux)
 UNIXINSTALLDIR=1
 endif
@@ -191,7 +334,6 @@ ifeq ($(OS_TARGET),freebsd)
 UNIXINSTALLDIR=1
 endif
 else
-# Normal install
 ifeq ($(OS_SOURCE),linux)
 UNIXINSTALLDIR=1
 endif
@@ -199,55 +341,388 @@ ifeq ($(OS_SOURCE),freebsd)
 UNIXINSTALLDIR=1
 endif
 endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
+ifndef INSTALL_PREFIX
 ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
+INSTALL_PREFIX=/usr/local
 else
-PREFIXINSTALLDIR=/pp
+INSTALL_PREFIX=/pp
 endif
 endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
+export INSTALL_PREFIX
+ifndef DIST_DESTDIR
+DIST_DESTDIR:=$(BASEDIR)
 endif
-export DESTZIPDIR
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
+export DIST_DESTDIR
+ifndef INSTALL_BASEDIR
+ifdef UNIXINSTALLDIR
+INSTALL_BASEDIR=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
+else
+INSTALL_BASEDIR=$(INSTALL_PREFIX)
 endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
+endif
+ifndef INSTALL_BINDIR
+ifdef UNIXINSTALLDIR
+INSTALL_BINDIR=$(INSTALL_PREFIX)/bin
+else
+INSTALL_BINDIR=$(INSTALL_BASEDIR)/bin/$(OS_TARGET)
+endif
+endif
+ifndef INSTALL_UNITDIR
+INSTALL_UNITDIR=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
+ifdef PACKAGE_NAME
+INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
+endif
+endif
+ifndef INSTALL_LIBDIR
+ifdef UNIXINSTALLDIR
+INSTALL_LIBDIR=$(INSTALL_PREFIX)/lib
+else
+INSTALL_LIBDIR=$(INSTALL_UNITDIR)
+endif
+endif
+ifndef INSTALL_SOURCEDIR
+ifdef UNIXINSTALLDIR
+INSTALL_SOURCEDIR=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)
+else
+INSTALL_SOURCEDIR=$(INSTALL_BASEDIR)/source
+endif
+ifdef PACKAGE_NAME
+INSTALL_SOURCEDIR:=$(INSTALL_SOURCEDIR)/$(PACKAGE_NAME)
+endif
+endif
+ifndef INSTALL_DOCDIR
+ifdef UNIXINSTALLDIR
+INSTALL_DOCDIR=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)
+else
+INSTALL_DOCDIR=$(INSTALL_BASEDIR)/doc
+endif
+endif
+ifndef INSTALL_EXAMPLEDIR
+ifdef UNIXINSTALLDIR
+INSTALL_EXAMPLEDIR=$(INSTALL_DOCDIR)/examples
+else
+INSTALL_EXAMPLEDIR=$(INSTALL_BASEDIR)/examples
+endif
+ifdef EXAMPLESUBDIR
+INSTALL_EXAMPLEDIR:=$(INSTALL_EXAMPLEDIR)/$(EXAMPLESUBDIR)
+endif
+endif
+ifndef INSTALL_DATADIR
+INSTALL_DATADIR=$(INSTALL_BASEDIR)
+endif
+override FPCOPTDEF=$(CPU_TARGET)
+ifneq ($(OS_TARGET),$(OS_SOURCE))
+override FPCOPT+=-T$(OS_TARGET)
+endif
+ifdef UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
+endif
+ifdef LIBDIR
+override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
+endif
+ifdef OBJDIR
+override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
+endif
+ifdef INCDIR
+override FPCOPT+=$(addprefix -Fi,$(INCDIR))
+endif
+ifdef LINKSMART
+override FPCOPT+=-XX
+endif
+ifdef CREATESMART
+override FPCOPT+=-CX
+endif
+ifdef DEBUG
+override FPCOPT+=-gl
+override FPCOPTDEF+=DEBUG
+endif
+ifdef RELEASE
+override FPCOPT+=-Xs -OG2p3 -n
+override FPCOPTDEF+=RELEASE
+endif
+ifdef STRIP
+override FPCOPT+=-Xs
+endif
+ifdef OPTIMIZE
+override FPCOPT+=-OG2p3
+endif
+ifdef VERBOSE
+override FPCOPT+=-vwni
+endif
+ifdef COMPILER_OPTIONS
+override FPCOPT+=$(COMPILER_OPTIONS)
+endif
+ifdef COMPILER_UNITDIR
+override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
+endif
+ifdef COMPILER_LIBRARYDIR
+override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
+endif
+ifdef COMPILER_OBJECTDIR
+override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
+endif
+ifdef COMPILER_INCLUDEDIR
+override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
+endif
+ifdef COMPILER_TARGETDIR
+override FPCOPT+=-FE$(COMPILER_TARGETDIR)
+ifeq ($(COMPILER_TARGETDIR),.)
+override TARGETDIRPREFIX=
+else
+override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+endif
+ifdef COMPILER_UNITTARGETDIR
+override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
+ifeq ($(COMPILER_UNITTARGETDIR),.)
+override UNITTARGETDIRPREFIX=
+else
+override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
+endif
+else
+ifdef COMPILER_TARGETDIR
+override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
+override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
+endif
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+endif
+ifdef FPCOPTDEF
+override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
+endif
+ifdef CFGFILE
+override FPCOPT+=@$(CFGFILE)
+endif
+ifeq ($(OS_SOURCE),win32)
+override FPCEXTCMD:=$(FPCOPT)
+override FPCOPT:=!FPCEXTCMD
+export FPCEXTCMD
+endif
+override COMPILER:=$(FPC) $(FPCOPT)
+ifeq (,$(findstring -s ,$(COMPILER)))
+EXECPPAS=
+else
+ifeq ($(OS_SOURCE),$(OS_TARGET))
+EXECPPAS:=@$(PPAS)
+endif
+endif
+.PHONY: fpc_packages fpc_all fpc_smart fpc_debug
+$(FPCMADE): $(ALLTARGET)
+	@$(ECHO) Compiled > $(FPCMADE)
+fpc_packages: $(COMPILEPACKAGES)
+fpc_all: fpc_packages $(FPCMADE)
+fpc_smart:
+	$(MAKE) all LINKSMART=1 CREATESMART=1
+fpc_debug:
+	$(MAKE) all DEBUG=1
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
+%$(PPUEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(PPUEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pp
+	$(COMPILER) $<
+	$(EXECPPAS)
+%$(EXEEXT): %.pas
+	$(COMPILER) $<
+	$(EXECPPAS)
+vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
+vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
+.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
+ifdef INSTALL_UNITS
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
+endif
+ifdef INSTALLPPUFILES
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
+ifdef PPUFILES
+INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
+else
+INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
+endif
+override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
+endif
+ifdef INSTALLEXEFILES
+override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
+endif
+fpc_install: $(INSTALLTARGET)
+ifdef INSTALLEXEFILES
+	$(MKDIR) $(INSTALL_BINDIR)
+ifdef UPXPROG
+	-$(UPXPROG) $(INSTALLEXEFILES)
+endif
+	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
+endif
+ifdef INSTALLPPUFILES
+	$(MKDIR) $(INSTALL_UNITDIR)
+	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
+ifneq ($(INSTALLPPULINKFILES),)
+	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
+endif
+ifneq ($(wildcard $(LIB_FULLNAME)),)
+	$(MKDIR) $(INSTALL_LIBDIR)
+	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
+ifdef inUnix
+	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
+endif
+endif
+endif
+ifdef INSTALL_FILES
+	$(MKDIR) $(INSTALL_DATADIR)
+	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
+endif
+fpc_sourceinstall: distclean
+	$(MKDIR) $(INSTALL_SOURCEDIR)
+	$(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
+fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
+ifdef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
+endif
+ifdef TARGET_EXAMPLEDIRS
+ifndef EXAMPLESOURCEFILES
+	$(MKDIR) $(INSTALL_EXAMPLEDIR)
+endif
+	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
+endif
+fpc_distinstall: fpc_install fpc_exampleinstall
+.PHONY: fpc_clean fpc_cleanall fpc_distclean
+ifdef EXEFILES
+override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
+endif
+ifdef CLEAN_UNITS
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
+endif
+ifdef CLEANPPUFILES
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+ifdef PPUFILES
+CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
+else
+CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
+endif
+override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
+endif
+fpc_clean: $(CLEANTARGET)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+ifdef CLEAN_FILES
+	-$(DEL) $(CLEAN_FILES)
+endif
+ifdef LIB_NAME
+	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+fpc_distclean: fpc_clean
+ifdef COMPILER_UNITTARGETDIR
+TARGETDIRCLEAN=fpc_clean
+endif
+fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+ifdef CLEANEXEFILES
+	-$(DEL) $(CLEANEXEFILES)
+endif
+	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+	-$(DELTREE) *$(SMARTEXT)
+	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
+.PHONY: fpc_info
+fpc_info:
+	@$(ECHO)
+	@$(ECHO)  == Package info ==
+	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
+	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
+	@$(ECHO)
+	@$(ECHO)  == Configuration info ==
+	@$(ECHO)
+	@$(ECHO)  FPC.......... $(FPC)
+	@$(ECHO)  FPC Version.. $(FPC_VERSION)
+	@$(ECHO)  Source CPU... $(CPU_SOURCE)
+	@$(ECHO)  Target CPU... $(CPU_TARGET)
+	@$(ECHO)  Source OS.... $(OS_SOURCE)
+	@$(ECHO)  Target OS.... $(OS_TARGET)
+	@$(ECHO)
+	@$(ECHO)  == Directory info ==
+	@$(ECHO)
+	@$(ECHO)  Basedir......... $(BASEDIR)
+	@$(ECHO)  FPCDir.......... $(FPCDIR)
+	@$(ECHO)  UnitsDir........ $(UNITSDIR)
+	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
+	@$(ECHO)
+	@$(ECHO)  GCC library..... $(GCCLIBDIR)
+	@$(ECHO)  Other library... $(OTHERLIBDIR)
+	@$(ECHO)
+	@$(ECHO)  == Tools info ==
+	@$(ECHO)
+	@$(ECHO)  Pwd....... $(PWD)
+	@$(ECHO)  Echo...... $(ECHO)
+	@$(ECHO)  PPUMove... $(PPUMOVE)
+	@$(ECHO)  PPUFiles.. $(PPUFILES)
+	@$(ECHO)  Date...... $(DATE)
+	@$(ECHO)  Upx....... $(UPXPROG)
+	@$(ECHO)  Zip....... $(ZIPPROG)
+	@$(ECHO)
+	@$(ECHO)  == Object info ==
+	@$(ECHO)
+	@$(ECHO)  Target Loaders...... $(TARGET_LOADERS)
+	@$(ECHO)  Target Units........ $(TARGET_UNITS)
+	@$(ECHO)  Target Programs..... $(TARGET_PROGRAMS)
+	@$(ECHO)  Target Dirs......... $(TARGET_DIRS)
+	@$(ECHO)  Target Examples..... $(TARGET_EXAMPLES)
+	@$(ECHO)  Target ExampleDirs.. $(TARGET_EXAMPLEDIRS)
+	@$(ECHO)
+	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
+	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
+	@$(ECHO)
+	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
+	@$(ECHO)  Install Files....... $(INSTALL_FILES)
+	@$(ECHO)
+	@$(ECHO)  == Install info ==
+	@$(ECHO)
+	@$(ECHO)  DateStr.............. $(DATESTR)
+	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
+	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
+	@$(ECHO)
+	@$(ECHO)  INSTALL_BASEDIR...... $(INSTALL_BASEDIR)
+	@$(ECHO)  INSTALL_BINDIR....... $(INSTALL_BINDIR)
+	@$(ECHO)  INSTALL_LIBDIR....... $(INSTALL_LIBDIR)
+	@$(ECHO)  INSTALL_UNITDIR...... $(INSTALL_UNITDIR)
+	@$(ECHO)  INSTALL_SOURCEDIR.... $(INSTALL_SOURCEDIR)
+	@$(ECHO)  INSTALL_DOCDIR....... $(INSTALL_DOCDIR)
+	@$(ECHO)  INSTALL_DATADIR...... $(INSTALL_DATADIR)
+	@$(ECHO)
+	@$(ECHO)  DIST_DESTDIR......... $(DIST_DESTDIR)
+	@$(ECHO)  DIST_ZIPNAME......... $(DIST_ZIPNAME)
+	@$(ECHO)
+debug: fpc_debug
+examples: fpc_examples
+smart: fpc_smart
+shared: fpc_shared
+install: fpc_install
+sourceinstall: fpc_sourceinstall
+exampleinstall: fpc_exampleinstall
+distinstall: fpc_distinstall
+zipinstall:
+zipsourceinstall:
+zipexampleinstall:
+zipdistinstall:
+clean: fpc_clean
+distclean: fpc_distclean
+cleanall: fpc_cleanall
+info: fpc_info
+.PHONY: debug examples smart shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif
-
-#####################################################################
-# Users rules
-#####################################################################
-
 all:
 	$(MAKE) -C $(OS_TARGET) all

File diff suppressed because it is too large
+ 187 - 549
packages/ggi/Makefile


+ 7 - 6
packages/ggi/Makefile.fpc

@@ -2,12 +2,13 @@
 #   Makefile.fpc for GGI Bindings
 #
 
-[targets]
+[package]
+name=ggi
+version=1.0.5
+
+[target]
 units=gii ggi ggi2d
 examples=ggi1
 
-[install]
-examplesubdir=ggi
-
-[dirs]
-fpcdir=../..
+[require]
+libc=y

File diff suppressed because it is too large
+ 190 - 555
packages/gtk/Makefile


+ 15 - 11
packages/gtk/Makefile.fpc

@@ -2,16 +2,20 @@
 #   Makefile.fpc for Free Pascal GTK 1.2.x Bindings
 #
 
-[targets]
+[package]
+name=gtk
+version=1.0.5
+
+[require]
+libc=y
+
+[target]
+dirs=gtkgl
 units=glib gmodule gdk gtk
 exampledirs=examples
 
-[install]
-examplesubdir=gtk
-
-[dirs]
-fpcdir=../..
-sourcesdir=glib gdk gtk
+[compiler]
+sourcedir=glib gdk gtk
 targetdir=.
 
 [libs]
@@ -19,10 +23,10 @@ libname=libfpgtk.so
 libversion=1.0
 
 [rules]
-glib$(PPUEXT): $(wildcard glib/glib*$(PASEXT))
+glib$(PPUEXT): $(wildcard glib/glib*.pp)
 
-gmodule$(PPUEXT): $(wildcard glib/gmodule*$(PASEXT)) glib$(PPUEXT)
+gmodule$(PPUEXT): $(wildcard glib/gmodule*.pp) glib$(PPUEXT)
 
-gdk$(PPUEXT): $(wildcard gdk/gdk*$(PASEXT)) glib$(PPUEXT)
+gdk$(PPUEXT): $(wildcard gdk/gdk*.pp) glib$(PPUEXT)
 
-gtk$(PPUEXT): $(wildcard gtk/gtk*$(PASEXT)) gdk$(PPUEXT)
+gtk$(PPUEXT): $(wildcard gtk/gtk*.pp) gdk$(PPUEXT)

File diff suppressed because it is too large
+ 203 - 590
packages/gtk/examples/Makefile


+ 1 - 9
packages/gtk/examples/Makefile.fpc

@@ -2,7 +2,7 @@
 #   Makefile.fpc for Free Pascal GTK 1.2.x Examples
 #
 
-[targets]
+[target]
 dirs=tutorial
 programs=entry notebook scribble clist ttt_test pixmap list progressbar filesel
 
@@ -11,11 +11,3 @@ packages=gtk
 
 [clean]
 units=tictactoe
-
-[dirs]
-fpcdir=../../..
-targetdir=.
-
-[libs]
-libgcc=1
-libother=1

File diff suppressed because it is too large
+ 170 - 593
packages/gtk/examples/tutorial/Makefile


+ 1 - 9
packages/gtk/examples/tutorial/Makefile.fpc

@@ -3,15 +3,7 @@
 #
 
 [targets]
-programs=$(subst $(PASEXT),,$(wildcard tut*$(PASEXT)))
+programs=$(subst .pp,,$(wildcard tut*.pp))
 
 [require]
 packages=gtk
-
-[dirs]
-fpcdir=../../../..
-targetdir=.
-
-[libs]
-libgcc=1
-libother=1

File diff suppressed because it is too large
+ 187 - 549
packages/ibase/Makefile


+ 7 - 6
packages/ibase/Makefile.fpc

@@ -2,15 +2,16 @@
 #   Makefile.fpc for InterBase bindings
 #
 
-[targets]
+[package]
+name=ibase
+version=1.0.5
+
+[target]
 units=ibase40 ibase60
 examples=testib40 testib60
 
-[install]
-examplesubdir=ibase
-
-[dirs]
-fpcdir=../..
+[require]
+libc=y
 
 [rules]
 testib40$(EXEEXT): testib40.pp ibase40$(PPUEXT)

File diff suppressed because it is too large
+ 172 - 549
packages/inet/Makefile


+ 5 - 12
packages/inet/Makefile.fpc

@@ -2,17 +2,10 @@
 #   Makefile.fpc for Internet Units
 #
 
-[targets]
+[package]
+name=inet
+version=1.0.5
+
+[target]
 units=inet
 examples=testinet pfinger
-
-[install]
-examplesubdir=inet
-
-[dirs]
-fpcdir=../..
-
-[rules]
-testinet$(EXEEXT): testinet$(PASEXT) inet$(PPUEXT)
-
-pfinger$(EXEEXT): pfinger$(PASEXT) inet$(PPUEXT)

File diff suppressed because it is too large
+ 187 - 549
packages/mysql/Makefile


+ 7 - 10
packages/mysql/Makefile.fpc

@@ -2,17 +2,14 @@
 #   Makefile.fpc for MySql bindings
 #
 
-[targets]
+[package]
+name=mysql
+version=1.0.5
+
+[target]
 units=mysql_com mysql_version mysql
 examples=testdb
 
-[install]
-examplesubdir=mysql
-
-[dirs]
-fpcdir=../..
-
-[rules]
-mysql$(PPUEXT): mysql$(PASEXT) mysql_com$(PPUEXT)
+[require]
+libc=y
 
-testdb$(EXEEXT): testdb$(PASEXT) mysql$(PPUEXT)

File diff suppressed because it is too large
+ 187 - 549
packages/ncurses/Makefile


+ 7 - 11
packages/ncurses/Makefile.fpc

@@ -2,18 +2,14 @@
 #   Makefile.fpc for NCurses bindings
 #
 
-[targets]
+[package]
+name=ncurses
+version=1.0.5
+
+[target]
 units=ncurses panel ncrt ocrt menu
 examples=firework testn ocrt_demo edit_demo db_demo screen_demo
 
-[install]
-examplesubdir=ncurses
-
-[dirs]
-fpcdir=../..
-
-
-[rules]
-testn$(EXEEXT): testn$(PASEXT) ncurses$(PPUEXT)
+[require]
+libc=y
 
-firework$(EXEEXT): firework$(PASEXT) ncurses$(PPUEXT)

File diff suppressed because it is too large
+ 228 - 467
packages/opengl/Makefile


+ 15 - 6
packages/opengl/Makefile.fpc

@@ -2,11 +2,20 @@
 #   Makefile.fpc for OpenGL for FPC
 #
 
-[targets]
-dirs_win32=win32 gtkgl
-dirs_linux=linux gtkgl
+[package]
+name=opengl
+version=1.0.5
+
+[require]
+packages_linux=x11
+libc=y
+
+[target]
+units=gl glut
+units_win32=glaux gl_sl glut_sl glaux_sl
+units_linux=glx
 exampledirs=examples
 
-[install]
-packagename=opengl
-examplesubdir=opengl
+[compiler]
+sourcedir=$(OS_TARGET)
+targetdir=$(OS_TARGET)

File diff suppressed because it is too large
+ 233 - 445
packages/opengl/build/Makefile


+ 3 - 5
packages/opengl/build/Makefile.fpc

@@ -2,18 +2,16 @@
 #   Makefile.fpc for auto generation of OpenGL units
 #
 
-[targets]
+[target]
 units=buildgl
 programs=c_gen
 
 [require]
 packages=fcl
 
-[dirs]
-fpcdir=../../..
+[default]
+rule=all_units
 
-[defaults]
-defaultrule=all_units
 
 [rules]
 .PHONY: all_units linux win32 w32d w32s

File diff suppressed because it is too large
+ 204 - 492
packages/opengl/examples/Makefile


+ 1 - 9
packages/opengl/examples/Makefile.fpc

@@ -2,16 +2,8 @@
 #   Makefile.fpc for GL demos
 #
 
-[targets]
+[target]
 programs=glutdemo morph3d bounce
 
 [require]
 packages=opengl
-packages_linux=x11
-
-[dirs]
-fpcdir=../../..
-
-[libs]
-libother=1
-libgcc=1

File diff suppressed because it is too large
+ 199 - 505
packages/opengl/gtkgl/Makefile


+ 0 - 1272
packages/opengl/linux/Makefile

@@ -1,1272 +0,0 @@
-#
-# Makefile generated by fpcmake v1.00 [2000/12/19]
-#
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
-override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
-ifeq ($(PWD),)
-nopwd:
-	@echo You need the GNU utils package to use this Makefile!
-	@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
-	@exit
-else
-inUnix=1
-PWD:=$(firstword $(PWD))
-endif
-else
-PWD:=$(firstword $(PWD))
-endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-endif
-
-# The extension of executables
-ifdef inUnix
-SRCEXEEXT=
-else
-SRCEXEEXT=.exe
-endif
-
-# The path which is searched separated by spaces
-ifdef inUnix
-SEARCHPATH=$(subst :, ,$(PATH))
-else
-SEARCHPATH=$(subst ;, ,$(PATH))
-endif
-
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
-#####################################################################
-# Default target
-#####################################################################
-
-override OS_TARGET:=linux
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
-ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
-FPC=ppc386
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
-ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
-endif
-
-# Source OS
-ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
-endif
-
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
-endif
-
-# FPC version
-ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
-endif
-
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
-
-# Default FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR=../../..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-endif
-
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override UNITOBJECTS+=gl glu glx glut
-
-# Clean
-
-
-# Install
-
-ZIPTARGET=install
-
-# Defaults
-
-
-# Directories
-
-
-# Packages
-
-override PACKAGES+=rtl x11
-
-# Libraries
-
-
-# Info
-
-INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=echo
-ECHOE:=echo
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-endif
-
-# To copy pograms
-ifndef COPY
-COPY:=cp -fp
-endif
-
-# Copy a whole tree
-ifndef COPYTREE
-COPYTREE:=cp -rfp
-endif
-
-# To move pograms
-ifndef MOVE
-MOVE:=mv -f
-endif
-
-# Check delete program
-ifndef DEL
-DEL:=rm -f
-endif
-
-# Check deltree program
-ifndef DELTREE
-DELTREE:=rm -rf
-endif
-
-# To install files
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=install -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-
-# To install programs
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=install -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifdef inUnix
-MKDIR:=install -m 755 -d
-else
-MKDIR:=ginstall -m 755 -d
-endif
-endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
-ifndef AS
-AS=as
-endif
-
-# linker, but probably not used
-ifndef LD
-LD=ld
-endif
-
-# ppas.bat / ppas.sh
-ifdef inUnix
-PPAS=ppas.sh
-else
-ifdef inOS2
-PPAS=ppas.cmd
-else
-PPAS=ppas.bat
-endif
-endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-
-ZIPOPT=-9
-ZIPEXT=.zip
-
-# Tar
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG=
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-
-ifeq ($(USETAR),bz2)
-TAROPT=vI
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-
-#####################################################################
-# Default extensions
-#####################################################################
-
-# Default needed extensions (Go32v2,Linux)
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
-
-# Go32v1
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
-endif
-
-# Go32v2
-ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
-endif
-
-# Linux
-ifeq ($(OS_TARGET),linux)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
-endif
-
-# Linux
-ifeq ($(OS_TARGET),freebsd)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
-endif
-
-# Win32
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
-endif
-
-# OS/2
-ifeq ($(OS_TARGET),os2)
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-SMARTEXT=.so
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
-endif
-
-# library prefix
-LIBPREFIX=lib
-ifeq ($(OS_TARGET),go32v2)
-LIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v1)
-LIBPREFIX=
-endif
-
-# determine which .pas extension is used
-ifndef PASEXT
-ifdef EXEOBJECTS
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
-else
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
-endif
-ifeq ($(TESTPAS),)
-PASEXT=.pp
-else
-PASEXT=.pas
-endif
-endif
-
-
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-PACKAGEX11=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef PACKAGEX11
-ifneq ($(wildcard $(PACKAGESDIR)/x11),)
-ifneq ($(wildcard $(PACKAGESDIR)/x11/$(OS_TARGET)),)
-PACKAGEDIR_X11=$(PACKAGESDIR)/x11/$(OS_TARGET)
-else
-PACKAGEDIR_X11=$(PACKAGESDIR)/x11
-endif
-ifeq ($(wildcard $(PACKAGEDIR_X11)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_x11
-package_x11:
-	$(MAKE) -C $(PACKAGEDIR_X11) all
-endif
-UNITDIR_X11=$(PACKAGEDIR_X11)
-else
-PACKAGEDIR_X11=
-ifneq ($(wildcard $(UNITSDIR)/x11),)
-ifneq ($(wildcard $(UNITSDIR)/x11/$(OS_TARGET)),)
-UNITDIR_X11=$(UNITSDIR)/x11/$(OS_TARGET)
-else
-UNITDIR_X11=$(UNITSDIR)/x11
-endif
-else
-UNITDIR_X11=
-endif
-endif
-ifdef UNITDIR_X11
-override NEEDUNITDIR+=$(UNITDIR_X11)
-endif
-endif
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-else
-# Normal install
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
-else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
-ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
-else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
-endif
-endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
-ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
-else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
-endif
-endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
-endif
-endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
-ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
-else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
-endif
-endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
-ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
-else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
-endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
-endif
-endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
-ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
-else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
-endif
-endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
-ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
-else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
-endif
-ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
-endif
-endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
-endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
-endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-
-#####################################################################
-# Compiler Command Line
-#####################################################################
-
-# Load commandline OPTDEF and add FPC_CPU define
-override FPCOPTDEF:=-d$(CPU_TARGET)
-
-# Load commandline OPT and add target and unit dir to be sure
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-
-# User dirs should be first, so they are looked at first
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-
-# Smartlinking
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-
-# Smartlinking creation
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-
-# Debug
-ifdef DEBUG
-override FPCOPT+=-gl -dDEBUG
-endif
-
-# Release mode (strip, optimize and don't load ppc386.cfg)
-# 0.99.12b has a bug in the optimizer so don't use it by default
-ifdef RELEASE
-ifeq ($(FPC_VERSION),0.99.12)
-override FPCOPT+=-Xs -OGp3 -n
-else
-override FPCOPT+=-Xs -OG2p3 -n
-endif
-endif
-
-# Strip
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-
-# Optimizer
-ifdef OPTIMIZE
-override FPCOPT+=-OG2p3
-endif
-
-# Verbose settings (warning,note,info)
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
-ifdef UNITSDIR
-override FPCOPT+=-Fu$(UNITSDIR)
-endif
-
-# Target dirs and the prefix to use for clean/install
-ifdef TARGETDIR
-override FPCOPT+=-FE$(TARGETDIR)
-ifeq ($(TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(TARGETDIR)/
-endif
-endif
-ifdef UNITTARGETDIR
-override FPCOPT+=-FU$(UNITTARGETDIR)
-ifeq ($(UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(TARGETDIR)/
-endif
-else
-ifdef TARGETDIR
-override UNITTARGETDIR=$(TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-
-# Add commandline options last so they can override
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-
-# Add defines from FPCOPTDEF to FPCOPT
-ifdef FPCOPTDEF
-override FPCOPT+=$(FPCOPTDEF)
-endif
-
-# Error file ?
-ifdef ERRORFILE
-override FPCOPT+=-Fr$(ERRORFILE)
-endif
-
-# Was a config file specified ?
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-
-# For win32 the options are passed using the environment FPCEXTCMD
-ifeq ($(OS_SOURCE),win32)
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-
-# Compiler commandline
-override COMPILER:=$(FPC) $(FPCOPT)
-
-# also call ppas if with command option -s
-# but only if the OS_SOURCE and OS_TARGE are equal
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(OS_SOURCE),$(OS_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: fpc_all
-
-debug: fpc_debug
-
-smart: fpc_smart
-
-shared: fpc_shared
-
-showinstall: fpc_showinstall
-
-install: fpc_install
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: fpc_clean
-
-distclean: fpc_distclean
-
-cleanall: fpc_cleanall
-
-info: fpc_info
-
-.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall info
-
-#####################################################################
-# Units
-#####################################################################
-
-.PHONY: fpc_units
-
-override ALLTARGET+=fpc_units
-
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
-override INSTALLPPUFILES+=$(UNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES)
-
-fpc_units: $(UNITPPUFILES)
-
-#####################################################################
-# General compile rules
-#####################################################################
-
-.PHONY: fpc_packages fpc_all fpc_debug
-
-$(FPCMADE): $(ALLTARGET)
-	@$(ECHO) Compiled > $(FPCMADE)
-
-fpc_packages: $(COMPILEPACKAGES)
-
-fpc_all: fpc_packages $(FPCMADE)
-
-fpc_debug:
-	$(MAKE) all DEBUG=1
-
-# Search paths for .ppu if targetdir is set
-ifdef UNITTARGETDIR
-vpath %$(PPUEXT) $(UNITTARGETDIR)
-endif
-
-# General compile rules, available for both possible PASEXT
-
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
-
-%$(PPUEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(PPUEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-#####################################################################
-# Library
-#####################################################################
-
-.PHONY: fpc_smart fpc_shared
-
-ifdef LIBVERSION
-LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
-else
-LIBFULLNAME=$(LIBNAME)
-endif
-
-# Default sharedlib units are all unit objects
-ifndef SHAREDLIBUNITOBJECTS
-SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
-endif
-
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-
-fpc_shared: all
-ifdef HASSHAREDLIB
-ifndef LIBNAME
-	@$(ECHO) "LIBNAME not set"
-else
-	$(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
-endif
-else
-	@$(ECHO) "Shared Libraries not supported"
-endif
-
-#####################################################################
-# Install rules
-#####################################################################
-
-.PHONY: fpc_showinstall fpc_install
-
-ifdef EXTRAINSTALLUNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
-endif
-
-ifdef INSTALLPPUFILES
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
-ifdef PPUFILES
-INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
-else
-INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
-endif
-override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
-endif
-
-ifdef INSTALLEXEFILES
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
-endif
-
-fpc_showinstall: $(SHOWINSTALLTARGET)
-ifdef INSTALLEXEFILES
-	@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
-endif
-ifdef INSTALLPPUFILES
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
-ifneq ($(INSTALLPPULINKFILES),)
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
-ifdef HASSHAREDLIB
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
-endif
-
-fpc_install: $(INSTALLTARGET)
-# Create UnitInstallFiles
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(BININSTALLDIR)
-# Compress the exes if upx is defined
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
-ifdef inUnix
-	ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	$(MKDIR) $(DATAINSTALLDIR)
-	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
-endif
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
-endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
-endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
-endif
-endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
-else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Clean rules
-#####################################################################
-
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-
-ifdef EXTRACLEANUNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
-endif
-
-ifdef CLEANPPUFILES
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-# Get the .o and .a files created for the units
-ifdef PPUFILES
-CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
-else
-CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
-endif
-override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
-endif
-
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef EXTRACLEANFILES
-	-$(DEL) $(EXTRACLEANFILES)
-endif
-ifdef LIBNAME
-	-$(DEL) $(LIBNAME) $(LIBFULLNAME)
-endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-fpc_distclean: fpc_clean
-
-# Also run clean first if targetdir is set. Unittargetdir is always
-# set if targetdir or unittargetdir is specified
-ifdef UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-#####################################################################
-# Info rules
-#####################################################################
-
-.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
-	fpc_dirinfo
-
-fpc_info: $(INFOTARGET)
-
-fpc_infocfg:
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC....... $(FPC)
-	@$(ECHO)  Version... $(FPC_VERSION)
-	@$(ECHO)  CPU....... $(CPU_TARGET)
-	@$(ECHO)  Source.... $(OS_SOURCE)
-	@$(ECHO)  Target.... $(OS_TARGET)
-	@$(ECHO)
-
-fpc_infoobjects:
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  LoaderObjects..... $(LOADEROBJECTS)
-	@$(ECHO)  UnitObjects....... $(UNITOBJECTS)
-	@$(ECHO)  ExeObjects........ $(EXEOBJECTS)
-	@$(ECHO)
-	@$(ECHO)  ExtraCleanUnits... $(EXTRACLEANUNITS)
-	@$(ECHO)  ExtraCleanFiles... $(EXTRACLEANFILES)
-	@$(ECHO)
-	@$(ECHO)  ExtraInstallUnits. $(EXTRAINSTALLUNITS)
-	@$(ECHO)  ExtraInstallFiles. $(EXTRAINSTALLFILES)
-	@$(ECHO)
-
-fpc_infoinstall:
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-ifdef DATE
-	@$(ECHO)  DateStr.............. $(DATESTR)
-endif
-ifdef PACKAGEPREFIX
-	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
-endif
-ifdef PACKAGENAME
-	@$(ECHO)  PackageName.......... $(PACKAGENAME)
-endif
-	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
-	@$(ECHO)
-	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
-	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
-	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
-	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
-	@$(ECHO)  SourceInstallDir..... $(SOURCEINSTALLDIR)
-	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
-	@$(ECHO)  DataInstallDir....... $(DATAINSTALLDIR)
-	@$(ECHO)
-	@$(ECHO)  DestZipDir........... $(DESTZIPDIR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-

+ 0 - 15
packages/opengl/linux/Makefile.fpc

@@ -1,15 +0,0 @@
-#
-#   Makefile.fpc for Linux dynamic GL units
-#
-
-[defaults]
-defaulttarget=linux
-
-[targets]
-units=gl glu glx glut
-
-[require]
-packages=x11
-
-[dirs]
-fpcdir=../../..

+ 0 - 1272
packages/opengl/win32/Makefile

@@ -1,1272 +0,0 @@
-#
-# Makefile generated by fpcmake v1.00 [2000/12/19]
-#
-
-defaultrule: all
-
-#####################################################################
-# Autodetect OS (Linux or Dos or Windows NT or OS/2)
-# define inUnix when running under Unix (Linux,FreeBSD)
-# define inWinNT when running under WinNT
-# define inOS2 when running under OS/2
-#####################################################################
-
-# We need only / in the path
-override PATH:=$(subst \,/,$(PATH))
-
-# Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
-ifeq ($(PWD),)
-nopwd:
-	@echo You need the GNU utils package to use this Makefile!
-	@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
-	@exit
-else
-inUnix=1
-PWD:=$(firstword $(PWD))
-endif
-else
-PWD:=$(firstword $(PWD))
-endif
-
-# Detect NT - NT sets OS to Windows_NT
-# Detect OS/2 - OS/2 has OS2_SHELL defined
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-endif
-
-# The extension of executables
-ifdef inUnix
-SRCEXEEXT=
-else
-SRCEXEEXT=.exe
-endif
-
-# The path which is searched separated by spaces
-ifdef inUnix
-SEARCHPATH=$(subst :, ,$(PATH))
-else
-SEARCHPATH=$(subst ;, ,$(PATH))
-endif
-
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
-#####################################################################
-# Default target
-#####################################################################
-
-override OS_TARGET:=win32
-
-#####################################################################
-# FPC version/target Detection
-#####################################################################
-
-# What compiler to use ?
-ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
-FPC=ppc386
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-
-# Target OS
-ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
-endif
-
-# Source OS
-ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
-endif
-
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
-endif
-
-# FPC version
-ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
-endif
-
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
-
-# Default FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR=../../..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-endif
-
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifndef PACKAGESDIR
-PACKAGESDIR=$(FPCDIR)/packages
-endif
-ifndef TOOLKITSDIR
-TOOLKITSDIR=
-endif
-ifndef COMPONENTSDIR
-COMPONENTSDIR=
-endif
-
-# Create units dir
-ifneq ($(FPCDIR),.)
-UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
-endif
-
-#####################################################################
-# User Settings
-#####################################################################
-
-
-# Targets
-
-override UNITOBJECTS+=gl glut glaux gl_sl glut_sl glaux_sl
-
-# Clean
-
-
-# Install
-
-ZIPTARGET=install
-
-# Defaults
-
-
-# Directories
-
-
-# Packages
-
-override PACKAGES+=rtl gtk
-
-# Libraries
-
-
-# Info
-
-INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall 
-
-#####################################################################
-# Shell tools
-#####################################################################
-
-# echo
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=echo
-ECHOE:=echo
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-else
-ECHO:=$(firstword $(ECHO))
-ECHOE=$(ECHO) -E
-endif
-endif
-
-# To copy pograms
-ifndef COPY
-COPY:=cp -fp
-endif
-
-# Copy a whole tree
-ifndef COPYTREE
-COPYTREE:=cp -rfp
-endif
-
-# To move pograms
-ifndef MOVE
-MOVE:=mv -f
-endif
-
-# Check delete program
-ifndef DEL
-DEL:=rm -f
-endif
-
-# Check deltree program
-ifndef DELTREE
-DELTREE:=rm -rf
-endif
-
-# To install files
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=install -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-
-# To install programs
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=install -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-
-# To make a directory.
-ifndef MKDIR
-ifdef inUnix
-MKDIR:=install -m 755 -d
-else
-MKDIR:=ginstall -m 755 -d
-endif
-endif
-
-export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-
-#####################################################################
-# Default Tools
-#####################################################################
-
-# assembler, redefine it if cross compiling
-ifndef AS
-AS=as
-endif
-
-# linker, but probably not used
-ifndef LD
-LD=ld
-endif
-
-# ppas.bat / ppas.sh
-ifdef inUnix
-PPAS=ppas.sh
-else
-ifdef inOS2
-PPAS=ppas.cmd
-else
-PPAS=ppas.bat
-endif
-endif
-
-# ldconfig to rebuild .so cache
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-
-# ppumove
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE=
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-
-# ppufiles
-ifndef PPUFILES
-PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUFILES),)
-PPUFILES=
-else
-PPUFILES:=$(firstword $(PPUFILES))
-endif
-endif
-export PPUFILES
-
-# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
-# upx uses that one itself (PFV)
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-
-# ZipProg, you can't use Zip as the var name (PFV)
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG=
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-
-ZIPOPT=-9
-ZIPEXT=.zip
-
-# Tar
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG=
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-
-ifeq ($(USETAR),bz2)
-TAROPT=vI
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-
-#####################################################################
-# Default extensions
-#####################################################################
-
-# Default needed extensions (Go32v2,Linux)
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
-
-# Go32v1
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
-endif
-
-# Go32v2
-ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
-endif
-
-# Linux
-ifeq ($(OS_TARGET),linux)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
-endif
-
-# Linux
-ifeq ($(OS_TARGET),freebsd)
-EXEEXT=
-HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
-endif
-
-# Win32
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
-endif
-
-# OS/2
-ifeq ($(OS_TARGET),os2)
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-SMARTEXT=.so
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
-endif
-
-# library prefix
-LIBPREFIX=lib
-ifeq ($(OS_TARGET),go32v2)
-LIBPREFIX=
-endif
-ifeq ($(OS_TARGET),go32v1)
-LIBPREFIX=
-endif
-
-# determine which .pas extension is used
-ifndef PASEXT
-ifdef EXEOBJECTS
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
-else
-override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
-endif
-ifeq ($(TESTPAS),)
-PASEXT=.pp
-else
-PASEXT=.pas
-endif
-endif
-
-
-# Check if the dirs really exists, else turn it off
-ifeq ($(wildcard $(UNITSDIR)),)
-UNITSDIR=
-endif
-ifeq ($(wildcard $(TOOLKITSDIR)),)
-TOOLKITSDIR=
-endif
-ifeq ($(wildcard $(PACKAGESDIR)),)
-PACKAGESDIR=
-endif
-ifeq ($(wildcard $(COMPONENTSDIR)),)
-COMPONENTSDIR=
-endif
-
-
-# PACKAGESDIR packages
-
-PACKAGERTL=1
-PACKAGEGTK=1
-
-ifdef PACKAGERTL
-ifneq ($(wildcard $(FPCDIR)/rtl),)
-ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
-PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
-else
-PACKAGEDIR_RTL=$(FPCDIR)/rtl
-endif
-ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_rtl
-package_rtl:
-	$(MAKE) -C $(PACKAGEDIR_RTL) all
-endif
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-else
-PACKAGEDIR_RTL=
-ifneq ($(wildcard $(UNITSDIR)/rtl),)
-ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
-UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
-else
-UNITDIR_RTL=$(UNITSDIR)/rtl
-endif
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override NEEDUNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef PACKAGEGTK
-ifneq ($(wildcard $(PACKAGESDIR)/gtk),)
-ifneq ($(wildcard $(PACKAGESDIR)/gtk/$(OS_TARGET)),)
-PACKAGEDIR_GTK=$(PACKAGESDIR)/gtk/$(OS_TARGET)
-else
-PACKAGEDIR_GTK=$(PACKAGESDIR)/gtk
-endif
-ifeq ($(wildcard $(PACKAGEDIR_GTK)/$(FPCMADE)),)
-override COMPILEPACKAGES+=package_gtk
-package_gtk:
-	$(MAKE) -C $(PACKAGEDIR_GTK) all
-endif
-UNITDIR_GTK=$(PACKAGEDIR_GTK)
-else
-PACKAGEDIR_GTK=
-ifneq ($(wildcard $(UNITSDIR)/gtk),)
-ifneq ($(wildcard $(UNITSDIR)/gtk/$(OS_TARGET)),)
-UNITDIR_GTK=$(UNITSDIR)/gtk/$(OS_TARGET)
-else
-UNITDIR_GTK=$(UNITSDIR)/gtk
-endif
-else
-UNITDIR_GTK=
-endif
-endif
-ifdef UNITDIR_GTK
-override NEEDUNITDIR+=$(UNITDIR_GTK)
-endif
-endif
-
-
-#####################################################################
-# Default Directories
-#####################################################################
-
-# Linux and freebsd use unix dirs with /usr/bin, /usr/lib
-# When zipping use the target as default, when normal install then
-# use the source os as default
-ifdef ZIPNAME
-# Zipinstall
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-else
-# Normal install
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-endif
-
-# set the prefix directory where to install everything
-ifndef PREFIXINSTALLDIR
-ifdef UNIXINSTALLDIR
-PREFIXINSTALLDIR=/usr
-else
-PREFIXINSTALLDIR=/pp
-endif
-endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
-endif
-export DESTZIPDIR
-
-#####################################################################
-# Install Directories
-#####################################################################
-
-# set the base directory where to install everything
-ifndef BASEINSTALLDIR
-ifdef UNIXINSTALLDIR
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
-else
-BASEINSTALLDIR=$(PREFIXINSTALLDIR)
-endif
-endif
-
-# set the directory where to install the binaries
-ifndef BININSTALLDIR
-ifdef UNIXINSTALLDIR
-BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
-else
-BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
-endif
-endif
-
-# set the directory where to install the units.
-ifndef UNITINSTALLDIR
-UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
-ifdef UNITSUBDIR
-UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
-endif
-endif
-
-# Where to install shared libraries
-ifndef LIBINSTALLDIR
-ifdef UNIXINSTALLDIR
-LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
-else
-LIBINSTALLDIR=$(UNITINSTALLDIR)
-endif
-endif
-
-# Where the source files will be stored
-ifndef SOURCEINSTALLDIR
-ifdef UNIXINSTALLDIR
-SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
-else
-SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
-endif
-ifdef SOURCESUBDIR
-SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
-endif
-endif
-
-# Where the doc files will be stored
-ifndef DOCINSTALLDIR
-ifdef UNIXINSTALLDIR
-DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
-else
-DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
-endif
-endif
-
-# Where to install the examples, under linux we use the doc dir
-# because the copytree command will create a subdir itself
-ifndef EXAMPLEINSTALLDIR
-ifdef UNIXINSTALLDIR
-EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
-else
-EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
-endif
-ifdef EXAMPLESUBDIR
-EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
-endif
-endif
-
-# Where the some extra (data)files will be stored
-ifndef DATAINSTALLDIR
-DATAINSTALLDIR=$(BASEINSTALLDIR)
-endif
-
-#####################################################################
-# Redirection
-#####################################################################
-
-ifndef REDIRFILE
-REDIRFILE=log
-endif
-
-ifdef REDIR
-ifndef inUnix
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
-
-
-#####################################################################
-# Compiler Command Line
-#####################################################################
-
-# Load commandline OPTDEF and add FPC_CPU define
-override FPCOPTDEF:=-d$(CPU_TARGET)
-
-# Load commandline OPT and add target and unit dir to be sure
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-
-# User dirs should be first, so they are looked at first
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-
-# Smartlinking
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-
-# Smartlinking creation
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-
-# Debug
-ifdef DEBUG
-override FPCOPT+=-gl -dDEBUG
-endif
-
-# Release mode (strip, optimize and don't load ppc386.cfg)
-# 0.99.12b has a bug in the optimizer so don't use it by default
-ifdef RELEASE
-ifeq ($(FPC_VERSION),0.99.12)
-override FPCOPT+=-Xs -OGp3 -n
-else
-override FPCOPT+=-Xs -OG2p3 -n
-endif
-endif
-
-# Strip
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-
-# Optimizer
-ifdef OPTIMIZE
-override FPCOPT+=-OG2p3
-endif
-
-# Verbose settings (warning,note,info)
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-
-ifdef NEEDUNITDIR
-override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
-endif
-
-ifdef UNITSDIR
-override FPCOPT+=-Fu$(UNITSDIR)
-endif
-
-# Target dirs and the prefix to use for clean/install
-ifdef TARGETDIR
-override FPCOPT+=-FE$(TARGETDIR)
-ifeq ($(TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(TARGETDIR)/
-endif
-endif
-ifdef UNITTARGETDIR
-override FPCOPT+=-FU$(UNITTARGETDIR)
-ifeq ($(UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(TARGETDIR)/
-endif
-else
-ifdef TARGETDIR
-override UNITTARGETDIR=$(TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-
-# Add commandline options last so they can override
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-
-# Add defines from FPCOPTDEF to FPCOPT
-ifdef FPCOPTDEF
-override FPCOPT+=$(FPCOPTDEF)
-endif
-
-# Error file ?
-ifdef ERRORFILE
-override FPCOPT+=-Fr$(ERRORFILE)
-endif
-
-# Was a config file specified ?
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-
-# For win32 the options are passed using the environment FPCEXTCMD
-ifeq ($(OS_SOURCE),win32)
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-
-# Compiler commandline
-override COMPILER:=$(FPC) $(FPCOPT)
-
-# also call ppas if with command option -s
-# but only if the OS_SOURCE and OS_TARGE are equal
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(OS_SOURCE),$(OS_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-
-#####################################################################
-# Standard rules
-#####################################################################
-
-all: fpc_all
-
-debug: fpc_debug
-
-smart: fpc_smart
-
-shared: fpc_shared
-
-showinstall: fpc_showinstall
-
-install: fpc_install
-
-sourceinstall: fpc_sourceinstall
-
-exampleinstall: fpc_exampleinstall
-
-zipinstall: fpc_zipinstall
-
-zipsourceinstall: fpc_zipsourceinstall
-
-zipexampleinstall: fpc_zipexampleinstall
-
-clean: fpc_clean
-
-distclean: fpc_distclean
-
-cleanall: fpc_cleanall
-
-info: fpc_info
-
-.PHONY:  all debug smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall info
-
-#####################################################################
-# Units
-#####################################################################
-
-.PHONY: fpc_units
-
-override ALLTARGET+=fpc_units
-
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
-override INSTALLPPUFILES+=$(UNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES)
-
-fpc_units: $(UNITPPUFILES)
-
-#####################################################################
-# General compile rules
-#####################################################################
-
-.PHONY: fpc_packages fpc_all fpc_debug
-
-$(FPCMADE): $(ALLTARGET)
-	@$(ECHO) Compiled > $(FPCMADE)
-
-fpc_packages: $(COMPILEPACKAGES)
-
-fpc_all: fpc_packages $(FPCMADE)
-
-fpc_debug:
-	$(MAKE) all DEBUG=1
-
-# Search paths for .ppu if targetdir is set
-ifdef UNITTARGETDIR
-vpath %$(PPUEXT) $(UNITTARGETDIR)
-endif
-
-# General compile rules, available for both possible PASEXT
-
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
-
-%$(PPUEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(PPUEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pp
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-%$(EXEEXT): %.pas
-	$(COMPILER) $< $(REDIR)
-	$(EXECPPAS)
-
-#####################################################################
-# Library
-#####################################################################
-
-.PHONY: fpc_smart fpc_shared
-
-ifdef LIBVERSION
-LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
-else
-LIBFULLNAME=$(LIBNAME)
-endif
-
-# Default sharedlib units are all unit objects
-ifndef SHAREDLIBUNITOBJECTS
-SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
-endif
-
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-
-fpc_shared: all
-ifdef HASSHAREDLIB
-ifndef LIBNAME
-	@$(ECHO) "LIBNAME not set"
-else
-	$(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
-endif
-else
-	@$(ECHO) "Shared Libraries not supported"
-endif
-
-#####################################################################
-# Install rules
-#####################################################################
-
-.PHONY: fpc_showinstall fpc_install
-
-ifdef EXTRAINSTALLUNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
-endif
-
-ifdef INSTALLPPUFILES
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
-ifdef PPUFILES
-INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
-else
-INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
-endif
-override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
-endif
-
-ifdef INSTALLEXEFILES
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
-endif
-
-fpc_showinstall: $(SHOWINSTALLTARGET)
-ifdef INSTALLEXEFILES
-	@$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
-endif
-ifdef INSTALLPPUFILES
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
-ifneq ($(INSTALLPPULINKFILES),)
-	@$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
-ifdef HASSHAREDLIB
-	@$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	@$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
-endif
-
-fpc_install: $(INSTALLTARGET)
-# Create UnitInstallFiles
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(BININSTALLDIR)
-# Compress the exes if upx is defined
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(UNITINSTALLDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
-endif
-ifneq ($(wildcard $(LIBFULLNAME)),)
-	$(MKDIR) $(LIBINSTALLDIR)
-	$(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
-ifdef inUnix
-	ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
-endif
-endif
-endif
-ifdef EXTRAINSTALLFILES
-	$(MKDIR) $(DATAINSTALLDIR)
-	$(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
-endif
-
-#####################################################################
-# SourceInstall rules
-#####################################################################
-
-.PHONY: fpc_sourceinstall
-
-ifndef SOURCETOPDIR
-SOURCETOPDIR=$(BASEDIR)
-endif
-
-fpc_sourceinstall: clean
-	$(MKDIR) $(SOURCEINSTALLDIR)
-	$(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
-
-#####################################################################
-# exampleinstall rules
-#####################################################################
-
-.PHONY: fpc_exampleinstall
-
-fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
-ifdef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-	$(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
-endif
-ifdef EXAMPLEDIROBJECTS
-ifndef EXAMPLESOURCEFILES
-	$(MKDIR) $(EXAMPLEINSTALLDIR)
-endif
-	$(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
-endif
-
-#####################################################################
-# Zip
-#####################################################################
-
-.PHONY: fpc_zipinstall
-
-# Create suffix to add
-ifndef PACKAGESUFFIX
-PACKAGESUFFIX=$(OS_TARGET)
-ifeq ($(OS_TARGET),go32v2)
-PACKAGESUFFIX=go32
-endif
-ifeq ($(OS_TARGET),win32)
-PACKAGESUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-PACKAGESUFFIX=emx
-endif
-endif
-
-# Temporary path to pack a file
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/pack_tmp
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-
-# Maybe create default zipname from packagename
-ifndef ZIPNAME
-ifdef PACKAGENAME
-ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
-endif
-endif
-
-# Use tar by default under linux
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-
-fpc_zipinstall:
-ifndef ZIPNAME
-	@$(ECHO) "Please specify ZIPNAME!"
-	@exit 1
-else
-	$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
-ifdef USETAR
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
-	cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
-else
-	$(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
-	cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
-endif
-	$(DELTREE) $(PACKDIR)
-endif
-
-.PHONY:  fpc_zipsourceinstall
-
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
-
-.PHONY:  fpc_zipexampleinstall
-
-fpc_zipexampleinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
-
-#####################################################################
-# Clean rules
-#####################################################################
-
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-
-ifdef EXTRACLEANUNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
-endif
-
-ifdef CLEANPPUFILES
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-# Get the .o and .a files created for the units
-ifdef PPUFILES
-CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
-else
-CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
-endif
-override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
-endif
-
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef EXTRACLEANFILES
-	-$(DEL) $(EXTRACLEANFILES)
-endif
-ifdef LIBNAME
-	-$(DEL) $(LIBNAME) $(LIBFULLNAME)
-endif
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-fpc_distclean: fpc_clean
-
-# Also run clean first if targetdir is set. Unittargetdir is always
-# set if targetdir or unittargetdir is specified
-ifdef UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
-
-#####################################################################
-# Info rules
-#####################################################################
-
-.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
-	fpc_dirinfo
-
-fpc_info: $(INFOTARGET)
-
-fpc_infocfg:
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC....... $(FPC)
-	@$(ECHO)  Version... $(FPC_VERSION)
-	@$(ECHO)  CPU....... $(CPU_TARGET)
-	@$(ECHO)  Source.... $(OS_SOURCE)
-	@$(ECHO)  Target.... $(OS_TARGET)
-	@$(ECHO)
-
-fpc_infoobjects:
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  LoaderObjects..... $(LOADEROBJECTS)
-	@$(ECHO)  UnitObjects....... $(UNITOBJECTS)
-	@$(ECHO)  ExeObjects........ $(EXEOBJECTS)
-	@$(ECHO)
-	@$(ECHO)  ExtraCleanUnits... $(EXTRACLEANUNITS)
-	@$(ECHO)  ExtraCleanFiles... $(EXTRACLEANFILES)
-	@$(ECHO)
-	@$(ECHO)  ExtraInstallUnits. $(EXTRAINSTALLUNITS)
-	@$(ECHO)  ExtraInstallFiles. $(EXTRAINSTALLFILES)
-	@$(ECHO)
-
-fpc_infoinstall:
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-ifdef DATE
-	@$(ECHO)  DateStr.............. $(DATESTR)
-endif
-ifdef PACKAGEPREFIX
-	@$(ECHO)  PackagePrefix........ $(PACKAGEPREFIX)
-endif
-ifdef PACKAGENAME
-	@$(ECHO)  PackageName.......... $(PACKAGENAME)
-endif
-	@$(ECHO)  PackageSuffix........ $(PACKAGESUFFIX)
-	@$(ECHO)
-	@$(ECHO)  BaseInstallDir....... $(BASEINSTALLDIR)
-	@$(ECHO)  BinInstallDir........ $(BININSTALLDIR)
-	@$(ECHO)  LibInstallDir........ $(LIBINSTALLDIR)
-	@$(ECHO)  UnitInstallDir....... $(UNITINSTALLDIR)
-	@$(ECHO)  SourceInstallDir..... $(SOURCEINSTALLDIR)
-	@$(ECHO)  DocInstallDir........ $(DOCINSTALLDIR)
-	@$(ECHO)  DataInstallDir....... $(DATAINSTALLDIR)
-	@$(ECHO)
-	@$(ECHO)  DestZipDir........... $(DESTZIPDIR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-

+ 0 - 15
packages/opengl/win32/Makefile.fpc

@@ -1,15 +0,0 @@
-#
-#   Makefile.fpc for Win32 dynamic and static GL units
-#
-
-[defaults]
-defaulttarget=win32
-
-[require]
-packages=gtk
-
-[targets]
-units=gl glut glaux gl_sl glut_sl glaux_sl
-
-[dirs]
-fpcdir=../../..

File diff suppressed because it is too large
+ 250 - 447
packages/oracle/Makefile


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