Browse Source

* New FPCMake update

peter 25 năm trước cách đây
mục cha
commit
d9b97cc5bf
100 tập tin đã thay đổi với 11241 bổ sung33831 xóa
  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
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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
 
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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=../../..
-

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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
 #

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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=.

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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=.

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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=.

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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=.

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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=.

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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=../../..

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 250 - 447
packages/oracle/Makefile


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác