Browse Source

* moved to fpcbuild repository

git-svn-id: trunk@333 -
peter 20 years ago
parent
commit
fd6248db71
78 changed files with 0 additions and 32063 deletions
  1. 0 77
      .gitattributes
  2. 0 2183
      demo/Makefile
  3. 0 37
      demo/Makefile.fpc
  4. 0 28
      demo/fpcdemos.txt
  5. 0 1643
      demo/freebsd/Makefile
  6. 0 11
      demo/freebsd/Makefile.fpc
  7. 0 365
      demo/freebsd/fontdemo.pas
  8. 0 229
      demo/freebsd/sysmousetest.pas
  9. 0 1767
      demo/graph/Makefile
  10. 0 40
      demo/graph/Makefile.fpc
  11. 0 268
      demo/graph/fpcgames.txt
  12. 0 854
      demo/graph/fpctris.pp
  13. 0 149
      demo/graph/ftrisgr.inc
  14. 0 239
      demo/graph/ftristxt.inc
  15. 0 910
      demo/graph/gameunit.pp
  16. 0 925
      demo/graph/gravwars.pp
  17. 0 353
      demo/graph/mandel.pp
  18. 0 497
      demo/graph/maze.pp
  19. 0 813
      demo/graph/quad.pp
  20. BIN
      demo/graph/quaddata.dat
  21. 0 600
      demo/graph/samegame.pp
  22. 0 1583
      demo/linux/Makefile
  23. 0 11
      demo/linux/Makefile.fpc
  24. 0 141
      demo/linux/daemon.pp
  25. 0 1751
      demo/lister/Makefile
  26. 0 11
      demo/lister/Makefile.fpc
  27. 0 433
      demo/lister/flist.pas
  28. 0 298
      demo/lister/lister.pas
  29. 0 37
      demo/macos/HelloMac.pp
  30. 0 5
      demo/macos/HelloMac.r
  31. 0 1547
      demo/modex/Makefile
  32. 0 9
      demo/modex/Makefile.fpc
  33. 0 49
      demo/modex/fpcmodex.txt
  34. 0 170
      demo/modex/voxel.pp
  35. 0 1547
      demo/morphos/Makefile
  36. 0 9
      demo/morphos/Makefile.fpc
  37. 0 186
      demo/morphos/ahitest.pas
  38. 0 71
      demo/morphos/asltest.pas
  39. 0 57
      demo/morphos/getvolumes.pas
  40. 0 94
      demo/morphos/openlib.pas
  41. 0 183
      demo/morphos/process.pas
  42. 0 145
      demo/morphos/window.pas
  43. 0 1549
      demo/netware/Makefile
  44. 0 14
      demo/netware/Makefile.fpc
  45. 0 44
      demo/netware/check.pp
  46. 0 398
      demo/netware/nutconnection.pp
  47. 0 482
      demo/netware/nutmon.pp
  48. 0 2
      demo/netware/nuttest.pp
  49. 0 1548
      demo/netwlibc/Makefile
  50. 0 16
      demo/netwlibc/Makefile.fpc
  51. 0 762
      demo/netwlibc/nuttest.pp
  52. 0 1553
      demo/os2/Makefile
  53. 0 19
      demo/os2/Makefile.fpc
  54. 0 78
      demo/os2/basicpm.pas
  55. 0 39
      demo/os2/getctry.pas
  56. 0 7
      demo/os2/pmdemo1.h
  57. 0 76
      demo/os2/pmdemo1.pp
  58. 0 18
      demo/os2/pmdemo1.rc
  59. BIN
      demo/palmos/pilrc.bmp
  60. BIN
      demo/palmos/pilrcic.bmp
  61. 0 22
      demo/palmos/pilrctst.h
  62. 0 106
      demo/palmos/pilrctst.pp
  63. 0 283
      demo/palmos/pilrctst.rcp
  64. 0 1643
      demo/text/Makefile
  65. 0 9
      demo/text/Makefile.fpc
  66. 0 187
      demo/text/blackbox.pp
  67. 0 60
      demo/text/eratos.pp
  68. 0 21
      demo/text/hello.pp
  69. 0 74
      demo/text/lines.pp
  70. 0 97
      demo/text/magic.pp
  71. 0 82
      demo/text/qsort.pp
  72. 0 1547
      demo/win32/Makefile
  73. 0 9
      demo/win32/Makefile.fpc
  74. 0 25
      demo/win32/dlltest.pp
  75. 0 459
      demo/win32/edit.pp
  76. 0 339
      demo/win32/menu.pp
  77. 0 61
      demo/win32/testdll.pp
  78. 0 109
      demo/win32/winhello.pp

+ 0 - 77
.gitattributes

@@ -512,83 +512,6 @@ compiler/x86_64/x8664nop.inc svneol=native#text/plain
 compiler/x86_64/x8664op.inc svneol=native#text/plain
 compiler/x86_64/x8664op.inc svneol=native#text/plain
 compiler/x86_64/x8664pro.inc svneol=native#text/plain
 compiler/x86_64/x8664pro.inc svneol=native#text/plain
 compiler/x86_64/x8664tab.inc svneol=native#text/plain
 compiler/x86_64/x8664tab.inc svneol=native#text/plain
-demo/Makefile -text
-demo/Makefile.fpc svneol=native#text/plain
-demo/fpcdemos.txt svneol=native#text/plain
-demo/freebsd/Makefile -text
-demo/freebsd/Makefile.fpc svneol=native#text/plain
-demo/freebsd/fontdemo.pas svneol=native#text/plain
-demo/freebsd/sysmousetest.pas svneol=native#text/plain
-demo/graph/Makefile -text
-demo/graph/Makefile.fpc svneol=native#text/plain
-demo/graph/fpcgames.txt svneol=native#text/plain
-demo/graph/fpctris.pp svneol=native#text/plain
-demo/graph/ftrisgr.inc svneol=native#text/plain
-demo/graph/ftristxt.inc svneol=native#text/plain
-demo/graph/gameunit.pp svneol=native#text/plain
-demo/graph/gravwars.pp svneol=native#text/plain
-demo/graph/mandel.pp svneol=native#text/plain
-demo/graph/maze.pp svneol=native#text/plain
-demo/graph/quad.pp svneol=native#text/plain
-demo/graph/quaddata.dat -text
-demo/graph/samegame.pp svneol=native#text/plain
-demo/linux/Makefile -text
-demo/linux/Makefile.fpc svneol=native#text/plain
-demo/linux/daemon.pp svneol=native#text/plain
-demo/lister/Makefile -text
-demo/lister/Makefile.fpc svneol=native#text/plain
-demo/lister/flist.pas svneol=native#text/plain
-demo/lister/lister.pas svneol=native#text/plain
-demo/macos/HelloMac.pp svneol=native#text/plain
-demo/macos/HelloMac.r -text
-demo/modex/Makefile -text
-demo/modex/Makefile.fpc svneol=native#text/plain
-demo/modex/fpcmodex.txt svneol=native#text/plain
-demo/modex/voxel.pp svneol=native#text/plain
-demo/morphos/Makefile -text
-demo/morphos/Makefile.fpc svneol=native#text/plain
-demo/morphos/ahitest.pas svneol=native#text/plain
-demo/morphos/asltest.pas svneol=native#text/plain
-demo/morphos/getvolumes.pas svneol=native#text/plain
-demo/morphos/openlib.pas svneol=native#text/plain
-demo/morphos/process.pas svneol=native#text/plain
-demo/morphos/window.pas svneol=native#text/plain
-demo/netware/Makefile -text
-demo/netware/Makefile.fpc svneol=native#text/plain
-demo/netware/check.pp svneol=native#text/plain
-demo/netware/nutconnection.pp svneol=native#text/plain
-demo/netware/nutmon.pp svneol=native#text/plain
-demo/netware/nuttest.pp svneol=native#text/plain
-demo/netwlibc/Makefile -text
-demo/netwlibc/Makefile.fpc svneol=native#text/plain
-demo/netwlibc/nuttest.pp svneol=native#text/plain
-demo/os2/Makefile -text
-demo/os2/Makefile.fpc svneol=native#text/plain
-demo/os2/basicpm.pas svneol=native#text/plain
-demo/os2/getctry.pas svneol=native#text/plain
-demo/os2/pmdemo1.h -text
-demo/os2/pmdemo1.pp svneol=native#text/plain
-demo/os2/pmdemo1.rc -text
-demo/palmos/pilrc.bmp -text
-demo/palmos/pilrcic.bmp -text
-demo/palmos/pilrctst.h -text
-demo/palmos/pilrctst.pp svneol=native#text/plain
-demo/palmos/pilrctst.rcp -text
-demo/text/Makefile -text
-demo/text/Makefile.fpc svneol=native#text/plain
-demo/text/blackbox.pp svneol=native#text/plain
-demo/text/eratos.pp svneol=native#text/plain
-demo/text/hello.pp svneol=native#text/plain
-demo/text/lines.pp svneol=native#text/plain
-demo/text/magic.pp svneol=native#text/plain
-demo/text/qsort.pp svneol=native#text/plain
-demo/win32/Makefile -text
-demo/win32/Makefile.fpc svneol=native#text/plain
-demo/win32/dlltest.pp svneol=native#text/plain
-demo/win32/edit.pp svneol=native#text/plain
-demo/win32/menu.pp svneol=native#text/plain
-demo/win32/testdll.pp svneol=native#text/plain
-demo/win32/winhello.pp svneol=native#text/plain
 fcl/COPYING -text
 fcl/COPYING -text
 fcl/COPYING.FPC -text
 fcl/COPYING.FPC -text
 fcl/Makefile -text
 fcl/Makefile -text

+ 0 - 2183
demo/Makefile

@@ -1,2183 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-override PACKAGE_NAME=demo
-override PACKAGE_VERSION=2.0.0
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_DIRS+=text  linux graph lister
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_DIRS+=text  modex graph
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=text  win32 graph lister
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_DIRS+=text  os2 graph
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=text  freebsd linux graph lister
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_DIRS+=text  netware
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_DIRS+=text  netwlibc
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=text  linux graph lister
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=text  freebsd linux graph lister
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=text  linux graph lister
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_DIRS+=text  morphos
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=text  linux graph lister
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=text
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=text  linux graph lister
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=text  freebsd linux graph lister
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=text  linux graph lister
-endif
-override INSTALL_FPCPACKAGE=y
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_distinstall
-fpc_distinstall: install exampleinstall
-.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/../fpc-pack
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-ifndef ZIPNAME
-ifdef DIST_ZIPNAME
-ZIPNAME=$(DIST_ZIPNAME)
-else
-ZIPNAME=$(PACKAGE_NAME)
-endif
-endif
-ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
-endif
-ifndef ZIPTARGET
-ifdef DIST_ZIPTARGET
-ZIPTARGET=DIST_ZIPTARGET
-else
-ZIPTARGET=install
-endif
-endif
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-ifndef inUnix
-USEZIPWRAPPER=1
-endif
-ifdef USEZIPWRAPPER
-ZIPPATHSEP=$(PATHSEP)
-ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
-else
-ZIPPATHSEP=/
-endif
-ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
-ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
-ifdef USETAR
-ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
-ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
-else
-ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
-ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
-endif
-fpc_zipinstall:
-	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
-	$(MKDIR) $(DIST_DESTDIR)
-	$(DEL) $(ZIPDESTFILE)
-ifdef USEZIPWRAPPER
-ifneq ($(ECHOREDIR),echo)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
-else
-	echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
-	echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
-	echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
-endif
-ifdef inUnix
-	/bin/sh $(ZIPWRAPPER)
-else
-	$(ZIPWRAPPER)
-endif
-	$(DEL) $(ZIPWRAPPER)
-else
-	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
-endif
-	$(DELTREE) $(PACKDIR)
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
-fpc_zipexampleinstall:
-ifdef HASEXAMPLES
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
-endif
-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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-ifeq ($(FULL_TARGET),i386-linux)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_MODEX=1
-TARGET_DIRS_GRAPH=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_WIN32=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_OS2=1
-TARGET_DIRS_GRAPH=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_FREEBSD=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_NETWARE=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_NETWLIBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_FREEBSD=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_MORPHOS=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-TARGET_DIRS_TEXT=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_FREEBSD=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-TARGET_DIRS_TEXT=1
-TARGET_DIRS_LINUX=1
-TARGET_DIRS_GRAPH=1
-TARGET_DIRS_LISTER=1
-endif
-ifdef TARGET_DIRS_TEXT
-text_all:
-	$(MAKE) -C text all
-text_debug:
-	$(MAKE) -C text debug
-text_smart:
-	$(MAKE) -C text smart
-text_release:
-	$(MAKE) -C text release
-text_units:
-	$(MAKE) -C text units
-text_examples:
-	$(MAKE) -C text examples
-text_shared:
-	$(MAKE) -C text shared
-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_info:
-	$(MAKE) -C text info
-text_makefiles:
-	$(MAKE) -C text makefiles
-text:
-	$(MAKE) -C text all
-.PHONY: text_all text_debug text_smart text_release text_units text_examples 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_makefiles text
-endif
-ifdef TARGET_DIRS_LINUX
-linux_all:
-	$(MAKE) -C linux all
-linux_debug:
-	$(MAKE) -C linux debug
-linux_smart:
-	$(MAKE) -C linux smart
-linux_release:
-	$(MAKE) -C linux release
-linux_units:
-	$(MAKE) -C linux units
-linux_examples:
-	$(MAKE) -C linux examples
-linux_shared:
-	$(MAKE) -C linux shared
-linux_install:
-	$(MAKE) -C linux install
-linux_sourceinstall:
-	$(MAKE) -C linux sourceinstall
-linux_exampleinstall:
-	$(MAKE) -C linux exampleinstall
-linux_distinstall:
-	$(MAKE) -C linux distinstall
-linux_zipinstall:
-	$(MAKE) -C linux zipinstall
-linux_zipsourceinstall:
-	$(MAKE) -C linux zipsourceinstall
-linux_zipexampleinstall:
-	$(MAKE) -C linux zipexampleinstall
-linux_zipdistinstall:
-	$(MAKE) -C linux zipdistinstall
-linux_clean:
-	$(MAKE) -C linux clean
-linux_distclean:
-	$(MAKE) -C linux distclean
-linux_cleanall:
-	$(MAKE) -C linux cleanall
-linux_info:
-	$(MAKE) -C linux info
-linux_makefiles:
-	$(MAKE) -C linux makefiles
-linux:
-	$(MAKE) -C linux all
-.PHONY: linux_all linux_debug linux_smart linux_release linux_units linux_examples linux_shared linux_install linux_sourceinstall linux_exampleinstall linux_distinstall linux_zipinstall linux_zipsourceinstall linux_zipexampleinstall linux_zipdistinstall linux_clean linux_distclean linux_cleanall linux_info linux_makefiles linux
-endif
-ifdef TARGET_DIRS_GRAPH
-graph_all:
-	$(MAKE) -C graph all
-graph_debug:
-	$(MAKE) -C graph debug
-graph_smart:
-	$(MAKE) -C graph smart
-graph_release:
-	$(MAKE) -C graph release
-graph_units:
-	$(MAKE) -C graph units
-graph_examples:
-	$(MAKE) -C graph examples
-graph_shared:
-	$(MAKE) -C graph shared
-graph_install:
-	$(MAKE) -C graph install
-graph_sourceinstall:
-	$(MAKE) -C graph sourceinstall
-graph_exampleinstall:
-	$(MAKE) -C graph exampleinstall
-graph_distinstall:
-	$(MAKE) -C graph distinstall
-graph_zipinstall:
-	$(MAKE) -C graph zipinstall
-graph_zipsourceinstall:
-	$(MAKE) -C graph zipsourceinstall
-graph_zipexampleinstall:
-	$(MAKE) -C graph zipexampleinstall
-graph_zipdistinstall:
-	$(MAKE) -C graph zipdistinstall
-graph_clean:
-	$(MAKE) -C graph clean
-graph_distclean:
-	$(MAKE) -C graph distclean
-graph_cleanall:
-	$(MAKE) -C graph cleanall
-graph_info:
-	$(MAKE) -C graph info
-graph_makefiles:
-	$(MAKE) -C graph makefiles
-graph:
-	$(MAKE) -C graph all
-.PHONY: graph_all graph_debug graph_smart graph_release graph_units graph_examples graph_shared graph_install graph_sourceinstall graph_exampleinstall graph_distinstall graph_zipinstall graph_zipsourceinstall graph_zipexampleinstall graph_zipdistinstall graph_clean graph_distclean graph_cleanall graph_info graph_makefiles graph
-endif
-ifdef TARGET_DIRS_LISTER
-lister_all:
-	$(MAKE) -C lister all
-lister_debug:
-	$(MAKE) -C lister debug
-lister_smart:
-	$(MAKE) -C lister smart
-lister_release:
-	$(MAKE) -C lister release
-lister_units:
-	$(MAKE) -C lister units
-lister_examples:
-	$(MAKE) -C lister examples
-lister_shared:
-	$(MAKE) -C lister shared
-lister_install:
-	$(MAKE) -C lister install
-lister_sourceinstall:
-	$(MAKE) -C lister sourceinstall
-lister_exampleinstall:
-	$(MAKE) -C lister exampleinstall
-lister_distinstall:
-	$(MAKE) -C lister distinstall
-lister_zipinstall:
-	$(MAKE) -C lister zipinstall
-lister_zipsourceinstall:
-	$(MAKE) -C lister zipsourceinstall
-lister_zipexampleinstall:
-	$(MAKE) -C lister zipexampleinstall
-lister_zipdistinstall:
-	$(MAKE) -C lister zipdistinstall
-lister_clean:
-	$(MAKE) -C lister clean
-lister_distclean:
-	$(MAKE) -C lister distclean
-lister_cleanall:
-	$(MAKE) -C lister cleanall
-lister_info:
-	$(MAKE) -C lister info
-lister_makefiles:
-	$(MAKE) -C lister makefiles
-lister:
-	$(MAKE) -C lister all
-.PHONY: lister_all lister_debug lister_smart lister_release lister_units lister_examples lister_shared lister_install lister_sourceinstall lister_exampleinstall lister_distinstall lister_zipinstall lister_zipsourceinstall lister_zipexampleinstall lister_zipdistinstall lister_clean lister_distclean lister_cleanall lister_info lister_makefiles lister
-endif
-ifdef TARGET_DIRS_MODEX
-modex_all:
-	$(MAKE) -C modex all
-modex_debug:
-	$(MAKE) -C modex debug
-modex_smart:
-	$(MAKE) -C modex smart
-modex_release:
-	$(MAKE) -C modex release
-modex_units:
-	$(MAKE) -C modex units
-modex_examples:
-	$(MAKE) -C modex examples
-modex_shared:
-	$(MAKE) -C modex shared
-modex_install:
-	$(MAKE) -C modex install
-modex_sourceinstall:
-	$(MAKE) -C modex sourceinstall
-modex_exampleinstall:
-	$(MAKE) -C modex exampleinstall
-modex_distinstall:
-	$(MAKE) -C modex distinstall
-modex_zipinstall:
-	$(MAKE) -C modex zipinstall
-modex_zipsourceinstall:
-	$(MAKE) -C modex zipsourceinstall
-modex_zipexampleinstall:
-	$(MAKE) -C modex zipexampleinstall
-modex_zipdistinstall:
-	$(MAKE) -C modex zipdistinstall
-modex_clean:
-	$(MAKE) -C modex clean
-modex_distclean:
-	$(MAKE) -C modex distclean
-modex_cleanall:
-	$(MAKE) -C modex cleanall
-modex_info:
-	$(MAKE) -C modex info
-modex_makefiles:
-	$(MAKE) -C modex makefiles
-modex:
-	$(MAKE) -C modex all
-.PHONY: modex_all modex_debug modex_smart modex_release modex_units modex_examples modex_shared modex_install modex_sourceinstall modex_exampleinstall modex_distinstall modex_zipinstall modex_zipsourceinstall modex_zipexampleinstall modex_zipdistinstall modex_clean modex_distclean modex_cleanall modex_info modex_makefiles modex
-endif
-ifdef TARGET_DIRS_WIN32
-win32_all:
-	$(MAKE) -C win32 all
-win32_debug:
-	$(MAKE) -C win32 debug
-win32_smart:
-	$(MAKE) -C win32 smart
-win32_release:
-	$(MAKE) -C win32 release
-win32_units:
-	$(MAKE) -C win32 units
-win32_examples:
-	$(MAKE) -C win32 examples
-win32_shared:
-	$(MAKE) -C win32 shared
-win32_install:
-	$(MAKE) -C win32 install
-win32_sourceinstall:
-	$(MAKE) -C win32 sourceinstall
-win32_exampleinstall:
-	$(MAKE) -C win32 exampleinstall
-win32_distinstall:
-	$(MAKE) -C win32 distinstall
-win32_zipinstall:
-	$(MAKE) -C win32 zipinstall
-win32_zipsourceinstall:
-	$(MAKE) -C win32 zipsourceinstall
-win32_zipexampleinstall:
-	$(MAKE) -C win32 zipexampleinstall
-win32_zipdistinstall:
-	$(MAKE) -C win32 zipdistinstall
-win32_clean:
-	$(MAKE) -C win32 clean
-win32_distclean:
-	$(MAKE) -C win32 distclean
-win32_cleanall:
-	$(MAKE) -C win32 cleanall
-win32_info:
-	$(MAKE) -C win32 info
-win32_makefiles:
-	$(MAKE) -C win32 makefiles
-win32:
-	$(MAKE) -C win32 all
-.PHONY: win32_all win32_debug win32_smart win32_release win32_units win32_examples win32_shared win32_install win32_sourceinstall win32_exampleinstall win32_distinstall win32_zipinstall win32_zipsourceinstall win32_zipexampleinstall win32_zipdistinstall win32_clean win32_distclean win32_cleanall win32_info win32_makefiles win32
-endif
-ifdef TARGET_DIRS_OS2
-os2_all:
-	$(MAKE) -C os2 all
-os2_debug:
-	$(MAKE) -C os2 debug
-os2_smart:
-	$(MAKE) -C os2 smart
-os2_release:
-	$(MAKE) -C os2 release
-os2_units:
-	$(MAKE) -C os2 units
-os2_examples:
-	$(MAKE) -C os2 examples
-os2_shared:
-	$(MAKE) -C os2 shared
-os2_install:
-	$(MAKE) -C os2 install
-os2_sourceinstall:
-	$(MAKE) -C os2 sourceinstall
-os2_exampleinstall:
-	$(MAKE) -C os2 exampleinstall
-os2_distinstall:
-	$(MAKE) -C os2 distinstall
-os2_zipinstall:
-	$(MAKE) -C os2 zipinstall
-os2_zipsourceinstall:
-	$(MAKE) -C os2 zipsourceinstall
-os2_zipexampleinstall:
-	$(MAKE) -C os2 zipexampleinstall
-os2_zipdistinstall:
-	$(MAKE) -C os2 zipdistinstall
-os2_clean:
-	$(MAKE) -C os2 clean
-os2_distclean:
-	$(MAKE) -C os2 distclean
-os2_cleanall:
-	$(MAKE) -C os2 cleanall
-os2_info:
-	$(MAKE) -C os2 info
-os2_makefiles:
-	$(MAKE) -C os2 makefiles
-os2:
-	$(MAKE) -C os2 all
-.PHONY: os2_all os2_debug os2_smart os2_release os2_units os2_examples os2_shared os2_install os2_sourceinstall os2_exampleinstall os2_distinstall os2_zipinstall os2_zipsourceinstall os2_zipexampleinstall os2_zipdistinstall os2_clean os2_distclean os2_cleanall os2_info os2_makefiles os2
-endif
-ifdef TARGET_DIRS_FREEBSD
-freebsd_all:
-	$(MAKE) -C freebsd all
-freebsd_debug:
-	$(MAKE) -C freebsd debug
-freebsd_smart:
-	$(MAKE) -C freebsd smart
-freebsd_release:
-	$(MAKE) -C freebsd release
-freebsd_units:
-	$(MAKE) -C freebsd units
-freebsd_examples:
-	$(MAKE) -C freebsd examples
-freebsd_shared:
-	$(MAKE) -C freebsd shared
-freebsd_install:
-	$(MAKE) -C freebsd install
-freebsd_sourceinstall:
-	$(MAKE) -C freebsd sourceinstall
-freebsd_exampleinstall:
-	$(MAKE) -C freebsd exampleinstall
-freebsd_distinstall:
-	$(MAKE) -C freebsd distinstall
-freebsd_zipinstall:
-	$(MAKE) -C freebsd zipinstall
-freebsd_zipsourceinstall:
-	$(MAKE) -C freebsd zipsourceinstall
-freebsd_zipexampleinstall:
-	$(MAKE) -C freebsd zipexampleinstall
-freebsd_zipdistinstall:
-	$(MAKE) -C freebsd zipdistinstall
-freebsd_clean:
-	$(MAKE) -C freebsd clean
-freebsd_distclean:
-	$(MAKE) -C freebsd distclean
-freebsd_cleanall:
-	$(MAKE) -C freebsd cleanall
-freebsd_info:
-	$(MAKE) -C freebsd info
-freebsd_makefiles:
-	$(MAKE) -C freebsd makefiles
-freebsd:
-	$(MAKE) -C freebsd all
-.PHONY: freebsd_all freebsd_debug freebsd_smart freebsd_release freebsd_units freebsd_examples freebsd_shared freebsd_install freebsd_sourceinstall freebsd_exampleinstall freebsd_distinstall freebsd_zipinstall freebsd_zipsourceinstall freebsd_zipexampleinstall freebsd_zipdistinstall freebsd_clean freebsd_distclean freebsd_cleanall freebsd_info freebsd_makefiles freebsd
-endif
-ifdef TARGET_DIRS_NETWARE
-netware_all:
-	$(MAKE) -C netware all
-netware_debug:
-	$(MAKE) -C netware debug
-netware_smart:
-	$(MAKE) -C netware smart
-netware_release:
-	$(MAKE) -C netware release
-netware_units:
-	$(MAKE) -C netware units
-netware_examples:
-	$(MAKE) -C netware examples
-netware_shared:
-	$(MAKE) -C netware shared
-netware_install:
-	$(MAKE) -C netware install
-netware_sourceinstall:
-	$(MAKE) -C netware sourceinstall
-netware_exampleinstall:
-	$(MAKE) -C netware exampleinstall
-netware_distinstall:
-	$(MAKE) -C netware distinstall
-netware_zipinstall:
-	$(MAKE) -C netware zipinstall
-netware_zipsourceinstall:
-	$(MAKE) -C netware zipsourceinstall
-netware_zipexampleinstall:
-	$(MAKE) -C netware zipexampleinstall
-netware_zipdistinstall:
-	$(MAKE) -C netware zipdistinstall
-netware_clean:
-	$(MAKE) -C netware clean
-netware_distclean:
-	$(MAKE) -C netware distclean
-netware_cleanall:
-	$(MAKE) -C netware cleanall
-netware_info:
-	$(MAKE) -C netware info
-netware_makefiles:
-	$(MAKE) -C netware makefiles
-netware:
-	$(MAKE) -C netware all
-.PHONY: netware_all netware_debug netware_smart netware_release netware_units netware_examples netware_shared netware_install netware_sourceinstall netware_exampleinstall netware_distinstall netware_zipinstall netware_zipsourceinstall netware_zipexampleinstall netware_zipdistinstall netware_clean netware_distclean netware_cleanall netware_info netware_makefiles netware
-endif
-ifdef TARGET_DIRS_NETWLIBC
-netwlibc_all:
-	$(MAKE) -C netwlibc all
-netwlibc_debug:
-	$(MAKE) -C netwlibc debug
-netwlibc_smart:
-	$(MAKE) -C netwlibc smart
-netwlibc_release:
-	$(MAKE) -C netwlibc release
-netwlibc_units:
-	$(MAKE) -C netwlibc units
-netwlibc_examples:
-	$(MAKE) -C netwlibc examples
-netwlibc_shared:
-	$(MAKE) -C netwlibc shared
-netwlibc_install:
-	$(MAKE) -C netwlibc install
-netwlibc_sourceinstall:
-	$(MAKE) -C netwlibc sourceinstall
-netwlibc_exampleinstall:
-	$(MAKE) -C netwlibc exampleinstall
-netwlibc_distinstall:
-	$(MAKE) -C netwlibc distinstall
-netwlibc_zipinstall:
-	$(MAKE) -C netwlibc zipinstall
-netwlibc_zipsourceinstall:
-	$(MAKE) -C netwlibc zipsourceinstall
-netwlibc_zipexampleinstall:
-	$(MAKE) -C netwlibc zipexampleinstall
-netwlibc_zipdistinstall:
-	$(MAKE) -C netwlibc zipdistinstall
-netwlibc_clean:
-	$(MAKE) -C netwlibc clean
-netwlibc_distclean:
-	$(MAKE) -C netwlibc distclean
-netwlibc_cleanall:
-	$(MAKE) -C netwlibc cleanall
-netwlibc_info:
-	$(MAKE) -C netwlibc info
-netwlibc_makefiles:
-	$(MAKE) -C netwlibc makefiles
-netwlibc:
-	$(MAKE) -C netwlibc all
-.PHONY: netwlibc_all netwlibc_debug netwlibc_smart netwlibc_release netwlibc_units netwlibc_examples netwlibc_shared netwlibc_install netwlibc_sourceinstall netwlibc_exampleinstall netwlibc_distinstall netwlibc_zipinstall netwlibc_zipsourceinstall netwlibc_zipexampleinstall netwlibc_zipdistinstall netwlibc_clean netwlibc_distclean netwlibc_cleanall netwlibc_info netwlibc_makefiles netwlibc
-endif
-ifdef TARGET_DIRS_MORPHOS
-morphos_all:
-	$(MAKE) -C morphos all
-morphos_debug:
-	$(MAKE) -C morphos debug
-morphos_smart:
-	$(MAKE) -C morphos smart
-morphos_release:
-	$(MAKE) -C morphos release
-morphos_units:
-	$(MAKE) -C morphos units
-morphos_examples:
-	$(MAKE) -C morphos examples
-morphos_shared:
-	$(MAKE) -C morphos shared
-morphos_install:
-	$(MAKE) -C morphos install
-morphos_sourceinstall:
-	$(MAKE) -C morphos sourceinstall
-morphos_exampleinstall:
-	$(MAKE) -C morphos exampleinstall
-morphos_distinstall:
-	$(MAKE) -C morphos distinstall
-morphos_zipinstall:
-	$(MAKE) -C morphos zipinstall
-morphos_zipsourceinstall:
-	$(MAKE) -C morphos zipsourceinstall
-morphos_zipexampleinstall:
-	$(MAKE) -C morphos zipexampleinstall
-morphos_zipdistinstall:
-	$(MAKE) -C morphos zipdistinstall
-morphos_clean:
-	$(MAKE) -C morphos clean
-morphos_distclean:
-	$(MAKE) -C morphos distclean
-morphos_cleanall:
-	$(MAKE) -C morphos cleanall
-morphos_info:
-	$(MAKE) -C morphos info
-morphos_makefiles:
-	$(MAKE) -C morphos makefiles
-morphos:
-	$(MAKE) -C morphos all
-.PHONY: morphos_all morphos_debug morphos_smart morphos_release morphos_units morphos_examples morphos_shared morphos_install morphos_sourceinstall morphos_exampleinstall morphos_distinstall morphos_zipinstall morphos_zipsourceinstall morphos_zipexampleinstall morphos_zipdistinstall morphos_clean morphos_distclean morphos_cleanall morphos_info morphos_makefiles morphos
-endif
-all: $(addsuffix _all,$(TARGET_DIRS))
-debug: $(addsuffix _debug,$(TARGET_DIRS))
-smart: $(addsuffix _smart,$(TARGET_DIRS))
-release: $(addsuffix _release,$(TARGET_DIRS))
-units: $(addsuffix _units,$(TARGET_DIRS))
-examples: $(addsuffix _examples,$(TARGET_DIRS))
-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
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
-zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
-zipdistinstall: fpc_zipdistinstall
-clean: $(addsuffix _clean,$(TARGET_DIRS))
-distclean: $(addsuffix _distclean,$(TARGET_DIRS))
-cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.PHONY: installexamples demozip
-installexamples:
-	$(MKDIR) $(INSTALL_SOURCEDIR)
-	$(COPYTREE) * $(INSTALL_SOURCEDIR)
-demozip: zipsourceinstall

+ 0 - 37
demo/Makefile.fpc

@@ -1,37 +0,0 @@
-#
-#   Makefile.fpc for FPC demo package
-#
-
-[package]
-name=demo
-version=2.0.0
-
-[target]
-dirs=text
-dirs_go32v2=modex graph
-dirs_win32=win32 graph lister
-dirs_linux=linux graph lister
-dirs_freebsd=freebsd linux graph lister
-dirs_os2=os2 graph
-dirs_netware=netware
-dirs_netwlibc=netwlibc
-dirs_morphos=morphos
-
-[install]
-fpcpackage=y
-
-[rules]
-#################################
-# Demo installation for linux
-#
-
-.PHONY: installexamples demozip
-
-installexamples:
-        $(MKDIR) $(INSTALL_SOURCEDIR)
-        $(COPYTREE) * $(INSTALL_SOURCEDIR)
-
-demozip: zipsourceinstall
-
-[default]
-fpcdir=..

+ 0 - 28
demo/fpcdemos.txt

@@ -1,28 +0,0 @@
-FPC demo package
-================
-This packages contains the following subdirectories:
-
-- text     text mode demos (should run everywhere)
-- graph    demos those use the graph unit (runs nearly everywhere)
-           includes gameunit (text&graph), outputs to another subdir level
-- modex    demos those make extensive use of modeX (runs with go32v2 only)
-- win32    demos those are win32 specific
-- linux    demos those are linux specific
-- lister   KVM api demo. Runs on Unix and win32 currently.
-- os2      demos those are OS/2 specific
-- palmos   demos those are palmos specific (dragonball)
-- netware  demos those are netware(clib) specific
-- netwlibc demos those are netware(libc) specific
-- macos    demos those are macos (classic) specific
-
-To build the programs (except for macos) simply type 'make' in the base
-dir. To do a cross build, type make OS_TARGET=crosstarget, i.e. make
-OS_TARGET=win32. This assumes the crossbinutils and cross RTL are properly
-installed and configured.
-
-To build the macos sample, issue the command 'fpc <filename>' in MPW in
-directory macos.
-
-If you want to add further samples, edit Makefile.fpc and rebuild the real
-Makefile by entering 'fpcmake -T all'. This is a special fpc generic utility
-to simplify platform independent makefile generation for the user.

+ 0 - 1643
demo/freebsd/Makefile

@@ -1,1643 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=fontdemo sysmousetest
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 11
demo/freebsd/Makefile.fpc

@@ -1,11 +0,0 @@
-#
-#   Makefile.fpc for FPC graph demos (part of FPC demo package)
-#
-
-[target]
-units=
-programs=fontdemo sysmousetest
-
-[default]
-fpcdir=../..
-

+ 0 - 365
demo/freebsd/fontdemo.pas

@@ -1,365 +0,0 @@
-Program FontDemo;
-{ FontDemo.pas, by Marco van de Voort (C) 2000-2001
-
-Compiler: 1.0.5 or 1.1 after 20-01-2001
-Target  : FreeBSD 4.x+ with 16x8 font. 3.x untested  (syscons driver)
-
-Demonstrate font modification with the console driver "syscons".
-This program doesn't work under X or over telnet.
-
-The purpose of the program is to demonstrate the procedures that change the
-font. The demonstration assume a 80x25 console. Framebuffer devices or 80x50
-displays (80x50 use 8x8 fonts) require a trivial modification.
-
-The example of mirroring is absurd, but is very visible, so good for
-demonstration. The real use is to load the font, change a few characters
-(linedrawing, (C) characters, force existance of umlaute or tremas for the
-duration of the application.
-
-Note that if you switch to a different vty while the font is mirrored, that
-vty is also mirrored.
-
-Root can restore the font via a network device with:
-
-vidcontrol -f 8x16 "fontname in /usr/share/syscons/fonts"   < /dev/ttyv1
-
-The program saves the font, and will terminate and restore the font when
-SIGUSR2 is received, unless -n is specified.
-
-killall -USR2 fontdemo
-
-}
-
-
-Uses Console,{$ifdef ver1_0}Linux{$else}Baseunix{$endif},GetOpts;
-
-{$ifdef ver1_0}
- function fpnanosleep;
- begin
-   nanosleep;
- end;
-{$endif}
-
-procedure MirrorFont8(var Data;Count:longint); assembler;
-{Mirrors on a bit level "Count" bytes in typeless variable "Data"}
-
-asm
-         mov data,%esi
-         movl Count,%edx
-.LLoop1: movb (%esi),%bl
-         movl $8,%ecx
-.LLoop2: shr  $1,%bl
-         rcl  $1,%al
-         loop .LLoop2
-         movb %al,(%esi)
-         incl %esi
-         decl %edx
-         jne .LLoop1
-end['EAX','EBX','ECX','EDX','ESI'];
-
-
-procedure GoLeft(var Data;Count:longint;shcnt:longint); assembler;
-{Mirrors on a bit level "Count" bytes in typeless variable "Data"}
-
-asm
-         mov data,%esi
-         mov data,%edi
-         mov shcnt,%ecx
-         movl Count,%edx
-         xorl %eax,%eax
-.LLoop1: lodsb
-         shl  %cl,%eax
-         stosb
-         incl %esi
-         incl %edi
-         decl %edx
-         jne .LLoop1
-end['EAX','EBX','ECX','EDX','ESI'];
-
-procedure GoRight(var Data;Count:longint;shcnt:longint); assembler;
-{Mirrors on a bit level "Count" bytes in typeless variable "Data"}
-
-asm
-         mov data,%esi
-         mov data,%edi
-         mov shcnt,%ecx
-         movl Count,%edx
-         xor %eax,%eax
-.LLoop1: lodsb
-         shr  %cl,%eax
-         stosb
-         incl %esi
-         incl %edi
-         decl %edx
-         jne .LLoop1
-end['EAX','EBX','ECX','EDX','ESI'];
-
-procedure DoAlt(var Data;Count:longint;shcnt:longint;alt:integer); assembler;
-{Mirrors on a bit level "Count" bytes in typeless variable "Data"}
-
-asm
-         mov alt,%ecx
-         mov data,%esi
-         mov data,%edi
-         add %ecx,%esi
-         add %ecx,%edi
-
-         mov shcnt,%ecx
-         movl Count,%edx
-         xorl %eax,%eax
-.LLoop1: lodsb
-         mov %edx,%ebx
-         and  $1,%ebx
-         test %ebx,%ebx
-         je   .Lgoleftalt1
-         shl  %cl,%eax
-         jmp  .Lgoleftalt2
-.Lgoleftalt1:
-         shr  %cl,%eax
-.Lgoleftalt2:
-         stosb
-         incl %esi
-         incl %edi
-         decl %edx
-         jne .LLoop1
-end['EAX','EBX','ECX','EDX','ESI'];
-
-procedure stripbits (var Data;Count:longint); assembler;
-{ "Compresses" a byte. 76543210 -> x764310x where x=0 (but 0 was already
-used to indicate bit number :-)
-
-Needed for a rotating effect. (Character rotating round vertical axis)
-Does this for "Count" bytes in "Data".
-}
-
-asm
-         mov data,%esi
-         movl Count,%edx
-.LLoop1: movb (%esi),%cl
-         and  $219,%ecx
-         mov  %ecx,%eax
-         mov  %ecx,%ebx
-         and  $24,%eax
-         and  $3,%bl
-         shr  $1,%al
-         or   %bl,%al
-         shl  $1,%al
-         mov  %ecx,%ebx
-         and  $192,%bl
-         shl  $1,%al
-         or   %bl,%al
-         shr  $1,%al
-         movb %al,(%esi)
-         incl %esi
-         decl %edx
-         jne .LLoop1
-end['EAX','EBX','ECX','EDX','ESI'];
-
-procedure silloute (var Data;Count:longint); assembler;
-{Iterates through "Count" bytes of "Data" and sets a byte to $48 if it is
-not zero. If you would rotate a character round vertical axis through 90
-degrees, this is about how it looks like}
-
-asm
-         mov data,%esi
-         movl Count,%edx
-.LLoop1: movb (%esi),%al
-         mov  $48,%ecx
-         test %al,%al
-         je   .Lfurther
-         mov  %cl,%al
-.Lfurther:
-         movb %al,(%esi)
-         incl %esi
-         decl %edx
-         jne .LLoop1
-end['EAX','EBX','ECX','EDX','ESI'];
-
-var Originalfont : Fnt16;         {Font on startup, to be saved for restore}
-    StopIt       : BOOLEAN;       {Becomes TRUE when SIGUSR2 is received}
-    RestoreOnExit : Boolean;      {Should font be restored on exit?}
-
-procedure OkThatsEnough(sig:longint);cdecl;
-
-begin
- StopIt:=TRUE;
-end;
-
-procedure dorotate;
-
-{ The animation order of the 5 distinctive states, -> 8 changes is one
-rotation}
-Type RotStatesType   = array[0..7] of longint;
-
-const RotStates : RotStatesType=(0,1,4,3,2,3,4,1);
-
-{5 states:
-- 0 is mirrored,
-- 1  mirrored "compressed"
-- 2 is normal,
-- 3 normal "compressed",
-- 4 "silloutte"}
-
-var fnts    : array[0..4] of fnt16;
-    I       : Longint;
-    iin,oout: timespec;
-
-begin
-   iin.tv_nsec:=250000000;
-   iin.tv_sec:=0;
-   fnts[2]:=OriginalFont;
-   fnts[0]:=fnts[2];                    // Keep a copy.
-   MirrorFont8(fnts[0],sizeof(fnt16));  // Mirror every byte at bitlevel
-   fnts[1]:=fnts[0];
-   stripbits(fnts[1],sizeof(fnt16));
-   fnts[3]:=fnts[2];
-   stripbits(fnts[3],sizeof(fnt16));
-   fnts[4]:=fnts[2];
-   silloute(fnts[4],sizeof(fnt16));
-   i:=4;
-   Repeat
-     PIO_FONT8x16(0,fnts[RotStates[I and 7]]);          // Activate the mirrored set
-     fpnanosleep(@iin,@oout);
-     inc(i);
-   until StopIt;
- end;
-
-procedure upanddown(Mini:BOOLEAN);
-
-var
-    fnts      : array[1..4] OF fnt16;
-    inn,outn  : Timespec;
-    i         : longint;
-    Mask      : Longint;
-
-begin
-   fnts[2]:=OriginalFont;
-   inn.tv_nsec:=50000000;
-   inn.tv_sec:=0;
-   fnts[4]:=fnts[2];   {Make three copies}
-   fnts[1]:=fnts[2];
-   fnts[3]:=fnts[2];
-
-   {Move one of them one byte up in memory. Font is one bit lower}
-
-   move (fnts[1],fnts[1].fnt8x16[1],SIZEOF(Fnt16)-1);
-
-   {Move another of them one byte down in memory. Font is one bit higher}
-   IF Mini THEN
-    Begin
-     Mask:=1;
-     move (fnts[2].fnt8x16[1],fnts[2],SIZEOF(Fnt16)-1);
-    end
-   else
-    begin
-     move (fnts[3].fnt8x16[1],fnts[3],SIZEOF(Fnt16)-1);
-     Mask:=3;
-    end;
-
-   Repeat
-     fpnanosleep(@inn,@outn);
-     pIO_FONT8x16(0,fnts[1 + (I and Mask)]);
-     inc(I);
-   until StopIt;
-end;
-
-procedure LeftAndRight;
-
-var
-    fnts      : array[1..4] OF fnt16;
-    inn,outn  : Timespec;
-    i         : longint;
-    Mask      : Longint;
-
-begin
-   fnts[2]:=OriginalFont;
-   inn.tv_nsec:=50000000;
-   inn.tv_sec:=0;
-   fnts[4]:=fnts[2];   {Make three copies}
-   fnts[1]:=fnts[2];
-   fnts[3]:=fnts[2];
-
-   {Move one of them one byte up in memory. Font is one bit lower}
-
-   Goright(Fnts[1],SIZEOF(FNT16),2);
-   GoLeft( Fnts[3],SIZEOF(FNT16),2);
-   Repeat
-     fpnanosleep(@inn,@outn);
-     pIO_FONT8x16(0,fnts[1 + (I and 3)]);
-     inc(I);
-   until StopIt;
-end;
-
-procedure doalternate;
-
-var
-    fnts      : array[0..5] OF fnt16;
-    inn,outn  : Timespec;
-    i         : longint;
-    Mask      : Longint;
-
-begin
-   fnts[2]:=OriginalFont;
-   inn.tv_nsec:=500000000;
-   inn.tv_sec:=0;
-   fnts[4]:=fnts[2];   {Make three copies}
-   fnts[1]:=fnts[2];
-   fnts[3]:=fnts[2];
-
-   {Move one of them one byte up in memory. Font is one bit lower}
-   doalt(fnts[1],SIZEOF(FNT16) div 2,2,1);
-   doalt(fnts[3],SIZEOF(FNT16) div 2,2,0);
-   Repeat
-     fpnanosleep(@inn,@outn);
-     writeln(1 + (I and 3));
-     pIO_FONT8x16(0,fnts[1 + (I and 3)]);
-     inc(I);
-   until StopIt;
-end;
-
-procedure JustMirror;
-
-var fnt : Fnt16;
-
-begin
-  fnt:=OriginalFont;
-  MirrorFont8(fnt,sizeof(fnt16));
-  pIO_FONT8x16(0,fnt);
-  IF RestoreOnExit THEN
-  Repeat
-  until StopIt;
-end;
-
-var DoThis        : Longint;
-
-    c             : Char;
-begin
- DoThis:=0;
- RestoreOnExit := TRUE;
- if PhysicalConsole(0) then             // a vty?
-  begin
-   REPEAT
-    c:=GetOpt('n012345');                       // Commandline processing
-    IF c IN ['0'..'5'] Then
-     DoThis:= ORD(c)-48;
-    IF c='n' THEN
-     RestoreOnExit:=FALSE;
-   UNTIL C=EndOfOptions;
-
-   StopIt:=false;                       // Turns true on signal USR2
-   GIO_FONT8x16(0,OriginalFont);        // Get font from videocard.
-   fpSignal(SIGUSR2,@OkThatsEnough);    // Install handler for sigusr2.
-
-   CASE DoThis OF                       // Call the font routines
-    0 : DoRotate;
-    1 : UpAndDown(TRUE);
-    2 : JustMirror;
-    3 : UpAndDown(FALSE);
-    4 : LeftAndRight;
-    5 : doAlternate;
-    END;
-
-   IF RestoreOnExit THEN                // clean up if required.
-    PIO_FONT8x16(0,OriginalFont);
-  end;
-end.

+ 0 - 229
demo/freebsd/sysmousetest.pas

@@ -1,229 +0,0 @@
-Program Sysmousetest;
-{
-
-    This program is part of the FPC demoes.
-    Copyright (C) 2000 by Marco van de Voort
-    Originally for a FPC on FreeBSD article in a 2000 edition of
-    the German magazine FreeX
-  
-    A test for sysmouse. Moused must be loaded. Maybe works in xterm too if
-    X Windows is configured to use sysmouse.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-Uses BaseUnix,Unix,Console;
-
-CONST STDIN=0;
-
-TYPE ActionType=(click,paste);
-
-procedure Window1Handler(X,Y:LONGINT;Action:ActionType);
-
-begin
-  IF Action=Click THEN
-   Writeln('Click in Window 1, relative coordinates: ',X,':',Y)
-  ELSE
-   Writeln('Paste in Window 1, relative coordinates: ',X,':',Y);
-end;
-
-procedure Window2Handler(X,Y:LONGINT;Action:ActionType);
-
-begin
-  IF Action=Click THEN
-   Writeln('Click in Window 2, relative coordinates: ',X,':',Y)
-  ELSE
-   Writeln('Paste in Window 2, relative coordinates: ',X,':',Y);
-end;
-
-procedure Window3Handler(X,Y:LONGINT;Action:ActionType);
-
-begin
-  IF Action=Click THEN
-   Writeln('Click in Window 3, relative coordinates: ',X,':',Y)
-  ELSE
-   Writeln('Paste in Window 3, relative coordinates: ',X,':',Y);
-end;
-
-procedure Window4Handler(X,Y:LONGINT;Action:ActionType);
-
-begin
-  IF Action=Click THEN
-   Writeln('Click in Window 4, relative coordinates: ',X,':',Y)
-  ELSE
-   Writeln('Paste in Window 4, relative coordinates: ',X,':',Y);
-end;
-
-{Of course in a real window manager, all this would be more dynamic (so you
-can change windows, and have them stacked. }
-
-TYPE WindowHandlerProc = procedure (X,Y:longint;Action:ActionType);
-     WindowListType    = ARRAY[1..4] OF WindowHandlerProc;
-
-CONST WindowList : WindowListType=(@Window1Handler,@Window2Handler,
-  	  	   @Window3Handler,@Window4Handler);
-
-var cwidth,cheight    : longint; {Dimensions of a char cell. 
-				   For pixels to chars}
-    xpos,ypos,buttons : longint; {Location and type of last mouseclick}
-    Focus	      : Longint; {Quarter of screen that has focus now}
-    TermApp	      : Boolean;
-
-{
- * Signal handler for SIGUSR2: Retrieves mouse coordinates; converts pixels
- * to rows and columns.
- }
-procedure Sysmousehandler(Sig:Longint);cdecl;	{IMPORTANT!  call back has C calling convention}
-
-var mi : MOUSE_INFO;
-    fd : longint;
-begin
-        fd:=STDIN;
-	mi.operation := MOUSE_GETINFO;
-	IF NOT CONS_MOUSECTL(fd, mi) THEN 
-        {Mouse call failed, don't update vars}
-	 exit;			
-		
-	xpos := mi.u.data.x;
-	ypos := mi.u.data.y;
-	buttons := mi.u.data.buttons and 7;
-end;	
-
-procedure StartMouse;
-{initialise the mouse and determine the sizes of a standard character cell}
-
-var
-	mi : mouse_info_t;
-	vi : video_info_t;
-	fd : longint;
-	
-begin 
-  fd:=longint(stdin);	
-  if FBIO_GETMODE(fd,vi.vi_mode) AND FBIO_MODEINFO(fd,vi) then
-   begin   
-    cwidth:=vi.vi_cwidth;   
-    cheight:=vi.vi_cheight;
-    Writeln('Dimensions of a character cell (width :height) :',Cwidth,':',cheight);
-   end;
-
-  {ignore SIGUSR2 for a while, otherwise moving the mouse before handler
-    installation will terminate the application}
-  
-  fpSignal(SIGUSR2,SignalHandler(SIG_IGN));
-  
- { Have sysmouse send us SIGUSR2 for mouse state changes. }
-
-  mi.operation := _MOUSE_MODE; { Note: underscore added!}
-  mi.u.mode.mode := 0;
-  mi.u.mode.signal := SIGUSR2;
-
-  {If successful, register signal handler}
-
-  if CONS_MOUSECTL(fd,mi) then
-   begin 
-    { Connect SIGUSR2 to our (C calling convention!) mousehandler}
-
-    fpsignal(SIGUSR2, @SysmouseHandler);
-
-    {show mouse}
-    mi.operation := MOUSE_SHOW;
-    CONS_MOUSECTL(fd, mi);
-    exit;
-   end;
-end;
-	
-
-procedure myhandler(x,y,but :longint);
-
-VAR WindowNr : Longint;
-
-begin
- {Upper left 2x2 character cell block terminates program}
- if (X<3) AND (Y<3) then
-  begin
-   TermApp:=TRUE;
-   EXIT;
-  end;
-    {The screen is divided in four windows and are numbered as follows:
-
-		   1|2
-		   ---
-		   3|4}
-
-   if (x<=40) then
-    WindowNr:=1
-   else
-    WindowNr:=2;
-  IF Y>12 THEN
-   INC(WindowNr,2);
-
-  IF WindowNr=Focus THEN
-   BEGIN
-      {This window already has focus. Normalise coordinates and
-	pass the event to the window}
-     IF X>40 THEN Dec(X,40);
-     IF Y>12 THEN Dec(Y,12);
-    IF (But and 1)=1 THEN
-     WindowList[WindowNr](x,y,click)
-    else
-     IF (But and 4)=4 THEN
-      WindowList[WindowNr](x,y,paste)
-    else
-     Writeln('I only have a two button mouse, so this one does nothing');
-  END
- else
-  BEGIN
-   Writeln('Main handler is changing focus from to window',WindowNr);
-   Focus:=WindowNr;
-  end;
-end;
-
-procedure WaitForEvent; 
-{
- * Wait in select() loop.  If interrupted, check for mouse button press and
- * construct a minimal gpm pseudo-event and call MouseHandler(). Otherwise
- * hand over to wgetch().
-}
-
-var rfds : tsigset;
-    
-begin
-  fpsigemptyset(rfds);
-  fpsigaddset(rfds,STDIN);
-  while fpselect(1, @rfds,nil,nil,nil)<=0 DO
-    begin
-      IF TermApp THEN Exit;
-      if (fpgeterrno= ESYSEINTR) AND (buttons<>0) THEN
-       MyHandler ((xpos DIV cwidth)+1,(ypos DIV cheight)+1,buttons);
-    end;
-end;
-
-begin 
-// if physicalconsole(0) then
-// begin
- {Don't want to use ncurses, to easier link static}
-
-  Write(#27'[?1001s'); { save old hilight tracking }
-  Write(#27'[?1000h'); { enable mouse tracking }
-  for cwidth:=1 to 25 DO Writeln; 
-  Writeln('Sysmouse demo, click upper-left corner to exit this program');
-  Writeln;
-  Writeln('Sysmouse implements a very simple mouse event driven windowing program');
-  Writeln('The 4 quadrants of the screen act as windows, and focus is implemented');
-  Writeln('Try to click (left or right) the different quadrants, and see what happens');
-  Writeln;
-  cwidth := 8; cheight := 16;
-  Focus:=0;
-  StartMouse;
-  TermApp:=FALSE;
-  while not TermApp do WaitForEvent;
-// end
-//else 
-//  Writeln('This program must be run from the physical console, not over telnet or under X');
-end.

+ 0 - 1767
demo/graph/Makefile

@@ -1,1767 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifdef GRAPHICS
-override FPCOPT+=-dUSEGRAPHICS
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=fpctris mandel samegame quad maze gravwars
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=gameunit
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=gameunit
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.PHONY: text gfx both
-all: graph
-clean : execlean fpc_cleanall
-execlean :
-	$(DELTREE) text
-	$(DELTREE) graph
-text:
-	$(MKDIR) text
-	$(MAKE) fpc_all COMPILER_TARGETDIR=text
-graph:
-	$(MKDIR) graph
-	$(MAKE) fpc_all COMPILER_TARGETDIR=graph GRAPHICS=1
-both:
-	$(MAKE) text
-	$(MAKE) graph

+ 0 - 40
demo/graph/Makefile.fpc

@@ -1,40 +0,0 @@
-#
-#   Makefile.fpc for FPC graph demos (part of FPC demo package)
-#
-
-[target]
-units=gameunit
-programs=fpctris mandel samegame quad maze gravwars
-
-[default]
-fpcdir=../..
-
-[prerules]
-ifdef GRAPHICS
-override FPCOPT+=-dUSEGRAPHICS
-endif
-
-[rules]
-.PHONY: text gfx both
-
-all: graph
-
-clean : execlean fpc_cleanall
-
-execlean :
-        $(DELTREE) text
-        $(DELTREE) graph
-
-# below projects will call ourselves recursive
-
-text:
-        $(MKDIR) text
-        $(MAKE) fpc_all COMPILER_TARGETDIR=text
-
-graph:
-        $(MKDIR) graph
-        $(MAKE) fpc_all COMPILER_TARGETDIR=graph GRAPHICS=1
-
-both:
-        $(MAKE) text
-        $(MAKE) graph

+ 0 - 268
demo/graph/fpcgames.txt

@@ -1,268 +0,0 @@
-The FPC ModeX docs...
-
---------------------------------------------------------------------
-NOTICE:
-
-The ported games (see below) were found on a site that claims to only have
-PD stuff, and the webmaster said that everything he published was sent to
-him with that purpose. We tried finding the persons mentioned in the mail
-over internet, but that failed.
-
-If there is somebody that claims authorship of these programs, please mail
[email protected], and the sources will be removed from our websites.
-
-SameGame can also use the API for mousecontrol. This because the RTL mouseunit
-MsMouse only exists under Go32V2. The API mouse routines work with Linux, but
-have (right now) a problem with GPM version 1.17. Use a different version if
-you can 1.15 works according to the developpers.
-
-The source code of FPCTRIS and SAMEGAME) are written by Marco van de Voort
-and are donated to the FPC project. The FPC project distributes all sources
-under a modified GNU license (much like the so called LGPL) see copying.fpc.
---------------------------------------------------------------------
-REQUEST:
-
-As a developper team, we don't want spend 90% of our time in creating demoes.
-If you have something nice, which explains not yet demonstrated features or
-technicques, mail contact us via [email protected], or add it to the
-contrib page.
-The readers are also encouraged to explore FPC's excellent documentation
-with many examples!!!!!
-
-------------------------------------------------------------------------------
-What are the FPC games?
-
-The FPC-games are a series of simple, small games written or ported by
-Marco van de Voort ([email protected]) as demos for the
-Free Pascal compiler (FPC) and its Run Time Libraries (RTL).
-The "ported" games were first used to test the compability of the GRAPH
-unit. Since we had them, and they were very likely PD or GPL, we decided
-to use them when we couldn't contact the authors
-
-Currently the games are
-
-  (Games written by Marco van de Voort)
-- FPCTris (v0.08)                       Tetr'ish game.
-- Samegame (v0.03)                      As found on e.g. GNOME.
-
- Other games:
-- Gravwars (Sohrab Ismail-Beigi?)       Simple angle and shoot game
-                                        (like TANK distributed with QBasic)
-- Maze (Randy Ding)                     Maze generator and "game"
-- Quad (Justin and Whitney Pierce)      Memory game but with 4 cards each.
-                                        move.
-
-All "other games" games are simpler than my ones, though Quad has overall
-the most sophisticated graphics, and Maze a reasonably complicated algoritm
-(compared to the other ones)
-
-Most of these games use Gameunit.pp which contains some very simple
-generic routines:
-- textual and graphics mode safe input dialogue (replacement for readkey)
-- highscores (show, helper routines for entering scores etc)
-- wrappers for mouse via msmouse or API on other targets
-- Some routines needed for BP compability. (Go32 and cursor routines in Crt)
-
-To compile the games on non dos targets you have to change DEFINE the
-MouseAPI conditional in gameunit.pp (automatical for Linux).
-
-To get the graphics versions of fpctris and samegame, compile using
--dUsegraphics, the makefile should automatically build both.
-
-
----------
-FPCTRIS
-
-Fpctris is a tetris class game, originally designed
-
-- to be distributed with FPC as Crt demo,
-- Keeping possible integration in the IDE in mind (would add 15k or so)
-- Svgalib version etc etc. Anyway, the engine is quite platform independant,
-   and can be ported to different platforms (also TUI,GUI) if needed.
-   (this has now be done. Graph seems fast enough)
-
-The current versions are still under development, but already playable even
-under telnet.
-
-TODO list:
-
-- (difficult, also interesting for Crt and IDE), get more terminals supported
-  under Linux. Specially I don't want to issue the escape sequence that rapes
-  your console to an IBM compat charset. Linux users don't like that.
-  (temporarily solved by doing this only on user request)
-
-- (Linux) Sockets multiplayer client system :-). Have actually started on it,
-   but are getting nowhere. The server will be separate and support more than
-   one game. So you get one port for several games.
-
-- Setup screen ((create) alternate blocks etc)
-
-- Commandline options/config file. (.rctetris per user :-))
-
-KNOWN BUGS:
-
- - Upperrow not used with some chars. (Requires shifting up). Possibly related
-   that very rarely "game over" appears when there's still one or two rows to
-   go. (Since the 5x5 version some of this has been removed. If you get a
-   L-shaped character and immediately rotate, the upper line is used)
- - Biggest problem at the moment is the delay procedure and its init on machines
-    under heavy load. Can't change that though. Only under heavy load, so a
-    less big problem on heavy machines.
- - Selection of colors don't take screen attribs into account. So figures can
-    seem to disappear on weird TTY's or 4Dos people using strange ANSI prompts.
-
-History:
-
-v0.00    First version with working gameplay, created during the Brussels
-          meeting. published on tflily.
-v0.01    Some work done, first version on my page. Most improvements done in
-         Brussels, too many to name here.
-v0.02  - Got rid of binary encoding, and calculating shapes etc when a new
-         figure is created. All is done on startup now. Adding characters
-         is simpler now.
-      - A lot of parameters are variables instead of constants.
-      - Experienced tetrissers press "e" once.
-      - Colors! Linux has the color default off (press "C")
-v0.03  (Only used at Stack, not on web)
-      - Keep on pushing arrow down no longer freezes FPCTris.
-      - Basic level system implemented.
-      - High ascii background in color mode.
-v0.04  (Only used at Stack, not on web)
-      - The push-down arrow fix removed the possibility to move the character
-         after arrow-down, which I liked much. Fixed. # of possible moves after
-         arrow-down also adjustable.
-      - Tried compiling with W32 compiler. RTE 216 (which is gpf I believe)
-         Is Crt unit. Hello World "Use crt" also gpf's.
-      - Removed the first, forgotten bugfix for the hickup problem. Now the
-         "feel" of the game is ok. When you push down, it goes down, but you
-         have the change to do one more move.
-v0.05  (Never used anywere, backup version before movement to 5x5 figures)
-      - More Score info
-      - Help possiblity
-      - Highscores. (also saved to file, and searched in the path)
-      - Entering highscores uses inputstr. Size boosts to 1200 lines. Yuck.
-      - Most functionality now implemented.
-v0.06 (To Peter)
-      - 5x5 figures including "The Cross". Worked almost rightaway, but figures
-         rotate a bit weird.
-      - Better rotation 5x5 system. Only smallest square around figure is
-         rotated.
-      - Better scores. Incl quadratic (progressive is a better word) scores for
-         multiple lines. Now it does matter if you remove 2 x 1 line or 2
-         lines at once.
-      - Some small other fixes.
-      - 'q' is also exit.
-
-v0.07  - Highscore table routines moved to gameunit. Gameunit.pp now required.
-
-v0.08 - FileMode in GameUnit fixed.
-      - Small error that never popped up fixed. Pierre found it by compiling with
-         checks on.
-      - Graph mode implemented. Hopefully it also works under Linux (read the
-        Graph unit is platform independant enough) Compile with -dUseGraphics.
-v0.09 - Fixes for Win32 GUI mode.
-
-----------
-SameGame.
-
-Principle copied from KDE/GNOME.
-
-The principle: The playfield is a grid consisting out of 3 colors.
-You can mark a certain spot on the playfield, and all adjacent grid-cubes
-(horizontally or vertically) will also get marked by the computer.
-When you press the left button, and two or more cubes are marked, the marked
-cubes will disappear, and the playfield will colapse to the bottom left.
-This can be repeated until there are no more agregates. If the field is empty
-then, you receive a bonus.
-
-The trick is that the score for each disappearing aggregate of cubes is more
-than linear (0.25* quadratic right now) dependant on the number of cubes it
-contains.
-
-This means that removing 5 times an aggregate of 2 cubes will result in a far
-smaller score than one aggregate of 10 cubes. ( 5*2^2 < 10^2)
-
-TODO:
-
-[none]
-
-BUGS:
-
-- Maybe better algoritm for initial filling of playfield.
-- Runtime sizable playfield.
-
-HISTORY:
-
-v0.01 :
-       - Initial version.
-       - Slightly improved initial algoritm.
-
-v0.02  - Using gameunit. GPM support via API, but whole thing GPF's under Linux,
-          but works under Go32V2.
-       - Highscores,helpscreen, all small things that come with a decent finishing
-         of the concept
-v0.03  - Fix to game unit that upset configuration files under 0.99.13
-       - q,x and Escape now exit.
-       - Weirdly enough, mouse cursor disappears when moving over a black spot.
-          Playing with delays was unsuccesfull.
-       - Graphical support. Compile with -dUseGraphics
-v0.04 - Fixes for Win32 GUI mode.
-
-----------
-Gravwars (author:Sohrab Ismail-Beigi)
-
-Specify angle and speed, and try to hit the other spaceship. Some planetoids
-exist that can bend the curve of the bullet/ray.
-The game uses is designed for TP4.0 and uses Turtle'ish drawing. So we
-use it as a test for TP4.0 Graph compability.
-
-TODO:
-- Use InputStr for input.
-
-BUGS/FLAWS : None, except that it is very basic (and not worth extending)
-
-HISTORY:
-
-v0.01 :
-       - Initial FPC port.
-----------
-MAZE    (Author Randy Ding)
-
-Nothing special, but from all FPC-games the one with a real algoritm.
-(some form of shortest path through a maze I guess) The others are much
-simpler as far as algoritms are concerned.
-
-The programs asks some simple parameters, and creates a more or less complex
-MAZE. The task for the player is to go from one side to the other:
-
-Use I,J,K,M or arrow keys to walk through the maze
-Hit X when you give up!
-
-TODO:
-- Use InputStr for input.
-- Help on screen if there is enough room?
-- Big mazes/very high resolutions?
-   (bigger than the current max 200x200 is unreadable on 1024/768)
-
-HISTORY
- v0.01 :
-       - Initial FPC port.
-
-------------
-QUAD
-
-My favorite of the other games, and by far the most work to port/clean up.
-
-The program deals some cards blind. It flips over maximal 4 cards, and if
-the 4 turned are the same, it removes them. (the game exists as a card game
-called MEMORY too, but only with two cards at the same time)
-You have to remove all the cards to win, and the highscore record
-the time. QUAD loads some pictures from quaddata.dat.
-
-TODO:
-- Use graphical versions of highscore. (done in win32 GUI mode)
-
-HISTORY
- v0.02 : Win32 GUI mode.
- v0.01 :
-       - Initial FPC port.

+ 0 - 854
demo/graph/fpctris.pp

@@ -1,854 +0,0 @@
-{
-
-    This program is both available in XTDFPC as in the FPC demoes.
-    Copyright (C) 1999 by Marco van de Voort
-
-    FPCTris implements a simple Crt driven Tetrisish game to demonstrate the
-    Crt unit. (KeyPressed, ReadKey, GotoXY, Delay,TextColor,TextBackground)
-    Quality games cost money, so that's why this one is free.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-PROGRAM FPCTris;
-{ Trying to make a tetris from zero as a demo for FPC.
-  Problems: - Colorsupport is a hack which handicaps creating a better
-               update mechanism. (is done now)
-            - Graph version input command has no cursor.
-            - Graph or text isn't decided runtime, but compilertime.
-            - Linux status graph version unknown at this moment.
-            - Graphic and textmode speed of the game is not the same.
-               The delay is fixed, and the time required to update is
-               not constant due to optimisations.
-
-  Coordinate system:
-
-   0  ->   TheWidth-1            A figure is coded in a LONGINT like this:
-   ---------
-0 |   *     |                    ..*.            00100000    MSB
-| |   **    |                    ..*.            00100000
-V |   *     |                    .**.            01100000
-  |         |                    ....            00000000    LSB
-  |+   ++ ++|
-  |++ ++++++|                  so  00100000001000000110000000000000b
-  |+++++++++|
-   ---------
-TheHeight-1
-
-}
-
-{$ifdef UseGraphics}
- {$ifdef Win32}
-   {$define Win32Graph}
-   {$APPTYPE GUI}
- {$endif}
-{$endif}
-
-Uses
-{$ifdef Win32Graph}
- WinCrt, Windows,
-{$else}
- Crt,
-{$endif}
- Dos,
-{$IFDEF UseGraphics}
- Graph,
-{$ENDIF}
- GameUnit;
-
-{$DEFINE DoubleCache}
-
-CONST TheWidth  = 11; {Watch out, also correct RowMask!}
-      TheHeight = 20;
-{$IFNDEF UseGraphics}
-      PosXField = 10; { Upper X,Y coordinates of playfield}
-      PosYField = 3;
-{$ENDIF}
-      MaxFigures= 16; {Maximum # figures place is reserved for.}
-      NrLevels  = 12; {Number of levels currenty defined}
-{      FieldSpace= 177;}
-
-{$IFDEF UseGraphics}
-      DisplGrX=110;
-      DisplGrY=90;
-      DisplGrScale=16;
-      HelpY=130;
-{$ENDIF}
-
-      {$IFDEF UseGraphics}
-       BaseX     =300;   {Coordinates of highscores}
-       BaseY     =HelpY+20+8*LineDistY;  {y coordinate relative to other options}
-      {$ELSE}
-       BaseX     =40;
-       BaseY     =9;
-      {$ENDIF}
-
-TYPE TetrisFieldType = ARRAY [0..25] OF LONGINT;
-     LevelInfoType   = ARRAY [0..NrLevels-1] OF LONGINT;
-     FigureType      = LONGINT;    { actually array[0..4][0..4] of bit rounded up to a longint}
-{     CHARSET         = SET OF CHAR;}
-
-{The figures, are converted to binary bitmaps on startup.}
-
-CONST GraphFigures : ARRAY[0..4] OF String[80] =(
-'.*... .*... .*... ..*.. .*... .*... **... **... ..**. .**.. ..*.. *....',
-'.*... .*... .**.. .**.. .*... .**.. **... .*... ..*.. .**.. ..*.. **...',
-'**... .**.. ..*.. .*... .*... .*... ..... .*... ..*.. .**.. **.** .**..',
-'..... ..... ..... ..... .*... ..... ..... .***. ***.. .**.. ..*.. ..**.',
-'..... ..... ..... ..... ..... ..... ..... ..... ..... .**.. ..*.. .....');
-
-{Their relative occurance : }
-
-      FigureChance : ARRAY[0..MaxFigures-1] OF LONGINT =(
-  8,     8,    8,    8,     8,   8,   10,    1,   1,     1,    1,    1,0,0,0,0 );
-
-{Scores per figure. Not necessarily used. Just for future use}
-
-      FigureScore  : ARRAY[0..MaxFigures-1] OF LONGINT =(
-  2,     2,    4,    4,     1,   2,    2,   10,  10,    10,   20,   10,0,0,0,0 );
-
-{Diverse AND/OR masks to manipulate graphics}
-
-{general table to mask out a bit 31=msb 0=lsb}
- AndTable : ARRAY[0..31] OF LONGINT=($80000000,$40000000,$20000000,$10000000,
-    $8000000,$4000000,$2000000,$1000000,$800000,$400000,$200000,$100000,
-    $80000,$40000,$20000,$10000,$8000,$4000,$2000,$1000,$800,$400,$200,$100,
-    $80,$40,$20,$10,8,4,2,1);
-
-{Mask to isolate a row of a (FigureType)}
-
- MagicMasks : ARRAY[0..4] OF LONGINT = ($F8000000,$07C00000,$003E0000,$0001F000,$00000F80);
-
-{Mask to check if a line is full; a bit for every column aligned to left.}
- RowMask    = $FFE00000;
-
-{Masks to calculate if the left or rightside is partially empty, write them
-in binary, and put 5 bits on a row. }
-
- LeftMask : ARRAY[0..4] OF LONGINT = ($84210800,$C6318C00,$E739CE00,$F7BDEF00,$FFFFFFE0);
- RightMask: ARRAY[0..4] OF LONGINT = ($08421080,$18C63180,$39CE7380,$7BDEF780,$FFFFFF80);
-
-{Allowed characters entering highscores}
-
-{This constant/parameter is used to detect a certain bug. The bug was fixed, but
-I use the constant to remind where the bug was, and what is related to eachother.}
-
-   Tune=-1;
-
-{First array is a table to find the level for a given number of dissappeared lines
- the second and third are the delaytime and iterationlevel per level.  }
-
-  LevelBorders  : LevelInfoType = ( 10, 20, 30, 45, 60, 80,100,130,160,200,240,280);
-  DelayLevel    : LevelInfoType = (100, 90, 80, 70, 60, 60, 50, 40, 40, 20, 20,10);
-  IterationLevel: LevelInfoType = (  5,  5,  5,  5,  5,  4,  4,  4,  3,  3,  2, 2);
-
-{Some frequently used chars in high-ascii and low-ascii. UseColor selects between
-them}
-  ColorString = #196#179#192#217#219;
-  DumbTermStr = '-|..*';
-
-{ A multiplication factor to reward killing more then one line with one figure}
-
-  ProgressiveFactor :  ARRAY[1..5] OF LONGINT = (10,12,16,22,30);
-
-VAR
-    TopX,TopY   : LONGINT;                      {Coordinates figure relative
-                                                  to left top of playfield}
-    FigureNr    : LONGINT;                      {Nr in Figure cache, second
-                                                  index in Figures}
-    {$IFDEF DoubleCache}
-    BackField,                                  {Copy of the screen for faster matching}
-    {$ENDIF}
-    MainField   : TetrisFieldType;              {The screen grid}
-    ColorField  : ARRAY[0..TheHeight-1,0..TheWidth-1] OF LONGINT; {The color info}
-    DelayTime   : LONGINT;                      {Delay time, can be used for
-                                                  implementing levels}
-    IterationPerDelay : LONGINT;                {Iterations of mainloop (incl delay)
-                                                 before the piece falls down a row}
-    TotalChance : LONGINT;                      {Sum of FigureChange array}
-    Lines       : LONGINT;                      {Completed lines}
-    NrFigures   : LONGINT;                      {# Figures currently used}
-    RightSizeArray,                             {Nunber of empty columns to the left }
-    LeftSizeArray,                              {or right of the figure/piece}
-    Figures     : ARRAY[0..MaxFigures-1,0..3] OF LONGINT; {All bitmap info of figures}
-
-    NrFiguresLoaded : LONGINT;                  {Total figures available in GraphFigures}
-    CurrentCol  : LONGINT;                      {Color of current falling piece}
-    UseColor    : BOOLEAN;                      {Color/Mono mode}
-    Level       : LONGINT;                      {The current level number}
-{$IFNDEF UseGraphics}
-    Style       : String;                       {Contains all chars to create the field}
-{$ENDIF}
-    nonupdatemode  : BOOLEAN;                   {Helpmode/highscore screen or game mode}
-{$IFNDEF UseGraphics}
-    HelpMode    : BOOLEAN;
-{$ENDIF}
-    NextFigure  : LONGINT;                      {Next figure to fall}
-    Score       : LONGINT;                      {The score}
-
-
-FUNCTION RRotate(Figure:FigureType;ColumnsToDo:LONGINT):FigureType;
-{Rotate a figure to the right (=clockwise).
-
-This new (v0.06) routine performs a ColumnsTodo x ColumnsToDo rotation,
-instead of always a 4x4 (v0.04) or 5x5 (v0.05) rotation.
-
-This avoids weird, jumpy behaviour when rotating small pieces.}
-
-VAR I,J, NewFig:LONGINT;
-
-BEGIN
- NewFig:=0;
- FOR I:=0 TO ColumnsToDo-1 DO
-  FOR J:=0 TO ColumnsToDo-1 DO
-   IF Figure AND AndTable[I*5+J]<>0 THEN
-    NewFig:=NewFig OR AndTable[(ColumnsToDo-1-I)+5*(J)]; {}
- RRotate:=NewFig;
-END;
-
-{ LeftSize and RightSize count the number of empty lines to the left and
-right of the character. On the below character LeftSize will return 2 and
-RightSize will return 1.
-
-        ..*.
-        ..*.
-        ..*.
-        ..*.
-}
-FUNCTION RightSize(Fig:FigureType):LONGINT;
-
-VAR I : LONGINT;
-
-BEGIN
- I:=0;
- WHILE ((Fig AND RightMask[I])=0) AND (I<5) DO
-  INC(I);
-  IF I>4 THEN
-   HALT;
- Rightsize:=I;
-END;
-
-FUNCTION Leftsize(Fig:FigureType):LONGINT;
-
-VAR I : LONGINT;
-
-BEGIN
- I:=0;
- WHILE ((Fig AND LeftMask[I])=0)  AND (I<5) DO
-  INC(I);
-  IF I>4 THEN
-   HALT;
- Leftsize:=I;
-END;
-
-FUNCTION FigSym(Figure:LONGINT;RightSizeFig:LONGINT):LONGINT;
- {Try to find the "symmetry" of a figure, the smallest square (1x1,2x2,3x3 etc)
- in which the figure fits. This requires all figures designed to be aligned to
- topleft.}
-
-VAR ColumnsToDo : LONGINT;
-
-BEGIN
- {Determine which bottom rows aren't used}
-
- ColumnsToDo:=5;
- WHILE ((Figure AND MagicMasks[ColumnsToDo-1])=0) AND (ColumnsToDo>1) DO
-  DEC(ColumnsToDo);
-
- {Compare with columns used, already calculated, and take the biggest}
- IF ColumnsToDo<(5-RightSizeFig) THEN
-  ColumnsToDo:=5-RightSizeFig;
- FigSym:=ColumnsToDo;
-END;
-
-
-PROCEDURE CreateFiguresArray;
-{Reads figures from ASCII representation into binary form, and creates the
- rotated representations, and the number of empty columns to the right and
- left per figure. }
-
-VAR I,J,K,L,Symmetry : LONGINT;
-
-BEGIN
- NrFigures:=0; K:=1;
- WHILE K<Length(GraphFigures[0]) DO
-  BEGIN
-   IF GraphFigures[0][K]=' ' THEN
-    INC(K);
-   L:=0;
-   FOR I:=0 TO 4 DO   {Rows}
-    FOR J:=0 TO 4 DO {Columns}
-     IF GraphFigures[I][K+J]='*' THEN
-      L:=L OR AndTable[I*5+J];
-    Figures[NrFigures][0]:=L;
-    INC(NrFigures);
-    INC(K,5);
-  END;
- NrFiguresLoaded:=NrFigures;
- FOR I:= 0 TO NrFigures-1 DO
-  BEGIN
-   RightSizeArray[I][0]:=RightSize(Figures[I][0]);
-   LeftSizeArray[I][0]:=LeftSize(Figures[I][0]);
-   Symmetry:=FigSym(Figures[I][0],RightSizeArray[I][0]);
-   FOR J:=0 TO 2 DO                              {Create the other 3 by rotating}
-    BEGIN
-     Figures[I][J+1]:=RRotate(Figures[I][J],Symmetry);
-     RightSizeArray[I][J+1]:=RightSize(Figures[I][J+1]);
-     LeftSizeArray[I][J+1]:=LeftSize(Figures[I][J+1]);
-    END;
-   END;
-{Clear main grid}
- FillChar(MainField,SIZEOF(TetrisFieldType),0);
-END;
-
-PROCEDURE CalculateTotalChance;
-{Called after a change in the the number of figures, normally 7 (standard)
-or NrFiguresLoaded (10 right now) to recalculate the total of the chance table}
-
-VAR Temp:LONGINT;
-
-BEGIN
- TotalChance:=0;
- FOR Temp:=0 TO NrFigures-1 DO INC(TotalChance,FigureChance[Temp]);
-END;
-
-FUNCTION MatchPosition(Fig:FigureType;X,Y:LONGINT): BOOLEAN;
-{Most important routine. Tries to position the figure on the position
-IF it returns FALSE then the piece overlaps something on the background,
-or the lower limit of the playfield
-}
-
-VAR I,J,K  : LONGINT;
-    Match: BOOLEAN;
-
-BEGIN
- Match:=TRUE;
- FOR I:=0 TO 4 DO
-  BEGIN
-   K:=Fig;
-   K:=K AND MagicMasks[I];
-   IF K<>0 THEN
-    BEGIN
-     J:=5*(I)-X+Tune;
-     IF J>0 THEN
-      K:=K SHL J
-     ELSE
-      IF J<0 THEN
-       K:=K SHR -J;
-     IF (MainField[Y+I] AND K)<>0 THEN
-      Match:=FALSE;
-   END;
-  END;
- I:=4;
- IF (Fig AND MagicMasks[4])=0 THEN
-  DEC(I);
- IF (Fig AND MagicMasks[3])=0 THEN
-  DEC(I);
- IF (Fig AND MagicMasks[2])=0 THEN
-  DEC(I);
- IF (Y+I)>=TheHeight THEN
-  Match:=FALSE;
- MatchPosition:=Match;
-END;
-
-PROCEDURE FixFigureInField(Fig:FigureType;X,Y:LONGINT;Clear:BOOLEAN);
-{Blends the figure into the background, or erases the figure from the
-background}
-
-VAR I,J,K  : LONGINT;
-
-BEGIN
- FOR I:=0 TO 4 DO
-  BEGIN
-   K:=Fig;
-    K:=K AND MagicMasks[I];
-   IF K<>0 THEN
-    BEGIN
-     J:=5*I-X+Tune;
-     IF J>0 THEN
-      K:=K SHL J
-     ELSE
-      IF J<0 THEN
-       K:=K SHR (-J);
-     IF Clear THEN
-      BEGIN
-       K:=K XOR -1;
-       MainField[Y+I]:= MainField[Y+I] AND K;
-      END
-     ELSE
-      MainField[Y+I]:= MainField[Y+I] OR K;
-    END;
- END;
-END;
-
-PROCEDURE FixColField(ThisFig:LONGINT);
-{Puts color info of a figure into the colorgrid, simplified
-FixFigureInField on byte instead of bit manipulation basis.}
-
-VAR I,J,K  : LONGINT;
-
-BEGIN
- FOR I:=0 TO 4 DO
-  BEGIN
-   K:=Figures[ThisFig][FigureNr];
-   IF (I+TopY)<=TheHeight THEN
-    FOR J:=0 TO 4 DO
-     BEGIN
-      IF (K AND AndTable[J+5*I])<>0 THEN
-       ColorField[TopY+I,TopX-Tune+J]:=CurrentCol
-     END;
-  END;
-END;
-
-PROCEDURE RedrawScreen;
-{Frustrates the caching system so that the entire screen is redrawn}
-
-VAR I : LONGINT;
-
-BEGIN
- FOR I:=0 TO TheHeight-1 DO
-  BackField[I]:=MainField[I] XOR -1;    {backup copy is opposite of MainField}
-END;
-
-FUNCTION GetNextFigure:LONGINT;
-
-VAR IndTotal,Temp,TheFigure : LONGINT;
-
-BEGIN
-Temp:=RANDOM(TotalChance);
- IndTotal:=0;
- TheFigure:=0;
- WHILE Temp>=IndTotal DO
-  BEGIN
-   INC(IndTotal,FigureChance[TheFigure]);
-   INC(TheFigure);
-  END;
- dec(thefigure);
- GetNextFigure:=TheFigure;
-END;
-
-{$IFDEF UseGraphics}
- {$I ftrisgr.inc}
-{$ELSE}
- {$I ftristxt.inc}
-{$ENDIF}
-
-
-FUNCTION InitAFigure(VAR TheFigure:LONGINT) : BOOLEAN;
-{A new figure appears in the top of the screen. If return value=FALSE then
-the piece couldn't be created (when it is overlapping with the background.
-That's the game-over condition)}
-
-VAR Temp : LONGINT;
-
-BEGIN
- TopX:=(TheWidth-4) DIV 2;             { Middle of Screen}
- TopY:=0;
- FigureNr:=1;
- IF TheFigure<>-1 THEN
-  INC(Score,FigureScore[TheFigure]);
- IF NOT NonUpdateMode THEN
-  FixScores;
- Temp:=GetNextFigure;                   {Determine next char (after the one this
-                                      initafigure created has got down)}
- TheFigure:=NextFigure;                 {Previous NextFigure becomes active now.}
- NextFigure:=Temp;
- InitAFigure:=MatchPosition(Figures[TheFigure][0],TopX,TopY);
- ShowNextFigure(NextFigure);
- CurrentCol:=RANDOM(14)+1;
-END;
-
-PROCEDURE FixLevel(Lines:LONGINT);
-
-
-BEGIN
- Level:=0;
- WHILE (Lines>LevelBorders[Level]) AND (Level<HIGH(LevelBorders)) DO
-  INC(Level);
- DelayTime:=DelayLevel[Level];
- IterationPerDelay:=IterationLevel[Level];
-END;
-
-PROCEDURE FixMainFieldLines;
-{Deletes full horizontal lines from the playfield will also get some
-score-keeping code in the future.}
-
-VAR I,LocalLines : LONGINT;
-
-BEGIN
- I:=TheHeight-1;
- LocalLines:=0;
- WHILE I>=0 DO
-  BEGIN
-   IF (MainField[I] XOR RowMask)=0 THEN
-    BEGIN
-     Move(MainField[0],MainField[1],I*4);
-     Move(ColorField[0,0],ColorField[1,0],4*I*TheWidth);
-     MainField[0]:=0;
-     FillChar(ColorField[0,0],0,TheWidth);
-     INC(LocalLines);
-    END
-   ELSE
-    DEC(I);
-  END;
-
- INC(Lines,LocalLines);
-
- I:=Level;
- FixLevel(Lines);
- IF LocalLines<>0 THEN
-  BEGIN
-   INC(Score,ProgressiveFactor[LocalLines]*LocalLines);
-   ShowLines;
-  END;
- {$IFDEF DoubleCache}
-  IF UseColor THEN
-   RedrawScreen;
- {$ENDIF}
-END;
-
-PROCEDURE DoFPCTris;
-{The main routine. Initialisation, keyboard loop}
-
-VAR EndGame   : BOOLEAN;
-    FixHickup : LONGINT;
-    Counter   : LONGINT;
-    Temp,Key  : LONGINT;
-    TheFigure : LONGINT;                      {Current first index in Figures}
-
-PROCEDURE TurnFigure;
-{Erases a figure from the grid, turns it if possible, and puts it back on
-again}
-
-BEGIN
-  FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,TRUE);
-  IF MatchPosition(Figures[TheFigure][Temp],TopX,TopY) THEN
-   FigureNr:=Temp;
-  FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-END;
-
-PROCEDURE FixHighScores;
-
-VAR I : LONGINT;
-{$IFNDEF UseGraphics}
-    J : LONGINT;
-{$ENDIF}
-    S : String;
-
-BEGIN
-{$IFDEF UseGraphics}
-  Str(Score:5,S);
-  SetFillStyle(SolidFill,0);            {Clear part of playfield}
-  Bar(DisplGrX+DisplGrScale,DisplGrY + ((TheHeight DIV 2)-2)*DisplGrScale,
-      DisplGrX+(TheWidth-1)*(DisplGrScale), DisplGrY + DisplGrScale*((TheHeight DIV 2)+5));
-  SetTextStyle(0,Horizdir,2);
-  OuttextXY(DisplGrX+DisplGrScale,DisplGrY+ DisplGrScale*((TheHeight DIV 2)-1),'GAME OVER');
-  SetTextStyle(0,Horizdir,1);
-  OutTextXY(DisplGrX+DisplGrScale,DisplGrY+ DisplGrScale*((TheHeight DIV 2)+3),'Score= '+S);
-{$ELSE}
- FOR J:=9 TO 22 DO
-    BEGIN
-     GotoXY(40,J);
-     Write(' ':38);
-    END;
- IF UseColor THEN
-  TextColor(White);
- GotoXY(40,23);
- Writeln('Game Over, score = ',Score);
-{$ENDIF}
- I:=SlipInScore(Score);
- IF I<>0 THEN
-  BEGIN
-   NonUpdateMode:=TRUE;
-{$IFNDEF UseGraphics}
-   HelpMode:=FALSE;
-{$ENDIF}
-   ShowHighScore;
-   {$IFDEF UseGraphics}
-    OutTextXY(450,HelpY+20+(17-I+1)*LineDistY,S);
-    GrInputStr(S,300,HelpY+20+(17-I+1)*LineDistY,16,12,10,FALSE,AlfaBeta);
-   {$ELSE}
-    InputStr(S,40,21-I,10,FALSE,AlfaBeta);
-   {$ENDIF}
-   HighScore[I-1].Name:=S;
-  END;
- ShowHighScore;
-END;
-
-{$IFDEF UseGraphics}
-VAR
-    gd,gm : INTEGER;
-    Pal   : PaletteType;
-{$ENDIF}
-
-BEGIN
-{$IFDEF UseGraphics}
-  {$ifdef Win32}
-   ShowWindow(GetActiveWindow,0);
-  {$endif}
-  gm:=vgahi;
-  gd:=vga;
-  InitGraph(gd,gm,'');
-  if GraphResult <> grOk then
-    begin
-      Writeln('Graph driver ',gd,' graph mode ',gm,' not supported');
-      Halt(1);
-    end;
-  SetFillStyle(SolidFill,1);
-  GetDefaultPalette(Pal);
-  SetAllPalette(Pal);
-  {$ifdef win32}
-    Windows.SetWindowText(GraphWindow,'FPCTris, a demonstration of Free Pascal');
-  {$endif}
-{$ENDIF}
-
- {Here should be some terminal-detection for Linux}
- nonupdatemode:=FALSE;
-{$IFNDEF UseGraphics}
- HelpMode :=TRUE;
-{$ENDIF}
- {$IFDEF Unix}
-  UseColor:=FALSE;
- {$ELSE}
-  UseColor:=TRUE;
- {$ENDIF}
- {$ifndef Win32Graph}
- ClrScr;
- CursorOff;
- {$endif}
- RANDOMIZE;
- HighX:=BaseX;
- HighY:=BaseY;
- CreateFiguresArray;                  { Load and precalculate a lot of stuff}
-{$IFNDEF UseGraphics}
- IF UseColor THEN
-  Style:= ColorString
- ELSE
-  Style:=DumbTermStr;
-{$ENDIF}
-
- NrFigures:=7;                        {Default standard tetris mode, only use
-                                        the first 7 standard figures}
- CalculateTotalChance;                {Calculated the total of all weightfactors}
- EndGame:=FALSE;                      {When TRUE, end of game has been detected}
- FixHickup:=0;                        {Used to avoid unnecessary pauses with the "down key"}
- CreateFrame;                         {Draws all background garbadge}
-
- TheFigure:=-1;
- NextFigure:=GetNextFigure;              {Two figures have to be inited. The first
-                                        figure starts dropping, and that is this
-                                        one}
- InitAFigure(TheFigure);              {The second figure is the figure to be
-                                       displayed as NEXT. That's this char :-)}
- DisplMainField;                  {Display/update the grid}
- Counter:=0;                          {counts up to IterationPerDelay}
- DelayTime:=200;                      {Time of delay}
- IterationPerDelay:=4;                {= # Delays per shift down of figure}
- Lines:=0;                            {Lines that have disappeared}
- Score:=0;
- ShowLines;
- REPEAT
-  IF KeyPressed THEN                  {The function name says it all}
-   BEGIN
-    Key:=ORD(READKEY);
-    IF Key=0 THEN                     {Function key?}
-     Key:=ORD(READKEY) SHL 8;
-    CASE Key OF                       {Check for all keys}
-     ArrU : BEGIN
-             Temp:=(FigureNr+3) AND 3;
-             IF ((TopX+LeftSizeArray[TheFigure][FigureNr])<0) THEN
-              BEGIN
-              IF  (LeftSizeArray[TheFigure][FigureNr]<=LeftSizeArray[TheFigure][Temp]) THEN
-               TurnFigure;
-              END
-             ELSE
-             IF (TopX+7-RightSizeArray[TheFigure][FigureNr])>TheWidth THEN
-              BEGIN
-              IF  (RightSizeArray[TheFigure][FigureNr]<=RightSizeArray[TheFigure][Temp]) THEN
-               TurnFigure;
-              END
-             ELSE
-              TurnFigure;
-           END;
-
-    ArrL  : BEGIN
-             IF (TopX+LeftSizeArray[TheFigure][FigureNr])>=0 THEN
-              BEGIN
-               Temp:=TopX+1-LeftSizeArray[TheFigure][FigureNr];
-               FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,TRUE);
-               IF MatchPosition(Figures[TheFigure][FigureNr],TopX-1,TopY) THEN
-                DEC(TopX);
-               FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-              END;
-             END;
-
-    ArrR  : BEGIN
-             IF (TopX+7-RightSizeArray[TheFigure][FigureNr])<=TheWidth THEN
-              BEGIN
-               FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,TRUE);
-               IF MatchPosition(Figures[TheFigure][FigureNr],TopX+1,TopY) THEN
-                INC(TopX);
-               FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-              END;
-             END;
-
-    ArrD  : BEGIN
-             IF FixHickup=0 THEN
-              BEGIN
-             FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,TRUE);
-             Temp:=TopY;
-             WHILE MatchPosition(Figures[TheFigure][FigureNr],TopX,TopY+1) DO
-              INC(TopY);
-             Temp:=TopY-Temp;
-             INC(Score,Temp DIV 2);
-             FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-             FixHickUp:=4;
-             END;
-            END;
-
-ORD('q'),
-   ESC     : BEGIN
-             SetDefaultColor;
-             {$ifndef Win32Graph}
-             GotoXY(1,25);
-             {$endif}
-             EndGame:=TRUE;
-            END;
-
-{$IFNDEF UseGraphics}
-ORD('C'),
- ORD('c') : BEGIN
-             UseColor:=NOT UseColor;
-             IF UseColor THEN
-              Style:= ColorString
-             ELSE
-              BEGIN
-               SetDefaultColor;
-               Style:=DumbTermStr;
-              END;
-             CreateFrame;
-             RedrawScreen;
-             DisplMainField;
-            END;
- ORD('S'),
-  ORD('s') : BEGIN
-              IF NOT nonupdatemode THEN
-               BEGIN
-                NonUpdateMode:=TRUE;
-                helpmode:=NOT helpmode;
-               END
-              ELSE
-                HelpMode:=NOT helpmode;
-               CreateFrame;
-               ShowLines;
-               ShowNextFigure(NextFigure);
-              END;
-{$ENDIF}
-ORD('H'),
- ORD('h') : BEGIN
-             nonupdatemode:=NOT nonupdatemode;
-             CreateFrame;
-             ShowLines;
-             ShowNextFigure(NextFigure);
-            END;
-ORD('E'),
- ORD('e'): BEGIN                            {Extra figures on/off}
-            IF NrFigures<>NrFiguresLoaded THEN
-              NrFigures:=NrFiguresLoaded     {Extra figures}
-            ELSE
-              NrFigures:=7;                   {Standard Tetris figures}
-            CalculateTotalChance;             {Recalculate weight-totals}
-            IF UseColor THEN
-             SetDefaultColor;
-            ShowGameMode;
-           END;
-
-ORD('p') : BEGIN                             {"p" : Pause}
-             Key:=ORD(ReadKey);
-            IF Key=0 THEN
-             Key:=ORD(ReadKey);
-           END;
-{$IFNDEF UseGraphics}
-{$IFDEF Unix}
- ORD('i')  : write(#27+'(K');
-{$ENDIF}
-{$ENDIF}
-        END; {END OF Key CASE}
-      END { OF If KeyPressed}
-
-  ELSE
-   BEGIN
-    {$IFDEF Unix}
-     GotoXY(50,10);      {Get cursor out of the way, CursorOn/Off
-                            doesn't work on telnet-terminals}
-    {$ENDIF}
-    Delay(DelayTime);
-   END;
-
-  INC(Counter);
-  IF (Counter=IterationPerDelay) OR (FixHickup=1) THEN
-   BEGIN
-    IF FixHickup=1 THEN
-      Counter:=IterationPerDelay-1
-    ELSE
-     Counter:=0;
-    FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,TRUE);
-    FixHickup:=0;
-    IF MatchPosition(Figures[TheFigure][FigureNr],TopX,TopY+1) THEN
-     BEGIN
-      INC(TopY);
-      FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-     END
-    ELSE
-    BEGIN
-      FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-      FixColField(TheFigure);
-      IF InitAFigure(TheFigure) THEN
-        BEGIN
-         FixMainFieldLines;
-         FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-         DisplMainField;
-         Delay(DelayTime*IterationPerDelay);
-        END
-      ELSE
-       BEGIN
-        FixFigureInField(Figures[TheFigure][FigureNr],TopX,TopY,FALSE);
-        EndGame:=TRUE;
-       END;
-    END;
-   END
-  ELSE
-   IF FixHickup>1 THEN
-    DEC(FixHickup);
- DisplMainField;
- UNTIL EndGame;
- FixHighScores;
- {$ifndef Win32Graph}
- CursorOn;
- SetDefaultColor;
- GotoXY(1,25);
- {$endif}
- {$IFDEF UseGraphics}
-  {$ifndef Win32}
-  TextMode(CO80);
-  {$endif}
- {$ENDIF}
-END;
-
-CONST FileName='fpctris.scr';
-
-VAR I : LONGINT;
-
-BEGIN
- FOR I:=0 TO 9 DO
-  HighScore[I].Score:=(I+1)*750;
- LoadHighScore(FileName);
- DoFpcTris;
- SaveHighScore;
-END.

+ 0 - 149
demo/graph/ftrisgr.inc

@@ -1,149 +0,0 @@
-PROCEDURE ShowLines;
-
-VAR S,S2 : String;
-
-BEGIN
-  SetFillStyle(SolidFill,0);
-  Bar(300,460,550,478);
-  Str(Lines:4,S2);
-  S:='Lines : ';
-  S:=S+S2+'   Level: ';
-  Str(Level:4,S2);
-  S:=S+S2;
-  OutTextXY(300,460,S);
-END;
-
-PROCEDURE ShowGameMode;
-
-BEGIN
-   SetFillStyle(SolidFill,0);
-   Bar(20,440,154,458);
-   IF NrFigures<>7 THEN
-    OutTextXY(20,440,'GameMode: Extended')
-   ELSE
-    OutTextXY(20,440,'GameMode: Standard')
-END;
-
-PROCEDURE CreateFrame;
-{Used once to print the "background" of the screen (not the background grid,
-but the text, and the cadre around the playfield)}
-
-BEGIN
- setbkcolor(black);
- setviewport(0,0,getmaxx,getmaxy,clipoff);
- clearviewport;
- SetTextStyle(0,Horizdir,2);
- OuttextXY(30,50,'FPCTris v0.08, (C) by Marco v/d Voort.');
- SetTextStyle(0,Horizdir,1);
- OutTextXY(300,HelpY-30,'A demo of the FPC Graph unit');
-
- VLine(DisplGrX-1,DisplGrY,DisplGrY+DisplGrScale*TheHeight);
- VLine(DisplGrX+TheWidth*DisplGrScale,DisplGrY,DisplGrY+DisplGrScale*TheHeight);
- HLine(DisplGrX-1,DisplGrX+TheWidth*DisplGrScale,DisplGrY+DisplGrScale*TheHeight);
-
- {Clean below area}
- ShowGameMode;
- OutTextXY(300,HelpY,'Arrow left/right to move, down to drop');
- OutTextXY(300,HelpY+LineDistY,'arrow-up to rotate the piece');
- OutTextXY(300,HelpY+2*LineDistY,'"P" to pause');
- OutTextXY(300,HelpY+3*LineDistY,'"E" Mode (standard or extended)');
- OutTextXY(300,HelpY+5*LineDistY,'Escape to quit');
- OutTextXY(300,HelpY+20+6*LineDistY,'The Highscores');
- ShowHighScore;
-END;
-
-PROCEDURE DisplMainField;
-{Graph mode version. Always caches.}
-
-
-VAR Row,Column,Difference,StartRow,EndRow,
-    L : LONGINT;
-{    LastCol : LONGINT; }
-
-BEGIN
- FOR Row:=0 TO TheHeight-1 DO
-  BEGIN
-   IF BackField[Row]<>MainField[Row] THEN
-    BEGIN
-     StartRow:=0;
-     EndRow:=TheWidth-1;
-     Difference:=MainField[Row] XOR BackField[Row];     {Calc differences in line}
-     WHILE ((Difference AND AndTable[StartRow])=0) AND
-        (StartRow<(TheWidth-1)) DO
-      INC(StartRow);
-     WHILE ((Difference AND AndTable[EndRow])=0) AND (EndRow>0) DO
-      DEC(EndRow);
-     FOR Column:=StartRow To EndRow DO
-      BEGIN
-       IF (MainField[Row] AND AndTable[Column])<>0 THEN
-       BEGIN
-         L:=ColorField[Row,Column];
-         IF L=0 THEN
-          L:=CurrentCol;
-         IF L<>255 THEN
-          BEGIN
-           L:=L AND 15;
-           SetFillStyle(SolidFill,L);
-           Bar((Column)*DisplGrScale+DisplGrX,DisplGrY+DisplGrScale*Row,(Column+1)*DisplGrScale-1+DisplGrX,DisplGrY+DisplGrScale*(Row)+DisplGrScale-1);
-          END;
-        END
-       ELSE
-        BEGIN
-           SetFillStyle(SolidFill,0);
-           Bar((Column)*DisplGrScale+DisplGrX,DisplGrY+DisplGrScale*Row,(Column+1)*DisplGrScale-1+DisplGrX,DisplGrY+DisplGrScale*(Row)+DisplGrScale-1);
-        END
-      END;
-   END;
-  END;
-  BackField:=MainField;     {Keep a copy of the screen for faster updates
-                              of terminals, for next DisplMainField.}
-END;
-
-PROCEDURE ShowNextFigure(ThisFig:LONGINT);
-
-CONST NextFigX=10;
-      NextFigY=120;
-      NextFigDim=16;
-
-VAR I,J,K  : LONGINT;
-
-BEGIN
- IF NOT nonupdatemode THEN
-  BEGIN
-   FOR I:=0 TO 4 DO
-    BEGIN
-     K:=Figures[ThisFig][FigureNr] AND MagicMasks[I];
-     IF K=0 THEN
-      BEGIN
-       SetFillStyle(SolidFill,0);
-       Bar(NextFigX,NextFigY+I*NextFigDim,NextFigX+5*NextFigDim-1,NextFigY+(I+1)*NextFigDim);
-      END
-     ELSE
-      BEGIN
-       FOR J:=0 TO 5 DO
-         IF (K And AndTable[J+5*I])=0 THEN
-          BEGIN
-           SetFillStyle(SolidFill,0);
-           Bar(NextFigX+J*NextFigDim,NextFigY+I*NextFigDim,NextFigX++(J+1)*NextFigDim,NextFigY+(I+1)*NextFigDim);
-          END
-         ELSE
-          BEGIN
-           SetFillStyle(SolidFill,1);
-           Bar(NextFigX+J*NextFigDim,NextFigY+I*NextFigDim,NextFigX++(J+1)*NextFigDim,NextFigY+(I+1)*NextFigDim);
-          END;
-       END;
-    END;
-  END;
-END;
-
-PROCEDURE FixScores;
-
-VAR S : String;
-
-BEGIN
-   Str(Score:5,S);
-   SetFillStyle(SolidFill,0);
-   Bar(300,440,450,458);
-   OutTextXY(300,440,'Score :'+S);
-END;
-

+ 0 - 239
demo/graph/ftristxt.inc

@@ -1,239 +0,0 @@
-PROCEDURE ShowLines;
-
-BEGIN
- IF NOT nonupdatemode THEN
-  BEGIN
-   IF UseColor THEN
-    TextColor(Yellow);
-   GotoXY(40,16); Write('Lines: ',Lines:4,'    Level: ',Level);
-  END;
-END;
-
-PROCEDURE ShowGameMode;
-
-BEGIN
- IF NOT nonupdatemode THEN
-  BEGIN
-   GotoXY(61,13);
-   IF NrFigures<>7 THEN
-    write('Extended')
-   ELSE
-    write('Standard');
-  END;
-END;
-
-
-PROCEDURE CreateFrame;
-{Used once to print the "background" of the screen (not the background grid,
-but the text, and the cadre around the playfield}
-
-VAR I : LONGINT;
-
-BEGIN
- SetDefaultColor;
- GotoXY(40,4);
- Write('FPCTris v0.08, (C) by Marco van de Voort');
- GotoXY(40,6);
- Write('A demo of the FPC Crt unit, and');
- GotoXY(40,7);
- Write(' its portability');
- FOR I:=9 TO 24 DO
-  BEGIN
-   GotoXY(40,I);
-   Write(' ':38);
-  END;
- ShowGameMode;
- IF nonupdatemode THEN
-  BEGIN
-   IF HelpMode THEN
-    BEGIN
-   GotoXY(40,9);
-   Write('Arrow left/right to move, down to drop');
-   GotoXY(40,10);
-   Write('arrow-up to rotate the piece');
-   GotoXY(40,11);
-   Write('"P" to pause');
-   GotoXY(40,12);
-   Write('"E" Mode (standard or extended)');
-   GotoXY(40,13);
-   Write('"C" switches between color/mono mode');
-   GotoXY(40,14);
-   Write('Escape to quit');
-   GotoXY(40,15);
-   Write('"S" to show the highscores');
-   {$IFDEF Unix}
-   GotoXY(40,16);
-   Write('"i" try to switch to IBM character set');
-   {$ENDIF}
-   END
-   ELSE
-    ShowHighScore;
-  END
- ELSE
-  BEGIN
-   GotoXY(40,9);
-   Write('"h" to display the helpscreen');
-  END;
-
- FOR I :=0 TO TheHeight-1 DO
-  BEGIN
-   GotoXY(PosXField-1 ,PosYField+I); Write(Style[2]);
-   GotoXY(PosXField+2*TheWidth ,PosYField+I); Write(Style[2]);
-  END;
- GotoXY(PosXField-1,PosYField+TheHeight);
- Write(Style[3]);
- FOR I:=0 TO (2*TheWidth)-1 DO
-  Write(Style[1]);
- Write(Style[4]);
-END;
-PROCEDURE DisplMainFieldMono;
-{Displays the grid with a simple buffering algoritm, depending on
-conditional DoubleBuffer}
-
-VAR Row,Column,Difference,StartRow,EndRow : LONGINT;
-    S : String;
-
-BEGIN
- FOR Row:=0 TO TheHeight-1 DO
-  BEGIN
-   {$IFDEF DoubleCache}
-    IF BackField[Row]<>MainField[Row] THEN
-     BEGIN
-    {$ENDIF}
-   FillChar(S[1],2*TheWidth,#32);
-   StartRow:=0;
-   EndRow:=TheWidth-1;
-   {$IFDEF DoubleCache}
-    Difference:=MainField[Row] XOR BackField[Row];     {Calc differences in line}
-    {Search for first and last bit changed}
-    WHILE ((Difference AND AndTable[StartRow])=0) AND (StartRow<(TheWidth-1)) DO
-     INC(StartRow);
-    WHILE ((Difference AND AndTable[EndRow])=0) AND (EndRow>0) DO
-     DEC(EndRow);
-   {$ENDIF}
-   {Prepare a string}
-   GotoXY(PosXField+2*StartRow,PosYField+Row);
-   S[0]:=CHR(2*(EndRow-StartRow+1));
-   FOR Column:=0 TO EndRow-StartRow DO
-    BEGIN
-     IF (MainField[Row] AND AndTable[StartRow+Column])<>0 THEN
-      BEGIN
-       S[Column*2+1]:=Style[5];
-       S[Column*2+2]:=Style[5];
-      END;
-    END;
-   {Write the string}
-   Write(S);
-   {$IFDEF DoubleCache}
-    END;
-   {$ENDIF}
-  END;
- {$IFDEF DoubleCache}
-  BackField:=MainField;     {Keep a copy of the screen for faster updates
-                              of terminals, for next DisplMainField.}
- {$ENDIF}
-END;
-
-PROCEDURE DisplMainFieldColor;
-{Same as above, but also use ColorField to output colors,
- the buffering is the same, but the colors make it less efficient.}
-
-VAR Row,Column,Difference,StartRow,EndRow,
-    L : LONGINT;
-    S   : String;
-    LastCol : LONGINT;
-
-BEGIN
- LastCol:=255;
- FOR Row:=0 TO TheHeight-1 DO
-  BEGIN
-   {$IFDEF DoubleCache}
-    IF BackField[Row]<>MainField[Row] THEN
-     BEGIN
-    {$ENDIF}
-   FillChar(S[1],2*TheWidth,#32);
-   StartRow:=0;
-   EndRow:=TheWidth-1;
-   {$IFDEF DoubleCache}
-    Difference:=MainField[Row] XOR BackField[Row];     {Calc differences in line}
-    WHILE ((Difference AND AndTable[StartRow])=0) AND (StartRow<(TheWidth-1)) DO
-     INC(StartRow);
-    WHILE ((Difference AND AndTable[EndRow])=0) AND (EndRow>0) DO
-     DEC(EndRow);
-   {$ENDIF}
-   GotoXY(PosXField+2*StartRow,PosYField+Row);
-   FOR Column:=0 TO EndRow-StartRow DO
-    BEGIN
-     IF (MainField[Row] AND AndTable[StartRow+Column])<>0 THEN
-      BEGIN
-       L:=ColorField[Row,StartRow+Column];
-       IF L=0 THEN
-        L:=CurrentCol;
-       IF L<>LastCol THEN
-        BEGIN
-         TextColor(L);
-         Write(Style[5],Style[5]);
-        END;
-      END
-     ELSE
-      Write('  ');
-    END;
-   {$IFDEF DoubleCache}
-    END;
-   {$ENDIF}
-  END;
- {$IFDEF DoubleCache}
-  BackField:=MainField;     {Keep a copy of the screen for faster updates
-                              of terminals, for next DisplMainField.}
- {$ENDIF}
-END;
-
-PROCEDURE DisplMainField;
-{Main redraw routine; Check in what mode we are and call appropriate routine}
-
-BEGIN
-   IF UseColor THEN
-    DisplMainFieldColor
-   ELSE
-    DisplMainFieldMono;
-END;
-
-
-PROCEDURE ShowNextFigure(ThisFig:LONGINT);
-
-VAR I,J,K  : LONGINT;
-    S      : String[8];
-
-BEGIN
- IF UseColor THEN
-  TextColor(White);
- IF NOT nonupdatemode THEN
-  BEGIN
-   FOR I:=0 TO 4 DO
-    BEGIN
-     FillChar(S,9,' ');
-     S[0]:=#8;
-     K:=Figures[ThisFig][FigureNr];
-     IF (I+TopY)<=TheHeight THEN
-      FOR J:=0 TO 4 DO
-       BEGIN
-        IF (K AND AndTable[J+5*I])<>0 THEN
-         BEGIN
-          S[J*2+1]:=Style[5];
-          S[J*2+2]:=Style[5];
-         END
-       END;
-     GotoXY(50,11+I); Write(S);
-    END;
-  END;
-END;
-
-PROCEDURE FixScores;
-
-BEGIN
-   IF UseColor THEN
-    SetDefaultColor;
-   GotoXY(40,18);
-   Write('Score :',Score);
-END;
-

+ 0 - 910
demo/graph/gameunit.pp

@@ -1,910 +0,0 @@
-{
-
-    A simple unit with some common used routines for FPCGames (FpcTris and
-      SameGame)
-
-    Contains
-     - Highscore routines "developped" for FPCTris, but now also used by SameGame
-     - "Dummy" mouse routines which either shell to API units or to MSMouse.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-UNIT GameUnit;
-
-INTERFACE
-
-{MouseAPI defined : unit unes API mouse units, which requires that package,
-                    but also works under Linux
- MouseAPI undef   : RTL unit MsMouse. API not required, but doesn't work under
-                    Linux }
-
-
-{$ifdef Unix}
-  {$define MouseAPI}
-{$endif}
-{$ifdef win32}
-  {$define MouseAPI}
-  {$define UseGraphics} {Mandatory}
-{$endif}
-{$IFDEF Ver70}
-  {$define MouseAPI}
-  {$G+}
-{$endif}
-{$IFDEF Ver60}
-  {$define MouseAPI}
-  {$G+}
-{$endif}
-{$IFDEF Ver55}
-  {$define MouseAPI}
-  {$G+}
-{$endif}
-{$ifdef UseGraphics}
- {$ifdef Win32}
-   {$define Win32Graph}
- {$endif}
-{$endif}
-
-CONST  LineDistY=13;
-
-
-TYPE CHARSET=SET OF CHAR;
-
-{----   Unified Mouse procedures. ---- }
-
-FUNCTION MousePresent : BOOLEAN;
-
-PROCEDURE HideMouse;
-PROCEDURE ShowMouse;
-PROCEDURE GetMouseState(VAR MX,MY,MState : LONGINT);
-PROCEDURE DoneMouse;
-PROCEDURE InitMouse;
-PROCEDURE SetMousePosition(X,Y:LONGINT);
-
-
-Const LButton = 1; {left button}
-      RButton = 2; {right button}
-      MButton = 4; {middle button}
-
-
-{---- Standard Highscore procedures ----}
-
-TYPE  HighScoreType   = Packed RECORD
-                        Name : String[15];
-                        Score: LONGINT;
-                       END;
-     HighScoreArr    = ARRAY[0..9] OF HighScoreType;
-
-VAR HighScore   : HighScoreArr;
-    ScorePath   : String;
-    HighX,HighY : LONGINT;
-    Negative    : BOOLEAN;      { Negative=true-> better scores are lower}
-
-PROCEDURE LoadHighScore(FileName:STRING);
-PROCEDURE SaveHighScore;
-PROCEDURE ShowHighScore;
-
-FUNCTION  SlipInScore(Score:LONGINT):LONGINT;
-
-{---- Keyboard routines ----}
-
-CONST {Constants for GetKey}
-   ArrU   = $04800;    ArrL   = $04B00;    ArrR   = $04D00;   BS  = $08;  (* Backspace *)
-   ArrD   = $05000;    CR     = $0D;       ESC    = $1B;      KDelete= $05300;
-   KInsert= $05200;    Home   = $04700;    KEnd   = $04F00;   CtrlY = $19;
-   CtrlT = $14;
-
-CONST FieldSpace : CHAR = #177;
-      AlfaBeta : CHARSET= [' '..'z'];
-
-FUNCTION GetKey:LONGINT;
-
-{Generic string input routine}
-{$IFDEF UseGraphics}
-FUNCTION  GrInputStr(VAR S:String;X,Y,Len,dX,dY:LONGINT;TextIn:BOOLEAN;CharAllow:CHARSET):BOOLEAN;
-{$ELSE}
-FUNCTION  InputStr(VAR S:String;X,Y,Len:LONGINT;TextIn:BOOLEAN;CharAllow:CHARSET):BOOLEAN;
-{$ENDIF}
-
-{---- Misc ----}
-
-PROCEDURE SetDefaultColor; {Restore the attribs saved on startup}
-
-{BP compability}
-
-{$IFNDEF FPC}
-PROCEDURE SetCursorSize(CurDat:WORD);
-FUNCTION  GetCursorSize:WORD;
-PROCEDURE CursorOn;
-PROCEDURE CursorOff;
-
-{Non Go32 but not existant in BP}
-PROCEDURE FillWord(VAR Data;Count,Value:WORD);
-
-PROCEDURE dosmemfillword(Segx,xofs,Count,Value:WORD);
-PROCEDURE dosmemput(Segx,xofs:WORD;VAR Data;Count:WORD);
-PROCEDURE dosmemget(Segx,xofs:WORD;VAR Data;Count:WORD);
-
-FUNCTION  inportb(portx : word) : byte;
-PROCEDURE outportb(portx : word;data : byte);
-
-FUNCTION  inportw(portx : word) : word;
-PROCEDURE outportw(portx : word;data : word);
-
-FUNCTION  inportl(portx : word) : longint;
-PROCEDURE outportl(portx : word;data : longint);
-{$ENDIF}
-
-IMPLEMENTATION
-
-Uses
-
-{$ifdef Win32Graph}
-   WinMouse,
-   {$undef MouseApi}
-{$else}
- {$IFDEF MouseAPI}
-   Mouse,
- {$ELSE}
-   MSMouse,
- {$ENDIF}
-{$endif}
-
-{$ifdef UseGraphics}
-  Graph,
-{$endif}
-{$ifdef Win32Graph}
-  WinCrt,
-{$else}
-  Crt,
-{$endif}
-  Dos;
-
-VAR  DefColor    : BYTE;                         {Backup of startup colors}
-
-CONST
-
-{The initial names. If people feel they are missing, I first checked the Alias,
-  and then filled with names of the FPC-Devel list, and arranged them alfabetically}
-  InitNames : ARRAY[0..9] OF String[12] = ('Carl','Daniel','Florian','Jonas','John','Marco','Michael (3x)',
-                                           'Peter','Pierre','Thomas' );
-
-FUNCTION MousePresent : BOOLEAN;
-
-BEGIN
- {$IFDEF MouseAPI}
-  MousePresent:=DetectMouse<>0;
- {$ELSE}
-  MousePresent:=MouseFound;
- {$ENDIF}
-END;
-
-PROCEDURE ShowMouse;
-
-BEGIN
- {$ifdef Win32Graph}
-  WinMouse.ShowMouse;
- {$else}
-  {$IFDEF MouseAPI}
-   Mouse.ShowMouse;
-  {$ELSE}
-   MsMouse.ShowMouse;
-  {$ENDIF}
- {$endif}
-END;
-
-PROCEDURE HideMouse;
-
-BEGIN
- {$ifdef Win32Graph}
-  WinMouse.HideMouse;
- {$else}
-  {$IFDEF MouseAPI}
-   Mouse.HideMouse;
-  {$ELSE}
-   MsMouse.HideMouse;
-  {$ENDIF}
- {$endif}
-END;
-
-PROCEDURE InitMouse;
-
-BEGIN
- {$ifdef Win32Graph}
-  WinMouse.InitMouse;
- {$else}
-  {$IFDEF MouseAPI}
-   Mouse.InitMouse;
-  {$ELSE}
-   MsMouse.InitMouse;
-  {$ENDIF}
- {$endif}
-END;
-
-PROCEDURE DoneMouse;
-
-BEGIN
- {$ifdef Win32Graph}
- {$else}
-  {$IFDEF MouseAPI}
-   Mouse.DoneMouse;
-  {$ENDIF}
- {$endif}
-END;
-
-PROCEDURE GetMouseState(VAR MX,MY,MState : LONGINT);
-
-  {$IFDEF MouseAPI}
-   VAR MouseEvent : TMouseEvent;
-  {$ENDIF}
-
-BEGIN
-  {$IFDEF MouseAPI}
-   GetMouseEvent(MouseEvent);
-   MX:=MouseEvent.X SHL 3;
-   MY:=MouseEvent.Y SHL 3;
-   MState:=MouseEvent.Buttons;
- {$ELSE}
-  {$ifdef Win32Graph}
-   WinMouse.GetMouseState(MX,MY,MState);
-  {$else}
-   MsMouse.GetMouseState(MX,MY,MState);
-  {$endif}
- {$ENDIF}
-END;
-
-PROCEDURE SetMousePosition(X,Y:LONGINT);
-
-BEGIN
- {$ifndef Win32Graph}
- {$IFDEF MouseAPI}
-  SetMouseXY(x,y);
- {$ELSE}
-  SetMousePos(X,Y);
-  {$endif}
- {$ENDIF}
-END;
-
-Procedure LoadHighScore(FileName:STRING);
-
-var
- F: File;
- I : LONGINT;
- OFileMode : LONGINT;
-
-BEGIN
- {$I-}
- Assign(F, FileName);
- OFileMode:=FileMode;
- FileMode := 0;  {Set file access to read only }
- Reset(F);
- Close(F);
- {$I+}
- IF IOResult=0 THEN
-  ScorePath:=FileName
- ELSE
-  ScorePath:=FSearch(FileName,GetEnv('PATH'));
- IF ScorePath='' THEN
-  BEGIN
-   FOR I:=0 TO 9 DO
-    BEGIN
-     HighScore[I].Name:=InitNames[I];
-     If Negative Then
-      HighScore[I].Score:=-100*(10-I)
-     Else
-      HighScore[I].Score:=(I+1)*750;
-    END;
-   ScorePath:=FileName;
-  END
- ELSE
-  BEGIN
-   Assign(F,ScorePath);
-   Reset(F,1);
-   BlockRead(F,HighScore,SIZEOF(HighScoreArr));
-   Close(F);
-  END;
- FileMode:=OFileMode;
-END;
-
-Procedure SaveHighScore;
-
-var
- F: File;
-
-BEGIN
- Assign(F,ScorePath);
- Rewrite(F,1);
- BlockWrite(F,HighScore,SIZEOF(HighScoreArr));
- Close(F);
-END;
-
-FUNCTION  SlipInScore(Score:LONGINT):LONGINT;
-
-VAR I,J : LONGINT;
-
-BEGIN
- IF Negative THEN
-  Score:=-Score;
- I:=0;
- WHILE (i<10) and (Score>HighScore[I].Score) DO
-  INC(I);
- IF I<>0 THEN
-  BEGIN
-
-   IF I>1 THEN
-    FOR J:=0 TO I-2 DO
-     HighScore[J]:=HighScore[J+1];
-    HighScore[I-1].Score:=Score;
-    HighScore[I-1].Name:='';
-  END;
- SlipInScore:=I;
-END;
-
-{$IFDEF UseGraphics}
-
-PROCEDURE ShowHighScore;
-
-VAR I : LONGINT;
-    S : String;
-
-BEGIN
- SetFillStyle(SolidFill,0);            {Clear part of playfield}
- Bar(HighX,HighY, 638, HighY+20+18*LineDistY);
- FOR I:=0 TO 9 DO
-  BEGIN
-   OutTextXY(HighX,HighY+(9-I)*LineDistY,HighScore[I].Name);
-   IF Negative THEN
-    Str((-HighScore[I].Score):5,S)
-   ELSE
-    Str(HighScore[I].Score:5,S);
-   OutTextXY(HighX+150,HighY+(9-I)*LineDistY,S);
-  END;
-END;
-
-{$ELSE}
-PROCEDURE ShowHighScore;
-
-VAR I : LONGINT;
-
-{HighX=40 HighY=9}
-
-BEGIN
- GotoXY(HighX+5,9); Write('The Highscores');
- FOR I:=0 TO 9 DO
-  BEGIN
-   GotoXY(HighX,HighY+11-I);
-   Write(HighScore[I].Name,' ':(13-Length(HighScore[I].Name)),' ');
-   IF NOT Negative THEN     { Negative=true-> better scores are lower}
-    Write(HighScore[I].Score:5)
-   ELSE
-    Write(-HighScore[I].Score:5)
-  END;
-END;
-{$ENDIF}
-
-FUNCTION GetKey:LONGINT;
-
-VAR InKey: LONGINT;
-
-BEGIN
- InKey:=ORD(ReadKey);
- IF InKey=0 THEN InKey:=ORD(ReadKey) SHL 8;
- GetKey:=InKey;
-END;
-
-{$IFNDEF UseGraphics}
-FUNCTION  InputStr(VAR S:String;X,Y,Len:LONGINT;TextIn:BOOLEAN;CharAllow:CHARSET):BOOLEAN;
-{
-  Input a string from keyboard, in a nice way,
-   allowed characters are in CHARSET CharAllow, but several editting
-   keys are always allowed, see CASE loop.
-
-Parameters:
-
-   X,Y       Coordinates field
-   Len       Length field
-   TextIn    S already filled?}
-
-VAR
-    InGev                     : LONGINT; { No. of chars inputted }
-    Posi                      : LONGINT; { Cursorposition}
-    Ins                       : BOOLEAN;  { Insert yes/no}
-    Key                       : LONGINT; { Last key as ELib.GetKey
-                                            code <255 if normal key,
-                                            >256 if special/function
-                                            key. See keys.inc}
-    Uitg                      : String;    {The inputted string}
-    Full                      : BOOLEAN;   { Is the string full? }
-    EndVal                    : WORD;
-
-PROCEDURE ReWr; { Rewrite the field, using Uitg}
-
-VAR    I                         : LONGINT;  { Temporary variabele }
-
-BEGIN
- IF Length(Uitg)>Len THEN
-  Uitg[0]:=CHR(Len);
- IF Length(Uitg)>0 THEN
-  FOR I:= 1 TO Length(Uitg) DO
-   BEGIN
-    GotoXY(X+I-1,Y);
-    IF Uitg[I]=CHR(32) THEN
-     Write(FieldSpace)
-    ELSE
-     Write(Uitg[I]);
-   END;
- IF Len<>Length(Uitg) THEN
-  BEGIN
-   GotoXY(X+Length(Uitg),Y);
-   FOR I:= Length(Uitg) TO Len-1 DO
-    Write(FieldSpace);
-  END;
-END;
-
-PROCEDURE DoCursor; { Put Cursor in/out insert-mode }
-
-BEGIN
- {$IFNDEF Unix}
-{ IF Ins THEN
-  SetCursorSize($11E)
- ELSE
-  SetCursorSize($71E); }
- {$ENDIF}
-
-END;
-
-BEGIN
-    { Init }
-
-  InGev :=0;              { 0 chars untill now }
-  Posi  :=1;               { Cursorposition 0 }
-  Ins   :=TRUE;            { Insert according to parameters }
-  DoCursor;        { Set cursor accordingly }
-  Key   :=0;
-
-       { put ±±± padded field on screen }
-
-  FillChar(Uitg,Len+1,FieldSpace);
-  Uitg[0]:=CHR(Len);
-  ReWr;
-  GotoXY(X,Y);
-
-  FillChar(Uitg,Len,32);
-  UitG[0]:=#0;
-
-  IF TextIn THEN
-   BEGIN
-    Uitg:=S;
-    Posi:=Length(Uitg)+1;                        { Put a predefined }
-    ReWr;                                   {  String on screen if specified }
-   END;
-
-  EndVal:=0;
-  WHILE EndVal=0 DO
-   BEGIN
-    Full:=FALSE;
-    IF ((Posi)>=Len) THEN
-     BEGIN
-      Full:=TRUE;
-      Posi:=Len;
-     END;
-    GotoXY(X+Posi-1,Y);
-    {$IFNDEF Unix}
-     {$IFDEF FPC}
-       {$ifndef Win32Graph}
-        CursorOn;
-       {$endif}
-     {$ENDIF}
-    DoCursor;
-    {$ENDIF}
-    Key:=GetKey;
-   {$IFNDEF Unix}
-    {$IFDEF FPC}
-     {$ifndef Win32Graph}
-      CursorOff;
-     {$endif}
-    {$ENDIF}
-   {$ENDIF}
-    CASE Key OF
-          CR              : BEGIN
-                             EndVal:=1;
-                             S:=UitG;
-                            END;
-          ESC             : EndVal:=2;
-          BS              : IF Posi>1 THEN       { BackSpace }
-                              BEGIN
-                               DEC(Posi);
-                               Delete(Uitg,Posi,1);
-                               DEC(InGev);
-                               ReWr;
-                              END;
-          KDelete          : BEGIN
-                              Delete(Uitg,Posi,1);
-                              DEC(InGev);
-                              ReWr;
-                             END;
-          ArrR            : IF (NOT Full) AND ((Posi-1)<InGev) THEN
-                              BEGIN
-                               INC (Posi);
-                               GotoXY(X+Posi-1,Y);
-                               END;
-          KInsert          : BEGIN
-                               Ins:= NOT Ins;
-                               DoCursor;
-                              END;
-          ArrL            : IF (NOT (Posi=1)) THEN
-                              BEGIN
-                               DEC (Posi);
-                               GotoXY(X+Posi-1,Y);
-                              END;
-          Home            : Posi:=1;
-          KEnd            : Posi:=InGev-1;
-          CtrlY           : BEGIN
-                             Delete(Uitg,Posi,Length(Uitg)-Posi);
-                             ReWr;
-                            END;
-          CtrlT           : BEGIN
-                             Uitg[0]:=#0; Posi:=1; ReWr;
-                            END;
-    END; {Case}
-   IF EndVal=0 THEN
-    BEGIN
-     IF (CHR(Key) IN CharAllow) THEN
-      BEGIN
-       IF Posi>Len THEN
-        Posi:=Len;
-       IF (Ins=FALSE) OR Full THEN
-        BEGIN
-         IF (ORD(Uitg[0])<Posi) THEN
-           Uitg[0]:=CHR(Posi);
-         Uitg[Posi]:=CHR(Key);
-        END
-       ELSE
-        BEGIN
-         Insert(CHR(Key),Uitg,Posi);
-        END;
-       ReWr;
-       INC(Posi);
-      END;
-     END;
-    InGev:=Length(Uitg);
-   END;
-  InputStr:=Endval=1;
-END;
-{$ENDIF}
-
-{$IFDEF UseGraphics}
-FUNCTION  GrInputStr(VAR S:String;X,Y,Len,dX,dY:LONGINT;TextIn:BOOLEAN;CharAllow:CHARSET):BOOLEAN;
-{As the (older) textversion except:
-    -  oX,oY are in pixels.
-    -  dX,dY are the dimensions of the font.
-    -  Len is still characters ( length in pixels/dX)
-}
-
-
-VAR
-    InGev                     : LONGINT; { No. of chars inputted }
-    Posi                      : LONGINT; { Cursorposition}
-    Ins                       : BOOLEAN;  { Insert yes/no}
-    Key                       : LONGINT; { Last key as ELib.GetKey
-                                            code <255 if normal key,
-                                            >256 if special/function
-                                            key. See keys.inc}
-    Uitg                      : String;    {The inputted string}
-    Full                      : BOOLEAN;   { Is the string full? }
-    EndVal                    : WORD;
-
-PROCEDURE ReWr; { Rewrite the field, using Uitg}
-
-VAR    I                         : LONGINT;  { Temporary variabele }
-       S                         : String;
-
-BEGIN
- FillChar(S[1],Len,FieldSpace);
- S:=Uitg;
- IF Length(Uitg)>Len THEN
-  SetLength(Uitg,Len);
- SetLength(S,Len);
- IF Length(S)>0 THEN
-  BEGIN
-   FOR I:= 1 TO Length(S) DO
-    IF S[I]=CHR(32) THEN
-     S[I]:=FieldSpace;
-   SetFillStyle(SolidFill,0);
-   Bar(X,Y,X+Len*Dx+5,Y+Dy+1);
-   OutTextXY(X,Y,S);
-  END;
-END;
-
-PROCEDURE DoCursor; { Put Cursor in/out insert-mode }
-
-BEGIN
- {$IFNDEF Unix}
-{ IF Ins THEN
-  SetCursorSize($11E)
- ELSE
-  SetCursorSize($71E); }
- {$ENDIF}
-END;
-
-BEGIN
-    { Init }
-
-  InGev :=0;              { 0 chars untill now }
-  Posi  :=1;               { Cursorposition 0 }
-  Ins   :=TRUE;            { Insert according to parameters }
-  DoCursor;        { Set cursor accordingly }
-  Key   :=0;
-//  SetFillStyle(SolidFill,0);
-//  Bar(X,Y,X+Len*Dx+5,Y+Dy+1);
-       { put ±±± padded field on screen }
-
-  FillChar(Uitg,Len+1,FieldSpace);
-  Uitg[0]:=CHR(Len);
-  ReWr;
-//  GotoXY(X,Y);
-  FillChar(Uitg,Len,32);
-  SetLength(UitG,0);
-
-  IF TextIn THEN
-   BEGIN
-    Uitg:=S;
-    Posi:=Length(Uitg)+1;                        { Put a predefined }
-    ReWr;                                   {  String on screen if specified }
-   END;
-
-  EndVal:=0;
-  WHILE EndVal=0 DO
-   BEGIN
-    Full:=FALSE;
-    IF ((Posi)>=Len) THEN
-     BEGIN
-      Full:=TRUE;
-      Posi:=Len;
-     END;
-    {$IFNDEF Unix}
-     {$IFDEF FPC}
-      {$ifndef Win32Graph}
-       CursorOn;
-      {$endif}
-     {$ENDIF}
-    DoCursor;
-    {$ENDIF}
-    Key:=GetKey;
-   {$IFNDEF Unix}
-    {$IFDEF FPC}
-     {$ifndef Win32Graph}
-      CursorOff;
-     {$endif}
-    {$ENDIF}
-   {$ENDIF}
-    CASE Key OF
-          CR              : BEGIN
-                             EndVal:=1;
-                             S:=UitG;
-                            END;
-          ESC             : EndVal:=2;
-          BS              : IF Posi>1 THEN       { BackSpace }
-                              BEGIN
-                               DEC(Posi);
-                               Delete(Uitg,Posi,1);
-                               DEC(InGev);
-                               ReWr;
-                              END;
-          KDelete          : BEGIN
-                              Delete(Uitg,Posi,1);
-                              DEC(InGev);
-                              ReWr;
-                             END;
-          ArrR            : IF (NOT Full) AND ((Posi-1)<InGev) THEN
-                              BEGIN
-                               INC (Posi);
-  //                             GotoXY(X+Posi-1,Y);
-                               END;
-          KInsert          : BEGIN
-                               Ins:= NOT Ins;
-                               DoCursor;
-                              END;
-          ArrL            : IF (NOT (Posi=1)) THEN
-                              BEGIN
-                               DEC (Posi);
-                              END;
-          Home            : Posi:=1;
-          KEnd            : Posi:=InGev-1;
-          CtrlY           : BEGIN
-                             Delete(Uitg,Posi,Length(Uitg)-Posi);
-                             ReWr;
-                            END;
-          CtrlT           : BEGIN
-                             Uitg[0]:=#0; Posi:=1; ReWr;
-                            END;
-    END; {Case}
-   IF EndVal=0 THEN
-    BEGIN
-     IF (CHR(Key) IN CharAllow) THEN
-      BEGIN
-       IF Posi>Len THEN
-        Posi:=Len;
-       IF (Ins=FALSE) OR Full THEN
-        BEGIN
-         IF (Length(Uitg)<Posi) THEN
-          SetLength(UitG,Posi);
-         Uitg[Posi]:=CHR(Key);
-        END
-       ELSE
-         Insert(CHR(Key),Uitg,Posi);
-       ReWr;
-       INC(Posi);
-      END;
-     END;
-    InGev:=Length(Uitg);
-   END;
-  GrInputStr:=Endval=1;
-END;
-{$ENDIF}
-
-PROCEDURE SetDefaultColor;
-
-BEGIN
- {$ifndef UseGraphics}
-  TextColor(DefColor AND 15);
-  TextBackground(DefColor SHR 4);
- {$endif}
-END;
-
-
-{$IFNDEF FPC}
-PROCEDURE SetCursorSize(CurDat:WORD);ASSEMBLER;
-ASM
-  mov ah,1
-  mov cx,CurDat
-  int $10
-END;
-
-{The two procedures below are standard (and os-independant) in FPC's Crt}
-PROCEDURE CursorOn;
-BEGIN
-  SetCursorSize($090A);
-END;
-
-PROCEDURE CursorOff;
-BEGIN
-  SetCursorSize($FFFF);
-END;
-
-PROCEDURE dosmemfillword(Segx,xofs,Count,Value:WORD); ASSEMBLER;
-{VAR A:WORD;
-BEGIN
-  FOR A :=0 TO Count-1 DO
-    MemW[Seg:xofs+2*A]:=Value;
-END;
-}
-ASM
-  mov  ax,segx
-  mov  es,ax
-  mov  di,xofs
-  mov  cx,count
-  mov  ax,value
-  rep
-    stosw
-end;
-
-{TYPE VetteArray=ARRAY[0..9999] OF BYTE;}
-
-PROCEDURE dosmemput(Segx,xofs:WORD;VAR Data;Count:WORD); assembler;
-{VAR A:WORD;
-    L:^VetteArray;
-BEGIN
-  L:=@Data;
-  FOR A :=0 TO Count-1 DO
-    Mem[Segx:xofs+A]:=L^[A];
-END;
-}
-asm
-  lds si,Data
-  mov ax,segx
-  mov es,ax
-  mov di,xofs
-  mov cx,count
-  rep
-    movsw
-end;
-
-PROCEDURE dosmemget(Segx,xofs:WORD;VAR Data;Count:WORD); ASSEMBLER;
-{VAR A:WORD;
-    L:^VetteArray;
-BEGIN
-  L:=@Data;
-  FOR A :=0 TO Count-1 DO
-    L^[A]:=Mem[Segx:xofs+A];
-END;
-}
-asm
-  les di,Data
-  mov ax,segx
-  mov ds,ax
-  mov si,xofs
-  mov cx,count
-  rep
-    movsw
-end;
-
-PROCEDURE FillWord(VAR Data;Count,Value:WORD); ASSEMBLER;
-{VAR A :WORD;
-    L:^VetteArray;
-BEGIN
-  L:=@Data;
-  FOR A:=0 TO Count-1 DO
-  Begin
-    L^[2*A]:=Value AND 255;
-    L^[2*A+1]:=Value shr 8;
-  END;
-END;}
-
-asm
-  les di,Data
-  mov cx,count
-  mov ax,Value
-  rep
-    movsw
-end;
-
-FUNCTION GetCursorSize:WORD;ASSEMBLER;
-ASM
-  mov ah,3
-  xor bh,bh
-  int $10
-  mov ax,cx
-END;
-
-FUNCTION  inportb(portx : word) : byte;
-BEGIN
-  Inportb:=Port[PortX];
-END;
-
-PROCEDURE outportb(portx : word;data : byte);
-BEGIN
-  Port[portx]:=Data;
-END;
-
-FUNCTION  inportw(portx : word) : word;
-BEGIN
-  Inportw:=Portw[PortX];
-END;
-
-PROCEDURE outportw(portx : word;data : word);
-BEGIN
-  PortW[portx]:=Data;
-END;
-
- FUNCTION  inportl(portx : word) : longint; ASSEMBLER;
- ASM
-   mov dx,portx                   { load port address }
-   db $66; in  ax,dx              { in  eax,dx }
-   db $66; mov dx,ax              { mov edx, eax }
-   db $66; shr dx,16              { shr edx, 16 }
-   { return: ax=low word, dx=hi word }
- END;
-
- PROCEDURE  outportl(portx : word;data : longint); ASSEMBLER;
- ASM
-   { we cant use the 32 bit operand prefix for loading the longint -
-     therefore we have to do that in two chunks }
-     mov dx, portx
-     db $66; mov ax, Word(Data)  { mov eax, Data }
-   db $66; out dx,ax              { out dx, eax }
- END;
-
-{$ENDIF}
-
-BEGIN
- {$ifndef Win32Graph}
-  DefColor:=TextAttr;                { Save the current attributes, to restore}
- {$endif}
-  Negative:=FALSE;                    { Negative=true-> better scores are lower}
-END.

+ 0 - 925
demo/graph/gravwars.pp

@@ -1,925 +0,0 @@
-Program GravityWars;
-{A demo for TP 4.0 compability of Graph.
-
-The sources for this game was found on a site that claims to only have
-PD stuff with the below header(which was only reindented), and the webmaster
-said that everything he published was sent to him with that purpose. We tried
-to contact the authors mentioned below via mail over internet, but that
-failed. If there is somebody that claims authorship of these programs,
-please mail [email protected], and the sources will be removed from our
-websites.
-
-------------------------------------------------------------------------
-
-ORIGINAL Header:
-
-     by Sohrab Ismail-Beigi     Completed 4/23/89
-     SYSOP of The 3D Graphics BBS
-     300/1200/2400 baud, N-8-1 Full duplex
-     (201) 444-4154
-
-     Turbo Pascal 4.0 source code.  Requires VGA 640x480x16 display.
-     Note: pix=pixels in the comments}
-
-{$ifdef Win32}
- {$apptype GUI}
-{$endif}
-
-Uses
- {$ifdef Win32}
-  Windows,
-  WinCrt,
- {$else}
-  Crt,
- {$endif}
- Graph;
-
-Type
-    spacecraft=Record                       {used for ships and pointer}
-                 coffx,coffy,r : longint;   {center offsets and radius in pix}
-                 imagex,imagey : longint;   {upper left of image}
-                 imagepointr   : pointer;   {pointer to image data}
-                 imagesize     : word;      {size in bytes}
-               end;
-    planettype=Record
-                 cx,cy,r : longint;         {planet center and radius}
-                 d,GM    : real;            {density and G*M product}
-               end;
-
-Const
-     color : array[1..3] of byte=(Red,Green,LightBlue); {colors for planets}
-     G=0.1;                                             {gravity constant}
-     bhr=15;                                            {black hole radius}
-     Esc=#27;                                           {ASCII for Esc}
-     Return=#13;                                        { "     "  RETURN}
-
-Var
-  ship      : array[1..2] of spacecraft;    {2 ships}
-  tp,pointr : spacecraft;                   {tp is temporary, 1 pointer}
-  pl        : array[1..9] of planettype;    {the 9 planets}
-  screen    : Record                        {the game area}
-                sx,ex,sy,ey,cx,cy,lx,ly : longint; {start x/y, end x/y, center}
-              end;                                 {x/y, length x/y}
-  np,GraphDriver,GraphMode : integer;              {# of planets}
-  criticaldist : real;                             {for escape velocity calc}
-  playsong  : boolean;                             {play the songs?}
-
-Procedure Init;              {initialize everything}
-begin
-  //SetGraphBufSize(10);
-  GraphDriver:=VGA;
-  GraphMode:=VGAHi;
-  {$ifdef Win32}
-   ShowWindow(GetActiveWindow,0);
-  {$endif}
-
-  InitGraph(GraphDriver,GraphMode,'');
-  setbkcolor(black);
-  setviewport(0,0,getmaxx,getmaxy,clipoff);
-  clearviewport;
-  SetColor(LightGray);
-  SetFillStyle(SolidFill,LightGray);      {Hull of ships}
-  Circle(100,100,9);
-  FloodFill(100,100,LightGray);
-  Bar(77,98,100,102);
-  MoveTo(82,98);
-  LineRel(-3,-8);
-  LineRel(-13,0);               LineRel(0,-3);
-  LineRel(24,0);                LineRel(0,3);
-  LineRel(-7,0);                LineRel(3,8);
-  FloodFill(83,97,LightGray);
-  MoveTo(82,101);               LineRel(-3,8);
-  LineRel(-13,0);               LineRel(0,3);
-  LineRel(24,0);                LineRel(0,-3);
-  LineRel(-7,0);                LineRel(3,-8);
-  FloodFill(83,103,LightGray);
-  MoveTo(200,200);              LineRel(5,-5);
-  LineRel(5,5);                 LineRel(10,0);
-  LineRel(5,-8);                LineRel(15,0);
-  LineRel(-6,9);                LineRel(6,9);
-  LineRel(-15,0);               LineRel(-5,-7);
-  LineRel(-10,0);               LineRel(-5,5);
-  LineRel(-6,-7);               LineRel(2,-2);
-  FloodFill(201,201,LightGray);
-  SetColor(LightRed);
-  SetFillStyle(SolidFill,LightRed); {Red lights on ships}
-  Circle(100,100,2);
-  FloodFill(100,100,LightRed);
-  Bar(89,87,91,90);             Bar(89,109,91,112);
-  Bar(224,200,226,203);         Bar(240,192,242,194);
-  Bar(240,208,242,210);
-  SetColor(Yellow);
-  MoveTo(0,0);                  LineRel(0,10);
-  MoveTo(0,0);                  LineRel(10,0);
-  MoveTo(0,0);                  LineRel(15,15);   {pointer}
-  tp.imagesize:=ImageSize(0,0,16,16);     {kludge to subdue compiler bug}
-  GetMem(tp.imagepointr,tp.imagesize);
-  GetImage(0,0,16,16,tp.imagepointr^);
-  pointr.imagesize:=ImageSize(0,0,16,16);
-  GetMem(pointr.imagepointr,pointr.imagesize);
-  GetImage(0,0,16,16,pointr.imagepointr^);           {get pointer}
-  pointr.coffx:=7;
-  pointr.coffy:=7;
-  pointr.r:=9;
-  ship[1].imagesize:=ImageSize(66,87,110,113);
-  GetMem(ship[1].imagepointr,ship[1].imagesize);
-  GetImage(66,87,110,113,ship[1].imagepointr^);      {enterprise}
-  ship[1].coffx:=22; ship[1].coffy:=13; ship[1].r:=26;
-  ship[2].imagesize:=ImageSize(199,192,242,210);
-  GetMem(ship[2].imagepointr,ship[2].imagesize);
-  GetImage(199,192,242,210,ship[2].imagepointr^);     {klingon}
-  ship[2].coffx:=21; ship[2].coffy:=9; ship[2].r:=23;
-  ClearDevice;
-  screen.sx:=1;
-  screen.ex:=638;
-  screen.sy:=33;
-  screen.ey:=478;
-  screen.cx:=(screen.sx+screen.ex) div 2;                 {initialize screen}
-  screen.cy:=(screen.sy+screen.ey) div 2;                            {bounds}
-  screen.lx:=screen.ex-screen.sx+1;
-  screen.ly:=screen.ey-screen.sy+1;
-  criticaldist:=2.0*sqrt(sqr(screen.lx)+sqr(screen.ly)); {critical distance}
-  playsong:=true;                                    {for escape vel. calc}
-end;
-
-Procedure Finish;   {free memory and end}
-begin
-  FreeMem(ship[1].imagepointr,ship[1].imagesize);
-  FreeMem(ship[2].imagepointr,ship[2].imagesize);
-  FreeMem(pointr.imagepointr,pointr.imagesize);
-  FreeMem(tp.imagepointr,tp.imagesize);
-  CloseGraph;
-end;
-
-Function InBounds(cx,cy,r:longint):boolean; {is the point with radius}
-begin                                       {completely in screen bounds?}
-   InBounds:=true;
-   if r<>0 then
-     if (cx-r<=screen.sx) or (cx+r>=screen.ex) or
-        (cy-r<=screen.sy) or (cy+r>=screen.ey) then
-          InBounds:=false
-   else
-     if (cx-bhr<=screen.sx) or (cx+bhr>=screen.ex) or
-        (cy-bhr<=screen.sy) or (cy+bhr>=screen.ey) then
-          InBounds:=false;
-end;
-
-Procedure RandomSetup;   {make a random setup}
-var i,j : integer;
-    a,b : longint;
-    ok  : boolean;
-begin
-  Randomize;
-  np:=Random(9)+1;   {random # of planets 1-9}
-  for i:=1 to np do  {pick planet positions}
-    Repeat
-      ok:=true;
-      pl[i].cx:=Random(screen.lx)+screen.sx;
-      pl[i].cy:=Random(screen.ly)+screen.sy;
-      pl[i].d:=(Random(3)+2)/2.0;
-      pl[i].r:=0;
-      if Random>0.05 then pl[i].r:=Random(70)+20; {5% chance of blackhole}
-      if pl[i].r<>0 then
-        pl[i].GM:=G*2*pi*sqr(pl[i].r)*pl[i].d
-      else
-        pl[i].GM:=G*2*pi*sqr(30)*1.0;
-      ok:=InBounds(pl[i].cx,pl[i].cy,pl[i].r);
-      if (i>1) and (ok) then          {any collisions with existing planets?}
-        for j:=1 to i-1 do
-          begin
-          if sqrt(sqr(pl[i].cx-pl[j].cx)+sqr(pl[i].cy-pl[j].cy))<=
-            pl[i].r+pl[j].r+2*bhr then
-               ok:=false;
-          end;
-    Until ok;
-  for i:=1 to 2 do   {pick ship positions}
-    Repeat
-      ok:=true;
-      ship[i].imagex:=Random(screen.lx div 2)+screen.sx; {enterprise to the}
-      if i=2 then ship[2].imagex:=ship[i].imagex+screen.lx div 2; {left and}
-      ship[i].imagey:=Random(screen.ly)+screen.sy;      {klingon to the right}
-      a:=ship[i].imagex+ship[i].coffx; b:=ship[i].imagey+ship[i].coffy;
-      ok:=InBounds(a,b,ship[i].r);
-      for j:=1 to np do           {any collisions with planets?}
-        if sqrt(sqr(a-pl[j].cx)+sqr(b-pl[j].cy))<=pl[j].r+ship[i].r+bhr then
-           ok:=false;
-    Until ok;
-end;
-
-Procedure DrawSetup;  {draw current setup}
-var i,j : integer;
-begin
-  ClearDevice;
-  SetColor(White);
-  Rectangle(screen.sx-1,screen.sy-1,screen.ex-1,screen.ey-1); {game box}
-  for i:=1 to 2000 do             {2000 random stars}
-    PutPixel(Random(screen.lx)+screen.sx,Random(screen.ly)+screen.sy,White);
-  for i:=1 to 2 do  {2 ships}
-    PutImage(ship[i].imagex,ship[i].imagey,ship[i].imagepointr^,NormalPut);
-  for i:=1 to np do  {np planets}
-    if pl[i].r>0 then   {normal}
-      begin
-        SetColor(color[trunc(pl[i].d*2-1)]);
-        Circle(pl[i].cx,pl[i].cy,pl[i].r);
-        SetFillStyle(SolidFill,color[trunc(pl[i].d*2-1)]);
-        FloodFill(pl[i].cx,pl[i].cy,color[trunc(pl[i].d*2-1)]);
-      end
-    else               {black hole}
-      begin
-        SetColor(Black);
-        for j:=0 to bhr do
-          Circle(pl[i].cx,pl[i].cy,j);
-      end;
-end;
-
-Procedure ClearDialogBox;  {clear text message area}
-begin
-  SetFillStyle(SolidFill,Black);
-  Bar(0,0,screen.ex-1,screen.sy-2);
-end;
-
-Function GetString:string;  {get a string until RETURN is pressed}
-var s : string;
-    c : char;
-begin
-  s:='';
-  Repeat
-    c:=ReadKey;
-    if (c=chr(8)) and (length(s)>0) then          {backspace key}
-        begin
-          delete(s,length(s),1);
-          MoveRel(-8,0);                          {delete last char}
-          SetFillStyle(SolidFill,Black);
-          Bar(GetX,GetY,GetX+8,GetY+8);
-        end
-    else if c<>Return then
-      begin
-        s:=concat(s,c);                           {get and draw char}
-        SetColor(LightGray);
-        OutText(c);
-      end;
-  Until c=Return;
-  GetString:=s;
-end;
-
-Procedure PlayGame;
-Const number_of_explosion_dots=20;   {# dots for explosion with planet surface}
-Var vx,vy,vc,x,y,dt,ax,ay,dx,dy,dr,k : real;
-    v0,angle : array[1..2] of real;
-    s : string;
-    ch : char;
-    i,event,player,winner : integer;
-    ok,donecritical,offscreen : boolean;
-    buffer : array[1..number_of_explosion_dots] of Record  {for explosion}
-                                                     x,y,color : integer;
-                                                   end;
-begin
-  v0[1]:=0; v0[2]:=0; angle[1]:=0; angle[2]:=0;
-  player:=1;
-  donecritical:=false;
-  Repeat                               {infinite loop}
-    ClearDialogBox;
-    SetColor(LightGray);
-    str(player,s);
-    s:=concat('Player ',s);        {player #}
-    OutTextXY(0,0,s);
-    Repeat                         {get angle}
-      MoveTo(0,10);
-      str(angle[player]:3:5,s);
-      s:=concat('Angle: [',s,']: ');
-      OutText(s);
-      s:=GetString;
-      if (s[1]='Q') or (s[1]='q') then exit;
-      i:=0;
-      if s<>'' then Val(s,angle[player],i);
-      SetFillStyle(SolidFill,Black);
-      ok:=(i=0) and (angle[player]>=0.0) and (angle[player]<=360);
-      if not ok then Bar(0,10,screen.ex-1,18);
-    Until ok;
-    Repeat                        {get initial velocity}
-      MoveTo(0,20);
-      str(v0[player]:2:5,s);
-      s:=concat('Initial Velocity: [',s,']: ');
-      OutText(s);
-      s:=GetString;
-      if (s[1]='Q') or (s[1]='q') then exit;
-      i:=0;
-      if s<>'' then Val(s,v0[player],i);
-      SetFillStyle(SolidFill,Black);
-      ok:=(i=0) and (v0[player]>=0.0) and (v0[player]<=10.0);
-      if not ok then Bar(0,20,screen.ex-1,28);
-    Until ok;
-    k:=pi*angle[player]/180.0;   {angle in radians}
-    vx:=v0[player]*cos(k);
-    vy:=-v0[player]*sin(k);
-    x:=ship[player].imagex+ship[player].coffx+ship[player].r*cos(k);
-    y:=ship[player].imagey+ship[player].coffy-ship[player].r*sin(k);
-    ClearDialogBox;
-    MoveTo(round(x),round(y));
-    SetColor(White);
-    offscreen:=false;
-    Repeat                       {calculate and draw trajectory}
-      dt:=0.25;                  {time interval [vel. is in pix/time]}
-      x:=x+vx*dt; y:=y+vy*dt;
-      ax:=0; ay:=0;
-      for i:=1 to np do          {calc accel. due to gravity}
-        begin
-          dx:=x-pl[i].cx; dy:=y-pl[i].cy; dr:=sqrt(sqr(dx)+sqr(dy));
-          k:=1/(sqr(dr)*dr);
-          if pl[i].r<>0 then       {normal}
-            begin
-              ax:=ax-pl[i].GM*dx*k;
-              ay:=ay-pl[i].GM*dy*k
-            end
-          else                     {black hole}
-            begin
-              ax:=ax-pl[i].GM*dx*(k+sqr(k*dr));
-              ay:=ay-pl[i].GM*dy*(k+sqr(k*dr));
-            end;
-        end;
-      vx:=vx+ax*dt; vy:=vy+ay*dt;
-      event:=0;
-      if keypressed then
-        event:=1
-      else if (x>=screen.sx) and (x<=screen.ex) and        {in screen bounds?}
-              (y>=screen.sy) and (y<=screen.ey) then
-         begin
-           donecritical:=false;
-           i:=GetPixel(round(x),round(y));
-           if (i=color[1]) or (i=color[2]) or (i=color[3]) or
-              (i=LightRed) or (i=LightGray) then event:=2
-           else
-             if offscreen then
-               MoveTo(round(x),round(y))
-             else
-               LineTo(round(x),round(y));
-           offscreen:=false;
-         end                                               {off screen}
-      else if not donecritical then
-        begin
-          offscreen:=true;               {offscreen and critical distance}
-          dx:=x-screen.cx; dy:=y-screen.cy; dr:=sqrt(sqr(dx)+sqr(dy));
-          if dr>=criticaldist then
-            begin
-              vc:=(dx*vx+dy*vy)/dr;
-              k:=0; for i:=1 to np do k:=k+pl[i].GM;
-              if 0.5*sqr(vc)>=k/dr then     {do we have escape velocity?}
-                event:=3;
-            end;
-        end;
-    Until event<>0;
-    if event=1 then          {a key was pressed for a break}
-      begin
-        ClearDialogBox;
-        ch:=ReadKey; {one already in buffer}
-        SetColor(LightGray);
-        OutTextXY(0,0,'Break... Esc to break, any other key to continue');
-        ch:=ReadKey;
-        if ch=Esc then exit;
-      end
-    else if event=3 then       {missile escaped the universe}
-      begin
-        ClearDialogBox;
-        SetColor(LightGray);
-        OutTextXY(0,0,'Missile left the galaxy...');
-        delay(2000);
-      end
-    else           {event=2}   {hit something}
-      begin
-        if (i=color[1]) or (i=color[2]) or (i=color[3]) then  {hit a planet}
-          begin
-            for i:=1 to number_of_explosion_dots do     {draw explosion}
-              begin
-                buffer[i].x:=trunc(x+20*(Random-0.5));
-                buffer[i].y:=trunc(y+20*(Random-0.5));
-                buffer[i].color:=GetPixel(buffer[i].x,buffer[i].y);
-                PutPixel(buffer[i].x,buffer[i].y,LightRed);
-                delay(25);
-              end;
-            delay(1000);
-            for i:=1 to number_of_explosion_dots do     {erase explosion}
-              PutPixel(buffer[i].x,buffer[i].y,buffer[i].color);
-          end
-        else    {hit a ship!}
-          begin
-            if sqrt(sqr(x-ship[1].imagex-ship[1].coffx)+ {which one won?}
-                    sqr(y-ship[1].imagey-ship[1].coffy))<=ship[1].r+5 then
-                      winner:=2
-            else winner:=1;
-            for event:=1 to 100 do          {flash the screen}
-              SetPalette(Black,Random(16));
-            SetPalette(Black,Black);
-            for i:=1 to 1000 do    {put some white and red points}
-              begin
-                k:=Random*2*pi;
-                event:=Random(3);
-                if event=0 then
-                  PutPixel(trunc(x+30*Random*cos(k)),trunc(y+30*Random*sin(k)),Black)
-                else if event=1 then
-                  PutPixel(trunc(x+30*Random*cos(k)),trunc(y+30*Random*sin(k)),Red)
-                else
-                  PutPixel(trunc(x+20*Random*cos(k)),trunc(y+20*Random*sin(k)),White);
-              end;
-            ClearDialogBox;
-            SetColor(LightGray);
-            str(winner,s);
-            s:=concat('Player ',s,' wins!!!');    {announce}
-            OutTextXY(0,0,s);
-            if playsong then                      {play a tune}
-              begin
-                Sound(440); delay(150);
-                Nosound; delay(50);
-                Sound(440); delay(150);
-                Sound(554); delay(150);
-                Sound(659); delay(350);
-                Sound(554); delay(150);
-                Sound(659); delay(450);
-                Nosound; delay(500);
-                Sound(880); delay(800);
-                Nosound;
-              end;
-            delay(3000);
-            exit;
-          end;
-      end; {if event=3}
-    Inc(player); if player=3 then player:=1;    {next player}
-  Until true=false; {infinite loop}
-end;
-
-Procedure PlayingtheGame;     {playing the game menu}
-var option : char;
-begin
-  Repeat
-    ClearDialogBox;
-    SetColor(LightGray);
-    OutTextXY(0,0,'1. Random setup   2. Play game    Esc quits menu');
-    OutTextXY(0,10,'Option: ');
-    option:=ReadKey;
-    Case option of
-      '1' : begin
-              ClearDialogBox;
-              RandomSetup;
-              DrawSetup;
-            end;
-      '2' : PlayGame;
-    end;
-  Until option=Esc;
-end;
-
-Procedure Options;   {options menu}
-var option : char;
-begin
-  Repeat
-    ClearDialogBox;
-    SetColor(LightGray);
-    OutTextXY(0,0,'1. Redraw screen   2. Sound on/off     Esc quits menu');
-    OutTextXY(0,10,'Option: ');
-    option:=ReadKey;
-    Case option of
-      '1' : DrawSetUp;
-      '2' : playsong:=not playsong;
-    end;
-  Until option=Esc;
-end;
-
-Procedure InterpKey(c:char; var x,y,coffx,coffy,r:longint;
-                            var jump:integer; var moveit:boolean);
-begin              {interprets keys for movement of pointer, mainly to save}
-  Case c of                {space due to shared code in many Change routines}
-    '+' : if jump<49 then Inc(jump,2);
-    '-' : if jump>2 then Dec(jump,2);
-    '8' : begin                              {up}
-            Dec(y,jump);
-            if InBounds(x+coffx,y+coffy,r) then
-              moveit:=true
-            else
-              Inc(y,jump);
-          end;
-    '2' : begin                              {down}
-            Inc(y,jump);
-            if InBounds(x+coffx,y+coffy,r) then
-              moveit:=true
-            else
-              Dec(y,jump);
-          end;
-    '4' : begin                              {left}
-            Dec(x,jump);
-            if InBounds(x+coffx,y+coffy,r) then
-              moveit:=true
-            else
-              Inc(x,jump);
-          end;
-    '6' : begin                              {right}
-            Inc(x,jump);
-            if InBounds(x+coffx,y+coffy,r) then
-              moveit:=true
-            else
-              Dec(x,jump);
-          end;
-  end; {case c of}
-end;
-
-Procedure MoveShip;    {move a given ship to a new legal position}
-var c : char;
-    s,jump,j : integer;
-    x,y,xold,yold,a,b : longint;
-    legal,moveit : boolean;
-begin
-  ClearDialogBox;
-  SetColor(LightGray);
-  OutTextXY(0, 0,'Ships:  1. Enterprise   2. Klingon    Esc aborts');
-  OutTextXY(0,10,'Which ship? ');     {get the proper ship}
-  Repeat
-    c:=ReadKey;
-  Until (c='1') or (c='2') or (c=Esc);
-  if c=Esc then exit;
-  if c='1' then s:=1 else s:=2;
-  ClearDialogBox;
-  OutTextXY(0, 0,'Use cursors to move ship. (Num Lock on)   Esc aborts');
-  OutTextXY(0,10,'Enter to place, + and - to change size of jumps.');
-  jump:=30;
-  x:=ship[s].imagex; y:=ship[s].imagey;
-  Repeat    {loop until Esc or somewhere legal}
-    Repeat    {loop until Esc or RETURN}
-      Repeat c:=ReadKey; Until (c='4') or (c='8') or (c='6') or (c='2') or
-                               (c='+') or (c='-') or (c=Return) or (c=Esc);
-      moveit:=false; xold:=x; yold:=y;
-      InterpKey(c,x,y,ship[s].coffx,ship[s].coffy,ship[s].r,jump,moveit);
-      if moveit then  {if can move the image,}
-        begin
-          PutImage(xold,yold,ship[s].imagepointr^,XORPut); {erase old}
-          PutImage(x,y,ship[s].imagepointr^,XORPut);       {draw new}
-          moveit:=false;
-        end;
-    Until (c=Return) or (c=Esc);
-    if c=Esc then                     {abort}
-      begin
-        PutImage(x,y,ship[s].imagepointr^,XORPut);
-        PutImage(ship[s].imagex,ship[s].imagey,ship[s].imagepointr^,NormalPut);
-        exit;
-      end;
-    a:=x+ship[s].coffx; b:=y+ship[s].coffy;
-    legal:=InBounds(a,b,ship[s].r);     {in bounds?}
-    for j:=1 to np do                   {in collision with any planets?}
-      if sqrt(sqr(a-pl[j].cx)+sqr(b-pl[j].cy))<=pl[j].r+ship[s].r+bhr then
-         legal:=false;
-    if not legal then                   {oops! not legal!}
-      begin
-        SetPalette(Black,White);
-        SetFillStyle(SolidFill,Black);
-        Bar(0,20,screen.ex,screen.sy-2);
-        delay(100);
-        SetPalette(Black,Black);
-        SetColor(LightGray);
-        OutTextXY(0,20,'Illegal ship position!');
-      end;
-  Until legal;
-  ship[s].imagex:=x; ship[s].imagey:=y;    {ok, place it there}
-end;
-
-Procedure MovePlanet;   {move a planet}
-var c : char;
-    i,p,jump : integer;
-    x,y,xold,yold,minr,t,cxorig,cyorig : longint;
-    moveit,legal : boolean;
-begin
-  ClearDialogBox;
-  if np=0 then         {no planets!}
-    begin
-      OutTextXY(0,0,'No planets to move!');
-      delay(2000);
-      exit;
-    end;
-  OutTextXY(0, 0,'Use cursors to move pointer. (Num Lock on)   Esc aborts');
-  OutTextXY(0,10,'Enter to pick planet, + and - to change size of jumps.');
-  jump:=30;
-  x:=100; y:=100; PutImage(x,y,pointr.imagepointr^,XORPut);
-  Repeat    {loop until Esc or RETURN}
-    Repeat c:=ReadKey; Until (c='4') or (c='8') or (c='6') or (c='2') or
-                             (c='+') or (c='-') or (c=Return) or (c=Esc);
-    moveit:=false; xold:=x; yold:=y;
-    InterpKey(c,x,y,pointr.coffx,pointr.coffy,pointr.r,jump,moveit);
-    if moveit then
-      begin
-        PutImage(xold,yold,pointr.imagepointr^,XORPut);
-        PutImage(x,y,pointr.imagepointr^,XORPut);
-        moveit:=false;
-      end;
-  Until (c=Return) or (c=Esc);
-  PutImage(x,y,pointr.imagepointr^,XORPut);   {erase pointer}
-  if c=Esc then exit;
-  p:=0; minr:=trunc(sqrt(sqr(screen.lx)+sqr(screen.ly)));
-  for i:=1 to np do   {find the closest planet/black hole}
-    begin
-      t:=trunc(sqrt(sqr(x-pl[i].cx)+sqr(y-pl[i].cy)));
-      if t<minr then begin minr:=t; p:=i; end;
-    end;
-  SetColor(LightGreen);                      {clear it out}
-  Circle(pl[p].cx,pl[p].cy,pl[p].r);
-  SetFillStyle(SolidFill,Black);
-  FloodFill(pl[p].cx,pl[p].cy,LightGreen);
-  SetColor(Black);
-  Circle(pl[p].cx,pl[p].cy,pl[p].r);
-  ClearDialogBox;
-  SetColor(LightGray);
-  OutTextXY(0, 0,'Use cursors to move pointer. (Num Lock on)   Esc aborts');
-  OutTextXY(0,10,'Enter to place planet center, + - change size of jumps.');
-  jump:=30;
-  x:=100; y:=100; PutImage(x,y,pointr.imagepointr^,XORPut);
-  cxorig:=pl[p].cx; cyorig:=pl[p].cy;   {save them as they may change later}
-  Repeat    {loop until Esc or legal position}
-    Repeat
-      Repeat c:=ReadKey; Until (c='4') or (c='8') or (c='6') or (c='2') or
-                               (c='+') or (c='-') or (c=Return) or (c=Esc);
-      moveit:=false; xold:=x; yold:=y;
-      InterpKey(c,x,y,pointr.coffx,pointr.coffy,pointr.r,jump,moveit);
-      if moveit then
-        begin
-          PutImage(xold,yold,pointr.imagepointr^,XORPut);
-          PutImage(x,y,pointr.imagepointr^,XORPut);
-          moveit:=false;
-        end;
-    Until (c=Return) or (c=Esc);
-    legal:=true;
-    if c<>Esc then    {ok, RETURN pressed}
-      begin
-        pl[p].cx:=-1000; pl[p].cy:=-1000;  {so it won't collide with itself!}
-        for i:=1 to np do   {any collisions with other planets?}
-          if sqrt(sqr(x-pl[i].cx)+sqr(y-pl[i].cy))<=pl[i].r+pl[p].r+2*bhr then
-            legal:=false;
-        for i:=1 to 2 do    {any collisions with other ships?}
-          if sqrt(sqr(x-ship[i].imagex-ship[i].coffx)+
-                  sqr(y-ship[i].imagey-ship[i].coffy))<=pl[p].r+ship[i].r+bhr
-             then legal:=false;
-      end;
-    if not legal then      {oops!}
-      begin
-        SetPalette(Black,White);
-        SetFillStyle(SolidFill,Black);
-        Bar(0,20,screen.ex,screen.sy-2);
-        delay(100);
-        SetPalette(Black,Black);
-        SetColor(LightGray);
-        OutTextXY(0,20,'Illegal planet position!');
-      end;
-  Until legal;
-  pl[p].cx:=x; pl[p].cy:=y; {put it there}
-  if c=Esc then             {abort and restore}
-    begin
-      pl[p].cx:=cxorig;
-      pl[p].cy:=cyorig;
-    end;
-  DrawSetUp;                {redraw screen}
-end;
-
-Procedure MakePlanet;       {make a planet given center and radius}
-var c : char;
-    i,p,jump : integer;
-    x,y,xold,yold : longint;
-    moveit,legal : boolean;
-begin
-  ClearDialogBox;
-  if np=9 then       {too many planets already!}
-    begin
-      OutTextXY(0,0,'Can not make any more planets!');
-      delay(2000);
-      exit;
-    end;
-  OutTextXY(0, 0,'Use cursors to move pointer. (Num Lock on)   Esc aborts');
-  OutTextXY(0,10,'Enter to place center, + and - to change size of jumps.');
-  jump:=30;
-  x:=100; y:=100; PutImage(x,y,pointr.imagepointr^,XORPut);
-  Repeat   {loop until a legal center is picked or Esc}
-    Repeat
-      Repeat c:=ReadKey; Until (c='4') or (c='8') or (c='6') or (c='2') or
-                               (c='+') or (c='-') or (c=Return) or (c=Esc);
-      moveit:=false; xold:=x; yold:=y;
-      InterpKey(c,x,y,pointr.coffx,pointr.coffy,pointr.r,jump,moveit);
-      if moveit then
-        begin
-          PutImage(xold,yold,pointr.imagepointr^,XORPut);
-          PutImage(x,y,pointr.imagepointr^,XORPut);
-          moveit:=false;
-        end;
-    Until (c=Return) or (c=Esc);
-    if c=Esc then exit;
-    legal:=true;
-    for i:=1 to np do    {any collisions with planets?}
-      if sqrt(sqr(x-pl[i].cx)+sqr(y-pl[i].cy))<=pl[i].r+2*bhr then
-        legal:=false;
-    for i:=1 to 2 do     {any collisions with ships?}
-      if sqrt(sqr(x-ship[i].imagex-ship[i].coffx)+
-              sqr(y-ship[i].imagey-ship[i].coffy))<=ship[i].r+bhr
-         then legal:=false;
-    if not legal then                    {uh oh!}
-      begin
-        SetPalette(Black,White);
-        SetFillStyle(SolidFill,Black);
-        Bar(0,20,screen.ex,screen.sy-2);
-        delay(100);
-        SetPalette(Black,Black);
-        SetColor(LightGray);
-        OutTextXY(0,20,'Illegal planet center!');
-      end;
-  Until legal;
-  p:=np+1; pl[p].cx:=x; pl[p].cy:=y;   {ok, store the info}
-  ClearDialogBox;
-  OutTextXY(0, 0,'Use cursors to move pointer. (Num Lock on)   Esc aborts');
-  OutTextXY(0,10,'Enter to radius, + and - change size of jumps.');
-  jump:=30;
-  Repeat     {loop until a legal radius is entered or Esc}
-    Repeat
-      Repeat c:=ReadKey; Until (c='4') or (c='8') or (c='6') or (c='2') or
-                               (c='+') or (c='-') or (c=Return) or (c=Esc);
-      moveit:=false; xold:=x; yold:=y;
-      InterpKey(c,x,y,pointr.coffx,pointr.coffy,pointr.r,jump,moveit);
-      if moveit then
-        begin
-          PutImage(xold,yold,pointr.imagepointr^,XORPut);
-          PutImage(x,y,pointr.imagepointr^,XORPut);
-          moveit:=false;
-        end;
-    Until (c=Return) or (c=Esc);
-    if c=Esc then exit;
-    legal:=true;
-    pl[p].r:=round(sqrt(sqr(x-pl[p].cx)+sqr(y-pl[p].cy))); {find radius}
-    for i:=1 to np do    {planet collisions?}
-      if sqrt(sqr(x-pl[i].cx)+sqr(y-pl[i].cy))<=pl[p].r+pl[i].r+2*bhr then
-        legal:=false;
-    for i:=1 to 2 do     {ship collisions?}
-      if sqrt(sqr(x-ship[i].imagex-ship[i].coffx)+
-              sqr(y-ship[i].imagey-ship[i].coffy))<=pl[p].r+ship[i].r+bhr
-         then legal:=false;
-    if not legal then    {oh no!}
-      begin
-        SetPalette(Black,White);
-        SetFillStyle(SolidFill,Black);
-        Bar(0,20,screen.ex,screen.sy-2);
-        delay(100);
-        SetPalette(Black,Black);
-        SetColor(LightGray);
-        OutTextXY(0,20,'Illegal planet radius!');
-      end;
-  Until legal;
-  PutImage(x,y,pointr.imagepointr^,XORPut); {kill the pointer}
-  Inc(np);    {actually add the new planet info}
-  pl[p].d:=1.0; pl[p].GM:=G*2*pi*sqr(pl[p].r)*1.0; {initialize it}
-  SetColor(color[1]);                      {draw it}
-  Circle(pl[p].cx,pl[p].cy,pl[p].r);
-  SetFillStyle(SolidFill,color[1]);
-  FloodFill(pl[p].cx,pl[p].cy,color[1]);
-end;
-
-Procedure ChangePlanet;   {change density [color] of a planet}
-var c : char;               {will not change black holes}
-    i,p,jump : integer;
-    x,y,xold,yold,minr,t : longint;
-    moveit,legal : boolean;
-begin
-  ClearDialogBox;
-  legal:=false;
-  if np>0 then             {see if any non-black holes exist}
-    for i:=1 to np do
-      if pl[i].r<>0 then legal:=true;
-  if (np=0) or (not legal) then   {sorry!}
-    begin
-      OutTextXY(0,0,'No planets to change!');
-      delay(2000);
-      exit;
-    end;
-  OutTextXY(0, 0,'Use cursors to move pointer. (Num Lock on)   Esc aborts');
-  OutTextXY(0,10,'Enter to pick planet, + and - to change size of jumps.');
-  jump:=30;
-  x:=100; y:=100; PutImage(x,y,pointr.imagepointr^,XORPut);
-  Repeat   {repeat until RETURN or Esc}
-    Repeat c:=ReadKey; Until (c='4') or (c='8') or (c='6') or (c='2') or
-                             (c='+') or (c='-') or (c=Return) or (c=Esc);
-    moveit:=false; xold:=x; yold:=y;
-    InterpKey(c,x,y,pointr.coffx,pointr.coffy,pointr.r,jump,moveit);
-    if moveit then
-      begin
-        PutImage(xold,yold,pointr.imagepointr^,XORPut);
-        PutImage(x,y,pointr.imagepointr^,XORPut);
-        moveit:=false;
-      end;
-  Until (c=Return) or (c=Esc);
-  PutImage(x,y,pointr.imagepointr^,XORPut);  {kill the pointer}
-  if c=Esc then exit;
-  p:=0; minr:=trunc(sqrt(sqr(screen.lx)+sqr(screen.ly)));
-  for i:=1 to np do   {find closest non-black hole planet}
-    begin
-      t:=trunc(sqrt(sqr(x-pl[i].cx)+sqr(y-pl[i].cy)));
-      if (t<minr) and (pl[i].r<>0) then begin minr:=t; p:=i; end;
-    end;
-  ClearDialogBox;
-  OutTextXY(0, 0,'Change to: 1. Red   2. Green   3. Blue    Esc aborts');
-  OutTextXY(0,10,'Option: ');    {get a density}
-  Repeat c:=ReadKey; Until (c='1') or (c='2') or (c='3') or (c=Esc);
-  if c=Esc then exit;
-  i:=Ord(c)-48;
-  pl[p].d:=(i+1)/2.0;       {new density}
-  SetColor(color[i]);       {redraw}
-  Circle(pl[p].cx,pl[p].cy,pl[p].r);
-  SetFillStyle(SolidFill,color[i]);
-  FloodFill(pl[p].cx,pl[p].cy,color[i]);
-end;
-
-Procedure DeletePlanet;   {kill a planet/black hole}
-var c : char;
-    i,p,jump : integer;
-    x,y,xold,yold,minr,t : longint;
-    moveit : boolean;
-begin
-  ClearDialogBox;
-  if np=0 then    {nobody there!}
-    begin
-      OutTextXY(0,0,'No planets to delete!');
-      delay(2000);
-      exit;
-    end;
-  OutTextXY(0, 0,'Use cursors to move pointer. (Num Lock on)   Esc aborts');
-  OutTextXY(0,10,'Enter to pick planet, + and - to change size of jumps.');
-  jump:=30;
-  x:=100; y:=100; PutImage(x,y,pointr.imagepointr^,XORPut);
-  Repeat
-    Repeat c:=ReadKey; Until (c='4') or (c='8') or (c='6') or (c='2') or
-                             (c='+') or (c='-') or (c=Return) or (c=Esc);
-    moveit:=false; xold:=x; yold:=y;
-    InterpKey(c,x,y,pointr.coffx,pointr.coffy,pointr.r,jump,moveit);
-    if moveit then
-      begin
-        PutImage(xold,yold,pointr.imagepointr^,XORPut);
-        PutImage(x,y,pointr.imagepointr^,XORPut);
-        moveit:=false;
-      end;
-  Until (c=Return) or (c=Esc);
-  PutImage(x,y,pointr.imagepointr^,XORPut);
-  if c=Esc then exit;
-  p:=0; minr:=trunc(sqrt(sqr(screen.lx)+sqr(screen.ly)));
-  for i:=1 to np do  {find the closest planet/black hole}
-    begin
-      t:=trunc(sqrt(sqr(x-pl[i].cx)+sqr(y-pl[i].cy)));
-      if t<minr then begin minr:=t; p:=i; end;
-    end;
-  if p<9 then           {move everybody above the one deleted one down}
-    for i:=p to np-1 do
-      pl[i]:=pl[i+1];
-  Dec(np);         {delete}
-  DrawSetup;       {redraw}
-end;
-
-Procedure Changes;   {changes menu}
-var option : char;
-begin
-  Repeat
-    ClearDialogBox;
-    SetColor(LightGray);
-    OutTextXY(0, 0,'1. Move ship       2. Move planet    3. Make planet');
-    OutTextXY(0,10,'4. Change planet   5. Delete planet     Esc quits menu');
-    OutTextXY(0,20,'Option: ');
-    option:=ReadKey;
-    Case option of
-      '1' : MoveShip;
-      '2' : MovePlanet;
-      '3' : MakePlanet;
-      '4' : ChangePlanet;
-      '5' : DeletePlanet;
-    end;
-  Until option=Esc;
-end;
-
-Procedure MainMenu;   {main menu}
-var option : char;
-begin
-  Repeat
-    ClearDialogBox;
-    SetColor(LightGray);
-    OutTextXY(0,0,'1. Playing the game   2. Options   3. Changes   4. Quit');
-    OutTextXY(0,10,'Option: ');
-    option:=ReadKey;
-    Case option of
-      '1' : PlayingtheGame;
-      '2' : Options;
-      '3' : Changes;
-    end;
-  Until option='4';
-end;
-
-Procedure Title;   {title screen and credits}
-begin
-  SetTextStyle(SansSerifFont,HorizDir,9);
-  OutTextXY(25,100,'Gravity Wars');
-  SetTextStyle(SansSerifFont,HorizDir,2);
-  OutTextXY(300,300,'by Sohrab Ismail-Beigi');
-  delay(3000);
-  SetTextStyle(DefaultFont,HorizDir,0);
-end;
-
-BEGIN
-  Init;
-  Title;
-  RandomSetup;
-  DrawSetup;
-  MainMenu;
-  Finish;
-END.

+ 0 - 353
demo/graph/mandel.pp

@@ -1,353 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-98 by Gernot Tenchio
-
-    Mandelbrot Example using the Graph unit
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program mandel;
-{$goto on}
-{
-  Mandelbrot example using the graph unit.
-
-  Note: For linux you need to run this program as root !!
-}
-
-{$ifdef Win32}
- {$apptype GUI}
-{$endif}
-
-uses
-{$ifdef Win32}
-  WinCrt,
-  Windows,
-{$endif}
-  dos,Graph;
-
-{
-const
-  shift:byte=12;
-}
-
-var
-  SearchPoint,ActualPoint,NextPoint       : PointType;
-  LastColor                              : longint;
-  Gd,Gm                                  : smallint;
-  Max_Color,Max_X_Width,
-  Max_Y_Width,Y_Width                    : word;
-  Y1,Y2,X1,X2,Dy,Dx                      : Real;
-  Zm                                     : Integer;
-  SymetricCase                                   : boolean;
-  LineY                                  : array [0..600] OF BYTE;
-  LineX                                  : array [0..100,0..600] OF INTEGER;
-const
-    SX : array [0..7] OF SHORTINT=(-1, 0, 1, 1, 1, 0,-1,-1);
-    SY : array [0..7] OF SHORTINT=(-1,-1,-1, 0, 1, 1, 1, 0);
-type
-    arrayType = array[1..50] of integer;
-
-{------------------------------------------------------------------------------}
-  function ColorsEqual(c1, c2 : longint) : boolean;
-    begin
-       ColorsEqual:=((GetMaxColor=$FF) and ((c1 and $FF)=(c2 and $FF))) or
-         ((GetMaxColor=$7FFF) and ((c1 and $F8F8F8)=(c2 and $F8F8F8))) or
-         ((GetMaxColor=$FFFF) and ((c1 and $F8FCF8)=(c2 and $F8FCF8))) or
-         ((GetMaxColor>$10000) and ((c1 and $FFFFFF)=(c2 and $FFFFFF)));
-    end;
-
-{------------------------------------------------------------------------------}
-function CalcMandel(Point:PointType; z:integer) : Longint ;
-var
-  x,y,xq,yq,Cx,Cy : real ;
-begin
-  Cy:=y2 + dy*Point.y ;
-  Cx:=x2 + dx*Point.x ;
-  X:=-Cx ; Y:=-Cy ;
-  repeat
-    xq:=x * x;
-    yq:=y * y  ;
-    y :=x * y;
-    y :=y + y - cy;
-    x :=xq - yq - cx ;
-    z :=z -1;
-  until (Z=0) or (Xq + Yq > 4 );
-  if Z=0 Then
-    CalcMandel:=(blue and $FFFFFF)
-  else
-    CalcMandel:={DefaultColors[}(z mod Max_Color) + 1 {]};
-end;
-
-{-----------------------------------------------------------------------------}
-procedure Partition(var A : arrayType; First, Last : Byte);
-var
-  Right,Left : byte ;
-  V,Temp     : integer;
-begin
-    V := A[(First + Last) SHR 1];
-    Right := First;
-    Left := Last;
-    repeat
-      while (A[Right] < V) do
-        inc(Right);
-      while (A[Left] > V) do
-        Dec(Left);
-      if (Right <= Left) then
-        begin
-          Temp:=A[Left];
-          A[Left]:=A[Right];
-          A[Right]:=Temp;
-          Right:=Right+1;
-          Left:=Left-1;
-        end;
-    until Right > Left;
-    if (First < Left) then
-      Partition(A, First, Left);
-    if (Right < Last) then
-      Partition(A, Right, Last)
-end;
-
-{-----------------------------------------------------------------------------}
-function BlackScan(var NextPoint:PointType) : boolean;
-begin
-  BlackScan:=true;
-  repeat
-    if NextPoint.X=Max_X_Width then
-      begin
-        if NextPoint.Y < Y_Width then
-          begin
-            NextPoint.X:=0 ;
-            NextPoint.Y:=NextPoint.Y+1;
-          end
-        else
-          begin
-            BlackScan:=false;
-            exit;
-          end ; { IF }
-      end ; { IF }
-    NextPoint.X:=NextPoint.X+1;
-  until GetPixel(NextPoint.X,NextPoint.Y)=0;
-end ;
-
-{------------------------------------------------------------------------------}
-procedure Fill(Ymin,Ymax,LastColor:integer);
-var
- P1,P3,P4,P    : integer ;
- Len,P2        : byte ;
- Darray        : arraytype;
-begin
-  SetColor(LastColor);
-  for P1:=Ymin+1 to Ymax-1 do
-   begin
-     Len:=LineY[P1] ;
-     if Len >= 2 then
-      begin
-        for P2:=1 to Len do
-          Darray[P2]:=LineX[P2,P1] ;
-        if Len > 2 then
-          Partition(Darray,1,len);
-        P2:=1;
-        repeat
-          P3:= Darray[P2] ; P4:= Darray[P2 + 1];
-          if P3 <> P4 then
-           begin
-             line ( P3 , P1 , P4 , P1) ;
-             if SymetricCase then
-              begin
-                P:=Max_Y_Width-P1;
-                line ( P3 , P , P4 , P ) ;
-              end;
-           end; { IF }
-          P2:=P2+2;
-        until P2 >= Len ;
-      end; { IF }
-   end; { FOR }
-end;
-
-{-----------------------------------------------------------------------------}
-Function NewPosition(Last:Byte):Byte;
-begin
-  newposition:=(((last+1) and 254)+6) and 7;
-end;
-
-{-----------------------------------------------------------------------------}
-procedure CalcBounds;
-var
-  lastOperation,KK,
-  Position                     : Byte ;
-  foundcolor                   : longint;
-  Start,Found,NotFound         : boolean ;
-  MerkY,Ymax                   : Integer ;
-label
-  L;
-begin
-  repeat
-    FillChar(LineY,SizeOf(LineY),0) ;
-    ActualPoint:=NextPoint;
-    LastColor:=CalcMandel(NextPoint,Zm) ;
-    putpixel (ActualPoint.X,ActualPoint.Y,LastColor);
-    if SymetricCase then
-      putpixel (ActualPoint.X,Max_Y_Width-ActualPoint.Y,LastColor) ;
-    Ymax:=NextPoint.Y ;
-    MerkY:=NextPoint.Y ;
-    NotFound:=false ;
-    Start:=false ;
-    LastOperation:=4 ;
-    repeat
-      Found:=false ;
-      KK:=0 ;
-      Position:=NewPosition(LastOperation);
-      repeat
-        LastOperation:=(Position+KK) and 7 ;
-        SearchPoint.X:=ActualPoint.X+Sx[LastOperation];
-        SearchPoint.Y:=ActualPoint.Y+Sy[LastOperation];
-        if ((SearchPoint.X < 0) or
-            (SearchPoint.X > Max_X_Width) or
-            (SearchPoint.Y < NextPoint.Y) or
-            (SearchPoint.Y > Y_Width)) then
-          goto L;
-        if (SearchPoint.X=NextPoint.X) and (SearchPoint.Y=NextPoint.Y) then
-          begin
-            Start:=true ;
-            Found:=true ;
-          end
-        else
-          begin
-            FoundColor:=GetPixel(SearchPoint.X,SearchPoint.Y) ;
-            if FoundColor = 0 then
-              begin
-                FoundColor:= CalcMandel (SearchPoint,Zm) ;
-                Putpixel (SearchPoint.X,SearchPoint.Y,FoundColor) ;
-                if SymetricCase then
-                  PutPixel (SearchPoint.X,Max_Y_Width-SearchPoint.Y,FoundColor) ;
-              end ;
-            if ColorsEqual(FoundColor,LastColor) then
-              begin
-                if ActualPoint.Y <> SearchPoint.Y then
-                  begin
-                    if SearchPoint.Y = MerkY then
-                      LineY[ActualPoint.Y]:=LineY[ActualPoint.Y]-1;
-                    MerkY:= ActualPoint.Y ;
-                    LineY[SearchPoint.Y]:=LineY[SearchPoint.Y]+1;
-                  end ;
-                LineX[LineY[SearchPoint.Y],SearchPoint.Y]:=SearchPoint.X ;
-                if SearchPoint.Y > Ymax then Ymax:= SearchPoint.Y ;
-                  Found:=true ;
-                ActualPoint:=SearchPoint ;
-              end;
-L:
-            KK:=KK+1;
-            if KK > 8 then
-              begin
-                Start:=true ;
-                NotFound:=true ;
-              end;
-          end;
-      until Found or (KK > 8);
-    until Start ;
-    if not NotFound then
-      Fill(NextPoint.Y,Ymax,LastColor) ;
-  until not BlackScan(NextPoint);
-end ;
-
-
-{------------------------------------------------------------------------------
-                              MAINROUTINE
-------------------------------------------------------------------------------}
-  var
-     error,dummy : smallint;
-
-var i,neededtime,starttime : longint;
-  hour, minute, second, sec100 : word;
-
-const
-  count : longint = 1;
-  gmdefault = m640x480;
-
-begin
-  gm:=-1;
-  if paramcount>0 then
-    begin
-       val(paramstr(1),gm,error);
-       if error<>0 then
-         gm:=gmdefault;
-{$ifdef go32v2}
-       if paramcount>1 then
-         begin
-           Val(paramstr(2),count,error);
-           if error<>0 then
-             count:=1;
-         end;
-       if paramcount>2 then
-         UseLFB:=true;
-       if paramcount>3 then
-         UseNoSelector:=true;
-{$endif go32v2}
-    end;
-  gd:=d8bit;
-  if gm=-1 then
-    GetModeRange(gd,dummy,gm);
-  GetTime(hour, minute, second, sec100);
-  starttime:=((hour*60+minute)*60+second)*100+sec100;
-  {$ifdef Win32}
-   ShowWindow(GetActiveWindow,0);
-  {$endif}
-  InitGraph(gd,gm,'');
-  if GraphResult <> grOk then
-    begin
-      Writeln('Graph driver ',gd,' graph mode ',gm,' not supported');
-      Halt(1);
-    end;
-  for i:=1 to count do
-    begin
-      Max_X_Width:=GetMaxX;
-      Max_y_Width:=GetMaxY;
-      Max_Color:=GetMaxColor-1;
-      if Max_Color>255 then
-        Max_Color:=255;
-      ClearViewPort;
-
-      x1:=-0.9;
-      x2:= 2.2;
-      y1:= 1.25;
-      y2:=-1.25;
-      zm:=90;
-      dx:=(x1 - x2) / Max_X_Width ;
-      dy:=(y1 - y2) / Max_Y_Width ;
-      if abs(y1) = abs(y2) then
-       begin
-         SymetricCase:=true;
-         Y_Width:=Max_Y_Width shr 1
-       end
-      else
-       begin
-         SymetricCase:=false;
-         Y_Width:=Max_Y_Width;
-       end;
-      NextPoint.X:=0;
-      NextPoint.Y:=0;
-      LastColor:=CalcMandel(SearchPoint,zm);
-      CalcBounds ;
-    end;
-  GetTime(hour, minute, second, sec100);
-  neededtime:=((hour*60+minute)*60+second)*100+sec100-starttime;
-{$ifndef fpc_profile}
-  {$ifndef Win32}
-  readln;
-  {$else: Win32}
-  repeat
-  until keypressed;
-  {$endif}
-{$endif fpc_profile}
-  CloseGraph;
-  {$ifndef Win32}
-   Writeln('Mandel took ',Real(neededtime)/100/count:0:3,' secs to generate mandel graph');
-   Writeln('With graph driver ',gd,' and graph mode ',gm);
-  {$endif}
-end.

+ 0 - 497
demo/graph/maze.pp

@@ -1,497 +0,0 @@
-{A demo with some interesting algoritms, and for Graph.
-
-The sources for this game was found on a site that claims to only have
-PD stuff with the below header(which was only reindented), and the webmaster
-said that everything he published was sent to him with that purpose. We tried
-to contact the authors mentioned below via mail over internet, but that
-failed. If there is somebody that claims authorship of these programs,
-please mail [email protected], and the sources will be removed from our
-websites.
-
-------------------------------------------------------------------------
-
-ORIGINAL Header:
-
-created by Randy Ding July 16,1983   <April 21,1992>
-
-Very small FPC fixes by Marco van de Voort (EgaHi to vgahi), and tried
-setting the maze dimensions maxx and maxy to a bigger size.
-Won't work, you'll have to update all vars to al least word to increase the
-complexity of the grid further. I didn't do it, since 200x200 is already
-unreadable to me.
-
-Don't forget the BGIPATH of InitGraph.
-}
-
-{$R-}   { range checking }
-
-program makemaze;
-
-{apptype GUI, disabled, there are too many writes PM }
-
-uses
- {$ifdef Win32}
-  WinCrt,Windows,
- {$else}
-  crt,
- {$endif}
-  graph;
-
-const
-  screenwidth   = 640;
-  screenheight  = 480;
-  minblockwidth = 2;
-  maxx = 200;   { BP: [3 * maxx * maxy] must be less than 65520 (memory segment) }
-                { FPC: Normally no problem. ( even if you'd use 1600x1200x3< 6MB)}
-  maxy = 200;   { here maxx/maxy about equil to screenwidth/screenheight }
-  flistsize = maxx*maxy DIV 2; { flist size (fnum max, about 1/3 of maxx * maxy) }
-
-  background = black;
-  gridcolor  = green;
-  solvecolor = white;
-
-  rightdir = $01;
-  updir    = $02;
-  leftdir  = $04;
-  downdir  = $08;
-
-  unused   = $00;    { cell types used as flag bits }
-  frontier = $10;
-{  reserved = $20; }
-  tree     = $30;
-
-
-type
-  frec = record
-          column, row : byte;
-         end;
-  farr = array [1..flistsize] of frec;
-
-  cellrec = record
-              point : word;  { pointer to flist record }
-              flags : byte;
-            end;
-  cellarr = array [1..maxx,1..maxy] of cellrec;
-
-  {
-    one byte per cell, flag bits...
-
-    0: right, 1 = barrier removed
-    1: top    "
-    2: left   "
-    3: bottom "
-    5,4: 0,0 = unused cell type
-         0,1 = frontier "
-         1,1 = tree     "
-         1,0 = reserved "
-    6: (not used)
-    7: solve path, 1 = this cell part of solve path
-  }
-
-
-var
-  flist     : farr;         { list of frontier cells in random order }
-  cell      : ^cellarr;      { pointers and flags, on heap }
-  fnum,
-  width,
-  height,
-  blockwidth,
-  halfblock,
-  maxrun    : word;
-  runset    : byte;
-  ch        : char;
-
-procedure initbgi;
-var
-  grdriver,
-  grmode,
-  errcode : integer;
-begin
-  grdriver := vga;
-  grmode   := vgahi;
-  initgraph(grdriver, grmode, 'd:\pp\bp\bgi');
-  errcode:= graphresult;
-  if errcode <> grok then
-  begin
-    CloseGraph;
-    writeln('Graphics error: ', grapherrormsg(errcode));
-    halt(1);
-  end;
-end;
-
-
-function adjust(var x, y : word; d : byte) : boolean;
-begin                              { take x,y to next cell in direction d }
-  case d of                        { returns false if new x,y is off grid }
-    rightdir:
-    begin
-      inc (x);
-      adjust:= x <= width;
-    end;
-
-    updir:
-    begin
-      dec (y);
-      adjust:= y > 0;
-    end;
-
-    leftdir:
-    begin
-      dec (x);
-      adjust:= x > 0;
-    end;
-
-    downdir:
-    begin
-      inc (y);
-      adjust:= y <= height;
-    end;
-  end;
-end;
-
-
-procedure remove(x, y : word);      { remove a frontier cell from flist }
-var
-  i : word; { done by moving last entry in flist into it's place }
-begin
-  i := cell^[x,y].point;          { old pointer }
-  with flist[fnum] do
-    cell^[column,row].point := i;   { move pointer }
-  flist[i] := flist[fnum];        { move data }
-  dec(fnum);                    { one less to worry about }
-end;
-
-
-procedure add(x, y : word; d : byte);  { add a frontier cell to flist }
-var
-  i : byte;
-begin
-  i := cell^[x,y].flags;
-  case i and $30 of   { check cell type }
-    unused :
-    begin
-      cell^[x,y].flags := i or frontier;  { change to frontier cell }
-      inc(fnum);                        { have one more to worry about }
-      if fnum > flistsize then
-      begin     { flist overflow error! }
-        dispose(cell);  { clean up memory }
-        closegraph;
-        writeln('flist overflow! - To correct, increase "flistsize"');
-        write('hit return to halt program ');
-        readln;
-        halt(1);        { exit program }
-      end;
-      with flist[fnum] do
-      begin    { copy data into last entry of flist }
-        column := x;
-        row    := y;
-      end;
-      cell^[x,y].point := fnum; { make the pointer point to the new cell }
-      runset := runset or d;   { indicate that a cell in direction d was }
-    end;                      {    added to the flist }
-
-    frontier : runset := runset or d;     { allready in flist }
-  end;
-end;
-
-
-procedure addfront(x, y : word);    { change all unused cells around this }
-var                              {    base cell to frontier cells }
-  j, k : word;
-  d    : byte;
-begin
-  remove(x, y);       { first remove base cell from flist, it is now }
-  runset := 0;         {    part of the tree }
-  cell^[x,y].flags := cell^[x,y].flags or tree;   { change to tree cell }
-  d := $01;            { look in all four directions- $01,$02,$04,$08 }
-  while d <= $08 do
-  begin
-    j := x;
-    k := y;
-    if adjust(j, k, d) then
-      add(j, k, d);  { add only if still in bounds }
-    d := d shl 1;    { try next direction }
-  end;
-end;
-
-
-procedure remline(x, y : word; d : byte);  { erase line connecting two blocks }
-begin
-  setcolor(background);
-  x := (x - 1) * blockwidth;
-  y := (y - 1) * blockwidth;
-  case d of
-    rightdir : line (x + blockwidth, y + 1, x + blockwidth, y + blockwidth - 1);
-    updir    : line (x + 1, y, x + blockwidth - 1, y);
-    leftdir  : line (x, y + 1, x, y + blockwidth - 1);
-    downdir  : line (x + 1, y + blockwidth, x + blockwidth - 1, y + blockwidth);
-  end;
-end;
-
-
-{ erase line and update flags to indicate the barrier has been removed }
-procedure rembar(x, y : word; d : byte);
-var
-  d2 : byte;
-begin
-  remline(x, y, d);       { erase line }
-  cell^[x,y].flags := cell^[x,y].flags or d; { show barrier removed dir. d }
-  d2 := d shl 2;  { shift left twice to reverse direction }
-  if d2 > $08 then
-    d2 := d2 shr 4;  { wrap around }
-  if adjust(x, y, d) then  { do again from adjacent cell back to base cell }
-    cell^[x,y].flags := cell^[x,y].flags or d2;    { skip if out of bounds }
-end;
-
-
-function randomdir : byte;  { get a random direction }
-begin
-  case random(4) of
-    0 : randomdir := rightdir;
-    1 : randomdir := updir;
-    2 : randomdir := leftdir;
-    3 : randomdir := downdir;
-  end;
-end;
-
-
-procedure connect(x, y : word);    { connect this new branch to the tree }
-var                             {    in a random direction }
-  j, k  : word;
-  d     : byte;
-  found : boolean;
-begin
-  found := false;
-  while not found do
-  begin { loop until we find a tree cell to connect to }
-    j := x;
-    k := y;
-    d := randomdir;
-    if adjust(j, k, d) then
-      found := cell^[j,k].flags and $30 = tree;
-  end;
-  rembar(x, y, d);   { remove barrier connecting the cells }
-end;
-
-
-procedure branch(x, y : word);  { make a new branch of the tree }
-var
-  runnum : word;
-  d      : byte;
-begin
-  runnum := maxrun;      { max number of tree cells to add to a branch }
-  connect(x, y);        { first connect frontier cell to the tree }
-  addfront(x, y);       { convert neighboring unused cells to frontier }
-  dec(runnum);         { number of tree cells left to add to this branch }
-  while (runnum > 0) and (fnum > 0) and (runset > 0) do
-  begin
-    repeat
-      d := randomdir;
-    until d and runset > 0;  { pick random direction to known frontier }
-    rembar(x, y, d);          {    and make it part of the tree }
-    adjust(x, y, d);
-    addfront(x, y);      { then pick up the neighboring frontier cells }
-    dec(runnum);
-  end;
-end;
-
-
-procedure drawmaze;
-var
-  x, y, i : word;
-begin
-  setcolor(gridcolor);    { draw the grid }
-  y := height * blockwidth;
-  for i := 0 to width do
-  begin
-    x := i * blockwidth;
-    line(x, 0, x, y);
-  end;
-  x := width * blockwidth;
-  for i := 0 to height do
-  begin
-    y := i * blockwidth;
-    line (0, y, x, y);
-  end;
-  fillchar(cell^, sizeof(cell^), chr(0));    { zero flags }
-  fnum   := 0;   { number of frontier cells in flist }
-  runset := 0; { directions to known frontier cells from a base cell }
-  randomize;
-  x := random(width) + 1;   { pick random start cell }
-  y := random(height) + 1;
-  add(x, y, rightdir);       { direction ignored }
-  addfront(x, y);      { start with 1 tree cell and some frontier cells }
-  while (fnum > 0) do
-  with flist[random(fnum) + 1] do
-    branch(column, row);
-end;
-
-procedure dot(x, y, colr : word);
-begin
-  putpixel(blockwidth * x - halfblock, blockwidth * y - halfblock, colr);
-end;
-
-procedure solve(x, y, endx, endy : word);
-var
-  j, k : word;
-  d    : byte;
-begin
-  d := rightdir;  { starting from left side of maze going right }
-  while (x <> endx) or (y <> endy) do
-  begin
-    if d = $01 then
-      d := $08
-    else
-      d := d shr 1; { look right, hug right wall }
-    while cell^[x,y].flags and d = 0 do
-    begin { look for an opening }
-      d := d shl 1;                            { if no opening, turn left }
-      if d > $08 then
-        d := d shr 4;
-    end;
-    j := x;
-    k := y;
-    adjust(x, y, d);         { go in that direction }
-    with cell^[j,k] do
-    begin    { turn on dot, off if we were here before }
-      flags := ((((cell^[x,y].flags xor $80) xor flags) and $80) xor flags);
-      if flags and $80 <> 0 then
-        dot(j, k, solvecolor)
-      else
-        dot(j, k, background);
-    end;
-  end;
-  dot(endx, endy, solvecolor);    { dot last cell on }
-end;
-
-procedure mansolve (x,y,endx,endy: word);
-var
-  j, k : word;
-  d    : byte;
-  ch   : char;
-begin
-  ch := ' ';
-  while ((x <> endx) or (y <> endy)) and (ch <> 'X') and (ch <> #27) do
-  begin
-    dot(x, y, solvecolor);    { dot man on, show where we are in maze }
-    ch := upcase(readkey);
-    dot(x, y, background);    { dot man off after keypress }
-    d := 0;
-    case ch of
-      #0:
-      begin
-        ch := readkey;
-        case ch of
-          #72 : d := updir;
-          #75 : d := leftdir;
-          #77 : d := rightdir;
-          #80 : d := downdir;
-        end;
-      end;
-
-      'I' : d := updir;
-      'J' : d := leftdir;
-      'K' : d := rightdir;
-      'M' : d := downdir;
-    end;
-
-    if d > 0 then
-    begin
-      j := x;
-      k := y;    { move if no wall and still in bounds }
-      if (cell^[x,y].flags and d > 0) and adjust(j, k, d) then
-      begin
-        x := j;
-        y := k;
-      end;
-    end;
-  end;
-end;
-
-procedure solvemaze;
-var
-  x, y,
-  endx,
-  endy : word;
-begin
-  x := 1;                         { pick random start on left side wall }
-  y := random(height) + 1;
-  endx := width;                  { pick random end on right side wall }
-  endy := random(height) + 1;
-  remline(x, y, leftdir);         { show start and end by erasing line }
-  remline(endx, endy, rightdir);
-  mansolve(x, y, endx, endy);      { try it manually }
-  solve(x, y, endx, endy);         { show how when he gives up }
-  while keypressed do
-   readkey;
-  readkey;
-end;
-
-
-procedure getsize;
-var
-  j, k : real;
-begin
- {$ifndef win32}
-  clrscr;
- {$endif}
-  writeln('       Mind');
-  writeln('       Over');
-  writeln('       Maze');
-  writeln;
-  writeln('   by Randy Ding');
-  writeln;
-  writeln('Use I,J,K,M or arrow keys to walk thru maze,');
-  writeln('then hit X when you give up!');
-  repeat
-    writeln;
-    write('Maze size: ', minblockwidth, ' (hard) .. 95 (easy) ');
-    readln(blockwidth);
-  until (blockwidth >= minblockwidth) and (blockwidth < 96);
-  writeln;
-  write('Maximum branch length: 1 easy .. 50 harder, (0 unlimited) ');
-  readln(maxrun);
-  if maxrun <= 0 then
-    maxrun := 65535;  { infinite }
-  j := Real(screenwidth) / blockwidth;
-  k := Real(screenheight) / blockwidth;
-  if j = system.int(j) then
-    j := j - 1;
-  if k= system.int(k) then
-    k := k - 1;
-  width  := trunc(j);
-  height := trunc(k);
-  if (width > maxx) or (height > maxy) then
-  begin
-    width  := maxx;
-    height := maxy;
-  end;
-  halfblock := blockwidth div 2;
-end;
-
-begin
- {$ifdef Win32}
-  ShowWindow(GetActiveWindow,0);
-  Initbgi;
- {$endif}
-  repeat
-    getsize;
-    {$ifndef Win32}
-     initbgi;
-    {$endif}
-    new(cell);    { allocate this large array on heap }
-    drawmaze;
-    solvemaze;
-    dispose(cell);
-    {$ifndef Win32}
-     closegraph;
-    {$endif}
-    while keypressed do
-      ch := readkey;
-    write ('another one? ');
-    ch := upcase (readkey);
-  until (ch = 'N') or (ch = #27);
-  {$ifdef Win32}
-   CloseGraph;
-  {$endif}
-end.

+ 0 - 813
demo/graph/quad.pp

@@ -1,813 +0,0 @@
-PROGRAM Quad;
-{A demo which loads some graphics etc. Nice. Don't forget to distribute
-quaddata.inc!
-
-The sources for this game was found on a site that claims to only have
-PD stuff with the below header(which was only reindented), and the webmaster
-said that everything he published was sent to him with that purpose. We tried
-to contact the authors mentioned below via mail over internet, but that
-failed. If there is somebody that claims authorship of these programs,
-please mail [email protected], and the sources will be removed from our
-websites.
-
-------------------------------------------------------------------------
-
-ORIGINAL Header:
-
-Programmed by: Justin Pierce
-Graphics by: Whitney Pierce
-Inspired by: Jos Dickman''s triple memory!
------
-
-Old version requires egavga.bgi. FPC doesn't require BGI's (VGA and VESA
-support are built in the Graph, others are ignored).}
-
-{$Define UseGraphics}
-
-{$ifdef UseGraphics}
- {$ifdef Win32}
-   {$define Win32Graph}         // Needed for GameUnit.
-   {$APPTYPE GUI}
- {$endif}
-{$endif}
-
-Uses
- {$ifdef Win32}
-  WinCrt,Windows,
- {$else}
-  Crt,
- {$endif}
-  Dos,Graph,GameUnit;         {Supplied with FPC demoes package. Wrapper for
-                          mousesupport (via msmouse or api), and contains
-                          highscore routines}
-
-Const nox             = 10;
-      noy             = 8;
-      card_border     = red;
-      PicBufferSize   = 64000;  {Buffersize for deRLE'ed picture data}
-      ComprBufferSize = 20000;  {Buffer for diskread- RLE'ed data}
-      PicsFilename    = 'quaddata.dat';  {Name of picturesfile}
-      ScoreFileName   = 'quad.scr';
-      {$IFDEF UseGraphics}
-       DisplGrX=110;
-       DisplGrY=90;
-       DisplGrScale=16;
-       HelpY=130;
-      {$ENDIF}
-
-
-Type
-    pByte           = ^Byte;                  {BufferTypes}
-    Card            = Record
-                       exposed: boolean;
-                       pic: byte;
-                      End;
-
-            {Assigns an enumeration to each picture}
-    PictureEnum= (zero,one,two,three,four,five,six,seven,eight,nine,colon,
-                  back,score,exit_b,score_b,chunk,p1,p2,p3,p4,p5,p6,p7,p8,
-                  p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20);
-
-            {A pictures definition;
-              x and y dimensions and offset in PicData buffer}
-
-    Picture = packed Record
-                start: longint;
-                x,y: byte;
-                End;
-
-    {All pictures. This array, and the data in PicData is all pic info.}
-    PictureArray= ARRAY[zero..p20] OF Picture;
-
-    selected = Record
-                 x,y: byte;
-                 pic: byte;
-                End;
-    time_record = Record
-                    o_hr,o_min,o_sec,o_sec100: word;
-                    hr,min,sec,sec100: word;
-                    a_sec,a_min: word;
-    End;
-
-Var b           : array[1..nox,1..noy] Of card;
-    Pics        : PictureArray;
-    PicData     : PByte;
-    s           : array[1..4] Of selected;
-    os          : byte;
-    turns       : integer;
-    off,ok,exit1: boolean;
-    opened      : byte;
-    bgidirec    : string;
-    time        : time_record;
-
-
-{
-Procedure fatal(fcall:String);
-Begin
-  textmode(CO80);
-  clrscr;
-  Writeln('A fatal error has occured');
-  Writeln('Error: ',fcall);
-  Writeln;
-  Write('Hit enter to halt program--');
-  readln;
-  halt;
-End;
-}
-
-Procedure ginit640x480x16(direc:String);
-
-Var grd,grmode: integer;
-Begin
-  {$ifdef Win32}
-   {$ifndef Debug}
-     ShowWindow(GetActiveWindow,0);
-   {$endif}
-  grmode:=vgaHI;
-  grd:=vga;
-  Direc:='';
-  {$else}
-  closegraph;
-  grd := 9;{ detect;}
-  grmode := 2;{ m800x600x16;}
-  {$endif}
-  initgraph(grd,grmode,direc);
-  {$ifndef Win32}
-  setgraphmode(2);
-  {$endif}
-End;
-
-procedure WaitForMouse;
-
-var    ms_mx,ms_my,ms_but : LONGINT;
-
-begin
-  Repeat
-    GetMouseState(ms_mx,ms_my,ms_but);
-   Until ms_but=0;
-  Repeat
-    GetMouseState(ms_mx,ms_my,ms_but);
-   Until ms_but<>0;
-end;
-
-
-Procedure clean_board;
-
-Var x,y: byte;
-Begin
-  y := 1;
-  Repeat
-    x := 1;
-    Repeat
-      b[x,y].pic := 0;
-      b[x,y].exposed := false;
-      inc(x);
-    Until x>nox;
-    inc(y);
-  Until y>noy
-End;
-
-Procedure showpic(xp,yp:integer; tp:pictureenum);
-
-Var x,y,x1,y1: byte;
-    tx: integer;
-Begin
-  x := pics[tp].x; {mb[tp.start];}
-  y := pics[tp].y; {mb[tp.start+1];}
-  y1 := 1;
-  tx := 0;
-  Repeat
-    x1 := 1;
-    Repeat
-      putpixel(xp+(x1-1),yp+(y1-1),picdata[pics[tp].start-1+tx]);
-      inc(x1);
-      inc(tx);
-    Until x1>x;
-    inc(y1);
-  Until y1>y;
-End;
-
-Procedure NumberOutput(X,Y,Number:LONGINT;RightY:BOOLEAN);
-
-Var num: string;
-    plc: byte;
-
-Begin
-  str(number,num);
-  If length(num)=1 Then
-   insert('0',num,0);
-  IF RightY THEN
-   dec (x,length(num)*11);
-  plc := 1;
-  Repeat
-   IF (Num[plc]>CHR(47)) AND (Num[plc]<CHR(58)) THEN
-    showpic(((plc-1)*11)+X,Y,pictureenum(ORD(Zero)+ORD(Num[plc])-48));
-   inc(plc);
-  Until plc>length(num);
-End;
-
-Procedure update_secs;
-
-Begin
- showpic(605,453,colon);
- NumberOutput(615,453,time.a_sec,FALSE);
-End;
-
-Procedure showturn(x,y:integer);
-
-Begin
-  hidemouse;
-  If (x=0) And (y=0) Then
-   NumberOutput(4,453,Turns,FALSE)
-  ELSE
-   NumberOutput(x,y,Turns,FALSE);
-  showmouse;
-End;
-
-Procedure get_original_time;
-Begin
-  With time Do
-    Begin
-      a_sec := 0;
-      a_min := 0;
-      gettime(o_hr,o_min,o_sec,o_sec100);
-      gettime(hr,min,sec,sec100);
-    End;
-End;
-
-Procedure update_time(ForcedUpdate:BOOLEAN);
-Begin
-  With time Do
-    Begin
-      gettime(hr,min,sec,sec100);
-
-      If sec<>o_sec Then
-        Begin
-          inc(a_sec);
-          If a_sec<=60 Then update_secs;
-        End;
-      If a_sec>60 Then
-        Begin
-          a_sec := 0;
-          inc(a_min);
-          ForcedUpdate:=TRUE;
-        End;
-      IF ForcedUpdate THEN
-       BEGIN
-        Update_secs;
-        showpic(606,453,colon);
-        NumberOutput(606,453,time.a_min,TRUE);
-       END;
-      o_hr := hr;
-      o_min := min;
-      o_sec := sec;
-      o_sec100 := sec;
-    End;
-End;
-
-
-Procedure makecard(x,y:byte);
-
-Var xp,yp: integer;
-Begin
-  hidemouse;
-  xp := ((x-1)*63);
-  yp := ((y-1)*56);
-  setcolor(card_border);
-  setfillstyle(1,0);
-  bar(xp+1,yp+1,xp+62,yp+55);
-  rectangle(xp,yp,xp+63,yp+56);
-  If b[x,y].exposed=false Then
-    Begin
-      showpic(xp+1,yp+1,back);
-    End;
-  showmouse;
-  If b[x,y].exposed=true Then
-    Begin
-      hidemouse;
-      showpic(xp+7,yp+4,pictureenum(ORD(b[x,y].pic)+ORD(p1)-1));
-      showmouse;
-    End;
-End;
-
-Function used(pic:byte): byte;
-
-Var cx,cy,u: byte;
-Begin
-  used := 0;
-  u := 0;
-  cy := 1;
-  Repeat
-    cx := 1;
-    Repeat
-      If b[cx,cy].pic=pic Then inc(u);
-      inc(cx);
-    Until cx>nox;
-    inc(cy);
-  Until cy>noy;
-  used := u;
-End;
-
-Procedure set_board;
-
-CONST Outstr=#219+#219+#219+#219+#219+#219+#219+#219+#219+#219+#219+#219+#219+
-             #219+#219+#219+#219+#219+#219+#219+#219+#219+#219+#219+#219+
-             #219+#219+#219+#219;
-
-Var cx,cy,pic: byte;
-Begin
-  setcolor(0);
-  outtextxy(0,470,OutStr);
-  setcolor(green);
-  outtextxy(0,470,'Dealing board, please wait...');
-  Delay(1000);
-  cy := 1;
-  Repeat
-    cx := 1;
-    Repeat
-      Repeat
-        pic := random(20)+1;
-      Until used(pic)<4;
-      b[cx,cy].pic := pic;
-      makecard(cx,cy);
-      inc(cx);
-    Until cx>nox;
-    inc(cy);
-  Until cy>noy;
-  setcolor(0);
-  outtextxy(0,470,OutStr);
-End;
-
-Procedure fire_works;
-
-Const
-  nof = 30;
-
-Type
-  fires = Record
-            x,y: Longint;
-            direct: longint;
-            speed: Longint;
-            explode: boolean;
-            color: byte;
-            oex: longint;
-End;
-
-Var fire: array[1..nof] Of fires;
-
-Procedure clean_fires;
-
-Var c: longint;
-Begin
-  c := 1;
-  Repeat
-    fire[c].direct := random(2)+1;
-    fire[c].color := random(15)+1;
-    fire[c].x := random(639);
-    fire[c].y := 479;
-    fire[c].explode := false;
-    fire[c].speed := random(20)+15;
-    fire[c].oex := 1;
-    inc(c);
-  Until c>nof;
-End;
-
-Procedure inact;
-
-Var c: longint;
-Begin
-  c := 1;
-  Repeat
-    If fire[c].explode=false Then
-      Begin
-        setcolor(fire[c].color);
-        circle(fire[c].x,fire[c].y,1);
-      End;
-
-    If (fire[c].explode=true) And (fire[c].oex<10) Then
-      Begin
-        setcolor(fire[c].color);
-        circle(fire[c].x,fire[c].y,fire[c].oex);
-        setcolor(random(15)+1);
-        circle(fire[c].x,fire[c].y,fire[c].oex-1);
-      End;
-
-    inc(c);
-  Until c>nof;
-
-  delay(75);
-  {$ifndef Win32}
-   gotoxy(1,1);
-  {$endif}
-
-  c := 1;
-  Repeat
-    setcolor(0);
-    circle(fire[c].x,fire[c].y,1);
-
-    If (fire[c].explode=true) And (fire[c].oex<10) Then
-      Begin
-        circle(fire[c].x,fire[c].y,fire[c].oex);
-        circle(fire[c].x,fire[c].y,fire[c].oex-1);
-        inc(fire[c].oex);
-      End;
-
-    If fire[c].explode=false Then
-      Begin
-        dec(fire[c].speed,1);
-        dec(fire[c].y,fire[c].speed);
-        If fire[c].direct=1 Then inc(fire[c].x,2);
-        If fire[c].direct=2 Then dec(fire[c].x,2);
-        If fire[c].speed<=(-1*LONGINT(random(11))) Then
-         fire[c].explode := true;
-      End;
-
-    inc(c);
-  Until c>nof;
-  c := 1;
-End;
-
-Function exploded: boolean;
-
-Var c: longint;
-    m: boolean;
-Begin
-  c := 1;
-  m := true;
-  Repeat
-    If fire[c].oex<6 Then m := false;
-    inc(c);
-  Until (c>nof);
-  exploded := m;
-End;
-
-Begin
-  cleardevice;
-  Repeat
-    clean_fires;
-    Repeat
-      inact;
-    Until (exploded=true) Or (keypressed);
-  Until keypressed;
-End;
-
-{$ifdef Win32Graph}
-Procedure ClearTextCoord(x1,y1,x2,y2:Longint);
-
-Begin
- SetFillStyle(SolidFill,0);            {Clear part of playfield}
- Bar ((x1+1) * DisplGrScale, (Y1+1)*DisplGrScale,(x2+1) * DisplGrScale, (Y2+1)*DisplGrScale);
-End;
-{$endif}
-
-Procedure win;
-
-Var m,s: string;
-    I,J   : LONGINT;
-
-Const GameOver='Game Over, turns needed = ';
-
-Begin
-  hidemouse;
-  // fire_works;
-  cleardevice;
-
-  {$ifndef Win32}
-  closegraph;
-  textmode(co80+font8x8);
-  clrscr;
-  {$endif}
-  I:=SlipInScore(Turns);
-  {$ifndef Win32}
-  GotoXY(1,23);
-  Writeln(GameOver,Turns);
-  FOR J:=9 TO 22 DO
-   BEGIN
-    GotoXY(20,J);
-    Write(' ':38);
-   END;
-  {$else}
-   SetColor(White);
-   ClearTextCoord(20,9,58,22);
-   Str(Turns,S);
-   S:=GameOver+S;
-   OutTextXY(5,40+9*LineDistY,S);
-   OutTextXY(5,40+23*LineDistY,'Press mouse to continue');
-   WaitForMouse;
-  {$endif}
- IF I<>0 THEN
-  BEGIN
-   ShowHighScore;
-{$IFDEF USEGRAPHICS}
-   SetColor(Black);
-   Bar(5,40+23*LineDisty,5+8*26,40+23*LineDisty+8);
-   SetColor(White);
-   OutTextXY(5,40+23*LineDistY,'Please enter your name');
-   GrInputStr(S,300,HelpY+20+(17-I+1)*LineDistY,16,12,10,FALSE,AlfaBeta);
-{$ELSE}
-   InputStr(S,20,21-I,10,FALSE,AlfaBeta);
-{$ENDIF}
-   IF Length(S)<12 THEN
-    BEGIN
-     str(time.a_min,m);
-     S:=S+'['+m+':';
-     str(time.a_sec,m);
-     S:=S+'m'+']';
-    END;
-   HighScore[I-1].Name:=S;
-  END;
-  ShowHighScore;
-  {$ifdef Win32}
-   Bar(5,40+23*LineDisty,5+8*26,40+23*LineDisty+8);
-   OutTextXY(5,40+23*LineDistY,'Press mouse to continue');
-   WaitForMouse;
-  {$else}
-  ginit640x480x16(bgidirec);
-  {$endif}
-  off := false;
-  clean_board;
-  set_board;
-  turns := 0;
-  showpic(0,450,score);
-  showpic(80,450,score_b);
-  showpic(150,450,exit_b);
-  showpic(569,450,score);
-  showturn(0,0);
-  exit1 := false;
-  get_original_time;
-  update_time(True);
-  SetMousePosition(0,0);
-  showmouse;
-End;
-
-Procedure show_scores;
-
-Var x,y,c: byte;
-Begin
-  hidemouse;
-
-  y := 1;
-  Repeat
-    x := 1;
-    showpic(x+135,(y-1)*21,score);
-    showpic(x,(y-1)*21,score);
-    showpic(x+204,(y-1)*21,score);
-    Repeat
-      showpic(((x-1)*10)+3,(y-1)*21,chunk);
-      inc(x);
-    Until x>20;
-    inc(y);
-  Until y>10;
-
-  c := 0;
-  Repeat
-    If HighScore[c].name<>'' Then
-      Begin
-        setcolor(white);
-        outtextxy(4,7+(c*21),HighScore[c].name);
-        turns:= HighScore[c].Score;
-        showturn(211,3+(c*21));
-      End;
-    inc(c);
-  Until c>9;
-  turns := 0;
-  {$ifndef Win32}
-  gotoxy(1,1);
-  {$endif}
-  readln;
-
-  off := false;
-  clean_board;
-  set_board;
-  turns := 0;
-  showpic(0,450,score);
-  showpic(80,450,score_b);
-  showpic(150,450,exit_b);
-  showpic(569,450,score);
-  showturn(0,0);
-  exit1 := false;
-  get_original_time;
-  update_time(True);
-  SetMousePosition(0,0);
-  showmouse;
-End;
-
-Procedure interpret;
-
-Var mpx,mpy: byte;
-    ms_mx,ms_my,ms_but : LONGINT;
-Begin
-  GetMouseState(ms_mx,ms_my,ms_but);
-  ms_mx:=ms_mx shr 1;;
-
-  If ms_but=0 Then off := false;
-
-  If ((ms_but AND 1)=1) And (off=false) Then
-    Begin
-      off := true;
-      mpx := ms_mx*2 Div 63;
-      mpy := (ms_my) Div 56;
-
-      If (ms_mx*2>=80) And (ms_mx*2<=129) And (ms_my>=450) And (ms_my<=466)
-         And (ok=true) Then show_scores;
-      If (ms_mx*2>=150) And (ms_mx*2<=199) And (ms_my>=450) And (ms_my<=466)
-        Then
-        Begin
-          exit1 := true;
-        End;
-
-      inc(mpx);
-      inc(mpy);
-      If (b[mpx,mpy].exposed=false) And (mpx>=1) And (mpy>=1) And (mpx<=10) And (mpy<=8)
-        Then
-        Begin
-          setfillstyle(1,0);
-          bar(80,450,130,466);
-          ok := false;
-          b[mpx,mpy].exposed := true;
-          makecard(mpx,mpy);
-          inc(os);
-          s[os].x := mpx;
-          s[os].y := mpy;
-          s[os].pic := b[mpx,mpy].pic;
-        End;
-    End;
-
-  If os=4 Then
-    Begin
-      inc(turns);
-      showturn(0,0);
-      os := 0;
-      delay(700);
-      inc(opened);
-      If Not((s[1].pic=s[2].pic) And (s[1].pic=s[3].pic) And (s[1].pic=s[4].pic)) Then
-        Begin
-          dec(opened);
-          b[s[1].x,s[1].y].exposed := false;
-          b[s[2].x,s[2].y].exposed := false;
-          b[s[3].x,s[3].y].exposed := false;
-          b[s[4].x,s[4].y].exposed := false;
-          makecard(s[1].x,s[1].y);
-          makecard(s[2].x,s[2].y);
-          makecard(s[3].x,s[3].y);
-          makecard(s[4].x,s[4].y);
-        End;
-      If opened=20 Then win;
-    End;
-
-  If NOT ok Then
-   update_time(FALSE);
-End;
-
-Procedure load_pics(PicBuf:PByte);
-{loads picture structures from disc}
-
-VAR  F           : File;
-     Buf1Ind,
-     I,J,K       : LONGINT;
-     TData       : PByte;
-
-Begin
-  GetMem(TData,ComprBufferSize);        { allocate buffer}
-  Assign(F,Picsfilename);             { Open file}
-  {$I-}
-  Reset(F,1);
-  {$I+}
-  If ioresult<>0 Then
-   BEGIN
-    {$ifdef Win32}
-     MessageBox(GetActiveWindow,'Error','Fatal error, couldn''t find graphics data file quaddata.dat',WM_QUIT);
-    {$else}
-     TextMode(CO80);
-     Writeln('Fatal error, couldn''t find graphics data file quaddata.dat');
-    {$endif}
-    HALT;
-   END;
-
-  {Read the array with picture information; (X,Y dimensions and offset in
-          binary data)}
-  BlockRead(F,pics,SIZEOF(Picture)*(ORD(p20)-ORD(zero)+1),I);
-
-  {Read some slackspace which shouldn't be in the file ;-)}
-  blockread(F,TData[0],6,Buf1ind);
-
-  {Read the real, RLE'ed graphics data}
-  BlockRead(F,TData[0],ComprBufferSize,Buf1Ind);
-  Close(F);
-
-  {Expand the RLE data. Of each byte, the high nibble is the count-1, low
-    nibble is the value}
-
-  I:=0; J:=0;
-  REPEAT
-   K:=(TData[I] SHR 4) +1;
-   FillChar(PicBuf[J],K,TData [I] AND 15);
-   INC(J,K);
-   INC(I);
-  UNTIL I>=Buf1Ind;
-
-  {Release the temporary buffer (the compressed data isn't necesary anymore)}
-  Freemem(TData,ComprBufferSize);
-End;
-
-Procedure clean;
-
-VAR I : LONGINT;
-
-Begin
-  Randomize;                                    {Initialize random generator}
-  Negative:=TRUE;                               {Higher highscore is worse}
-  {$ifdef Win32}
-   HighX     :=300;   {Coordinates of highscores}
-   HighY     :=130+20+8*LineDistY;  {y coordinate relative to other options}
-  {$else}
-   HighX:=20;   HighY:=9;                        {coordinates for highscores}
-  {$endif}
-
-  GetMem(PicData,PicBufferSize);                {Allocate room for pictures}
-  load_pics(PicData);                           {Load picture data from file}
-  FOR I:=0 TO 9 DO                              {Create default scores}
-  begin
-   HighScore[I].Score:=-100*I;                  {Negative, because then the
-                                                  "highest" score is best}
-   If HighScore[I].Score>0 Then
-    Writeln('ohoh');
-   End;
-
-  LoadHighScore(ScoreFileName);                 {Try to load highscore file}
-//  closegraph;
-  {$ifNdef FPC}
-  bgidirec := 'd:\prog\bp\bgi';
-  {$ENDIF}
-  ginit640x480x16(bgidirec);
-  setcolor(card_border);
-  ok := true;
-  opened := 0;
-  os := 0;
-  s[1].x := 0;
-  s[2].x := 0;
-  s[3].x := 0;
-  off := false;
-  clean_board;
-  set_board;
-  turns := 0;
-  showpic(0,450,score);        showpic(80,450,score_b);
-  showpic(150,450,exit_b);     showpic(569,450,score);
-  showturn(0,0);
-  exit1 := false;
-  SetMousePosition(0,0);
-  get_original_time;
-  update_time(True);
-  showmouse;
-End;
-
-
-Begin
-  Initmouse;
-  Negative:=True;
-  clean;
-  Repeat
-    interpret;
-  Until (exit1=true) {$ifdef Debug} or (turns=1) {$endif};
-  {$ifndef Win32}
-  closegraph;
-  {$endif}
-
-  Freemem(PicData,PicBufferSize);
-  SaveHighScore;
-  {$ifndef Win32}
-   Textmode(co80);
-   clrscr;
-   HideMouse;
-   Writeln('Thanks for playing Quadruple Memory');
-   Writeln('Feel free to distribute this software.');
-   Writeln;
-   Writeln('Programmed by: Justin Pierce');
-   Writeln('Graphics by: Whitney Pierce');
-   Writeln('Inspired by: Jos Dickman''s triple memory!');
-   Writeln('FPC conversion and cleanup by Marco van de Voort');
-   Writeln;
-   ShowMouse;
-  {$else}
-   SetbkColor(black);
-   SetColor(White);
-   SetViewPort(0,0,getmaxx,getmaxy,clipoff);
-   ClearViewPort;
-   SetTextStyle(0,Horizdir,2);
-   SetTextStyle(0,Horizdir,1);
-   OutTextXY(220,10,'QUAD');
-   OutTextXY(5,40+1*LineDistY,'Thanks for playing Quadruple Memory');
-   OutTextXY(5,40+2*LineDistY,'Feel free to distribute this software.');
-   OutTextXY(5,40+4*LineDistY,'Programmed by: Justin Pierce');
-   OutTextXY(5,40+5*LineDistY,'Graphics by: Whitney Pierce');
-   OutTextXY(5,40+6*LineDistY,'Inspired by: Jos Dickman''s triple memory!');
-   OutTextXY(5,40+7*LineDistY,'FPC conversion and cleanup by Marco van de Voort');
-   OutTextXY(5,40+9*LineDistY,'Press mouse to continue');
-   WaitForMouse;
-  {$endif}
-  {$ifdef Win32}
-   CloseGraph;
-  {$endif}
-   DoneMouse;
-
-End.

BIN
demo/graph/quaddata.dat


+ 0 - 600
demo/graph/samegame.pp

@@ -1,600 +0,0 @@
-{
-
-    This program is both available in XTDFPC as in the FPC demoes.
-    Copyright (C) 1999 by Marco van de Voort
-
-    SameGame is a standard game in GNOME and KDE. I liked it, and I
-    automatically brainstormed how I would implement it.
-    It turned out to be really easy, and is basically only 100 lines or so,
-    the rest is scorekeeping, helptext, menu etc.
-
-    The game demonstrates some features of the MSMOUSE unit, and some of
-    the Crt and Graph units. (depending whether it is compiled with
-    UseGraphics or not)
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-PROGRAM SameGame;
-
-
-{$ifdef UseGraphics}
- {$ifdef Win32}
-   {$define Win32Graph}
-    {$apptype GUI}
- {$endif}
-{$endif}
-
-
-Uses
-{$ifdef Win32}
-  Windows,
-{$endif}
-{$ifdef Win32Graph}
-  WinCrt,
- {$else}
-  Crt,
-{$endif}
-  Dos,
-{$IFDEF UseGraphics}
-  Graph,
-  {$INFO GRAPH}
-{$ENDIF}
-  GameUnit;
-
-CONST
-   {$IFDEF UseGraphics}
-        GrFieldX                          = 10; {X topleft of playfield}
-        GrFieldY                          = 70; {Y topleft of playfield}
-        ScalerX                           = 22; {ScalerX x Scaler y dots
-                                                  must be approx a square}
-        ScalerY                           = 20;
-   {$ENDIF}
-        FieldX                            = 10; {Top left playfield
-                                                 coordinates in squares(textmode)}
-        FieldY                            =  3; {Top left playfield coordinates}
-        PlayFieldXDimension               = 20; {Dimensions of playfield}
-        PlayFieldYDimension               = 15;
-   {$IFDEF UseGraphics}
-        RowDispl                          = 15;
-        MenuX                             = 480;
-        MenuY                             = 120;
-        grNewGameLine                     = 'NEW GAME';
-        grHelpLine                        = 'HELP';
-        grEndGame                         = 'END GAME';
-   {$ENDIF}
-
-
-       {Used colors. Colors[0..2] are the colors used on the playfield, Colors[3]
-          is the background and Colors[4] is the color used to mark the pieces}
-        Colors : ARRAY [0..4] OF LONGINT  = (White,Blue,Red,Black,LightMagenta);
-
-
-TYPE PlayFieldType=ARRAY[0..PlayFieldXDimension-1,0..PlayFieldYDimension-1] OF BYTE;
-
-{$IFDEF UseGraphics}
-PROCEDURE DisplayPlayField(CONST PlayField:PlayFieldType);
-{Screen routine, simply puts the array Playfield on screen.
-Both used for displaying the normal grid as the grid with a certain area marked}
-
-VAR X,Y : LONGINT;
-    LastOne,
-    NumbLast : LONGINT;
-
-BEGIN
- HideMouse;
- FOR Y:=0 TO PlayFieldYDimension-1 DO
-  BEGIN
-   X:=0;
-   REPEAT
-    LastOne:=PlayField[X,Y];
-    NumbLast:=X;
-    WHILE (PlayField[X,Y]=LastOne) AND (X<(PlayFieldXDimension-1))DO
-     INC(X);
-    SetFillStyle(SolidFill,Colors[LastOne]);
-    Bar(GrFieldX+NumbLast*ScalerX,GrFieldY+Y*ScalerY,GrFieldX+X*ScalerX-1,GrFieldY+(Y+1)*ScalerY-1);
-   UNTIL X>=(PlayFieldXDimension-1);
-  END;
- ShowMouse;
-END;
-{$ELSE}
-
-PROCEDURE DisplayPlayField(CONST PlayField:PlayFieldType);
-{Screen routine, simply puts the array Playfield on screen.
-Both used for displaying the normal grid as the grid with a certain area marked}
-
-VAR X,Y : LONGINT;
-
-BEGIN
- FOR Y:=0 TO PlayFieldYDimension-1 DO
-  BEGIN
-   GotoXY(FieldX,Y+FieldY);
-   FOR X:=0 TO PlayFieldXDimension-1 DO
-    BEGIN
-     TextColor(Colors[PlayField[X,Y]]);
-     Write(#219#219);
-    END;
-   END;
-END;
-{$ENDIF}
-
-PROCEDURE ShowHelp;
-{Shows some explanation of the game and waits for a key}
-
-{$ifndef UseGraphics}
-VAR I : LONGINT;
-{$endif}
-
-BEGIN
- {$IFDEF UseGraphics}
-  HideMouse;
-  SetbkColor(black);
-  SetViewPort(0,0,getmaxx,getmaxy,clipoff);
-  ClearViewPort;
-  SetTextStyle(0,Horizdir,2);
-  OutTextXY(220,10,'SAMEGAME');
-  SetTextStyle(0,Horizdir,1);
-  OutTextXY(5,40+1*LineDistY,' is a small game, with a principle copied from some KDE game');
-  OutTextXY(5,40+3*LineDistY,'I tried to implement it under Go32V2 to demonstrate the MsMouse unit');
-  OutTextXY(5,40+4*LineDistY,'When it worked, I tried to get it running under Linux. I succeeded,');
-  OutTextXY(5,40+5*LineDistY,'but the mouse unit of the API doesn'#39't work with GPM 1.17');
-  OutTextXY(5,40+7*LineDistY,'If you move over the playfield, aggregates of one color will be marked');
-  OutTextXY(5,40+8*LineDistY,'in purple. If you then press the left mouse button, that aggregate will');
-  OutTextXY(5,40+9*LineDistY,'disappear, and the playfield will collapse to the bottom-left. Please');
-  OutTextXY(5,40+10*LineDistY,'keep in mind that only an aggregate of two blocks or more will disappear.');
-  OutTextXY(5,40+12*LineDistY,'For every aggregate you let disappear you get points, but the score is');
-  OutTextXY(5,40+13*LineDistY,'quadratic proportional to the number of blocks killed. So 4 times killing');
-  OutTextXY(5,40+14*LineDistY,' a 4 block aggregate scores 4 points, and one time 16 blocks will score 64');
-  OutTextXY(5,40+15*LineDistY,'blocks. The purpose of the game is obtaining the highscore');
-  OutTextXY(5,40+17*LineDistY,'If you manage to empty the entire playfield, you'#39'll get a bonus');
-  OutTextXY(5,40+19*LineDistY,'Press any key to get back to the game');
-  ShowMouse;
- {$ELSE}
-  FOR I:=2 TO 24 DO
-   BEGIN
-    GotoXY(1,I);
-    ClrEol;
-   END;
-  GotoXY(1,3); TextColor(White);
-  Write('SAMEGAME');
-  SetDefaultColor;
-  WriteLn(' is a small game, with a principle copied from some KDE game');
-  WriteLn;
-  WriteLn('I tried to implement it under Go32V2 to demonstrate the MsMouse unit');
-  Writeln('When it worked, I tried to get it running under Linux. I succeeded,');
-  Writeln('but the mouse unit of the API doesn'#39't work with GPM 1.17');
-  Writeln;
-  WriteLn('If you move over the playfield, aggregates of one color will be marked');
-  Writeln('in purple. If you then press the left mouse button, that aggregate will');
-  Writeln('disappear, and the playfield will collapse to the bottom-left. Please');
-  Writeln('keep in mind that only an aggregate of two blocks or more will disappear.');
-  Writeln;
-  Writeln('For every aggregate you let disappear you get points, but the score is');
-  Writeln('quadratic proportional to the number of blocks killed. So 4 times killing');
-  Writeln(' a 4 block aggregate scores 4 points, and one time 16 blocks will score 64');
-  Writeln('blocks. The purpose of the game is obtaining the highscore');
-  Writeln;
-  Writeln('If you manage to empty the entire playfield, you'#39'll get a bonus');
-  Writeln;
-  WriteLn('Press any key to get back to the game');
- {$ENDIF}
-  GetKey;
-END;
-
-VAR MarkField,PlayField : PlayFieldType; {The playfield, and the marked form}
-    CubesMarked         : LONGINT;       {Cubes currently marked}
-    Score               : LONGINT;       {The current score}
-    LastScore           : LONGINT;
-
-PROCEDURE ShowButtons;
-{Shows the clickable buttons}
-
-BEGIN
- {$IFNDEF UseGraphics}
- TextColor(Yellow); TextBackGround(Blue);
- GotoXY(60,5);   Write('NEW game');
- GotoXY(60,6);   Write('HELP');
- GotoXY(60,7);   Write('END game');
- {$IFDEF Unix}
-  GotoXY(60,8);   Write('Force IBM charset');
- {$ENDIF}
-  SetDefaultColor;
- {$ELSE}
- SetTextStyle(0,Horizdir,1);
- OutTextXY(MenuX,MenuY,grNewGameLine);
- OutTextXY(MenuX,MenuY+RowDispl,grHelpLine);
- OutTextXY(MenuX,MenuY+2*RowDispl,grEndGame);
-  {$ENDIF}
-
-END;
-
-FUNCTION PlayFieldPiecesLeft:LONGINT;
-{Counts pieces/cubes/blocks left on the playfield}
-
-VAR I,J,K : LONGINT;
-
-BEGIN
- K:=0;
- FOR I:=0 TO PlayFieldXDimension-1 DO
-  FOR J:=0 TO PlayFieldYDimension-1 DO
-   IF PlayField[I,J]<>3 THEN
-    INC(K);
- PlayFieldPiecesLeft:=K;
-END;
-
-PROCEDURE ShowScore;
-{Simply procedure to update the score}
-
-{$IFDEF UseGraphics}
-VAR S : String;
-{$ENDIF}
-BEGIN
- {$IFDEF UseGraphics}
-  Str(Score:5,S);
-  SetFillStyle(SolidFill,0);
-  Bar(300,440,450,458);
-  OutTextXY(300,440,'Score :'+S);
- {$ELSE}
- TextColor(White);
- GotoXY(20,23);   Write(' ':20);
- GotoXY(20,23);   Write('Score : ',Score);
- SetDefaultColor;
- {$ENDIF}
-END;
-
-FUNCTION CubesToScore : LONGINT;
-{Function to calculate score from the number of cubes. Should have a higher
-order than linear, or the purpose of the game disappears}
-
-BEGIN
- CubesToScore:=(CubesMarked*CubesMarked) DIV 4;
-END;
-
-PROCEDURE MarkAfield(X,Y:LONGINT);
-{Recursively marks the area adjacent to (X,Y);}
-
-VAR TargetColor : LONGINT;
-
-PROCEDURE MarkRecur(X1,Y1:LONGINT);
-{Marks X1,Y1, checks if neighbours (horizontally or vertically) are the
-same color}
-
-BEGIN
- IF (PlayField[X1,Y1]=TargetColor) AND (MarkField[X1,Y1]<>4) THEN
-  BEGIN
-   MarkField[X1,Y1]:=4;
-   INC(CubesMarked);
-  IF X1>0 THEN
-   MarkRecur(X1-1,Y1);
-  IF Y1>0 THEN
-   MarkRecur(X1,Y1-1);
-  IF X1<(PlayFieldXDimension-1) THEN
-   MarkRecur(X1+1,Y1);
-  IF Y1<(PlayFieldYDimension-1) THEN
-   MarkRecur(X1,Y1+1);
-  END;
-END;
-
-BEGIN
- CubesMarked:=0;
- TargetColor:=PlayField[X,Y];
- IF TargetColor<>3 THEN         {Can't mark black space}
-  MarkRecur(X,Y);
-END;
-
-PROCEDURE FillPlayfield;
-{Initial version, probably not nice to play with.
-Some Life'ish algoritm would be better I think. (so that more aggregates exist)}
-
-VAR X,Y,Last,Now : LONGINT;
-
-BEGIN
- Last:=0;
- FOR X:=0 TO PlayFieldXDimension-1 DO
-  FOR Y:=0 TO PlayFieldYDimension-1 DO
-   BEGIN
-    Now:=RANDOM(4);
-    IF Now=3 THEN
-     Now:=Last;
-    PlayField[X,Y]:=Now;
-    Last:=Now;
-   END;
-  MarkField:=PlayField;
-END;
-
-PROCEDURE Colapse;
-{Processes the playfield if the mouse button is used.
-
-  First the procedure deletes the marked area, and let gravity do its work
-  Second the procedure uses as if some gravity existed on the left of the
-  playfield }
-
-VAR X, Y,J :LONGINT;
-
-BEGIN
- {Vertical colapse: All marked pieces are deleted, and let gravity do it's work}
- IF CubesMarked>1 THEN
-  BEGIN
-   FOR X:=0 TO PlayFieldXDimension-1 DO
-    BEGIN
-     Y:=PlayFieldYDimension-1; J:=Y;
-     while y>=0 do
-      begin
-       IF MarkField[X,Y]<>4 THEN
-        BEGIN
-         PlayField[X,J]:=PlayField[X,Y];
-         DEC(J);
-        END;
-       DEC(Y);
-      end;
-    FOR Y:=0 TO J  DO
-     PlayField[X,Y]:=3;
-    END;
-   J:=0;
-   FOR X:=PlayFieldXDimension-2 DOWNTO 0  DO
-    BEGIN
-     IF PlayfIeld[X,PlayFieldYDimension-1]=3 THEN
-      BEGIN
-       Move(PlayfIeld[X+1,0],PlayField[X,0],PlayFieldYDimension*(PlayFieldXDimension-X-1));
-       INC(J);
-      END;
-    END;
-   IF J<>0 THEN
-    FillChar(PlayField[PlayFieldXDimension-J,0],J*PlayFieldYDimension,#3);
-   INC(Score,CubesToScore);
-   ShowScore;
-  END;
-END;
-
-PROCEDURE BuildScreen;
-{Some procedures that build the screen}
-
-Var S:String; // do not remove. Depends on usegraphics.
-
-BEGIN
-  {$IFDEF UseGraphics}
-   setbkcolor(black);
-   setviewport(0,0,getmaxx,getmaxy,clipoff);
-   clearviewport;
-  {$ELSE}
-   ClrScr;
-  {$ENDIF}
-  Score:=0;
-  ShowScore;
-  ShowButtons;
-  ShowHighScore;
-  ShowMouse;
-  {$IFDEF UseGraphics}
-   SetTextStyle(0,Horizdir,2);
-   OuttextXY(10,10,'SameGame v0.03, (C) by Marco v/d Voort. ');
-   SetTextStyle(0,Horizdir,1);
-   OuttextXY(50,40,'A demo for the FPC RTL and API units Crt,(MS)Mouse and Graph');
-  {$ELSE}
-  GotoXY(1,1);
-  TextColor(Yellow);
-  Write('SameGame v0.02');
-  TextColor(White);
-  Write('   A demo for the ');
-  TextColor(Yellow); Write('FPC');
-  TextColor(White); Write(' API or MsMouse unit. By Marco van de Voort');
-  SetDefaultColor;
-  {$ENDIF}
-  IF LastScore<>0 THEN
-   BEGIN
-    {$Ifdef UseGraphics}
-     SetTextStyle(0,Horizdir,1);
-     Str(LastScore,S);
-     OuttextXY(50,40,'The Score in the last game was :'+S);
-    {$else}
-     GotoXY(10,20);
-     Write('The score in the last game was :',LastScore);
-    {$endif}
-   END;
-  DisplayPlayField(PlayField);
- MarkField:=PlayField;
-END;
-
-PROCEDURE DoMainLoopMouse;
-{The main game loop. The entire game runs in this procedure, the rest is
-    initialisation/finalisation (like loading and saving highscores etc etc)}
-
-VAR X,Y,
-    MX,MY,MState,Dummy : LONGINT;
-    EndOfGame          : LONGINT;
-    S                  : String;
-
-BEGIN
- RANDOMIZE;
- REPEAT
-  FillPlayField;
-  BuildScreen;
-  EndOfGame:=0;
-  REPEAT
-   GetMouseState(MX,MY,MState);
-   {$IFDEF UseGraphics}
-    X:=2*((MX-GrFieldX) DIV ScalerX) +FieldX;
-    Y:=((MY-GrFieldY) DIV ScalerY) +FieldY-1;
-   {$ELSE}
-    X:=MX SHR 3;
-    Y:=MY SHR 3;
-   {$ENDIF}
-   IF PlayFieldPiecesLeft=0 THEN
-    BEGIN
-     INC(Score,1000);
-     EndOfGame:=1;
-    END
-   ELSE
-    BEGIN
-     {$IFDEF UseGraphics}
-      IF (MX>=MenuX) AND (MX<(MenuX+16*Length(GrNewGameLine))) THEN
-       BEGIN {X in clickable area}
-        IF (MY>=MenuY) AND (MY<(MenuY+RowDispl*3+2)) THEN
-         BEGIN
-          X:=65; {X doesn't matter as long as it is 60..69}
-          Y:=((MY-MenuY) DIV RowDispl)+4;
-         END;
-       END;
-     {$ENDIF}
-     IF (X>=60) AND (X<=69) THEN
-      BEGIN
-         IF (MState AND LButton) <>0 THEN {If leftbutton pressed,}
-          BEGIN
-           IF Y=4 THEN
-            EndOfGame:=1;
-           IF Y=6 THEN
-            EndOfGame:=2;
-           IF (EndOfGame>0) AND (PlayFieldPiecesLeft=0) THEN
-            INC(Score,1000);
-           IF Y=5 THEN
-            BEGIN
-             ShowHelp;
-             BuildScreen;
-            END;
-           {$IFDEF Unix}
-           IF Y=7 THEN
-            BEGIN
-             write(#27+'(K');
-             BuildScreen;
-            END;
-           {$ENDIF}
-        END;
-      END;
-    IF (X>=(FieldX-2)) AND (Y>=(FieldY-2)) THEN
-     BEGIN
-
-      DEC(X,FieldX-1);
-      DEC(Y,FieldY-1);
-      X:=X SHR 1;
-      IF (x>=0) and (y>=0) and (X<PlayFieldXDimension) AND (Y<PlayFieldYDimension) THEN
-       BEGIN
-        IF MarkField[X,Y]<>4 THEN
-         BEGIN
-          MarkField:=PlayField;
-          MarkAfield(X,Y);
-          DisplayPlayField(MarkField);
-          {$ifdef UseGraphics}
-           SetFillStyle(SolidFill,black);
-           Bar(420,440,540,460);
-           SetTextStyle(0,Horizdir,1);
-           Str(CubesToScore,S);
-           OuttextXY(420,440,'Marked : '+S);
-          {$else}
-           TextColor(White);
-           GotoXY(20,22);
-           Write(' ':20);
-           GotoXY(20,22);
-           Write('Marked :',CubesToScore);
-          {$endif}
-         END;
-        IF (MarkField[X,Y]=4) AND ((MState AND LButton) <>0) THEN
-                                   {If leftbutton pressed,}
-         BEGIN
-          REPEAT                            {wait untill it's released.
-                                           The moment of pressing counts}
-           GetMouseState(X,Y,Dummy);
-          UNTIL (Dummy AND LButton)=0;
-          Colapse;
-          MarkField:=PlayField;
-          DisplayPlayField(MarkField);
-        END
-      END
-    END;
-   IF KeyPressed THEN
-    BEGIN
-     X:=GetKey;
-     IF (CHR(X) IN ['X','x','Q','q']) OR (X=27) THEN
-      EndOfGame:=2;
-    END;
-   END;
-  UNTIL EndOfGame>0;
-  ShowScore;
-  X:=SlipInScore(Score);
-  IF X<>0 THEN
-   BEGIN
-    HideMouse;
-    ShowHighScore;
-    {$IFDEF UseGraphics}
-     Str(Score:5,S);
-     OutTextXY(HighX+150,HighY+LineDistY*(10-X),S);
-     GrInputStr(S,HighX,HighY+LineDistY*(10-X),16,12,10,FALSE,AlfaBeta);
-    {$ELSE}
-     InputStr(S,HighX,HighY+12-X,10,FALSE,AlfaBeta);
-    {$ENDIF}
-    HighScore[X-1].Name:=S;
-    ShowMouse;
-   END;
-  LastScore:=Score;
-  UNTIL EndOFGame=2;
-END;
-
-CONST FileName='samegame.scr';
-
-VAR I : LONGINT;
-    {$IFDEF UseGraphics}
-    gd,gm : INTEGER;
-    Pal   : PaletteType;
-    {$ENDIF}
-
-BEGIN
- {$IFDEF UseGraphics}
-  {$ifdef Win32}
-   ShowWindow(GetActiveWindow,0);
-  {$endif}
-  gm:=vgahi;
-  gd:=vga;
-  InitGraph(gd,gm,'');
-  if GraphResult <> grOk then
-    begin
-      Writeln('Graph driver ',gd,' graph mode ',gm,' not supported');
-      Halt(1);
-    end;
-  SetFillStyle(SolidFill,1);
-  GetDefaultPalette(Pal);
-  SetAllPalette(Pal);
-  {$ifdef win32}
-   {$ifdef win32}
-    Windows.SetWindowText(GraphWindow,'Samegame, a demonstration of Free Pascal');
-   {$endif}
-
-  {$endif}
- {$ENDIF}
-  IF NOT MousePresent THEN
-   BEGIN
-    Writeln('No mouse found. A mouse is required!');
-    HALT;
-   END;
-  FOR I:=0 TO 9 DO
-   HighScore[I].Score:=I*1500;
-  LoadHighScore(FileName);
-  InitMouse;
-  {$ifndef Win32Graph}
-   CursorOff;
-  {$endif}
- {$IFDEF UseGraphics}
-    HighX:=450;   HighY:=220; {the position of the highscore table}
- {$else}
-    HighX:=52;   HighY:=10; {the position of the highscore table}
-  {$endif}
-
-  DoMainLoopMouse;
-
-  HideMouse;
-  DoneMouse;
-  {$ifndef Win32Graph}
-   CursorOn;
-  {$endif}
-  SaveHighScore;
-  {$IFDEF UseGraphics}
-   CloseGraph;
-  {$ENDIF}
-  {$ifndef Win32Graph}
-   ClrScr;
-  Writeln;
-  Writeln('Last games'#39' score was : ',Score);
-  {$endif}
-END.

+ 0 - 1583
demo/linux/Makefile

@@ -1,1583 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=daemon
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=daemon
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 11
demo/linux/Makefile.fpc

@@ -1,11 +0,0 @@
-#
-#   Makefile.fpc for FPC linux demos (part of FPC demo package)
-#
-
-[target]
-programs_linux=daemon
-programs_freebsd=daemon
-programs_netbsd=daemon
-
-[default]
-fpcdir=../..

+ 0 - 141
demo/linux/daemon.pp

@@ -1,141 +0,0 @@
-{---------------------------------------------------------------------------
-                                 CncWare
-                           (c) Copyright 2000
- ---------------------------------------------------------------------------
-  Filename..: daemon.pp
-  Programmer: Ken J. Wright
-  Date......: 03/21/2000
-
-  Purpose - Program to demonstrate construction of a Linux daemon.
-
-  Usage:
-    1) Compile this program.
-    2) Run it. You will be immediately returned to a command prompt.
-    3) Issue the command: ps ax|grep daemon. This will show you the process
-       id of the program "daemon" that you just ran.
-    4) Issue the command: tail -f daemon.log. This let's you watch the log file
-       being filled with the message in the code below. Press Ctrl/c to break
-       out of the tail command.
-    5) Issue the command: kill -HUP pid. pid is the process number you saw with
-       the ps command above. You will see that a new log file has been created.
-    6) Issue the command: kill -TERM pid. This will stop the daemon. Issuing the
-       ps command above, you will see that the daemon is no longer running.
-
--------------------------------<< REVISIONS >>--------------------------------
-  Ver  |    Date    | Prog | Decription
--------+------------+------+--------------------------------------------------
-  1.00 | 03/21/2000 | kjw  | Initial release.
-  1.01 | 03/21/2000 | kjw  | Forgot to close input, output, & stderr.
-------------------------------------------------------------------------------
-}
-Program Daemon;
-uses SysUtils,BaseUnix;
-Var
-   { vars for daemonizing }
-   bHup,
-   bTerm : boolean;
-   fLog : text;
-   logname : string;
-   aOld,
-   aTerm,
-   aHup : pSigActionRec;
-   ps1  : psigset;
-   sSet : cardinal;
-   pid  : pid_t;
-   secs : longint;
-   zerosigs : sigset_t;
-   hr,mn,sc,sc100 : word;
-
-{ handle SIGHUP & SIGTERM }
-procedure DoSig(sig : longint);cdecl;
-begin
-   case sig of
-      SIGHUP : bHup := true;
-      SIGTERM : bTerm := true;
-   end;
-end;
-
-{ open the log file }
-Procedure NewLog;
-Begin
-   Assign(fLog,logname);
-   Rewrite(fLog);
-   Writeln(flog,'Log created at ',formatdatetime('hh:nn:ss',now));
-   Close(fLog);
-End;
-
-Begin
-   logname := 'daemon.log';
-   secs := 10;
-   fpsigemptyset(zerosigs);
-
-   { set global daemon booleans }
-   bHup := true; { to open log file }
-   bTerm := false;
-
-   { block all signals except -HUP & -TERM }
-   sSet := $ffffbffe;
-   ps1 := @sSet;
-   fpsigprocmask(sig_block,ps1,nil);
-
-   { setup the signal handlers }
-   new(aOld);
-   new(aHup);
-   new(aTerm);
-   aTerm^.sa_handler{.sh} := SigactionHandler(@DoSig);
-
-   aTerm^.sa_mask := zerosigs;
-   aTerm^.sa_flags := 0;
-   {$ifndef BSD}                {Linux'ism}
-    aTerm^.sa_restorer := nil;
-   {$endif}
-   aHup^.sa_handler := SigactionHandler(@DoSig);
-   aHup^.sa_mask := zerosigs;
-   aHup^.sa_flags := 0;
-   {$ifndef BSD}                {Linux'ism}
-    aHup^.sa_restorer := nil;
-   {$endif}
-   fpSigAction(SIGTERM,aTerm,aOld);
-   fpSigAction(SIGHUP,aHup,aOld);
-
-   { daemonize }
-   pid := fpFork;
-   Case pid of
-      0 : Begin { we are in the child }
-         Close(input);  { close standard in }
-         Close(output); { close standard out }
-         Assign(output,'/dev/null');
-         ReWrite(output);
-         Close(stderr); { close standard error }
-         Assign(stderr,'/dev/null');
-         ReWrite(stderr);
-      End;
-      -1 : secs := 0;     { forking error, so run as non-daemon }
-      Else Halt;          { successful fork, so parent dies }
-   End;
-
-   { begin processing loop }
-   Repeat
-      If bHup Then Begin
-         {$I-}
-         Close(fLog);
-         {$I+}
-         IOResult;
-         NewLog;
-         bHup := false;
-      End;
-      {----------------------}
-      { Do your daemon stuff }
-      Append(flog);
-      Writeln(flog,'daemon code activated at ',formatdatetime('hh:nn:ss',now));
-      Close(fLog);
-      { the following output goes to the bit bucket }
-      Writeln('daemon code activated at ',hr:0,':',mn:0,':',sc:0);
-      {----------------------}
-      If bTerm Then
-         BREAK
-      Else
-         { wait a while }
-         fpSelect(0,nil,nil,nil,secs*1000);
-   Until bTerm;
-End.

+ 0 - 1751
demo/lister/Makefile

@@ -1,1751 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=lister
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=flist
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=flist
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 11
demo/lister/Makefile.fpc

@@ -1,11 +0,0 @@
-#
-#   Makefile.fpc for FPC graph demos (part of FPC demo package)
-#
-
-[target]
-units=flist
-programs=lister
-
-[default]
-fpcdir=../..
-

+ 0 - 433
demo/lister/flist.pas

@@ -1,433 +0,0 @@
-{
-
-    This file is a Free Pascal example
-    Copyright (C) 2005 by Marco van de Voort
-        member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    A set of simple dirscanning routines for the lister.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-Unit FList;
-
-{$Mode Delphi}
-
-Interface
-
-Uses Classes{$ifdef Win32},Registry {$endif};
-
-Const NoMarkNoSelect=0;
-      MarkNoSelect  =1;
-      NoMarkSelect  =2;
-      MarkSelect    =3;
-
-Type
-
-     TDirList  = Class
-                  private
-                   ACursor,                 // Entry (0-based) the cursor is on.
-                   APosition,               // Entry (0-based) the homespot occupies
-                   ATotalEnt,               // Total number of entries (dirs.count+files.count)
-                   wdth,                    // width of a column (width of screen div col)+1 in chars
-                   Amaxent,                 // number of entries that fit on the screen
-                   Acolh,                   // height of a column in entries.
-                   botRightCol : Integer;   // When past this char, we are in bottombar
-                   TopBar,
-                   BottomBar   : Integer;   // lines below/above not for display
-
-                   AColumns    : Integer;  // amount of columns
-                   TheDirs     : TStringList;   // \
-                   TheFiles    : TStringList;   // The current entries
-                   Marked      : TBits;     // Which entries are selected?
-                   DirMax      : Integer;   // Can be used for autoscaling
-
-                   Filemax     : Integer;   // likewise
-                   ScrWidth,
-                   ScrHeight   : Integer;
-                   function  GetEntry(I:Integer;index:Integer):String;
-                   function  GetDirCount:Integer;
-                  public
-                   Directory   : String;    // Current dir we are looking at.
-                   Constructor Create;
-                   Destructor Destroy; override;
-                   Procedure PopulateList(Const FileSpec:String);
-                   Procedure CalcScreenStats;
-                   Procedure Mark(x:integer);
-                   Procedure UnMark(x:integer);
-                   Procedure Toggle(x:integer);
-                   {$ifdef Debug}
-                   Procedure PrintDirs;
-                   Procedure PrintFiles;
-                   {$endif}
-                   property Entries[i:Integer]:String index 0 read GetEntry; Default;
-                   property Directories[i:Integer]:String index 1 Read GetEntry;
-                   property Files[i:Integer]:String index 2 Read GetEntry;
-                   property DirCount:Integer read GetDirCount;
-                   property Position: Integer read APosition write APosition;
-                   property Columns: Integer read AColumns write AColumns;
-                   property Cursor: Integer read ACursor write ACursor;
-                   property Colh: Integer read AColh write AColh;
-                   property MaxEnt: Integer read AMaxEnt write AMaxEnt;
-                   property TotalEnt: Integer read ATotalEnt write ATotalEnt;
-                   End;
-
-
-    TVidDirList = Class(TDirList)
-                   {$ifdef Win32}
-                    Reg:TRegistry;
-                   {$endif}
-                   Attributes : Array[0..3] Of Integer;
-                   Constructor Create();
-                   Destructor Destroy; override;
-                   Procedure BuildDisplay;
-                   procedure ClearArea;
-                   Procedure Hilight(Curs,Home,Onx:Integer);
-                  {$ifdef Win32}
-                    Function CheckAssociation(ext:String):String;
-                  {$endif}
-                   End;
-
-
-Procedure TextOut(X,Y : Integer;Const S : String);
-Procedure textclear(x,y,Count :Integer);
-
-{$ifdef debug}
-var  f : Text;
-{$endif}
-
-
-Implementation
-
-Uses SysUtils,Video;
-
-// comes from vidutl in the video examples area.
-Procedure TextOut(X,Y : Integer;Const S : String);
-
-Var
-  P,I,M : Integer;
-
-begin
-  P:=((X-1)+(Y-1)*ScreenWidth);
-  M:=Length(S);
-  If P+M>ScreenWidth*ScreenHeight then
-    M:=ScreenWidth*ScreenHeight-P;
-  For I:=1 to M do
-    VideoBuf^[P+I-1]:=Ord(S[i])+($07 shl 8);
-end;
-
-Procedure textclear(x,y,Count :Integer);
-
-begin
-  FillWord(VideoBuf[((X-1)+(Y-1)*ScreenWidth)],count,$07 shl 8);
-end;
-
-
-Constructor TDirList.Create;
-
-Begin
-  TheDirs:=TStringList.Create;
-  TheFiles:=TStringList.Create;
-  Marked:=TBits.Create(1000);
-  TheDirs.Sorted:=True;
-  TheFiles.Sorted:=True;
-  TopBar:=1;
-  BottomBar:=1;
-  Columns:=4;
-  Inherited Create;
-End;
-
-function  TDirList.GetDirCount:Integer;
-
-Begin
- Result:=TheDirs.Count;
-End;
-
-Destructor TDirList.Destroy;
-
-Begin
- TheDirs.Free;
- TheFiles.Free;
- Marked.Free;
- inherited destroy;
-End;
-
-Procedure TDirList.Mark(x:integer);
-
-Begin
- Marked.Seton(x);
-End;
-
-Procedure TDirList.UnMark(x:integer);
-
-Begin
- Marked.Clear(x);
-End;
-
-Procedure TDirList.Toggle(x:integer);
-
-{$ifdef Debug}
-var s:String;
-    I:longint;
-{$endif}
-
-Begin
- Marked[x]:=NOT Marked[x];
- {$ifdef Debug}
- Writeln(F,'after marked:',marked.size);
- SetLength(S,51);
- For I:=0 To 50 Do
-  If Marked[i] Then
-   S[i+1]:=#49
-  else
-   S[I+1]:=#48;
- TextOut(1,1,S);
-  Writeln(F,'after textout:',marked.size);
- {$endif}
-End;
-
-Function TDirList.GetEntry(I:Integer;Index:Integer):String;
-
-Begin
- {$ifdef Debug}
-  Writeln(F,'i:',i,' ',index);
-  {$endif}
-  Case Index Of
-  0 : If I<TheDirs.Count Then
-        Result:=TheDirs[I]
-      Else
-        Result:=TheFiles[I-TheDirs.Count];
-  1 : Result:=TheDirs[I];
-  2 : Result:=TheFiles[I];
-  End;
-End;
-
-Procedure TDirList.PopulateList;
-
-Var  Info : TSearchRec;
-     Len  : Integer;
-
-Procedure DoSearch(Const fs:String; Attr : Integer;AddFiles:Boolean);
-
-Begin
-    If FindFirst (Directory+FS,Attr,Info)=0 then
-      Repeat
-        Len:=Length(Info.Name);
-        If (Info.Attr and faDirectory) = faDirectory then
-          Begin
-            TheDirs.Add(Info.Name);
-            If Len>DirMax Then
-              DirMax:=Len;
-          End
-        Else
-          Begin
-            If AddFiles Then
-              Begin
-                TheFiles.Add(Info.Name);
-                If Len>FileMax Then
-                  FileMax:=Len;
-              End;
-          End;
-      Until FindNext(info)<>0;
-     FindClose(Info);
-End;
-
-Begin
-
-  DirMax:=0;
-  FileMax:=0;
-  TheDirs.Clear;
-  TheFiles.Clear;
-  Directory:=IncludeTrailingPathDelimiter(Directory);
-  If FileSpec='*.*' Then
-    Begin
-      DoSearch(FileSpec,faAnyFile and faDirectory,True);
-    End
-  Else
-    Begin
-      DoSearch('*.*',faDirectory,False);
-      DoSearch(FileSpec,faAnyFile,True);
-    End;
-  If (TheDirs.Count>0) And (TheDirs[0]='.') Then
-    TheDirs.Delete(0);
-  TotalEnt:=TheDirs.count+TheFiles.count;
-  Position:=0;
-  Cursor:=0;
-  If Marked.Size<TotalEnt THEN
-    Marked.Grow(TotalEnt);
-  Marked.ClearAll;
-End;
-
-{$ifdef debug}
-Procedure TDirList.PrintDirs;
-
-Var I:Integer;
-
-Begin
-  Writeln(f,Thedirs.count, ' ', thefiles.count, ' ',thedirs.count+thefiles.count);
-  If theDirs.Count>0 Then
-     For I:=0 To theDirs.Count-1 DO
-        Writeln(f,theDirs[I]);
-End;
-
-Procedure TDirList.PrintFiles;
-
-Var I:Integer;
-
-Begin
-  If TheFiles.Count>0 Then
-     For I:=0 To TheFiles.Count-1 DO
-        Writeln(f,TheFiles[I]);
-  Writeln(f,'----');
-End;
-{$endif}
-
-Procedure TDirList.CalcScreenStats;
-
-Begin
- // Calc width of columns, minus one for the space inbetween
-
- wdth:=(ScrWidth DIV Columns)-1;
-
- // effective height of a column
-
- colh:=(ScrHeight-TopBar-BottomBar);
-
- // Max amount Filenames we can store in one screen;
-
- maxent:=colh*Columns;
-
- // If we write beyond this character, we would be wrong.
-
- BotRightCol:=(ScrHeight-BottomBar)*ScrWidth;
-End;
-
-
-Constructor TVidDirList.Create;
-
-Begin
- inherited Create;
- ScrWidth:=ScreenWidth;
- ScrHeight:=ScreenHeight;
- CalcScreenStats;
- {$Ifdef Win32}
-  Reg:=TRegistry.Create;
-  Reg.RootKey:=HKEY_CLASSES_ROOT;
- {$endif}
-End;
-
-Destructor TVidDirList.Destroy;
-
-Begin
- {$ifdef Win32}
-  Reg.Free;
- {$endif}
-End;
-
-
-Procedure TVidDirList.BuildDisplay;
-
-Var
-  O,I,M,X,
-  TopLeftCol,
-  totalc,
-  lpos,
-  dirc       : Integer;
-  S       : String;
-
-begin
- {$ifdef debug}
-//  Writeln(f,'entering');
- {$endif}
-  dirc:=Thedirs.count;
-
-  totalc:=TotalEnt;
-  TopLeftCol:=TopBar*ScreenWidth;
-
-  X:=TopLeftCol;
-  lpos:=position+maxent;
-  // First the dirs;
-  i:=Position;
-  If I<Totalc THen
-   Begin
-     REPEAT
-       If I<dirc Then
-        S:=TheDirs[I]
-       Else
-        S:=TheFiles[I-dirc];
-       m:=Length(s);
-       if m>wdth Then
-        m:=wdth;
-
-       For o:=0 to m-1 do
-        VideoBuf^[X+O]:=Ord(S[o+1])+(Attributes[ORD(Marked[I])] shl 8);
-
-       inc(X,screenwidth);
-       If X>=botrightcol Then
-        Begin
-         TopLeftCol:=TopLeftCol+wdth+1;
-         x:=TopLeftCol;
-        End;
-     Inc(I);
-     Until (i>=lpos) or (I>=totalc);
-     {$ifdef debug}
-//     Writeln(F,'lpos  :',lpos);
-//     writeln(F,'i     :',i);
-//     writeln(F,'totalc:',totalc);
-     {$endif}
-   End;
-end;
-
-Procedure TVidDirList.Hilight(Curs,Home:Integer;Onx:Integer);
-
-Var I    : Integer;
-    Posx : Integer;
-    L    : PWord;
-    Attr : Integer;
-
-Begin
- Attr:=Attributes[ORD(Marked[Curs])+Onx shl 1] shl 8;
- Posx:=Curs-Home;
- L:=@VideoBuf[(Posx DIV Colh)*(wdth+1) + (TopBar+ Posx MOD Colh)*screenWidth];
- For I:= 0 TO wdth-1 DO
-  Begin
-   L^:=(L^ And 255) + Attr;
-   Inc(L);
-  End;
-End;
-
-procedure TVidDirList.ClearArea;
-Begin
-    TextClear(1,2,screenwidth*(screenheight-topbar-bottombar));
-End;
-
-{$ifdef Win32}
- Function TVidDirList.CheckAssociation(ext:String):String;
-
- Var S : String;
- Begin
-  if Reg.OpenKey(ext, false) then
-   begin
-     Reg.CloseKey;
-//     Reg.Free;
-     Exit('');
-   end;
-
-  Reg.OpenKey('\'+ext, True);
-  S:=Reg.readString('');
-  Reg.closekey;
-  Reg.OpenKey('\'+S+'\Shell\Open\Command', True);
-  Result:=Reg.ReadString('');
-  reg.closekey;
- End;
-{$endif}
-end.

+ 0 - 298
demo/lister/lister.pas

@@ -1,298 +0,0 @@
-{
-
-    This file is a Free Pascal example
-    Copyright (C) 2005 by Marco van de Voort
-        member of the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    An filebrowser inspired by Vernon D. Buerg's list.com, designed
-    to be a shell to less under Unix, but works fine under Windows too.
-    (using any less and file in the path)
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{$mode Delphi}
-
-Uses Process,SysUtils,Video,Keyboard,FList
-     {$IFDEF UNIX}, BaseUnix{$ENDIF};
-
-Function Do_File_cmd(path:String):String;
-
-Const BufSize = 1024;
-      TheProgram = 'file' {$IFDEF Win32}+'.exe' {$ENDIF};
-
-
-Var S : TProcess;
-    Buf : Array[1..BUFSIZE] of char;
-    I,Count : longint;
-
-begin
-  S:=TProcess.Create(Nil);
-  S.Commandline:=theprogram+' '+path;
-  S.Options:=[poUsePipes,poNoConsole];
-  S.execute;
-  Result:='';
-  Count:=s.output.read(buf,BufSize);
-  If Count>0 Then
-    Begin
-      SetLength(Result,Count);
-      Move(buf[1],Result[1],Count);
-    End;
-  S.Free;
-  {$ifdef win32}
-  If Length(Result)>2 Then
-   Begin
-    If Result[2]=':' Then
-     Result[2]:=' ';
-   End;
-  {$endif}
-  i:=Pos(':',Result);
-  If I>0 Then
-    Delete(Result,1,I);
-  Result:=Trim(Result);
-  I:=Length(Result);
-  While (I>0) and (Result[I]=#10) DO
-   Dec(I);
-  If I>ScreenWidth Then
-    I:=ScreenWidth;
-  SetLength(Result,I);
-end;
-
-
-Var
-  FileSpec : String;
-  D        : TVidDirList;
-  ExitNow  : Boolean;
-  K        : TKeyEvent;
-  OldHome,
-  OldCursor: Integer;
-  S,S2     : String;
-  Forced,
-  ForcedFull: Boolean;
-  C        : Char;
-  Editor,
-  Pager : AnsiString;
-Procedure ReDraw;
-
-Begin
-    D.ClearArea;
-    D.BuildDisplay;
-    D.HiLight(D.Cursor,D.Position,1);
-    // Probably so much changed that diffing won't help?
-    UpdateScreen(true);
-End;
-
-procedure loadutil(const envvar,default : string;var symbol : string);
-
-begin
-   Symbol:=GetEnvironmentVariable(envvar); 
-   if Symbol='' Then
-     Symbol:=default;
-   if Pos('/',Symbol)=0 Then
-     Symbol:=FileSearch(Symbol,GetEnvironmentVariable('PATH'));
-end;
-
-
-Begin
-  InitVideo;
-  InitKeyboard;
-  {$ifdef Unix}
-   FileSpec:='*';
-  {$else}
-   FileSpec:='*.*';
-  {$endif}
-  ExitNow:=False;
-  {$ifdef win32}
-   Pager:='notepad.exe';
-   Editor:='notepad.exe';
-  {$else}
-   loadutil('EDITOR','joe' ,editor);
-   loadutil('PAGER' ,'less',pager);
-  {$endif}
-  If ParamCount()>0 Then
-    FileSpec:=ParamStr(1);
-  {$ifdef debug}
-  assign(f,'log.txt');
-  rewrite(F);
-  {$endif}
-  D:=TVidDirList.Create;
-  D.Columns:=5;                              // default
-  D.Directory:=GetCurrentDir;
-  D.PopulateList(FileSpec);
-  D.Attributes[NoMarkNoSelect]:=$07;
-  D.Attributes[MarkNoSelect]  :=$17;
-  D.Attributes[NoMarkSelect]  :=$0F;
-  D.Attributes[MarkSelect]    :=$1F;
-
-  ReDraw;
-  Repeat
-   {$ifdef debug}
-    Writeln(F,'Cursor  :',D.Cursor);
-    Writeln(F,'Position:',D.Position);
-    Writeln(F,'Totalent:',D.TotalEnt);
-//    Writeln(F,'wdth    :',D.wdth);
-    Writeln(F,'maxent  :',D.maxent);
-    Writeln(F,'colh    :',D.colh);
-    Writeln(F,'columns :',D.columns);
-    Writeln(F);
-   {$endif}
-
-    K:=GetKeyEvent;
-    K:=TranslateKeyEvent(K);
-    OldCursor:=D.Cursor;
-    OldHome:=D.Position;
-    Forced:=False;
-    ForcedFull:=False;
-    IF IsFunctionKey(K) Then
-      Begin
-        K:=TKeyRecord(K).KeyCode;
-        Case K Of
-          kbdRight: Begin
-                     If D.Cursor<(D.TotalEnt-D.Colh) Then
-                       D.Cursor:=D.Cursor+D.colh
-                      else
-                       D.Cursor:=D.TotalEnt-1;
-                     If D.Cursor>=(D.Position+D.MaxEnt) Then
-                      D.Position:=D.Position+d.colh;
-                    End;
-          kbdDown : Begin
-                     If D.Cursor<(D.TotalEnt-1) Then
-                      D.Cursor:=D.Cursor+1;
-                     If D.Cursor>(D.Position+D.MaxEnt-1) Then
-                      D.Position:=D.Position+D.Colh;
-                    End;
-          kbdUp   : Begin
-                     If D.Cursor>0 Then
-                      D.Cursor:=D.Cursor-1;
-                     If D.Cursor<D.Position Then
-                       Begin
-                         D.Position:=D.Position-D.Colh;
-                         If D.Position<0 Then
-                          D.Position:=0;
-                       End;
-                    End;
-          kbdLeft : Begin
-                     If D.Cursor>=(D.Colh) Then
-                        D.Cursor:=D.Cursor-D.colh
-                      else
-                        D.Cursor:=0;
-                     If D.Cursor<D.Position Then
-                       D.Position:=D.Position-D.Colh;
-                     If D.Position<0 Then
-                       D.Position:=0;
-                    End;
-          End;
-      End
-    Else
-      Begin
-        C:=GetKeyEventChar(K);
-        if C<>#0 Then
-        Case C Of
-          #13      : Begin
-                       If D.Cursor>=D.DirCount Then
-                         Begin
-                           {$ifdef win32}  // try to get "open" action ?
-                             S:=ExtractFileExt(D[D.Cursor]);
-                             Delete(S,1,1);
-			   {$endif}
-                           ExecuteProcess(Pager,[D.Directory+D[D.Cursor]]);
-                           // TextOut(10,1,'                        ');
-                           //TextOut(10,1,D[D.Cursor]);
-                           ForcedFull:=True;
-                         End
-                       Else
-                         Begin
-                           S:=D.Directories[D.Cursor];
-                           S2:=D.Directory+S;
-                           If S='..' Then
-                             S2:=ExpandFileName(S2);
-			   {$IFDEF UNIX}
-                           IF FPAccess(pchar(s2),X_OK)=0 Then
-                             begin
-		           {$ENDIF}
-                               D.Directory:=S2;
-                               D.PopulateList(FileSpec);
-                               ForcedFull:=True;
- 			   {$IFDEF UNIX}
-                             end;
-			   {$ENDIF}
-                         End;
-                     End;
-          'e','E'  : begin
-		       If D.Cursor>=D.DirCount Then
-                         Begin
-                           {$ifdef win32}  // try to get "edit" action ?
-                             S:=ExtractFileExt(D[D.Cursor]);
-                             Delete(S,1,1);
-			   {$endif}
-                           ExecuteProcess(Editor,[D.Directory+D[D.Cursor]]);
-                           // TextOut(10,1,'                        ');
-                           //TextOut(10,1,D[D.Cursor]);
-                           ForcedFull:=True;
-                         End	
-		     end;
-          'd','D'  : Begin
-		       If D.Cursor>=D.DirCount Then
-                         Begin
-                           s:=ExpandFileName(D.Directory+D[D.Cursor]);
-		           DeleteFile(S);
-			   D.PopulateList(FileSpec);
-			   ForcedFull:=True;
-			 End;                	 
-		     End;
-          #27,'q'  : exitnow:=True;
-          ' '      : Begin
-                       D.Toggle(D.Cursor);
-                       Forced:=True;
-                     End;
-          'i'      : Begin
-                       TextClear(1,1,ScreenWidth);
-                       If D.Cursor>=D.DirCount Then
-                         Begin
-                           TextOut(1,1,do_file_cmd(' '+D.Directory+D[D.Cursor]));
-                         End
-                       Else
-                         Begin
-                           textout(1,1,+' is a directory');
-                         End;
-                      Forced:=True;
-                     End;
-
-          End;
-      End;
-
-   // Determine if, and what kind of updating necessary;
-   If (OldHome<>D.Position) OR ForcedFull Then
-     Redraw
-   Else
-     Begin
-      If (OldCursor<>D.Cursor) Or Forced Then
-        Begin
-          D.Hilight(OldCursor,OldHome,0);
-          D.HiLight(D.Cursor,D.Position,1);
-          UpdateScreen(False);
-        End;
-     End;
-  Until ExitNow;
-
-  DoneKeyboard;
-  DoneVideo;
-  {$ifdef Debug}
-  d.printdirs;
-  d.printfiles;
-  {$endif}
-  D.Free;
-
-  {$ifdef debug}
-  Close(F);
-  {$endif}
-End.

+ 0 - 37
demo/macos/HelloMac.pp

@@ -1,37 +0,0 @@
-{$MODE MACPAS}
-{$APPTYPE GUI}
-
-program HelloMac;
-
-{Demo of a simple program which uses the classic Macintosh Toolbox.
- It also shows how to include a mac style resource file.}
-
-USES
-	MacOS;
-	
-{$R HelloMac.r}
-
-var
-	window: WindowPtr;
-
-begin
-	InitGraf(@qd.thePort);
-	InitFonts;
-	InitWindows;
-	InitMenus;
-	TEInit;
-	InitDialogs(nil);
-	InitCursor;
-
-	window:= GetNewWindow(128, nil, WindowPtr(-1));
-	if window <> nil then
-		begin
-			SetPort(window);
-			MoveTo(20,20);
-			DrawString('Hello Free Pascal on the Mac :-)');
-
-			repeat
-			until Button;
-		end;
-		
-end.

+ 0 - 5
demo/macos/HelloMac.r

@@ -1,5 +0,0 @@
-data 'WIND' (128) {
-	$"0040 0027 00D0 0131 0000 0100 0000 0000"
-	$"0000 0848 656C 6C6F 4D61 63"
-};
-

+ 0 - 1547
demo/modex/Makefile

@@ -1,1547 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=voxel
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 9
demo/modex/Makefile.fpc

@@ -1,9 +0,0 @@
-#
-#   Makefile.fpc for FPC modex demos (part of FPC demo paackage)
-#
-
-[target]
-programs_go32v2=voxel
-
-[default]
-fpcdir=../..

+ 0 - 49
demo/modex/fpcmodex.txt

@@ -1,49 +0,0 @@
-The FPC ModeX docs...
-
---------------------------------------------------------------------
-NOTICE:
-
-The ported programs (see below) were found on a site that claims to only have
-PD stuff, and the webmaster said that everything he published was sent to
-him with that purpose. We tried finding the persons mentioned in the mail
-over internet, but that failed.
-
-If there is somebody that claims authorship of these programs, please mail
[email protected], and the sources will be removed from our websites.
-
---------------------------------------------------------------------
-REQUEST:
-
-As a developper team, we don't want spend 90% of our time in creating demoes.
-If you have something nice, which explains not yet demonstrated features or
-technicques, mail contact us via [email protected], or add it to the
-contrib page.
-The readers are also encouraged to explore FPC's excellent documentation
-with many examples!!!!!
-
-------------------------------------------------------------------------------
-What are the FPC ModeX programs?
-
-The FPC ModeX programs are a series of simple, small programs written or
-ported by Marco van de Voort ([email protected]) as demos for the
-Free Pascal compiler (FPC) and its Run Time Libraries (RTL).
-The "ported" programs were first used to test the compability of the GRAPH
-unit. Since we had them, and they were very likely PD or GPL, we decided
-to use them when we couldn't contact the authors
-
-- Voxel (Marcin Borkowski or Bas van Gaalen, depends on src)
-  Displays a landscape in which you can move.
-
--------------
-Voxel, more a demo than a game.
-
-A program I already ported to M2 once. Also from SWAG I believe, but it
-has been cycling FIDOnets Pascal areas for years.
-
-The program displays a landscape in which you can move with the cursor keys.
-Exit with ESCAPE. A flabbergasting effect in just 150 lines.
-
-HISTORY
- v0.01 :
-       - Initial FPC port.
-

+ 0 - 170
demo/modex/voxel.pp

@@ -1,170 +0,0 @@
-{
-
-    This program is part of the FPC demoes.
-    Copyright (C) 1999 by Marco van de Voort
-
-    A port of a more "dirty" graphical program, to demonstrate
-    some Go32 features. The program displays a landscape in which
-    you can move with the cursorkeys
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************
-
-The sources for this game was found in SWAG, and was also posted to the
-International FIDO Pascal area.
-I assume that it is PD (both sources said nothing about the form of copyrights,
-but it was contributed to SWAG, which is generally PD)
-
-If there is somebody that claims authorship of these programs,
-please mail [email protected], and the sources will be removed from our
-websites.
-
-------------------------------------------------------------------------
-There was no real original, I reconstructed some from several versions.
-
-A voxel source from Swag patched for FPC.
-
-- The original author was unknown. I saw a different version which named
-  "Borek" (Marcin Borkowski), 2:480/25  as author.
-- Bas van Gaalen donated it to SWAG.
-- I, Marco van de Voort made some small FPC adjustments.
-- However one problem remained (wrapping of arrays), and Jonas Maebe mailed me
-   that glitch to me. This practically meant putting all those WORD()
-   typecasts in the array-parameters.
-
-Still BP compatible, Gameunit contains some BP alternatives for Go32
-procedures needed.}
-
-PROGRAM voxel;
-{$R-}
-
-
-USES Crt,Dos {$IFDEF FPC}, Go32{$ENDIF};
-
-type lrgarr=array[0..65534] of byte;
-const
- pal:array[1..384] of byte=(
-  0,0,0,48,48,48,1,0,43,1,3,43,2,5,44,2,7,44,3,9,45,4,11,46,5,13,47,6,15,48,
-  7,17,49,8,19,50,9,21,51,10,22,52,11,24,52,12,26,54,13,28,54,14,30,56,15,32,
-  56,16,34,58,17,34,58,17,36,58,18,38,60,19,40,60,20,42,62,21,44,62,10,31,0,
-  11,31,0,11,31,1,11,32,1,12,32,1,12,32,2,12,33,2,13,33,2,14,33,3,15,33,3,15,
-  34,3,15,34,4,15,35,4,16,35,4,16,35,5,16,36,5,17,36,5,17,36,6,18,37,6,18,38,
-  7,19,38,8,20,39,8,20,40,9,21,40,10,22,41,10,22,42,11,23,42,12,24,43,12,24,
-  44,13,25,44,14,25,45,14,26,46,15,27,46,16,27,47,17,28,47,18,28,48,19,29,49,
-  19,30,49,20,30,50,21,31,51,21,32,51,22,32,52,23,33,53,23,34,53,24,34,54,25,
-  35,55,25,36,55,26,36,56,27,37,57,27,38,57,27,39,57,27,41,57,27,42,57,27,43,
-  57,27,44,57,27,45,57,27,46,57,27,47,57,27,49,57,27,50,57,27,51,57,27,52,57,
-  27,53,57,27,55,57,27,56,57,27,57,57,27,58,57,27,58,57,26,58,57,25,58,57,24,
-  58,56,23,58,55,22,58,54,20,58,53,19,58,51,18,58,50,17,58,50,16,58,49,15,58,
-  48,14,58,47,13,58,46,12,58,45,11,58,44,11,58,44,10,58,43,10,58,42,9,57,41,
-  8,57,40,8,56,39,7,56,38,6,55,37,5,55,35,4,54,33,4,54,31,2,32,32,32,63,63,63,
-  63,63,63,63,63,63,63,63,63,48,48,48,63,63,63,63,63,63);
-
-VAR
-  MP,Scr      : ^lrgarr;
-  rng         : array[0..320] of byte;
-  dir,i,x,y   : integer;
-
-function ncol(mc,n,dvd:integer):integer;
-var loc:integer;
-begin
-  loc:=(mc+n-random(2*n)) div dvd; ncol:=loc;
-  if loc>250 then ncol:=250; if loc<5 then ncol:=5
-end;
-
-procedure plasma(x1,y1,x2,y2:word);
-var xn,yn,dxy,p1,p2,p3,p4:word;
-begin
-  if (x2-x1<2) and (y2-y1<2) then
-   exit;
-  p1:=mp^[WORD(256*y1+x1)]; p2:=mp^[WORD(256*y2+x1)]; p3:=mp^[WORD(256*y1+x2)];
-  p4:=mp^[WORD(256*y2+x2)]; xn:=((x2+x1) shr 1) and $ffff; yn:=((y2+y1) shr 1) and $ffff;
-  dxy:=5*(x2-x1+y2-y1) div 3;
-  if mp^[WORD(256*y1+xn)]=0 then mp^[WORD(256*y1+xn)]:=ncol(p1+p3,dxy,2);
-  if mp^[WORD(256*yn+x1)]=0 then mp^[WORD(256*yn+x1)]:=ncol(p1+p2,dxy,2);
-  if mp^[WORD(256*yn+x2)]=0 then mp^[WORD(256*yn+x2)]:=ncol(p3+p4,dxy,2);
-  if mp^[WORD(256*y2+xn)]=0 then mp^[WORD(256*y2+xn)]:=ncol(p2+p4,dxy,2);
-  mp^[WORD(word(256*yn)+xn)]:=ncol(word(p1+p2+p3+p4),word(dxy),4);
-  plasma(x1,y1,xn,yn); plasma(xn,y1,x2,yn);
-  plasma(x1,yn,xn,y2); plasma(xn,yn,x2,y2);
-end;
-
-procedure draw(xp,yp,dir:integer);
-var z,zobs,ix,iy,iy1,iyp,ixp,x,y,s,csf,snf,mpc,i,j:integer;
-begin
-  fillchar(rng,sizeof(rng),200); zobs:=100+mp^[WORD(256*yp+xp)];
-  csf:=round(256*cos((dir)/180*pi)); snf:=round(256*sin((dir)/180*pi));
-  fillchar(scr^,64000,0);
-  for iy:=yp to yp+55 do
-   begin
-    iy1:=1+2*(iy-yp); s:=4+300 div iy1;
-    for ix:=xp+yp-iy to xp-yp+iy do
-     begin
-      ixp:=xp+((ix-xp)*csf+(iy-yp)*snf) shr 8;
-      iyp:=yp+((iy-yp)*csf-(ix-xp)*snf) shr 8;
-      x:=160+360*(ix-xp) div iy1;
-      if (x>=0) and (x+s<=318) then
-       begin
-        z:=mp^[WORD(iyp shl 8+ixp)]; mpc:=z shr 1;
-        if z<47 then z:=46;  y:=100+(zobs-z)*30 div iy1;
-        if (y<=199) and (y>=0) then
-         for j:=x to x+s do
-          begin
-           for i:=y to rng[j] do
-            scr^[WORD(320*i+j)]:=mpc;
-           if y<rng[WORD(j)] then rng[WORD(j)]:=y
-          end;
-      end;
-    end;
-  end;
-  {$IFDEF FPC}
-   DosMemPut($A000,0,Scr^,64000);
-  {$ELSE}
-   Move(Scr^,mem[$A000:0],64000);
-  {$ENDIF}
-end;
-
-VAR Reg : Registers;
-
-begin
-  writeln('creating landscape...');
-  randomize; x:=0; y:=0; dir:=0; new(mp); fillchar(mp^,65535,0);
-  new(scr); mp^[$0000]:=128; plasma(0,0,256,256);
-  Reg.ax:=$13;  Intr($10,Reg);
-{$IFDEF FPC}
-  Outportb($3C8,0);
-  for i:=1 to 384 do OutPortb($3c9,pal[i]);
-{$ELSE}
-  Port[$3C8] := 0;
-  for i:=1 to 384 do Port[$3c9] := pal[i];
-{$ENDIF}
-  repeat
-    dir:=dir mod 360;
-    draw(x,y,dir);
-    case readkey of
-      #0:case readkey of
-         #75:dec(dir,10);
-         #77:inc(dir,10);
-         #72:begin
-              y:=y+round(5*cos((dir)/180*pi));
-              x:=x+round(5*sin((dir)/180*pi));
-             end;
-         #80:begin
-              y:=y-round(5*cos((dir)/180*pi));
-              x:=x-round(5*sin((dir)/180*pi));
-             end;
-          end;
-      #27: begin
-            Reg.ax:=$3;
-            Intr($10,Reg);
-            halt
-          end
-    end
-  until false;
-end.

+ 0 - 1547
demo/morphos/Makefile

@@ -1,1547 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=ahitest asltest window getvolumes openlib process
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 9
demo/morphos/Makefile.fpc

@@ -1,9 +0,0 @@
-#
-#   Makefile.fpc for FPC morphos demos (part of FPC demo package)
-#
-
-[target]
-programs_morphos=ahitest asltest window getvolumes openlib process
-
-[default]
-fpcdir=../..

+ 0 - 186
demo/morphos/ahitest.pas

@@ -1,186 +0,0 @@
-{
-
-    Using AHI device interface to produce sound
-    Free Pascal for MorphOS example
-
-    Copyright (C) 2005 by Karoly Balogh
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ * 2005.01.30 * }
-{ * Needs MorphOS RTL 2005.01.30 or later! * }
-
-program AHITest;
-
-uses exec,doslib,utility,ahi; // AHI SUXX! :)
-
-
-const
-  FREQUENCY  = 44100;
-  STYPE      = AHIST_M16S;
-  BUFFERSIZE = 8192;
-
-var
-  myTask: PTask;
-  oldPri: LongInt;
-
-const
-  AHImp : PMsgPort = nil;
-  AHIios: Array[0..1] of PAHIRequest = (nil,nil);
-  AHIio : PAHIRequest = nil;
-  AHIiocopy: Pointer = nil;
-  AHIdevice: ShortInt = -1;
-
-  signals: DWord = 0;
-  length : DWord = 0;
-
-  link: PAHIRequest = nil;
-  tmp : Pointer = nil;
-
-  terminate: Boolean = False;
-
-var
-  { * Not an elegant way of buffer allocation, but i don't care. * }
-  Buffer1: array[1..BUFFERSIZE] of Integer;
-  Buffer2: array[1..BUFFERSIZE] of Integer;
-  PB1, PB2: PInteger;
-
-  IOErrCode: LongInt;
-
-
-procedure cleanup(exitmsg: String; exitcode: LongInt);
-begin
-  if AHIdevice=0 then CloseDevice(PIORequest(AHIio));
-  DeleteIORequest(PIORequest(AHIio));
-  FreeMem(AHIiocopy);
-  DeleteMsgPort(AHImp);
-  SetTaskPri(myTask,oldPri);
-
-  if exitmsg<>'' then writeln(exitmsg);
-  halt(exitcode);
-end;
-
-
-{ * Fill up the buffer with some sound data * }
-procedure fillbuffer;
-var
-  counter, counter2: longint;
-  sndvalue: integer;
-  chunksize: longint;
-  chunknum : longint;
-begin
-  sndvalue:=32767;
-  chunknum :=BUFFERSIZE div 32;
-  chunksize:=BUFFERSIZE div chunknum;
-  for counter:=1 to chunknum do begin
-    for counter2:=1 to chunksize do
-      pb1[(((counter-1)*chunksize)+counter2)-1]:=sndvalue;
-    sndvalue:=0-sndvalue;
-  end;
-  length:=(BUFFERSIZE*2);
-end;
-
-
-begin
-  PB1:=@Buffer1;
-  PB2:=@Buffer2;
-
-  myTask:=FindTask(nil);
-  oldPri:=SetTaskPri(myTask,10);
-
-  AHImp:=CreateMsgPort();
-  if AHImp<>nil then begin
-    AHIio:=CreateIORequest(AHImp,sizeof(TAHIRequest));
-    if AHIio<>nil then begin
-      AHIio^.ahir_Version:=4;
-      AHIdevice:=OpenDevice(AHINAME,0,PIORequest(AHIio),0);
-    end;
-  end;
-
-  if AHIdevice<>0 then
-    cleanup('AHI opening error!',20);
-
-  { * Make a copy of the request (for double buffering) * }
-  AHIiocopy:=getmem(sizeof(TAHIRequest));
-  if AHIiocopy=nil then
-    cleanup('Memory allocation failure.',20);
-
-  CopyMem(AHIio, AHIiocopy, sizeof(TAHIRequest));
-  AHIios[0]:=AHIio;
-  AHIios[1]:=AHIiocopy;
-
-  writeln('Press CTRL-C to exit...');
-  SetIoErr(0);
-
-  while (not terminate) do begin
-
-    { * Let's fill up the buffer with some data * }
-    fillbuffer;
-
-    { * Setting up IO request * }
-    AHIios[0]^.ahir_Std.io_Message.mn_Node.ln_Pri := 127;
-    AHIios[0]^.ahir_Std.io_Command := CMD_WRITE;
-    AHIios[0]^.ahir_Std.io_Data    := pb1;
-    AHIios[0]^.ahir_Std.io_Length  := length;
-    AHIios[0]^.ahir_Std.io_Offset  := 0;
-    AHIios[0]^.ahir_Frequency      := FREQUENCY;
-    AHIios[0]^.ahir_Type           := STYPE;
-    AHIios[0]^.ahir_Volume         := $10000;          { * Full volume * }
-    AHIios[0]^.ahir_Position       := $8000;           { * Centered    * }
-    AHIios[0]^.ahir_Link           := link;
-
-    SendIO(PIORequest(AHIios[0]));
-
-    if link<>nil then begin
-      { * Wait until the last buffer is finished * }
-      { * (== the new buffer is started) * }
-      signals:=Wait(SIGBREAKF_CTRL_C Or (1 Shl AHImp^.mp_SigBit));
-
-      { * Check for Ctrl-C and abort if pressed * }
-      if (signals and SIGBREAKF_CTRL_C)>0 then begin
-        SetIoErr(ERROR_BREAK);
-        terminate:=True;
-      end;
-
-      { * Remove the reply and abort on error * }
-      if (WaitIO(PIORequest(link)))<>0 then begin
-        SetIoErr(ERROR_WRITE_PROTECTED);
-        terminate:=True;
-      end;
-    end;
-
-    link := AHIios[0];
-
-    { * Swap buffer and request pointers, and restart * }
-    tmp := pb1;
-    pb1 := pb2;
-    pb2 := tmp;
-
-    tmp := AHIios[0];
-    AHIios[0] := AHIios[1];
-    AHIios[1] := tmp;
-  end;
-
-  { * Abort any pending IO requests * }
-  AbortIO(PIORequest(AHIios[0]));
-  WaitIO(PIORequest(AHIios[0]));
-
-  if (link<>nil) then begin
-    { * Only if the second request was started * }
-    AbortIO(PIORequest(AHIios[1]));
-    WaitIO(PIORequest(AHIios[1]));
-  end;
-
-  IOErrCode:=IoErr();
-  if (IOErrCode<>0) and (IOErrCode<>ERROR_BREAK) then
-    cleanup('Device I/O error.',20)
-  else
-    cleanup('',0);
-end.

+ 0 - 71
demo/morphos/asltest.pas

@@ -1,71 +0,0 @@
-{
-
-    Using an asl.library requester
-    Free Pascal for MorphOS example
-
-    Copyright (C) 2005 by Karoly Balogh
-    Based on work of Nils Sjoholm
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ * 2005.01.30 * }
-{ * Needs MorphOS RTL 2005.01.30 or later! * }
-
-program ASLtest;
-
-uses exec, intuition, utility, asl;
-
-
-function MessageBox(title, txt, gad: String) : LongInt;
-var
-  tmpReq: TEasyStruct;
-begin
-  title:=title+#0;
-  txt:=txt+#0;
-  gad:=gad+#0;
-  with tmpReq do begin
-    es_StructSize:=SizeOf(tEasyStruct);
-    es_Flags:=0;
-    es_Title:=@title[1];
-    es_TextFormat:=@txt[1];
-    es_GadgetFormat:=@gad[1];
-  end;
-  MessageBox:=EasyRequestArgs(NIL,@tmpReq,NIL,NIL);
-end;
-
-var
-  FileReq  : PFileRequester;
-  aslResult: Boolean;
-begin
-  { * Opening needed libraries * }
-  InitIntuitionLibrary;
-  InitAslLibrary;
-
-  FileReq:=AllocAslRequestTags(ASL_FileRequest,[
-                               ASLFR_InitialPattern,DWord(PChar('#?')),
-                               ASLFR_TitleText,DWord(PChar('ASL Requester Test')),
-                               ASLFR_DoPatterns,DWord(True),
-                               TAG_DONE]);
-
-  if FileReq<>NIL then begin
-    aslResult:=AslRequest(FileReq,NIL);
-    if aslResult then
-      MessageBox('ASL Test Results',
-                 'The path is: '+FileReq^.rf_Dir+#10+
-                 'And the file is: '+FileReq^.rf_File,
-                 'OK')
-    else
-      MessageBox('ASL Test Result',
-                 'You canceled!',
-                 'OK');
-
-   FreeAslRequest(FileReq);
-  end;
-end.

+ 0 - 57
demo/morphos/getvolumes.pas

@@ -1,57 +0,0 @@
-{
-
-    Getting list of DOS volumes and assigns
-    Free Pascal for MorphOS example
-
-    Copyright (C) 2005 by Karoly Balogh
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ * 2005.01.10 * }
-{ * Needs MorphOS RTL 2005.01.10 or later! * }
-
-program getvolumes;
-
-uses doslib;
-
-
-{ * this function converts a BCPL-style string pointer to * }
-{ * normal PChar type. * }
-function BStr2PChar(bstr: DWord): PChar;
-begin
-  BStr2PChar:=Pointer((bstr shl 2)+1);
-end;
-
-
-procedure dosList(flags: DWord);
-var
-  dosList: PDosList;
-begin
-  { * fetch a list of volumes * }
-  dosList:=LockDosList(flags or LDF_READ);
-  { * parse the volumes * }
-  repeat
-    dosList:=NextDosEntry(dosList,flags);
-    if dosList<>NIL then
-      writeln(BStr2PChar(dosList^.dol_Name));
-  until dosList=NIL;
-  UnLockDosList(flags or LDF_READ);
-end;
-
-
-begin
-  { * dos.library is opened by the RTL startup code, * }
-  { * so we don't need to open it by ourselves. * }
-
-  writeln('Current Volumes: ==========');
-  dosList(LDF_VOLUMES);
-  writeln('Current Assigns: ==========');
-  dosList(LDF_ASSIGNS);
-end.

+ 0 - 94
demo/morphos/openlib.pas

@@ -1,94 +0,0 @@
-{
-
-    Two ways of opening and using libraries
-    Free Pascal for MorphOS example
-
-    Copyright (C) 2004 by Karoly Balogh
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ * 2004.12.10 * }
-
-program openlib;
-
-uses exec, intuition, graphics, utility;
-
-{ * You can enable this to manually open needed libraries, * }
-{ * else it will use functions built into the units;       * }
-{ * _DO NOT_ open/close DOS and Utility libraries manually * }
-{ * since that's handled by the default startup/shutdown code. * }
-{ DEFINE USEOPENLIB}
-
-
-const
-  ERRMSG_NOINTUI = 'Unable to open intuition.library V50!';
-  ERRMSG_NOGFX   = 'Unable to open graphics.library V50!';
-
-const
-  MSG_INTUIOK = 'intuition.library V50 opened successfully.';
-  MSG_GFXOK   = 'graphics.library V50 opened successfully.';
-
-
-procedure ShutDown(exitString: String; code: LongInt);
-begin
-
-  { * When using opening functions built into the units, * }
-  { * it's not needed to close libs manually, since unit exit  *}
-  { * code will do it for you. * }
-{$IFDEF USEOPENLIB}
-  if assigned(intuitionBase) then CloseLibrary(PLibrary(intuitionBase));
-  if assigned(gfxBase) then CloseLibrary(gfxBase);
-{$ENDIF}
-
-  if exitString<>'' then writeln(exitString);
-  Halt(code);
-end;
-
-procedure Init;
-begin
-
-  { * Using built-in or custom library opening functions. * }
-  { * It's recommended not to mix up the two ways. * }
-  { * It's not needed to implement both of them in your * }
-  { * programs, it's just an example to show it. * }
-{$IFDEF USEOPENLIB}
-
-  IntuitionBase:=OpenLibrary(INTUITIONNAME,50);
-  if IntuitionBase=NIL then
-    ShutDown(ERRMSG_NOINTUI,20)
-  else
-    writeln(MSG_INTUIOK);
-
-  GfxBase:=OpenLibrary(GRAPHICSNAME,50);
-  if GfxBase=NIL then
-    ShutDown(ERRMSG_NOGFX,20)
-  else
-    writeln(MSG_GFXOK);
-
-{$ELSE}
-
-  if Not InitIntuitionLibrary then
-    ShutDown(ERRMSG_NOINTUI,20)
-  else
-    writeln(MSG_INTUIOK);
-
-  if Not InitGraphicsLibrary then
-    ShutDown(ERRMSG_NOGFX,20)
-  else
-    writeln(MSG_GFXOK);
-
-{$ENDIF}
-end;
-
-
-begin
-  Init;
-  ShutDown('',0);
-end.

+ 0 - 183
demo/morphos/process.pas

@@ -1,183 +0,0 @@
-{
-
-    Spawning and messaging another DOS process
-    Free Pascal for MorphOS example
-    (dirty, but actually does work... sometimes... :)
-
-    Copyright (C) 2004 by Karoly Balogh
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ * Thanks fly to Sigbjorn 'CISC' Skjaeret for hints and * }
-{ * Michal 'kiero' Wozniak for example code.             * }
-{ * 2004.12.10                                           * }
-
-{$MODE FPC}
-program process;
-
-uses exec, utility, doslib;
-
-type
-  pMyMsg = ^tMyMsg;
-  tMyMsg = Record
-    mm_MsgNode : tMessage;
-    mm_Command : DWord;
-  end;
-
-var
-  ThMsg       : tMyMsg;
-  ThStartupMsg: tMyMsg;
-  ThChildPort : pMsgPort;
-  ThPort      : pMsgPort;
-  ThReplyPort : pMsgPort;
-  ThProc      : pProcess;
-
-const
-  SUBPROCESS_NAME : PChar = 'FPC subprocess';
-
-const
-  TCMD_HELLO = 1;
-  TCMD_WORLD = 2;
-  TCMD_SPACE = 3;
-  TCMD_EXCL  = 4;
-  TCMD_NEWL  = 5;
-  TCMD_QUIT  = $FF;
-
-
-procedure ShutDown(Err: String);
-begin
- if assigned(ThReplyPort) then DeleteMsgPort(ThReplyPort);
- if assigned(ThPort) then DeleteMsgPort(ThPort);
-
- if Err<>'' then begin
-   writeln(Err);
-   halt(1);
- end else
-   halt(0);
-end;
-
-{ * This is our subtask procedure * }
-{ * Our subtask do exists until this procedure exits. * }
-procedure MyProcess;
-var
-  thisThread: pProcess;
-  startupMsg: pMyMsg;
-  mainMsg   : pMyMsg;
-  mainPort  : pMsgPort;
-  finish    : Boolean;
-begin
- { * Getting startupmsg * }
- NewGetTaskAttrs(NIL,@startupMsg,sizeof(startupMsg^),
-                 TASKINFOTYPE_STARTUPMSG,[TAG_DONE]);
- startupMsg^.mm_Command:=0;
-
- { * Getting taskport * }
- NewGetTaskAttrs(NIL,@mainPort,sizeof(mainPort^),
-                 TASKINFOTYPE_TASKMSGPORT,[TAG_DONE]);
-
- finish:=False;
- repeat
-   mainMsg:=pMyMsg(GetMsg(mainPort));
-   if mainMsg<>NIL then begin
-     { * Using write in such an example is not really elegant * }
-     { * since write is not reentrant yet, so if more tasks   * }
-     { * use it in the same time, it will make troubles.      * }
-     { * but it does what we want now.                        * }
-     Case mainMsg^.mm_Command Of
-       TCMD_HELLO: write('Hello');
-       TCMD_WORLD: write('World');
-       TCMD_SPACE: write(' ');
-       TCMD_EXCL : write('!');
-       TCMD_NEWL : writeln;
-       TCMD_QUIT : finish:=True;
-     end;
-     Inc(startupMsg^.mm_Command);
-     ReplyMsg(pMessage(mainMsg));
-   end;
-   { * Polling for messages... * }
-   { * It's possible to use WaitPort() of course, but * }
-   { * you probably want to do some stuff in the background * }
-   { * so it's more useful to poll then. Replace Delay() * }
-   { * with your code, or more, add your code after it. * }
-   Delay(1);
- until finish;
-
-
- { * We MUST NOT reply StartupMsg!          * }
- { * It will be replied by exec internally. * }
-end;
-
-{ * This is a helper proc, makes sending * }
-{ * of command messages more easy.       * }
-procedure SendMsg(msgID : DWord);
-begin
-  with ThMsg do begin
-    with mm_MsgNode do begin
-      mn_Node.ln_Type:=NT_MESSAGE;
-      mn_Length:=SizeOf(tMyMsg);
-      mn_ReplyPort:=ThPort;
-    end;
-    mm_Command:=msgID;
-  end;
-  PutMsg(ThChildPort,pMessage(@ThMsg));
-end;
-
-
-begin
- ThReplyPort:=CreateMsgPort;
- ThPort:=CreateMsgPort;
- if (ThReplyPort=NIL) or (ThPort=NIL) then
-   ShutDown('Can''t create message ports.');
-
- { * Setting up StartupMsg * }
- with ThStartupMsg do begin
-   with mm_MsgNode do begin
-     mn_Node.ln_Type:=NT_MESSAGE;
-     mn_Length:=SizeOf(tMyMsg);
-     mn_ReplyPort:=ThReplyPort;
-   end;
- end;
-
- ThProc:=CreateNewProcTags([NP_CodeType    , CODETYPE_PPC,
-                            NP_Entry       , DWord(@MyProcess),
-                            NP_Name        , DWord(SUBPROCESS_NAME),
-                            NP_StartupMsg  , DWord(@ThStartupMsg),
-                            NP_TaskMsgPort , DWord(@ThChildPort),
-                            { * such stacksize is overkill for our current * }
-                            { * subtask, but more complex things may actually * }
-                            { * require even more... * }
-                            NP_PPCStackSize, 32768,
-                            TAG_DONE]);
- if ThProc=NIL then ShutDown('Can''t create subprocess!');
-
- SendMsg(TCMD_HELLO);
- WaitPort(ThPort); GetMsg(ThPort);
-
- SendMsg(TCMD_SPACE);
- WaitPort(ThPort); GetMsg(ThPort);
-
- SendMsg(TCMD_WORLD);
- WaitPort(ThPort); GetMsg(ThPort);
-
- SendMsg(TCMD_EXCL);
- WaitPort(ThPort); GetMsg(ThPort);
-
- SendMsg(TCMD_NEWL);
- WaitPort(ThPort); GetMsg(ThPort);
-
- SendMsg(TCMD_QUIT);
- WaitPort(ThPort); GetMsg(ThPort);
-
- { * Wait our subprocess to exit... * }
- WaitPort(ThReplyPort); GetMsg(ThReplyPort);
- writeln('Subtask got ',ThStartupMsg.mm_Command,' message(s).');
-
- ShutDown('');
-end.

+ 0 - 145
demo/morphos/window.pas

@@ -1,145 +0,0 @@
-{
-
-    Opening a window with optional custom screen, and
-    basic event-driven drawing into the window
-    Free Pascal for MorphOS example
-
-    Copyright (C) 2004 by Karoly Balogh
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ * 2004.12.10 * }
-
-program window;
-
-uses exec, intuition, graphics, utility;
-
-{ * Enable this to run on custom screen. If it's not * }
-{ * enabled, window will open on default pubscreen   * }
-{ DEFINE CUSTOMSCREEN}
-
-
-var
-{$IFDEF CUSTOMSCREEN}
-  myScreen  : PScreen;
-{$ENDIF}
-  myWindow  : PWindow;
-  IMesg     : PIntuiMessage;
-  Quit      : Boolean;
-  LeftButton: Boolean;
-
-  msg_Class : Cardinal;
-  msg_Code  : Word;
-
-  X_Pos     : Integer;
-  Y_Pos     : Integer;
-
-const
-  ERRMSG_NOINTUI = 'Unable to open intuition.library V50!';
-  ERRMSG_NOGFX   = 'Unable to open graphics.library V50!';
-  ERRMSG_NOSCREEN= 'Can''t open screen!';
-  ERRMSG_NOWINDOW= 'Can''t open window!';
-
-
-procedure ShutDown(exitString: String; code: LongInt);
-begin
-  if assigned(myWindow) then CloseWindow(myWindow);
-{$IFDEF CUSTOMSCREEN}
-  if assigned(myScreen) then CloseScreen(myScreen);
-{$ENDIF}
-
-  { * We're using library functions built into units, so it's   * }
-  { * not needed to close libs here. If you're using additional * }
-  { * libs, add code to close them here.                        * }
-
-  if exitString<>'' then writeln(exitString);
-  Halt(code);
-end;
-
-procedure Init;
-begin
-
-  { * Opening the needed libs with builtin functions. * }
-  if Not InitIntuitionLibrary then ShutDown(ERRMSG_NOINTUI,20);
-  if Not InitGraphicsLibrary then ShutDown(ERRMSG_NOGFX,20);
-
-{$IFDEF CUSTOMSCREEN}
-  myScreen:=NIL;
-  { * Opening our custom screen * }
-  myScreen:=OpenScreenTags(NIL,[SA_Width,640,SA_Height,480,
-                                SA_Depth,24,
-                                SA_Title,DWord(PChar('Free Pascal Rules!')),
-                                TAG_DONE]);
-  if myScreen=NIL then ShutDown(ERRMSG_NOSCREEN,20);
-{$ENDIF}
-
-  myWindow:=NIL;
-  { * We open our window here. * }
-  myWindow:=OpenWindowTags(NIL,[WA_Left,0,WA_Top,0,
-                                WA_Width,400,WA_Height,300,
-                                WA_Title,DWord(PChar('Free Pascal Test')),
-                                WA_IDCMP,(IDCMP_CLOSEWINDOW or IDCMP_MOUSEBUTTONS or
-                                          IDCMP_MOUSEMOVE),
-                                WA_Flags,(WFLG_SIMPLE_REFRESH or WFLG_NOCAREREFRESH or
-                                          WFLG_ACTIVATE or WFLG_REPORTMOUSE or
-                                          WFLG_CLOSEGADGET or WFLG_SIZEGADGET or
-                                          WFLG_SIZEBBOTTOM or WFLG_GIMMEZEROZERO or
-                                          WFLG_DRAGBAR),
-{$IFDEF CUSTOMSCREEN}
-                                WA_CustomScreen,DWord(myScreen),
-{$ENDIF}
-                                TAG_END]);
-  if myWindow=NIL then ShutDown(ERRMSG_NOWINDOW,20);
-
-  SetAPen(myWindow^.RPort,1);
-end;
-
-
-begin
-  Init;
-  Quit:=False;
-  LeftButton:=False;
-
-  repeat
-    WaitPort(myWindow^.UserPort);
-    IMesg:=PIntuiMessage(GetMsg(myWindow^.UserPort));
-    if IMesg<>NIL then Begin
-
-      { * It's recommended to copy contents of incoming * }
-      { * message, and reply it as soon as possible.    * }
-      msg_Class:=IMesg^.IClass;
-      msg_Code :=IMesg^.Code;
-      X_Pos    :=IMesg^.MouseX - myWindow^.BorderLeft;
-      Y_Pos    :=IMesg^.MouseY - myWindow^.BorderTop;
-
-      ReplyMsg(Pointer(IMesg));
-
-      { * Handle different kind of messages here. * }
-      case msg_Class of
-        IDCMP_CLOSEWINDOW:
-          quit:=True;
-        IDCMP_MOUSEBUTTONS:
-          case msg_Code of
-            SELECTDOWN:
-              LeftButton:=True;
-            SELECTUP:
-              LeftButton:=False;
-          end;
-        IDCMP_MOUSEMOVE:
-          begin
-            { * Draw when left button is pressed, and mouse is moved. * }
-            if LeftButton then WritePixel(myWindow^.RPort,X_Pos,Y_Pos);
-          end;
-      end;
-    end;
-  until Quit;
-
-  ShutDown('',0);
-end.

+ 0 - 1549
demo/netware/Makefile

@@ -1,1549 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=nutmon check nuttest
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-nutmon.nlm: nutmon.pp nutconnection.pp
-nuttest.nlm: nuttest.pp ../netwlibc/nuttest.pp

+ 0 - 14
demo/netware/Makefile.fpc

@@ -1,14 +0,0 @@
-#
-#   Makefile.fpc for FPC Netware clib demos (part of FPC demo package)
-#
-
-[target]
-programs_netware=nutmon check nuttest
-
-[default]
-fpcdir=../..
-
-[rules]
-nutmon.nlm: nutmon.pp nutconnection.pp
-
-nuttest.nlm: nuttest.pp ../netwlibc/nuttest.pp

+ 0 - 44
demo/netware/check.pp

@@ -1,44 +0,0 @@
-{
-    This file is part of Free Pascal for Netware.
-    Copyright (c) 1999-2002 by the Free Pascal development team.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-    Demonstrates the use of the check-function provided by the RTL
- **********************************************************************}
-
-{$MODE OBJFPC}
-{$Description Demo CheckFunction for FreePascal Netware-RTL}
-{$Version 1.0.0}
-{$Copyright (c) 2002 the FreePascal development team}
-
-
-{ using crt automaticly calls _SetAutoScreenDestructionMode (TRUE);
-  so no "Press any key to close screeen" will be shown by netware }
-uses crt;
-
-var first : boolean = true;
-
-procedure checkfunction (var res : longint);
-begin
-  if first then
-  begin
-    ConsolePrintf (#13'It is unsafe to unload the nlm'#13#10);
-    res := 1;
-  end;
-  first := false;
-end;
-
-begin
-  WriteLn ('Press any key to unload nlm or unload via unload command');
-  WriteLn ('The first unload should show a message that it is unsafe');
-  WriteLn ('to unload the NLM, the second attempt should unload the');
-  WriteLn ('NLM without a message.');
-  System.NetwareCheckFunction := @checkfunction;
-  ReadKey;
-end.

+ 0 - 398
demo/netware/nutconnection.pp

@@ -1,398 +0,0 @@
-unit nutconnection;
-{
-    This file is part of nutmon for netware
-    Copyright (c) 2004 armin diehl ([email protected])
-
-    Simple class to connect to the nut upsd, see
-    http://www.networkupstools.org for details about the
-    protocol
-
-    Tested with nut 2.0.1pre4
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-{$mode objfpc}
-
-interface
-
-uses sysutils, ssockets;
-
-Const
-  NutDefaultPort = 3493;
-  NutLineEnd    = #10;
-  NutDataStale = 'ERR DATA-STALE';
-
-type
-  TNutException = class (Exception);
-  TUpsStat   = (UPS_disconnected,UPS_stale,UPS_online,UPS_onBatt,UPS_lowBatt,UPS_FSD);
-  TUpsStatus = set of TUpsStat;
-  TNutConnection = class (TObject)
-    private
-     fSock : TInetSocket;
-     fHost : string;
-     fPort : word;
-     fUpsName,fUserName,fPassword : string;
-     fLogin : boolean;
-     fDebug : boolean;
-     fLastResponse : string;
-
-      function isConnected : boolean;
-      procedure doConnect (c : boolean);
-      procedure setHost (s : string);
-      procedure setPort (w : word);
-      procedure sendCommand (s : string);
-      function getOneLine : string;
-      function getVersion : string;
-      procedure setUpsName (s : string);
-      procedure checkConnected;
-      function getValue (name : string) : string;
-      function getUpsLoad : string;
-      function getUpsMfr : string;
-      function getUpsModel : string;
-      function getUpsRuntime : string;
-      function getUpsCharge : string;
-      function getUpsChargeInt : integer;
-      function getUpsTemperature : string;
-      function getInputFrequency : string;
-      function getInputVoltage : string;
-      function getOutputVoltage : string;
-      function getUpsStatus : TUpsStatus;
-      procedure setUserName (user : string);
-      procedure setPassword (pwd : string);
-      procedure doLogin (login : boolean);
-      function getNumLogins : string;
-    public
-      property connected : boolean read isConnected write doConnect;
-      property host : string read fHost write setHost;
-      property port : word read fPort write setPort;
-      property version : string read getVersion;
-      property upsName : string read fUpsName write setUpsName;
-      property upsload : string read getUpsLoad;
-      property upsMfr : string read getUpsMfr;
-      property upsModel : string read getUpsModel;
-      property upsRuntime : string read getUpsRuntime;
-      property upsCharge : string read getUpsCharge;
-      property upsChargeInt : integer read getUpsChargeInt;
-      property upsTemperature : string read getUpsTemperature;
-      property upsInputFrequency : string read getInputFrequency;
-      property upsInputVoltage : string read getInputVoltage;
-      property upsOutputVoltage : string read getOutputVoltage;
-      property upsStatus : TUpsStatus read getUpsStatus;
-      property Username : string read fUsername write setUsername;
-      property Password : string read fPassword write setPassword;
-      // in case login is set to true (and username,password are ok)
-      // upsd knows that this system gets power from the ups and
-      // will switch off only after login was set to false
-      property Login : boolean read fLogin write doLogin;
-      property Debug : boolean read fDebug write fDebug;
-      property LastResult : string read fLastResponse;
-      property numLogins : string read getNumLogins;
-  end;
-
-function UpsStatus2Txt (status : TUpsStatus) : string;
-
-implementation
-
-function TNutConnection.isConnected : boolean;
-begin
-  result := (fSock <> nil);
-end;
-
-procedure TNutConnection.doConnect (c : boolean);
-begin
-  if fSock <> nil then
-  begin
-    fSock.Free;
-    fSock := nil;
-    fLogin := false;
-  end;
-  if c then
-    fSock := TInetSocket.Create (fHost, fPort);
-end;
-
-
-procedure TNutConnection.setHost (s : string);
-begin
-  if fHost <> s then
-  begin
-    fHost := s;
-    doConnect (isConnected);
-  end;
-end;
-
-procedure TNutConnection.setPort (w : word);
-begin
-  if w <> fPort then
-  begin
-    fPort := w;
-    doConnect (isConnected);
-  end;
-end;
-
-procedure TNutConnection.checkConnected;
-begin
-  if not isConnected then
-    raise (TNutException.Create ('not connected'));
-end;
-
-procedure TNutConnection.sendCommand (s : string);
-var len : longint;
-begin
-  checkConnected;
-  if fDebug then
-    writeln (stderr,'S: "'+s+'"');
-  s := s + NutLineEnd;
-  len := fSock.Write (s[1],length(s));
-  if (len <> length(s)) then
-  begin
-    if fDebug then
-      writeln (stderr,'send error');
-    doConnect (false);
-    raise (TNutException.Create ('send failed, disconnected from upsd'));
-  end;
-end;
-
-function TNutConnection.getOneLine : string;
-var c : char;
-begin
-  checkConnected;
-  fLastResponse := '';
-  result := '';
-  while (fSock.read (c,1) = 1) do
-  begin
-    if c = NutLineEnd then
-    begin
-      if fDebug then
-        writeln (stderr,'R: "'+result+'"');
-      fLastResponse := result;
-      exit;
-    end;
-    result := result + c;
-  end;
-end;
-
-function TNutConnection.getVersion : string;
-begin
-  sendCommand ('VER');
-  result := getOneLine;
-end;
-
-
-procedure TNutConnection.setUpsName (s : string);
-var res : string;
-begin
-  fUpsName := '';
-  sendCommand ('GET NUMLOGINS '+s);
-  res := getOneLine;
-  if copy (res,1,10) <> 'NUMLOGINS ' then
-    Raise (TNutException.Create ('setUpsName, unknown response from upsd'));
-  fUpsName := s;
-end;
-
-function TNutConnection.getValue (name : string) : string;
-var s : string;
-begin
-  if fUpsName = '' then
-    raise (TNutException.Create ('upsName not set'));
-  sendCommand ('GET VAR '+fUpsName+' '+name);
-  s := getOneLine;
-  if s = 'ERR DATA-STALE' then
-  begin
-    result := s;
-    exit;
-  end;
-  if copy (s,1,4) <> 'VAR ' then
-    raise (TNutException.Create ('result from GET VAR invalid, does not begin with "VAR "'));
-  delete (s,1,4);
-  if ansiUpperCase (copy (s,1,length(fUpsName))) <> ansiUpperCase (fUpsName) then
-    raise (TNutException.Create ('result from GET VAR invalid, second param was not upsName'));
-  delete (s,1,length(fUpsName)+1);
-  delete (s,1,length(name)+1);
-  if copy (s,1,1) = '"' then delete (s,1,1);
-  if copy (s,length(s),1) = '"' then delete (s,length(s),1);
-  result := s;
-end;
-
-function TNutConnection.getUpsLoad : string;
-begin
-  result := getValue ('ups.load');
-end;
-
-function TNutConnection.getUpsMfr : string;
-begin
-  result := getValue ('ups.mfr');
-end;
-
-function TNutConnection.getUpsModel : string;
-begin
-  result := getValue ('ups.model');
-end;
-
-function TNutConnection.getUpsRuntime : string;
-begin
-  result := getValue ('battery.runtime');
-end;
-
-function TNutConnection.getUpsCharge : string;
-begin
-  result := getValue ('battery.charge');
-end;
-
-
-function TNutConnection.getUpsChargeInt : integer;
-var s : string;
-    p : integer;
-begin
-  try
-    s := getUpsCharge;
-    p := Pos ('.',s);
-    if p > 0 then
-      delete (s,p,255);
-    result := StrToInt (s);
-  except
-    result := 100;
-  end;
-end;
-
-function TNutConnection.getUpsTemperature : string;
-begin
-  result := getValue ('ups.temperature');
-end;
-
-function TNutConnection.getInputFrequency : string;
-begin
-  result := getValue ('input.frequency');
-end;
-
-function TNutConnection.getInputVoltage : string;
-begin
-  result := getValue ('input.voltage');
-end;
-
-function TNutConnection.getOutputVoltage : string;
-begin
-  result := getValue ('output.voltage');
-end;
-
-function TNutConnection.getNumLogins : string;
-var res : string;
-    p : integer;
-begin
-  if fUpsName = '' then
-    Raise (TNutException.Create ('getNumLogins, upsName not set'));
-  sendCommand ('GET NUMLOGINS '+fUpsName);
-  res := getOneLine;
-  if copy (res,1,10) <> 'NUMLOGINS ' then
-    Raise (TNutException.Create ('setUpsName, unknown response from upsd'));
-  delete (res,1,10);
-  p := pos (' ',res);
-  if p > 0 then
-    delete (res,1,p);
-  result :=res;
-end;
-
-function TNutConnection.getUpsStatus : TUpsStatus;
-var s,value : string;
-    i : integer;
-begin
-  try
-    s := getValue ('ups.status');
-    result := [];
-    if s = NutDataStale then
-      result := [UPS_stale]
-    else
-    repeat
-      i := pos (' ',s);
-      if (i > 0) then
-      begin
-        value := trim(ansiuppercase(copy(s,1,i-1)));
-        delete (s,1,i); s:=trim(s);
-      end else
-      begin
-        value := trim(ansiuppercase(s));
-        s := '';
-      end;
-      if value = 'OL' then
-        result := result + [UPS_online]
-      else if value = 'OB' then
-        result := result + [UPS_onBatt]
-      else if value = 'LB' then
-        result := result + [UPS_LowBatt]
-      else if value = 'FSD' then
-        result := result + [UPS_FSD];
-    until s = '';
-  except
-    result := [UPS_disconnected];
-  end;
-end;
-
-
-procedure TNutConnection.setUserName (user : string);
-var res : string;
-begin
-  fUserName := user;
-  if fUserName <> '' then
-  begin
-    sendCommand ('USERNAME '+user);
-    res := getOneLine;
-    if res <> 'OK' then
-      raise (TNutException.Create (format ('username failed (%s)',[res])));
-  end;
-end;
-
-procedure TNutConnection.setPassword (pwd : string);
-var res : string;
-begin
-  fPassword := pwd;
-  if pwd <> '' then
-  begin
-    sendCommand ('PASSWORD '+pwd);
-    res := getOneLine;
-    if res <> 'OK' then
-      raise (TNutException.Create (format ('password failed (%s)',[res])));
-  end;
-end;
-
-procedure TNutConnection.doLogin (login : boolean);
-var res : string;
-begin
-  if login then
-  begin
-    if fLogin then
-      raise (TNutException.Create ('already logged in'));
-    if (fUsername = '') or (fPassword = '') or (fUpsName = '') then
-      raise (TNutException.Create ('Login requires UpsName, Username and Password'));
-    sendCommand ('LOGIN '+fUpsName);
-    res := getOneLine;
-    if res <> 'OK' then
-      raise (TNutException.Create (format ('login failed (%s)',[res])));
-    fLogin := true;
-  end else
-  if fLogin then
-  begin
-    sendCommand ('LOGOUT');
-    res := getOneLine;
-    if (copy(res,1,2) <> 'OK') and (copy(res,1,6)<> 'Goodby') then
-      raise (TNutException.Create (format('logout failed, got "%s"',[res])));
-    fLogin := false;
-    doConnect(false);
-  end;
-end;
-
-function UpsStatus2Txt (status : TUpsStatus) : string;
-begin
-  result := '';
-  if UPS_disconnected in status then result := result + 'disconnected ';
-  if UPS_stale        in status then result := result + 'stale ';
-  if UPS_online       in status then result := result + 'online ';
-  if UPS_onBatt       in status then result := result + 'onBattery ';
-  if UPS_lowBatt      in status then result := result + 'LowBattery ';
-  if UPS_FSD          in status then result := result + 'ForeceShutdown ';
-  result := trim(result);
-end;
-
-
-end.

+ 0 - 482
demo/netware/nutmon.pp

@@ -1,482 +0,0 @@
-Program nutmon;
-{
-
-    Simple nut ups monitor for netware, see http://www.networkupstools.org
-
-    This program can be used to shut down a netware server on power
-    failure. It requires nut to be installed on a *nix server (the serial
-    or usb ups control is not connected to the netware server, this will
-    be handled by the upsd on a *nix server)
-
-    FreePascal >= 1.9.5 (http://www.freepascal.org) is needed to compile this.
-
-    This source is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This code is distributed in the hope that it will be useful, but
-    WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    General Public License for more details.
-
-    A copy of the GNU General Public License is available on the World
-    Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also
-    obtain it by writing to the Free Software Foundation,
-    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-    First Version 2004/12/16 Armin Diehl <[email protected]>
-
- **********************************************************************}
-{$mode objfpc}
-{$M 65535,0,0}
-{$if defined(netware)}
-{$if defined(netware_clib)}
-{$description nut ups monitor - clib}
-{$else}
-{$description nut ups monitor - libc}
-{$endif}
-{$copyright Copyright 2004 Armin Diehl <[email protected]>}
-{$screenname DEFAULT}  // dont use none because writeln will not work with none
-{$version 1.0.0}
-{$endif netware}
-
-uses
-  sysutils, nutconnection, inifiles
-  {$if defined(netware_libc)}
-  ,libc
-  {$elseif defined(netware_clib)}
-  ,nwserv,nwnit
-  {$endif}
-  ;
-
-
-const
-  CMD_NONE = 0;
-  CMD_STATUS = 1;
-  CMD_TESTSHUTDOWN = 2;
-
-var
-  nut : TNutConnection;
-  nutUser : string;
-  nutPassword : string;
-  nutPollfreq : integer;
-  nutPollfreqAlert : integer;
-  nutReconnectFreq : integer;
-  nutUpsName : string;
-  terminated : boolean = false;
-  upsStatus,lastupsStatus : TUpsStatus;
-  waitSemaphore: longint;
-  commandAfterDown,powerOffFileName : ansistring;
-  downIfCapaityBelow:integer = 0;
-{$if defined(netware)}
-  CmdParserStruct : TcommandParserStructure;
-  CurrentCommand : byte;
-  oldNetwareUnloadProc : pointer;
-  MainLoopTerminated : boolean = false;
-{$endif}
-
-const mainSection = 'nutmon';
-
-procedure readConfig;
-var fn : string;
-    t  : tiniFile;
-begin
-  fn := ChangeFileExt(paramstr(0),'.ini');
-  t := TIniFile.Create (fn);
-  try
-    nut.host := t.readString (mainSection,'host','');
-    if nut.host = '' then
-    begin
-      writeln (stderr,paramstr(0)+': host= not specified in '+fn+' exiting');
-      halt;
-    end;
-    nut.port := word (t.readInteger (mainSection,'port',NutDefaultPort));
-    nutUser := t.readString (mainSection,'user','');
-    if nutUser = '' then
-    begin
-      writeln (stderr,paramstr(0)+': user= not specified in '+fn+' exiting');
-      halt;
-    end;
-    nutPassword := t.readString (mainSection,'password','');
-    if nutPassword = '' then
-    begin
-      writeln (stderr,paramstr(0)+': password= not specified in '+fn+' exiting');
-      halt;
-    end;
-    nutUpsName := t.readString (mainSection,'upsname','');
-    if nutUpsname = '' then
-    begin
-      writeln (stderr,paramstr(0)+': upsname= not specified in '+fn+' exiting');
-      halt;
-    end;
-    nutPollfreq := t.readInteger (mainSection,'pollfreq',10);
-    nutPollfreqAlert := t.readInteger (mainSection,'pollfrqalert',5);
-    nut.Debug := (t.readInteger (mainSection,'debug',0) > 0);
-    commandAfterDown := t.readString (mainSection,'commandAfterDown','');
-    nutReconnectFreq := t.readInteger (mainSection,'reconnectFreq',30);
-    powerOffFileName := t.readString (mainSection,'createPoweroffFile','');
-    downIfCapaityBelow := t.readInteger (mainSection,'downIfCapacityBelow',0);
-  finally
-    t.free;
-  end;
-end;
-
-{$if defined(netware)}
-procedure onNetwareUnload;
-var i : integer;
-begin
-  terminated := true;
-  SignalLocalSemaphore (waitSemaphore);  // this ends doDelay
-  // here we wait for the main thread to terminate
-  // we have to wait because system.pp will deinit winsock
-  // to allow unload in case a blocking winsock call is
-  // active. In case we wont wait here, our tcp socket
-  // will be destroyed before we have the chance to send
-  // a logout command to upsd
-  i := 500;
-  System.NetwareUnloadProc := oldNetwareUnloadProc;
-  while (i > 0) and (not MainLoopTerminated) do
-  begin
-    dec(i);
-    delay(500);
-  end;
-end;
-{$endif}
-
-
-procedure doDelay (seconds : integer);
-{$if defined(netware)}
-begin
-  TimedWaitOnLocalSemaphore (waitSemaphore,seconds*1000);
-end;
-{$else}
-var i : integer;
-begin
-  i := seconds * 2;
-  while (not terminated) and (i > 0) do
-  begin
-    sysutils.sleep(500);
-    dec(i);
-  end;
-end;
-{$endif}
-
-var lastAlert : TUpsStatus = [UPS_Online];
-
-procedure doAlert (status : TUpsStatus);
-{$if defined(netware)}
-var nwAlert : TNetWareAlertStructure;
-    s : AnsiString;
-begin
-  FillChar(nwAlert, sizeof(nwAlert),0);
-  nwAlert.nwAlertID := ALERT_UPS;
-  nwAlert.nwTargetNotificationBits :=  NOTIFY_ERROR_LOG_BIT+NOTIFY_CONSOLE_BIT;
-  nwAlert.nwAlertLocus := LOCUS_UPS;
-  nwAlert.nwAlertClass := CLASS_GENERAL_INFORMATION;
-  nwAlert.nwAlertSeverity := SEVERITY_CRITICAL;
-  if UPS_lowBatt in Status then
-    s := 'UPS low Battery, shutting down' else
-  if UPS_FSD in Status then
-    s := 'UPS Forced Shuttdown' else
-  if UPS_online in Status then
-    s := 'Power/communication Restored, UPS is online' else
-  if UPS_onBatt in Status then
-    s := 'Power Failure, UPS is on battery' else
-  if UPS_Stale in Status then
-    s := 'Lost communication to UPS' else
-  if UPS_Disconnected in Status then
-    s := 'Lost communication to upsd';
-  if lastAlert <> status then
-    if (UPS_onBatt in Status) or
-       (UPS_lowBatt in Status) or
-       (UPS_FSD in Status) or
-       (UPS_Online in Status) then
-         nwAlert.nwTargetNotificationBits := nwAlert.nwTargetNotificationBits + NOTIFY_EVERYONE_BIT;
-  lastAlert := status;
-
-  nwAlert.nwControlString := pchar(s);
-
-  NetWareAlert(GetNlmHandle, @nwAlert, 0, []);
-end;
-{$else}
-begin
-end;
-{$endif}
-
-
-procedure doStatusChange (newStatus,oldStatus : TUpsStatus);
-begin
-  writeln (#13'nutmon: ups status change from '+UpsStatus2Txt (oldStatus)+' to '+UpsStatus2Txt (newStatus));
-  doAlert (newStatus);
-end;
-
-
-procedure doShutdown (Reason : AnsiString = 'Server shutting down because of power failure');
-var err:integer;
-begin
-  if poweroffFileName <> '' then
-  begin
-    err := FileCreate (powerOffFileName);
-    if err <> -1 then
-      FileClose (err)
-    else
-      writeln (#13,'nutmon: warning, can not create power off flag file ('+powerOffFileName+')');
-  end;
-  {$if defined(netware_clib)}
-  SendConsoleBroadcast(pchar(Reason),0,nil);
-  err := DownFileServer (1);
-  try
-    nut.login := false;   // notify upds that we are shutting down
-    writeln (#13'numon: informed upsd that we have done shutdown');
-  except
-    on e:Exception do
-    begin
-      writeln (#13'nutmon: got exception while trying to logout (',e.Message,')');
-      try
-        nut.connected := false;
-      except
-      end;
-    end;
-  end;
-  if err = 0 then
-    writeln (#13'nutmon: Server is down')
-  else
-    writeln (#13'nutmon: DownFileServer returned error ',Err);
-  if commandAfterDown <> '' then
-    nwserv._system (pchar(commandAfterDown));
-  repeat
-    sysutils.sleep(30);
-  until false;
-  {$elseif defined(netware_libc)}
-  ShutdownServer(nil,false,nil,0);
-  repeat
-    sysutils.sleep(30);
-  until false;
-  {$else}
-  writeln (stderr,'no shutdown call available, terminating');
-  halt;
-  {$endif}
-
-end;
-
-procedure mainLoop;
-var s : string;
-begin
-  while not terminated do
-  begin
-    if not nut.connected then
-    begin
-      try
-        nut.connected := true;
-        try
-          nut.upsName := nutUpsName;
-        except
-          if nut.LastResult <> NutDataStale then
-          begin
-            writeln(stderr,#13'invalid ups name, terminating');
-            nut.free;
-            halt;
-          end else
-          begin   // special case: on start UPS is in stale status, disconnect and try later
-            upsStatus := [UPS_Stale];
-            if (upsStatus <> lastUpsStatus) then doStatusChange (upsStatus, lastUpsStatus);
-            lastUpsStatus := upsStatus;
-            nut.connected := false;
-          end;
-        end;
-
-        try
-          nut.UpsStatus;
-        except
-          on e:exception do
-          begin
-            writeln(stderr,#13'unable get ups status ('+e.Message+'), terminating');
-            nut.free;
-            halt;
-          end;
-        end;
-
-        try
-          nut.Username := nutUser;
-          nut.Password := nutPassword;
-          nut.Login := true;
-        except
-          on e:exception do
-          begin
-            writeln(stderr,#13'unable to login ('+e.Message+'), terminating');
-            nut.free;
-            halt;
-          end;
-        end;
-        lastUpsStatus := [UPS_disconnected];
-        WriteLn(#13'nutmon: connected to '+nutUpsName+'@'+nut.Host);
-      except
-        on e:exception do
-        begin
-          writeln (stderr,#13'nutmon: connect error, will retry in ',nutReconnectFreq,' seconds ('+e.message+')');
-          doDelay (nutReconnectFreq);
-        end;
-      end;
-    end else
-    begin  // we are connected, poll status
-      try
-        upsStatus := nut.upsStatus;
-        if (upsStatus <> lastUpsStatus) then doStatusChange (upsStatus, lastUpsStatus);
-        lastUpsStatus := upsStatus;
-        if (UPS_lowBatt in upsStatus) or
-           (UPS_FSD in upsStatus) then doShutdown;
-        if downIfCapaityBelow > 0 then
-          if (UPS_onBatt in upsStatus) then
-            if nut.UpsChargeInt < downIfCapaityBelow then
-              //writeln ('battery below ',downIfCapaityBelow);
-              doShutdown ('Server shutting down,power failure and battery < '+IntToStr(downIfCapaityBelow)+'%');
-        if UPS_online in upsStatus then
-          doDelay (nutPollfreq)
-        else
-          doDelay (nutPollfreqAlert);
-      except
-      end;
-    end;
-    {$if defined(netware)}
-    if CurrentCommand <> CMD_NONE then
-    begin
-      case CurrentCommand of
-        CMD_STATUS: begin
-                      if nut.connected then
-                      begin
-                        writeln (#13'UPS Status:');
-                        writeln ('   connected to: ',nut.UpsName+'@',nut.host,':',nut.Port);
-                        writeln ('         UPS is: ',UpsStatus2Txt(nut.UpsStatus));
-                        try
-                          s := nut.upsMfr;
-                          writeln ('   manufacturer: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.upsModel;
-                          writeln ('          model: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.UpsLoad;
-                          writeln ('   Percent load: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.upsTemperature;
-                          writeln ('           temp: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.upsInputVoltage;
-                          writeln ('  input Voltage: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.upsOutputVoltage;
-                          writeln (' output Voltage: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.upsInputFrequency;
-                          writeln ('input Frequency: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.upsRuntime;
-                          writeln ('Battery Runtime: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.upsCharge;
-                          writeln (' Battery Charge: ',s);
-                        except
-                        end;
-                        try
-                          s := nut.numLogins;
-                          writeln ('     num Logins: ',s);
-                        except
-                        end;
-                        Writeln (nut.Version);
-                      end else
-                        writeln (#13'UPS Status: not connected to upsd');
-                    end;
-        CMD_TESTSHUTDOWN:
-                    begin
-                      upsStatus := [UPS_FSD];
-                      doStatusChange (upsStatus, lastUpsStatus);
-                      doShutdown;
-                    end;
-      end;
-      CurrentCommand := CMD_NONE;
-    end;
-    {$endif}
-  end;
-end;
-
-
-
-{$if defined(netware)}
-// handle the command "UPS STATUS"
-// only set the requested command and let the main thread handle it
-function UpsCommandlineParser (ScreenId : scr_t; commandLine : pchar) : longint; cdecl;
-begin
-  if strlicomp(commandLine,'ups status',10) = 0 then
-  begin
-    result := HANDLEDCOMMAND;
-    CurrentCommand := CMD_STATUS;
-    SignalLocalSemaphore (waitSemaphore);
-  end else
-  if strlicomp(commandLine,'ups testshutdown',16) = 0 then
-  begin
-    result := HANDLEDCOMMAND;
-    CurrentCommand := CMD_TESTSHUTDOWN;
-    SignalLocalSemaphore (waitSemaphore);
-  end else
-    result := NOTMYCOMMAND;
-end;
-{$endif}
-
-
-
-begin
-  try
-    {$if defined(netware)}
-    waitSemaphore := OpenLocalSemaphore (0);
-    CmdParserStruct.Link := nil;
-    CmdParserStruct.parseRoutine := @UpsCommandLineParser;
-    CmdParserStruct.RTag         := AllocateResourceTag (GetNlmHandle,'nutmon command line parser',ConsoleCommandSignature);
-
-    if RegisterConsoleCommand(CmdParserStruct) <> 0 then
-      writeln (stderr,#13'nutmon: RegisterConsoleCommand failed (ups status console command will not work)')
-    else begin
-      writeln (#13'nutmon console commands available:');
-      writeln (#13'ups status         - show ups status');
-      writeln (#13'ups testshutdown   - shutdown as if a low power condition is reached');
-      writeln;
-    end;
-    CurrentCommand := CMD_NONE;
-    oldNetwareUnloadProc := System.NetwareUnloadProc;
-    System.NetwareUnloadProc := @onNetwareUnload;
-    {$endif}
-    nut := TNutConnection.create;
-    readConfig;
-    if poweroffFileName <> '' then
-      if FileExists (powerOffFileName) then
-        if not DeleteFile (powerOffFileName) then
-          writeln (#13,'nutmon: warning, can not delete power off flag file ('+powerOffFileName+')');
-    if downIfCapaityBelow > 0 then
-      writeln (#13'nutmon: will shutdown if battery < ',downIfCapaityBelow,'%');
-    mainLoop;
-    nut.login := false;
-    nut.connected := false;
-    nut.free;
-  finally
-    {$if defined(netware)}
-    CloseLocalSemaphore (waitSemaphore);
-    UnRegisterConsoleCommand (CmdParserStruct);
-    MainLoopTerminated := true;
-    {$endif}
-  end;
-end.

+ 0 - 2
demo/netware/nuttest.pp

@@ -1,2 +0,0 @@
-{nuttest.pp is for clib and libc}
-{$i ../netwlibc/nuttest.pp}

+ 0 - 1548
demo/netwlibc/Makefile

@@ -1,1548 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-override BINUTILSPREFIX=$(CPU_TARGET)-netware-
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=nuttest
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 16
demo/netwlibc/Makefile.fpc

@@ -1,16 +0,0 @@
-#
-#   Makefile.fpc for FPC Netware libc demos (part of FPC demo package)
-#
-
-[target]
-programs_netwlibc=nuttest
-
-[default]
-fpcdir=../..
-
-[prerules]
-# binutils are the same for targets netware and netwlibc
-override BINUTILSPREFIX=$(CPU_TARGET)-netware-
-
-
-[rules]

+ 0 - 762
demo/netwlibc/nuttest.pp

@@ -1,762 +0,0 @@
-Program nuttest;
-
-{$if not defined(netware)}
-{$error Sorry, this Demo is for netware and netwlibc only}
-{$endif}
-{$mode objfpc}
-{$if defined (netware_libc)}
-{$description FreePascal NUT Demo - libc}
-{$Screenname FreePascal NWSNUT Demo - libc}
-{$else}
-{$description FreePascal NUT Demo - clib}
-{$Screenname default}
-{$endif}
-{$Copyright 2005 Armin Diehl <[email protected]>}
-{$Version 1,0,0}
-
-
-
-{$if defined(netware_clib)}
-uses nwserv,nwsnut,sysutils;
-{$else}
-uses libc,nwsnut,sysutils;
-{$endif}
-
-var
-  gExiting : boolean  = FALSE;
-  gThreadCount : integer = 0;
-  gNUTHandle : PNUTInfo = NIL;
-
-const
-  gMyName = 'NUT Demo';
-  gMessageTable : array [0..26] of pchar = (
-        gMyName,
-        '1.00',
-        'Exit NUT Demo?',
-        'NUT Demo',
-        'NUTDEMO Tag',
-        'Main Menu',
-        'Sub-menu option #1',
-        'Unsorted Sub-menu Example',
-        'Program Trace Portal',
-        'Bobby',
-        'Sub-menu option #2',
-        'Sub-Menu',
-        'Bravo',
-        'Tango',
-        'Alpha',
-        'Zulu',
-        'Unsorted Menu',
-        'Sorted List',
-        'Sub-menu Example',
-        'Item List Example',
-        'Form Example',
-        'Menu In Form',
-        'Option 1',
-        'Option 2',
-        'Save Data?',
-        'Edit String Example',
-        'Edit Text Exampl');
-
-// keep in sync with above...
-        PROGRAM_NAME                    = $0000;
-        PROGRAM_VERSION                 = $0001;
-        PROGRAM_EXIT                    = $0002;
-        SCREEN_NAME                     = $0003;
-        RS_TAG_NAME                     = $0004;
-        MENU_MAIN__HDR                  = $0005;
-        MENU_SUB_OPTION1                = $0006;
-        MENU_MAIN_NOSORT                = $0007;
-        TRACE_PORTAL__HDR               = $0008;
-        MENU_NOSORT_OPTION_A            = $0009;
-        MENU_SUB_OPTION2                = $000A;
-        MENU_SUB__HDR                   = $000B;
-        MENU_NOSORT_OPTION_B            = $000C;
-        MENU_NOSORT_OPTION_C            = $000D;
-        MENU_NOSORT_OPTION_D            = $000E;
-        MENU_NOSORT_OPTION_E            = $000F;
-        MENU_NOSORT__HDR                = $0010;
-        LIST_SUBLIST__HDR               = $0011;
-        MENU_MAIN_SUBMENU               = $0012;
-        MENU_MAIN_LIST                  = $0013;
-        MENU_MAIN_FORM                  = $0014;
-        MENU_IN_FORM_TITLE              = $0015;
-        FORM_MENU_OPT1                  = $0016;
-        FORM_MENU_OPT2                  = $0017;
-        EXIT_FORM_MSG                   = $0018;
-        MENU_MAIN_EDIT_STRING           = $0019;
-        MENU_MAIN_EDIT_TEXT             = $001A;
-
-
-function NLM_VerifyProgramExit : longint; cdecl;
-var res : integer;
-begin
-  res := NWSConfirm (PROGRAM_EXIT,   // Header
-                     0,              // centerLine
-                     0,              // Center Column
-                     1,              // Default Choice
-                     nil,            // Action Procedure
-                     gNUTHandle,     // Handle
-                     nil);           // Action Parameter
-
-  // Escape(-1) means No(0).
-  if (res = -1) then inc (res);
-  Result := res;
-end;
-
-
-(****************************************************************************
- * Edit a string
- ****************************************************************************)
-procedure NLM_EditStringSub; cdecl;
-const
-   maxLen = 40;
-var err : integer;
-    str : ansistring;
-begin
-   //------------------------------------------------------------------------
-   // Generate dynamic messages - this allows you to call NUT functions
-   // and specify messages on the fly
-   //*/
-   NWSSetDynamicMessage(DYNAMIC_MESSAGE_ONE, 'String Edit Function',gNUTHandle^.messages);
-   NWSSetDynamicMessage(DYNAMIC_MESSAGE_TWO, ' Editing can be fun: ',gNUTHandle^.messages);
-
-   str := 'String to edit';
-   setlength (str, maxLen);
-
-   err := NWSEditString(
-                10,   // center line
-                40,   // center column
-                1,    // edit height
-                40,   // edit width
-                DYNAMIC_MESSAGE_ONE, // header msg
-                DYNAMIC_MESSAGE_TWO, // prompt msg
-                pchar(str),          // buffer
-                maxLen,              // max length of string
-                EF_ANY OR EF_UPPER,  // acceptable chars
-                gNUTHandle,          // nut handle
-                nil,                 // insert-key procedure
-                nil,                 // action procedure
-                nil);                // parameters
-
-   // if escape key was pressed
-  if (err = 1) then
-    NWSTrace(gNUTHandle,'String was not saved');
-end;
-
-(****************************************************************************
- * Edit text in a window
- ****************************************************************************)
-procedure NLM_EditTextSub;
-const maxLen = 1024;
-var err : integer;
-    str : ansistring;
-begin
-  // Generate dynamic messages - this allows you to call NUT functions
-  // and specify messages on the fly
-  NWSSetDynamicMessage(DYNAMIC_MESSAGE_ONE,'Text Edit Function', gNUTHandle^.messages);
-  NWSSetDynamicMessage(DYNAMIC_MESSAGE_TWO,'Save changes?', gNUTHandle^.messages);
-
-  str := 'This could be any kind of text'#13'that you might have.';
-  setlength (str,maxLen+1);
-
-  // Edit the text in a portal with scroll bars that appear only when the
-  // text goes beyond the portal bounderies
-  err := NWSEditTextWithScrollBars (
-                10,                     // center line
-                40,                     // center column
-                4,                      // edit height
-                40,                     // edit width
-                DYNAMIC_MESSAGE_ONE,    // header msg
-                pchar(str),             // buffer
-                maxLen,                 // max length of string
-                DYNAMIC_MESSAGE_TWO,    // confirm msg
-                true,                   // force confirm
-                SHOW_VERTICAL_SCROLL_BAR OR    // // scroll bar props
-                SHOW_HORIZONTAL_SCROLL_BAR OR
-                CONSTANT_SCROLL_BARS,
-                gNUTHandle);
-
-  // escape key was pressed
-  if err = 1 then
-    NWSTrace(gNUTHandle,'Text was not saved');
-end;
-
-function NLM_FormMenuAction (option : longint; param : pointer):longint; cdecl;
-begin
-// Do anything that might be needed by the selection of a given menu option
-// and the value returned will indicate which data item is to be displayed
-// in the menu field on the form.
-   result := option;
-end;
-
-
-function NLM_HotSpotAction (fp : PField; selectKey : longint; var changedField : longint; Handle : PNUTInfo) : longint; cdecl;
-begin
-  // do the work here. . .
-
-  NWSTrace(handle, 'This is your hot spot routine');
-
-  result :=K_RIGHT;  // send us to the next field...
-end;
-
-(****************************************************************************
- * Form display with various fields
- ****************************************************************************)
-procedure NLM_FormSub;
-var
-  line,
-  formSaved,
-  menuChoice,
-  myInteger,
-  myHexInteger : longint;
-  MyOtherInteger : cardinal;
-  myBoolean : longbool;
-  myString : ansistring;
-  mfctl : PMFCONTROL;
-begin
-  myInteger := 600;
-  myHexInteger := $2ffc;
-  myOtherInteger := 900;
-
-  // Don't do this list if we should be exiting.
-  if gExiting then exit;
-
-  // At this point, the current list is the Main Menu.  If we begin adding
-  // new items to the current list, it would mess up the Main menu (to say
-  // the least).  So, we will save the Main Menu List on the List stack
-  // (PushList) and then initialize a new form (set head and tail to NULL)
-  // by calling NWSInitForm().
-  NWSPushList(gNUTHandle);
-  NWSInitForm(gNUTHandle);
-
-  // Define the fields in the form
-  line := 0;
-  NWSAppendCommentField (line, 1, 'Boolean Field:', gNUTHandle);
-  NWSAppendBoolField (line, 25, NORMAL_FIELD, myBoolean, 0, gNUTHandle);
-
-  line += 2;
-  NWSAppendCommentField (line, 1, 'Integer Field:', gNUTHandle);
-  NWSAppendIntegerField (line, 25, NORMAL_FIELD, myInteger, 0, 9999, 0, gNUTHandle);
-
-  line += 2;
-  NWSAppendCommentField (line, 1, 'String Field:', gNUTHandle);
-  myString := 'Data String';
-  setLength (myString,30);
-  NWSAppendStringField (line, 25, 30, NORMAL_FIELD, pchar(myString), 'A..Za..z ',0, gNUTHandle);
-
-  line += 2;
-  NWSAppendCommentField (line, 1, 'Unsigned Integer Field:', gNUTHandle);
-  NWSAppendUnsignedIntegerField (line, 25, NORMAL_FIELD, @myOtherInteger, 0, 99999, 0, gNUTHandle);
-
-  line += 2;
-  NWSAppendCommentField (line, 1, 'Hex Field:', gNUTHandle);
-  NWSAppendHexField (line, 25, NORMAL_FIELD, @myHexInteger, 0, 99999, 0, gNUTHandle);
-
-  line += 2;
-  NWSAppendCommentField (line, 1, 'Comment Field:', gNUTHandle);
-  NWSAppendCommentField (line, 25, 'A comment', gNUTHandle);
-
-  line += 2;
-  NWSAppendCommentField (line, 1, 'Hot Spot Field:', gNUTHandle);
-  NWSAppendHotSpotField (line, 25, NORMAL_FIELD, 'Hot Field', @NLM_HotSpotAction, gNUTHandle);
-
-  mfctl := NWSInitMenuField (MENU_IN_FORM_TITLE, 10, 40, @NLM_FormMenuAction, gNUTHandle);
-
-  NWSAppendToMenuField (mfctl, FORM_MENU_OPT1, 1, gNUTHandle);
-  NWSAppendToMenuField (mfctl, FORM_MENU_OPT2, 2, gNUTHandle);
-
-  menuChoice := 1;       // display the text for option one
-
-  line += 2;
-  NWSAppendCommentField (line, 1, 'Menu Field:', gNUTHandle);
-  NWSAppendMenuField (line, 25, NORMAL_FIELD, @menuChoice, mfctl, 0, gNUTHandle);
-
-  // Edit the form
-  formSaved := NWSEditPortalForm (
-                MENU_MAIN_FORM,    // I- header
-                11,                // I- center line
-                40,                // I- center col
-                16,                // I- form height
-                50,                // I- form width
-                F_VERIFY,          // I- ctl flags
-                F_NO_HELP,         // I- form help
-                EXIT_FORM_MSG,     // I- confirm msg
-                gNUTHandle);
-
-  // This function returns TRUE if the form was saved, FALSE if not.
-  // If the form was not saved you must restore all variables to their
-  // original values manually
-  if longbool (formSaved) then
-    NWSTrace(gNUTHandle,'The form data was not saved');
-
-  // cleanup and discard this form
-  NWSDestroyForm(gNUTHandle);
-  NWSPopList(gNUTHandle);
-end;
-
-
-(****************************************************************************
- * Display information in a portal given a selection from the list
- ****************************************************************************)
-procedure NLM_DisplayPortalInformation (selectedItem : pchar);
-var
-  portal : longint;
-  szTemp : ansistring;  //char  szTemp[80+1];
-  portalPCB : PPCB;
-begin
-  // Dim the current portal
-  NWSDeselectPortal(gNUTHandle);
-
-  // Create a portal in which we will display the connection information.
-  // (A portal is a window).
-  portal := NWSCreatePortal(
-                5,              // I- line
-                2,              // I- column
-                10,             // I- frameHeight
-                76,             // I- frameWidth
-                6,              // I- virtualHeight
-                76,             // I- virtualWidth
-                SAVE,           // I- saveFlag
-                selectedItem,   // I- headerText
-                VNORMAL,        // I- headerAttribute
-                SINGLE,         // I- borderType
-                VINTENSE,       // I- borderAttribute
-                CURSOR_OFF,     // I- cursorFlag
-                VIRTUAL,        // I- directflag
-                gNUTHandle);
-
-  case cardinal(portal) of
-    $FFFFFFFE : begin
-                  NWSTrace(gNUTHandle, 'NWSCreatePortal reports: Unable to allocate memory for PCB, virtual screen, or save area.');
-                  exit;
-                end;
-    $FFFFFFFF : begin
-                  NWSTrace(gNUTHandle, 'NWSCreatePortal reports: Maximum number of portals already defined.');
-                  exit;
-                end;
-  end;
-
-  // Get portal's PCB.
-  NWSGetPCB (portalPCB, portal, gNUTHandle);
-
-  // Make our portal current and clear it.
-  NWSSelectPortal(portal, gNUTHandle);
-  NWSClearPortal(portalPCB);
-
-  // Place information on portal.
-  NWSDisplayTextInPortal(1,0,'This is data displayed in a portal',VINTENSE,portalPCB);
-
-  szTemp := format ('Item selected: %s',[selectedItem]);
-  NWSDisplayTextInPortal(3,0,pchar(szTemp),VNORMAL,portalPCB);
-
-  NWSDisplayTextInPortal(5,0,'<Press ESCAPE to exit>',VINTENSE,portalPCB);
-
-  // Update portal content to user screen.
-  NWSUpdatePortal(portalPCB);
-
-  // Wait for user to press ESCAPE.
-  NWSWaitForEscape(gNUTHandle);
-
-  // Trash portal.
-  NWSDestroyPortal(portal, gNUTHandle);
-end;
-
-(****************************************************************************
- * Action procedure for the list
- ****************************************************************************)
-function NLM_ListSubAction (keyPressed : longint;
-                            elementSelected:PPLIST;
-                            itemLineNumber:plongint;
-                            actionParameter:pointer) : longint; cdecl;
-begin
-  result := -1;
-  case keyPressed of
-     M_ESCAPE : result := 0;
-     M_SELECT : begin
-                  NLM_DisplayPortalInformation(@elementSelected^^.text);
-                  result := -1;
-                end;
-  end;
-end;
-
-
-(****************************************************************************
- * Build a list of items
- ****************************************************************************)
-procedure NLM_ListSubBuild;
-var i : integer;
-    s : ansistring;
-begin
-  for i := 1 to 50 do
-  begin
-    s := format ('Item number %02d',[i]);
-    NWSAppendToList (pchar(s),nil,gNUTHandle);
-  end;
-end;
-
-
-(****************************************************************************
- * Create and display the list
- ****************************************************************************)
-procedure NLM_DisplaySubList;
-begin
-  if gExiting then exit;
-
-  // At this point, the current list is the Main Menu.  If we begin adding
-  // new items to the current list, it would mess up the Main menu (to say
-  // the least).  So, we will save the Main Menu List on the List stack
-  // (PushList) and then initialize a new list (set head and tail to NULL)
-  // by calling InitList().  Note that Lists use NWInitList() and Menus use
-  // NWInitMenu().
-  NWSPushList(gNUTHandle);
-  NWSInitList(gNUTHandle, nil);
-
-  // Build a list
-  NLM_ListSubBuild;
-
-  // Display the list and allow user interaction.
-  NWSList(
-           LIST_SUBLIST__HDR,     // I- header
-           0,                     // I- centerLine
-           0,                     // I- centerColumn
-           10,                    // I- height
-           72,                    // I- width
-           M_ESCAPE OR M_SELECT,  // I- validKeyFlags
-           nil,                   // IO element
-           gNUTHandle,            // I- handle
-           nil,                   // I- formatProcedure
-           @NLM_ListSubAction,    // I- actionProcedure
-           nil);                  // I- actionParameter
-
-  // Before returning, we must free the list items allocated by
-  // NLM_ListSubBuild...().  Then the Main Menu list context
-  // must be restored.  Note that Lists use NWDestroyList() and
-  // Menus use NWDestroyMenu().
-  NWSDestroyList(gNUTHandle);
-  NWSPopList(gNUTHandle);
-end;
-
-
-(****************************************************************************
- * Unsorted sub-menu (NWSLIST) action procedure.  Note that the parameters
- * for an NWSList() action procedure are very different from the parameters
- * passed to an NWSMenu() action procedure.
- ****************************************************************************)
-
-function NLM_MenuNoSortAct (keyPressed:longint; elementSelected:PPLIST; itemLineNumber:plongint; actionParameter:pointer):longint;  cdecl;
-var index : integer;
-begin
-  // Setup index variable to be the same as it would be in a NWSMenu()
-  // action procedure.
-  if keypressed = M_ESCAPE then
-    index := -1
-  else
-    index := integer(elementSelected^^.otherInfo^);
-
-  // Perform the user-selected action.
-  // (Just like a normal NWSMenu() action procedure...)
-  case index of
-    -1: begin
-          result := 0; exit;
-        end;
-    MENU_NOSORT_OPTION_A :
-          NWSTrace(gNUTHandle,'Insert no-sort sub-menu option #A here.');
-    MENU_NOSORT_OPTION_B :
-          NWSTrace(gNUTHandle,'Insert no-sort sub-menu option #B here.');
-    MENU_NOSORT_OPTION_C :
-          NWSTrace(gNUTHandle,'Insert no-sort sub-menu option #C here.');
-    MENU_NOSORT_OPTION_D :
-          NWSTrace(gNUTHandle,'Insert no-sort sub-menu option #D here.');
-    MENU_NOSORT_OPTION_E :
-          NWSTrace(gNUTHandle,'Insert no-sort sub-menu option #E here.')
-    else
-          NWSTrace(gNUTHandle,pchar(format('Option %d not implemented.',[index])));
-  end;
-
-  // If we should be exiting, pretend that ESCAPE was pressed.
-  if gExiting then
-    result := 0
-  else
-    result := -1;
-end;
-
-
-(****************************************************************************
- * Unsorted sub-menu.
- *
- * There are times when you would like to display a menu, but you don't want
- * the elements to be sorted.  NWSMenu() automatically sorts the list of menu
- * items and there is no way to disable this feature.
- *
- * The NWSList() function has an M_NO_SORT flag that is not available to the
- * NWSMenu() function; however, using NWSList to display a menu can be scary
- * if you don't know how.
- *
- * The following code demonstrates how to build a menu and then display it as
- * a list.  The action procedure (above) is specific to NWSList() and is not
- * a suitable action procedure for NWSMenu().
- ***************************************************************************)
-procedure NLM_MenuNoSort;
-var defItem : PLIST;
-begin
-  if gExiting then exit;
-
-  // At this point, the current list is the Main Menu.  If we begin adding
-  // new items to the current list, it would mess up the Main menu (to say
-  // the least).  So, we will save the Main Menu List on the List stack
-  // (PushList) and then initialize a new list (set head and tail to NULL)
-  // by calling InitMenu().  Note that Lists use NWInitList() and Menus use
-  // NWInitMenu().
-  NWSPushList(gNUTHandle);
-  NWSInitMenu(gNUTHandle);
-
-  // Insert menu items in the order they will be displayed.
-  NWSAppendToMenu(MENU_NOSORT_OPTION_B, MENU_NOSORT_OPTION_B, gNUTHandle);
-  NWSAppendToMenu(MENU_NOSORT_OPTION_A, MENU_NOSORT_OPTION_A, gNUTHandle);
-  defItem := NWSAppendToMenu(MENU_NOSORT_OPTION_C, MENU_NOSORT_OPTION_C, gNUTHandle);
-  NWSAppendToMenu(MENU_NOSORT_OPTION_E, MENU_NOSORT_OPTION_E, gNUTHandle);
-  NWSAppendToMenu(MENU_NOSORT_OPTION_D, MENU_NOSORT_OPTION_D, gNUTHandle);
-
-  // Display the menu (as though it were a list) and allow user interaction.
-        NWSList(
-                MENU_NOSORT__HDR,   // header
-                0,                  // centerLine
-                65,                 // centerColumn
-                5,                  // height
-                20,                 // width
-                M_ESCAPE OR M_SELECT OR
-                M_NO_SORT,          // validKeyFlags
-                @defItem,           // element
-                gNUTHandle,         // handle
-                nil,                // formatProcedure
-                @NLM_MenuNoSortAct, // actionProcedure
-                nil);               // actionParameter
-
-  // Before returning, we must free the list items allocated by
-  // NWSAppendToMenu().  Then the Main Menu list context must be restored.
-  // Note that Lists use NWDestroyList() and Menus use NWDestroyMenu().
-  NWSDestroyMenu(gNUTHandle);
-  NWSPopList(gNUTHandle);
-end;
-
-
-(****************************************************************************
- * Sub menu (sorted) action procedure.
- ****************************************************************************)
-function NLM_MenuSubAction (index:longint; parm:pointer):longint; cdecl;
-begin
-  // Perform the user-selected action.
-  case index of
-    -1 : begin
-           result := 0; exit;
-         end;
-    MENU_SUB_OPTION1: NWSTrace(gNUTHandle,'Insert sub-menu option #1 here.');
-    MENU_SUB_OPTION2: NWSTrace(gNUTHandle,'Insert sub-menu option #2 here.')
-  else
-    NWSTrace(gNUTHandle,'Option not implemented.');
-  end;
-
-  // If we should be exiting, pretend that ESCAPE was pressed.
-  if gExiting then
-    result := 0
-  else
-    result := -1;
-end;
-
-
-procedure NLM_MenuSub;
-begin
-  if gExiting then exit;
-
-  // At this point, the current list is the Main Menu.  If we begin adding
-  // new items to the current list, it would mess up the Main menu (to say
-  // the least).  So, we will save the Main Menu List on the List stack
-  // (PushList) and then initialize a new list (set head and tail to NULL)
-  // by calling InitMenu().  Note that Lists use NWInitList() and Menus use
-  // NWInitMenu().
-
-  NWSPushList(gNUTHandle);
-  NWSInitMenu(gNUTHandle);
-
-  // Insert menu items.  Note that the insertion order does not matter being
-  // that NWSMenu() will always sort the Menu selections automatically.
-
-  NWSAppendToMenu(MENU_SUB_OPTION1, MENU_SUB_OPTION1, gNUTHandle);
-  NWSAppendToMenu(MENU_SUB_OPTION2, MENU_SUB_OPTION2, gNUTHandle);
-
-  // Display the menu and allow user interaction.
-  NWSMenu(MENU_SUB__HDR,                // Header
-          0,                            // centerLine
-          15,                           // centerColumn
-          nil,                          // defaultElement
-          @NLM_MenuSubAction,           // actionProcedure
-          gNUTHandle,
-          nil);                         // actionParameter
-
-  // Before returning, we must free the list items allocated by
-  // NWSAppendToMenu().  Then the Main Menu list context must be restored.
-  // Note that Lists use NWDestroyList() and Menus use NWDestroyMenu().
-
-  NWSDestroyMenu(gNUTHandle);
-  NWSPopList(gNUTHandle);
-end;
-
-
-
-function NLM_MenuMainAction (index:longint; parm:pointer):longint; cdecl;
-begin
-  case index of
-    -1: if longbool(NLM_VerifyProgramExit) then  // ESC pressed
-        begin
-          result := 0;
-          exit;
-        end;
-    MENU_MAIN_SUBMENU     : NLM_MenuSub;
-    MENU_MAIN_NOSORT      : NLM_MenuNoSort;
-    MENU_MAIN_LIST        : NLM_DisplaySubList;
-    MENU_MAIN_FORM        : NLM_FormSub;
-    MENU_MAIN_EDIT_STRING : NLM_EditStringSub;
-    MENU_MAIN_EDIT_TEXT   : NLM_EditTextSub
-  else
-    NWSTrace(gNUTHandle,'Option not implemented.');
-  end;
-
-  if gExiting then
-    result := 0
-  else
-    result := -1;
-end;
-
-
-procedure DoMainMenu;
-var defaultOption : PLIST;
-begin
-  if gExiting then exit;
-
-  // At this point, the current list is uninitialized (being that it is the
-  // first list of the program.)  Before using the current list it must be
-  // initialized (set head and tail to NULL) by calling InitMenu().
-  // Note that Lists use NWInitList() and Menus use NWInitMenu().
-
-  NWSInitMenu(gNUTHandle);
-
-  // Insert menu items.  Note that the insertion order does not matter being
-  // that NWSMenu() will always sort the Menu selections automatically.
-  // The defaultOption stores a pointer to the menu item which we wish to be
-  // highlighed by default.
-
-  NWSAppendToMenu(MENU_MAIN_SUBMENU, MENU_MAIN_SUBMENU, gNUTHandle);
-  NWSAppendToMenu(MENU_MAIN_NOSORT, MENU_MAIN_NOSORT, gNUTHandle);
-  NWSAppendToMenu(MENU_MAIN_LIST, MENU_MAIN_LIST, gNUTHandle);
-  NWSAppendToMenu(MENU_MAIN_FORM, MENU_MAIN_FORM, gNUTHandle);
-  defaultOption :=
-    NWSAppendToMenu(MENU_MAIN_EDIT_STRING, MENU_MAIN_EDIT_STRING, gNUTHandle);
-  NWSAppendToMenu(MENU_MAIN_EDIT_TEXT, MENU_MAIN_EDIT_TEXT, gNUTHandle);
-
-  // Display the menu and allow user interaction.
-
-  NWSMenu(MENU_MAIN__HDR,       // Header
-          0,                    // centerLine
-          0,                    // centerColumn
-          defaultOption,        // defaultElement
-          @NLM_MenuMainAction,  // procedure to handle events
-          gNUTHandle,
-          nil);                 // actionParameter
-
-  // Before returning, we must free the list items allocated by
-  // NWSAppendToMenu(). Note that Lists use NWDestroyList() and Menus use
-  // NWDestroyMenu().
-
-  NWSDestroyMenu(gNUTHandle);
-end;
-
-
-procedure DeinitializeNUT;
-begin
-  if gNUTHandle <> nil then
-    NWSRestoreNut(gNUTHandle);
-end;
-
-var oldNetwareUnloadProc : pointer = nil;
-
-procedure onUnload;
-var i : integer;
-begin
-  gExiting := TRUE;
-
-  // Wait for main() to terminate.
-  // If main() has not terminateded within a 1/2 second, ungetch an
-  // escape key. This will "trick" a blocking NWSList() or NWSMenu()
-  // function and wake it up.
-  i := 0;
-  while (gThreadCount > 0) do
-  begin
-    delay (100);
-    inc(i);
-    if i = 5 then
-      ungetcharacter(ESCAPE);
-    {$if defined (netware_libc)}
-    pthread_yield;
-    {$else}
-    ThreadSwitchWithDelay;
-    {$endif}
-  end;
-  System.NetwareUnloadProc := oldNetwareUnloadProc;
-end;
-
-
-procedure InitializeNUT;
-var err : integer;
-    NLMHandle : TNLMHandle;
-    screen    : TScr;
-    allocTag  : TRtag;
-begin
-  // use the SIGTERM handler defined in system.pp to facilitate a console UNLOAD command.
-  oldNetwareUnloadProc := System.NetwareUnloadProc;
-  NetwareUnloadProc := @onUnload;
-
-  NLMHandle := getnlmhandle;
-  {$if defined(netware_clib)}
-  screen := CreateScreen ('FreePascal NWSNUT Demo - clib',AUTO_DESTROY_SCREEN);
-  if screen <> nil then
-    DisplayScreen (screen);
-  {$else}
-  screen    := getscreenhandle();
-  {$endif}
-
-  if ((pointer(NLMHandle) = nil) or (pointer(screen) = nil)) then
-  begin
-    gExiting := TRUE;
-    Exit;
-  end;
-
-  // Fire up NWSNUT on our screen which was set up via the linker. LibC
-  // doesn't have a great deal of flexibility with screens. Setting up your
-  // own, additional screen may prove challenging, however, it should be
-  // possible.
-
-  allocTag := AllocateResourceTag(NLMHandle, gMyName, AllocSignature);
-  if pointer(allocTag) = nil then
-  begin
-    gExiting := TRUE;
-    Exit;
-  end;
-
-  err := NWSInitializeNut(PROGRAM_NAME, PROGRAM_VERSION, NORMAL_HEADER,
-                          NUT_REVISION_LEVEL, gMessageTable, nil, screen, allocTag,
-                          gNUTHandle);
-  if err <> 0 then
-    gExiting := TRUE;
-end;
-
-
-begin
-  inc (gThreadCount);
-
-  InitializeNUT;
-  DoMainMenu;
-  DeinitializeNUT;
-
-  dec (gThreadCount);
-end.

+ 0 - 1553
demo/os2/Makefile

@@ -1,1553 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=basicpm pmdemo1 getctry
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-basicpm.exe: basicpm.pas
-	$(COMPILER) -Dw -Ch8096 -Cs32728 basicpm.pas
-pmdemo1.exe: pmdemo1.pp pmdemo1.res
-	$(COMPILER) -Dw -Ch8096 -Cs32728 pmdemo1.pp
-pmdemo1.res: pmdemo1.rc pmdemo1.h
-	$(RC) -r pmdemo1

+ 0 - 19
demo/os2/Makefile.fpc

@@ -1,19 +0,0 @@
-#
-#   Makefile.fpc for FPC OS/2 demos (part of FPC demo package)
-#
-
-[target]
-programs_os2=basicpm pmdemo1 getctry
-
-[default]
-fpcdir=../..
-
-[rules]
-basicpm.exe: basicpm.pas
-        $(COMPILER) -Dw -Ch8096 -Cs32728 basicpm.pas
-
-pmdemo1.exe: pmdemo1.pp pmdemo1.res
-        $(COMPILER) -Dw -Ch8096 -Cs32728 pmdemo1.pp
-
-pmdemo1.res: pmdemo1.rc pmdemo1.h
-        $(RC) -r pmdemo1

+ 0 - 78
demo/os2/basicpm.pas

@@ -1,78 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-2001 by Free Pascal team
-
-    The most basic Presentation Mode example.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program BasicPM;
-
-{$APPTYPE GUI}
-
-uses
- Os2Def, PMWin;
-
-function ClientWindowProc (Window, Msg: cardinal; MP1, MP2: pointer): pointer;
-                                                                 cdecl; export;
-var
- Li: longint;
- Ps: cardinal;
- R: TRectL;
- P: TPointL;
- Rgn: cardinal;
-begin
- ClientWindowProc := nil;
- case Msg of
-  wm_Paint: begin
-             PS := WinBeginPaint (Window, 0, @R);
-             WinFillRect (PS, @R, SYSCLR_WINDOW);
-             WinEndPaint (PS);
-            end;
-  else ClientWindowProc := WinDefWindowProc (Window, Msg, MP1, MP2);
- end;
-end;
-
-const
- idClientWindow = 11000;
- WinFlags: cardinal = fcf_TitleBar + fcf_SysMenu + fcf_SizeBorder +
-                                   fcf_MinMax + fcf_TaskList + fcf_NoByteAlign;
- ClassName = 'MYVIEW';
-
-var
- Anchor, MsgQue: cardinal;
- Message: TQMsg;
- Frame, Client: cardinal;
-begin
- Anchor := WinInitialize(0);
- { It might be beneficial to set the second parameter of the following }
- { call to something large, such as 1000.  The OS/2 documentation does }
- { not recommend this, however } MsgQue := WinCreateMsgQueue (Anchor, 0);
- if MsgQue = 0 then Halt (254);
-
- WinMessageBox (HWND_DESKTOP, HWND_DESKTOP, 'FPC test', 'Basic PM', 0,
-                                                      MB_OK or MB_INFORMATION);
-
- WinRegisterClass (Anchor, ClassName, proc (@ClientWindowProc), cs_SizeRedraw,
-                                                             SizeOf (pointer));
- Frame := WinCreateStdWindow (hwnd_Desktop, 0, WinFlags, ClassName,
-                                     'BASIC PM', 0, 0, idClientWindow, Client);
- if (Frame <> 0) then
- begin
-  WinSetWindowPos (Frame, 0, 0, WinQuerySysValue (hwnd_Desktop,
-         sv_CyScreen) - 200, 200, 200, swp_Move + swp_Size + swp_Activate +
-                                                                     swp_Show);
-  while WinGetMsg (Anchor, Message, 0, 0, 0) do
-                                              WinDispatchMsg (Anchor, Message);
-
-  WinDestroyWindow (Frame);
- end;
- WinDestroyMsgQueue (MsgQue);
- WinTerminate (Anchor);
-end.

+ 0 - 39
demo/os2/getctry.pas

@@ -1,39 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-2001 by Free Pascal team
-
-    A little example of using OS/2 API calls.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program GetCountryInfo;
-
-uses
- OS2Def, DosCalls;
-
-var
- Country: TCountryCode;  (* Country code info (0 = current country) *)
- CtryInfo: TCountryInfo; (* Buffer for country-specific information *)
- Size: longint;         (* Real size of returned data              *)
- W: word;
-
-begin
- WriteLn;
- Size := 0;
- FillChar (Country, SizeOf (Country), 0);
- FillChar (CtryInfo, SizeOf (CtryInfo), 0);
- W := DosQueryCtryInfo (SizeOf (CtryInfo), Country, CtryInfo, Size);
- if (W <> NO_ERROR) then
- begin
-  WriteLn ('DosQueryCtryInfo error: return code = ', W);
-  Halt (1);
- end;
- WriteLn ('Code of the country is ', CtryInfo.Country,
-                             ', current codepage is ', CtryInfo.CodePage, '.');
-end.

+ 0 - 7
demo/os2/pmdemo1.h

@@ -1,7 +0,0 @@
-/*******************************************
-
-  Header f�r den Ressourcecompiler
-
-********************************************/
-#define ID_ClientWindow	1
-

+ 0 - 76
demo/os2/pmdemo1.pp

@@ -1,76 +0,0 @@
-{****************************************************************************
-
-
-                   Copyright (c) 1999-2000 by Florian Klaempfl
-
- ****************************************************************************}
-
-{ Sample program for FPC under OS/2 }
-{ Classic Hello world in PM version }
-
-{$APPTYPE GUI}
-
-{$R pmdemo1.res}
-
-(* PMDEMO1.RES has to be compiled from PMDEMO1.RC using "rc -r PMDEMO1.RC". *)
-
-program pmdemo1;
-
-  uses
-     os2def,pmwin;
-
-  var
-     frame,client : cardinal;
-     ab : cardinal;
-     mq : cardinal;
-     msg : QMSG;
-
-  const
-     frameflags : longint = FCF_TITLEBAR+FCF_SYSMENU+FCF_SIZEBORDER+
-                            FCF_MINBUTTON+FCF_MAXBUTTON+FCF_SHELLPOSITION+
-                            FCF_TASKLIST+FCF_MENU;
-
-  function clientwndproc(window : cardinal;msg : longint;mp1,mp2 : pointer) :
-    pointer; cdecl; export;
-
-    const
-       text = 'Hello world by OS/2 and FPC';
-
-    var
-       ps : cardinal;
-       rcl : RECTL;
-
-    begin
-       {clientwndproc:=nil;      }
-       case msg of
-{         WM_CREATE : DosBeep(200,500);}
-          WM_PAINT : begin
-                        ps:=WinBeginPaint(window,0,nil);
-                        WinQueryWindowRect(window,@rcl);
-                        WinDrawText(ps,-1,text,@rcl,0,7,$8500);
-                        WinEndPaint(ps);
-                     end;
-          WM_COMMAND : case lo(longint(mp1)) of
-                          {101 : DosBeep(4500,1000);}
-                          109 : WinPostMsg(0,WM_QUIT,nil,nil);
-                          201 : WinMessageBox(cardinal(1),cardinal(1),
-                             'HelloPM from FPC',
-                             'About',0,MB_ICONEXCLAMATION+MB_MOVEABLE);
-                       end;
-       else
-          clientwndproc:=WinDefWindowProc(window,msg,mp1,mp2);
-       end;
-    end;
-
- begin
-    ab:=WinInitialize(0);
-    mq:=WinCreateMsgQueue(ab,0);
-    WinRegisterClass(ab,'HELLOPM',proc(@clientwndproc),4,0);
-    frame:=WinCreateStdWindow(cardinal(1),WS_VISIBLE,@frameflags,'HELLOPM',
-      'PMDemo 1',WS_VISIBLE,0,1,@client);
-    while WinGetMsg(ab,@msg,0,0,0) do
-      WinDispatchMsg(ab,@msg);
-    WinDestroyWindow(frame);
-    WinDestroyMsgQueue(mq);
-    WinTerminate(ab);
- end.

+ 0 - 18
demo/os2/pmdemo1.rc

@@ -1,18 +0,0 @@
-/******************
- * Name : TEXT.RC *
- ******************/
-
-#include "PMDEMO1.H"
-
-MENU    ID_ClientWindow
-  BEGIN
-     SUBMENU "~File",100
-       BEGIN
-          MENUITEM "~Open...",101
-          MENUITEM "~Exit",109
-       END
-     SUBMENU "~Help",200
-       BEGIN
-          MENUITEM "~About...",201
-       END
-  END

BIN
demo/palmos/pilrc.bmp


BIN
demo/palmos/pilrcic.bmp


+ 0 - 22
demo/palmos/pilrctst.h

@@ -1,22 +0,0 @@
-#define kidForm1 1000
-#define kidForm2 1001
-#define kidForm3 1002
-#define kidForm4 1003
-#define kidForm5 1004
-#define kidForm6 1005
-#define kidForm7 1006
-#define kidForm8 1007
-#define kidForm9 1008
-#define kidForm10 1009
-#define kidForm11 1010
-#define kidForm12 1011
-#define kidFormLast 1011
-
-#define kidOk 9999
-#define kidTable 1000
-
-#define kidAlert1 1000
-#define kidMenu1 1000
-#define kidHelp1 1000
-#define kidHelp2 1001
-#define kidBitmap 1000

+ 0 - 106
demo/palmos/pilrctst.pp

@@ -1,106 +0,0 @@
-{ Test program for PalmOS support of FPC
-  Ported from pilrctst.c by Florian Klaempfl ([email protected])
-
-  pilrctst.c was made by
-  Wes Cherry ([email protected])
-}
-{$APPID FPCA}
-{$APPNAME FPC Demo}
-
-{$R pilrctst.rcp}
-
-program pilrctst;
-
-  uses
-     palm;
-
-  const
-     kidForm1 = 1000;
-     kidForm2 = 1001;
-     kidForm3 = 1002;
-     kidForm4 = 1003;
-     kidForm5 = 1004;
-     kidForm6 = 1005;
-     kidForm7 = 1006;
-     kidForm8 = 1007;
-     kidForm9 = 1008;
-     kidForm10 = 1009;
-     kidForm11 = 1010;
-     kidForm12 = 1011;
-     kidFormLast = 1011;
-     kidOk = 9999;
-     kidTable = 1000;
-     kidAlert1 = 1000;
-     kidMenu1 = 1000;
-     kidHelp1 = 1000;
-     kidHelp2 = 1001;
-     kidBitmap = 1000;
-
-  var
-     kidForm : longint;
-
-  var
-     b : boolean;
-     e : EventType;
-     err : word;
-     pfrm : PFormType;
-     ptbl : PTableType;
-
-begin
-  kidForm:=kidForm3;
-  FrmGotoForm(kidForm);
-  while true do
-    begin
-      EvtGetEvent(e,100);
-      if SysHandleEvent(e)<>0 then
-        continue;
-      if MenuHandleEvent(nil,e,err)<>0 then
-        continue;
-      case e.eType of
-         ctlSelectEvent:
-           begin
-             if e.data.controlID=kidOk then
-               begin
-                 inc(kidForm);
-                 if kidForm>kidFormLast then
-                   kidForm:=kidForm1;
-                  FrmGotoForm(kidForm);
-                end;
-              if assigned(FrmGetActiveForm) then
-                FrmHandleEvent(FrmGetActiveForm,e);
-           end;
-         frmLoadEvent:
-           begin
-             FrmSetActiveForm(FrmInitForm(e.data.formID));
-           end;
-         frmOpenEvent:
-           begin
-             pfrm:=FrmGetActiveForm;
-             FrmDrawForm(pfrm);
-             if e.data.formID=kidForm12 then
-               begin
-                 ptbl:=PTableType(FrmGetObjectPtr(pfrm, FrmGetObjectIndex(pfrm, kidTable)));
-                 TblSetColumnUsable(ptbl, 0, true);
-                 TblSetColumnUsable(ptbl, 1, true);
-                 TblSetColumnUsable(ptbl, 2, true);
-                 TblSetColumnUsable(ptbl, 3, true);
-                 TblSetColumnUsable(ptbl, 4, true);
-                 TblSetRowUsable(ptbl, 0, true);
-                 TblSetRowUsable(ptbl, 1, true);
-
-                 TblSetItemStyle(ptbl, 0, 0, textTableItem);
-                 TblSetItemStyle(ptbl, 1, 0, textTableItem);
-                 TblSetItemStyle(ptbl, 2, 0, textTableItem);
-                 TblDrawTable(ptbl);
-               end;
-            end;
-         menuEvent:
-           FrmAlert(kidAlert1);
-         appStopEvent:
-           break;
-         else
-           if assigned(FrmGetActiveForm) then
-             FrmHandleEvent(FrmGetActiveForm,e);
-      end;
-    end;
-end.

+ 0 - 283
demo/palmos/pilrctst.rcp

@@ -1,283 +0,0 @@
-// pilrctst.rcp
-// Script to test and demonstrate PilRC
-// Wes Cherry
-// [email protected]
-
-#include "pilrctst.h"
-
-FORM ID kidForm1 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest 1 (LABEL)"
-	LABEL "Font 0" ID 2000 AT (CENTER 20) FONT 0
-	LABEL "Font 1" ID 2001 AT (CENTER PREVBOTTOM+1) FONT 1
-	LABEL "Font 2" ID 2002 AT (CENTER PREVBOTTOM+1) FONT 2
-	LABEL "\001\002\003\004\005\006" ID 2002 AT (CENTER PREVBOTTOM+1) FONT 3
-	LABEL "\001\002\003\004\005\006" ID 2002 AT (CENTER PREVBOTTOM+1) FONT 4
-	LABEL "\001\002\003\004\005\006" ID 2002 AT (CENTER PREVBOTTOM+1) FONT 5
-	LABEL "Nonusable should be hidden" ID 2003 AT (CENTER PREVBOTTOM+1) FONT 0 NONUSABLE
-
-	LABEL "Font0" ID 2003 AT (10 PREVBOTTOM+1) FONT 0
-	LABEL "Font1" ID 2003 AT (PREVRIGHT+1 PREVTOP) FONT 1
-	LABEL "Font2" ID 2003 AT (PREVRIGHT+1 PREVTOP) FONT 2
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm2 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (BUTTON)"
-	BUTTON "FrameButton1" ID 2000 AT (CENTER 20 AUTO AUTO) FRAME
-	BUTTON "NoFrameButton1" ID 2001 AT (CENTER PREVBOTTOM+2 AUTO AUTO) NOFRAME
-	BUTTON "BoldFrameButton1" ID 2002 AT (CENTER PREVBOTTOM+2 AUTO AUTO) BOLDFRAME
-	BUTTON "LeftAnchor" ID 2003 AT (10 PREVBOTTOM+2 100 AUTO) LEFTANCHOR
-	BUTTON "RightAnchor" ID 2004 AT (10 PREVBOTTOM+1 100 AUTO) RIGHTANCHOR
-	BUTTON "Disabled" ID 2005 AT (10 PREVBOTTOM+1 100 AUTO) DISABLED	
-
-	BUTTON "NonUsable should be hidden" ID 2006 AT (CENTER PREVBOTTOM+1 AUTO AUTO) NONUSABLE
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm3 AT (2 2 156 156)
-USABLE
-NOFRAME
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (PUSHBUTTON)"
-	PUSHBUTTON "aGroup 1" ID 2000 AT (CENTER 20 AUTO AUTO) GROUP 1
-	PUSHBUTTON "bGroup 1" ID 2001 AT (CENTER PREVBOTTOM+2 AUTO AUTO) GROUP 1
-	PUSHBUTTON "cGroup 1" ID 2002 AT (CENTER PREVBOTTOM+2 AUTO AUTO) GROUP 1
-	PUSHBUTTON "dGroup 1 Disabled" ID 2003 AT (CENTER PREVBOTTOM+1 AUTO AUTO) DISABLED GROUP 1
-
-	PUSHBUTTON "aLeftAnchor" ID 2004 AT (10 PREVBOTTOM+2 100 AUTO) LEFTANCHOR GROUP 2
-	PUSHBUTTON "bRightAnchor" ID 2005 AT (10 PREVBOTTOM+1 100 AUTO) RIGHTANCHOR GROUP 2
-	PUSHBUTTON "cNonUsable should be hidden" ID 2006 AT (CENTER PREVBOTTOM+1 AUTO AUTO) NONUSABLE GROUP 2
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm4 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (CHECKBOX)"
-	CHECKBOX "Checkbox" ID 2007 AT (CENTER 15 AUTO AUTO)
-	CHECKBOX "Checkbox Checked" ID 2008 AT (CENTER PREVBOTTOM+2 AUTO AUTO) CHECKED
-	CHECKBOX "Disabled Check" ID 2009 AT (CENTER PREVBOTTOM+2 AUTO AUTO) DISABLED
-
-	CHECKBOX "Checkbox Group1" ID 2010 AT (CENTER PREVBOTTOM+2 AUTO AUTO) GROUP 1
-	CHECKBOX "CheckboxGroup1" ID 2011 AT (CENTER PREVBOTTOM+2 AUTO AUTO) GROUP 1
-	CHECKBOX "Checkbox Group2" ID 2012 AT (CENTER PREVBOTTOM+3 AUTO AUTO) GROUP 2
-	CHECKBOX "Checkbox Group2" ID 2013 AT (CENTER PREVBOTTOM+2 AUTO AUTO) GROUP 2 
-		
-	CHECKBOX "LeftAnchor" ID 2014 AT (10 PREVBOTTOM+2 100 AUTO) LEFTANCHOR
-	CHECKBOX "RightAnchor" ID 2015 AT (10 PREVBOTTOM+1 100 AUTO) RIGHTANCHOR
-	CHECKBOX "NonUsable should be hidden" ID 2016 AT (CENTER PREVBOTTOM+1 AUTO AUTO) NONUSABLE
-
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm5 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (POPUPTRIGGER)"
-	LABEL "POPUPTRIGGER" ID 500 AT (10 20)
-	POPUPTRIGGER "Item1" ID 1000 AT (PrevRight+4 PrevTop 62 AUTO) LEFTANCHOR
-	LIST "Item1" "Item2" "Item3" "Item4" ID 2000 AT (PrevLeft PrevTop 52 1) NONUSABLE VISIBLEITEMS 4
-	POPUPLIST 1000 2000
-
-	LABEL "POPUPTRIGGER" ID 500 AT (10 PREVBOTTOM+20)
-	POPUPTRIGGER "Item1" ID 3000 AT (PrevRight+4 PrevTop 62 AUTO) LEFTANCHOR
-	LIST "Item1" "Item2" "Item3" "Item4" "Item5" "Item6" ID 4000 AT (PrevLeft PrevTop 52 1) NONUSABLE VISIBLEITEMS 4
-	POPUPLIST 3000 4000
-
-	
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm6 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (LIST)"
-	LIST "Item1" "Item2" "Item3" "Item4" ID 4000 AT (10 20 52 1) VISIBLEITEMS 4
-	LIST "Item1" "Item2" "Item3" "Item4" "Item5" "Item6" ID 4001 AT (PrevRight+10 PrevTop 52 1) VISIBLEITEMS 4
-	LIST "Disabled" "Item2" "Item3" "Item4" "Item5" "Item6" ID 4002 AT (10 Prevbottom+10 52 1) VISIBLEITEMS 4 DISABLED
-	LIST "Unusable" "Item2" "Item3" "Item4" "Item5" "Item6" ID 4003 AT (PrevRight+10 PrevTop 52 1) NONUSABLE VISIBLEITEMS 4
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm7 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (SELECTORTRIGGER)"
-
-	SELECTORTRIGGER "SelectorTrigger" ID 2000 AT (CENTER 20 AUTO AUTO)
-	SELECTORTRIGGER "LeftAnchor" ID 2001 AT (10 PREVBOTTOM+2 100 AUTO) LEFTANCHOR
-	SELECTORTRIGGER "RightAnchor" ID 2002 AT (10 PREVBOTTOM+1 100 AUTO) RIGHTANCHOR
-	SELECTORTRIGGER "Disabled" ID 2003 AT (10 PREVBOTTOM+1 100 AUTO) DISABLED	
-	SELECTORTRIGGER "NONUSABLE" ID 2004 AT (10 PREVBOTTOM+1 100 AUTO) NONUSABLE	
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-END
-
-FORM ID kidForm8 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (REPEATBUTTON)"
-
-	REPEATBUTTON "\001" ID 1000 AT (CENTER 15 AUTO AUTO) FONT 5 NOFRAME
-	REPEATBUTTON "\002" ID 1001 AT (CENTER PREVBOTTOM-1 AUTO AUTO) FONT 5 NOFRAME
-
-	REPEATBUTTON "\001" ID 1010 AT (CENTER PREVBOTTOM+3 AUTO AUTO) FONT 5 FRAME
-	REPEATBUTTON "\002" ID 1011 AT (CENTER PREVBOTTOM+1 AUTO AUTO) FONT 5 FRAME
-
-	REPEATBUTTON "\001" ID 1020 AT (CENTER PREVBOTTOM+3 AUTO AUTO) FONT 5 BOLDFRAME
-	REPEATBUTTON "\002" ID 1021 AT (CENTER PREVBOTTOM+2 AUTO AUTO) FONT 5 BOLDFRAME
-
-	REPEATBUTTON "Disabled" ID 1030 AT (CENTER PREVBOTTOM+3 AUTO AUTO) DISABLED
-	REPEATBUTTON "Disabled" ID 1031 AT (CENTER PREVBOTTOM+1 AUTO AUTO) DISABLED
-
-	REPEATBUTTON "Nonusable" ID 1040 AT (CENTER PREVBOTTOM+3 AUTO AUTO) NONUSABLE
-	REPEATBUTTON "Nonusable" ID 1041 AT (CENTER PREVBOTTOM+1 AUTO AUTO) NONUSABLE
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm9 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (FIELD)"
-
-	FIELD ID 1000 AT (10 15 140 20) LEFTALIGN UNDERLINED SINGLELINE MAXCHARS 20
-	FIELD ID 1001 AT (10 PREVBOTTOM+1 140 20) RIGHTALIGN UNDERLINED SINGLELINE MAXCHARS 40
-	FIELD ID 1002 AT (10 PREVBOTTOM+1 140 20) NONUSABLE UNDERLINED SINGLELINE MAXCHARS 40
-	FIELD ID 1003 AT (10 PREVBOTTOM+1 140 20) SINGLELINE MAXCHARS 40
-
-	FIELD ID 1004 AT (10 PREVBOTTOM+2 130 40) MULTIPLELINES UNDERLINED MAXCHARS 200 FONT 2
-	GRAFFITISTATEINDICATOR AT (130 150)
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm10 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (FORMBITMAP)"
-
-	FORMBITMAP AT (10 15) BITMAP kidBitmap
-	FORMBITMAP AT (10 80) BITMAP kidBitmap NONUSABLE
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm11 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (GADGET)"
-
-	GADGET ID 1000 AT (10 15 140 50) USABLE
-	GADGET ID 1001 AT (10 55 140 50) NONUSABLE
-	
-
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-FORM ID kidForm12 AT (2 2 156 156)
-USABLE
-MODAL
-HELPID kidHelp1
-MENUID kidMenu1
-BEGIN
-	TITLE "PilrcTest (TABLE)"
-
-	TABLE ID kidTable AT (10 15 140 100) ROWS 10 COLUMNS 5 COLUMNWIDTHS 50 30 30 40 20
-	
-	BUTTON "Ok" ID kidOk AT (CENTER 140 AUTO AUTO)
-
-END
-
-
-MENU ID kidMenu1
-BEGIN
-      PULLDOWN "File"
-      BEGIN
-      	MENUITEM "Open..." 5000 "O"
-      	MENUITEM SEPARATOR
-      	MENUITEM "Close" 5002
-      END
-      PULLDOWN "Edit"
-      BEGIN
-      	MENUITEM "Undo" 6000 "U"
-      	MENUITEM "Cut" 6001 "X"
-      	MENUITEM "Copy" 6002 "C"
-      	MENUITEM "Paste" 6003"P"
-      	MENUITEM SEPARATOR
-      	MENUITEM "Keyboard" 6004"K"
-      END
-END
-
-ALERT kidAlert1
-HELPID kidHelp2
-INFORMATION
-BEGIN
-	TITLE "Bummer!"
-	MESSAGE "Them there Menu items don't do nothin."
-	BUTTONS "Ok" "Continue"
-END
-
-STRING kidHelp1 "This is a test form for PilRC.\n"\
-	"by Wes Cherry\n"\
-	"[email protected]"
-
-STRING kidHelp2 "Yes, there's nothing hooked up to the menu commands!"
-			
-// This bitmap is referenced by kidForm10
-BITMAP ID kidBitmap "pilrc.bmp"
-
-ICON "pilrcic.bmp"
-
-VERSION 1 "0.2.1"

+ 0 - 1643
demo/text/Makefile

@@ -1,1643 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=eratos qsort hello blackbox magic lines
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 9
demo/text/Makefile.fpc

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

+ 0 - 187
demo/text/blackbox.pp

@@ -1,187 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-98 by Michael Van Canneyt
-
-    Blackbox Game Example
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-Program blackbox;
-
-{
-  The object of the game is simple : You have a box of 9x9x9 cells.
-  you can enter a number of atoms that will be put in the box.
-  Then you can start shooting in the box with a laser beam.
-  You enter the coordinates where the beam enters the box.
-  (this must be on the edges, this means that one of the coordinates
-  must be 1 or 9...)
-  The beam will bounce off the atoms (using normal bouncing), and you
-  will be told where the beam exits.
-  From this you must guess where the atoms are...
-}
-
-Const MaxSize = 9;
-      MaxAtom = 10;
-
-Type TRow   = Array [0..MaxSize+1] of byte;
-     TPlane = Array [0..MaxSize+1] of TRow;
-     TCube  = Array [0..MaxSize+1] of TPlane;
-
-Var
-  Cube                 : TCube;
-  Count,Guessed,x,y,z  : Longint;
-  ans : string;
-
-Procedure FillCube;
-
-var i,x,y,z : longint;
-
-begin
-  randomize;
-  for x:=0 to maxsize+1 do
-    for y:=0 to maxsize+1 do
-      for z:=0 to maxsize+1 do
-        Cube[x,y,z]:=0;
-  repeat
-    Write ('Enter number of atoms (1-',maxatom,') : ');
-    readln (count);
-    if (count<1) or (count>MaxAtom) then
-      writeln ('Invalid value entered. Please try again.');
-  until (count>0) and (count<=MaxAtom);
-  for I:=1 to count do
-     begin
-     repeat
-       x:=Random(MaxSize)+1;
-       y:=Random(MaxSize)+1;
-       z:=Random(MaxSize)+1;
-     until Cube[x,y,z]=0;
-     Cube[x,y,z]:=1;
-     end;
-end;
-
-Procedure GetCoords (Var X,y,z : longint);
-
-begin
-  Write ('X : ');
-  readln (x);
-  write ('Y : ');
-  readln (y);
-  write ('z : ');
-  readln (z);
-end;
-
-Procedure GetStart (Var x,y,z : longint);
-
-Var OK : boolean;
-
-begin
-  Writeln ('Please enter beam start coordinates : ');
-  Repeat
-    GetCoords (x,y,z);
-    OK:=((X=1) or (X=MaxSize)) and ((y=1) or (Y=MaxSize)) and
-        ((Z=1) or (z=maxsize));
-    if Not OK then
-      writeln ('The beam should enter at an edge. Please try again');
-  until OK;
-end;
-
-Function GetGuess : boolean;
-
-Var OK : boolean;
-    x,y,z : longint;
-
-begin
-  Writeln ('Please enter atom coordinates : ');
-  Repeat
-    getcoords (x,y,z);
-    OK:=((X>=1) and (X<=MaxSize)) and ((y>=1) and (Y<=MaxSize)) and
-        ((Z>=1) and (z<=maxsize));
-    if Not OK then
-      writeln ('These are not valid coordinates. Please try again');
-  until OK;
-  GetGuess:=False;
-  If Cube[x,y,z]<0 then
-    Writeln ('You already had this one ! Trying to be clever, eh ?')
-  else if Cube[x,y,z]>0 then
-    begin
-    Writeln ('Correct guess !');
-    Cube[x,y,z]:=-Cube[x,y,z];
-    getguess:=true;
-    end
-  else
-    Writeln ('Wrong guess !');
-end;
-
-Procedure CalcExit (X,Y,Z : longint);
-
-var tx,ty,tz,dx,dy,dz : longint;
-
-begin
-  dx:=0;dy:=0;dz:=0;
-  if x=1 then dx:=1 else if x=MaxSize then dx:=-1;
-  if y=1 then dy:=1 else if y=MaxSize then dy:=-1;
-  if z=1 then dz:=1 else if z=MaxSize then dz:=-1;
-  writeln ('Direction : ',dx,',',dy,',',dz);
-  repeat
-  for tx:=-1 to 1 do
-    for ty:=-1 to 1 do
-      for tz:=-1 to 1 do
-        if Cube [X+tx,y+ty,z+tz]<>0 then
-          begin
-          dx:=dx-tx;
-          dy:=dy-ty;
-          dz:=dz-tz;
-          end;
-  if dx<>0 then dx:=dx div abs(dx);
-  if dz<>0 then dz:=dz div abs(dz);
-  if dy<>0 then dy:=dy div abs(dy);
-  x:=x+dx;y:=y+dy;z:=z+dz;
-  until ((x=0) or (x=MaxSize+1)) or ((y=0) or (y=maxsize+1)) or
-        ((z=0) or (z=maxsize+1));
-  Writeln ('Beam exited at : (',x-dx,',',y-dy,',',z-dz,')');
-end;
-
-{
-Procedure DumpCube ;
-
-Var x,y,z : longint;
-
-begin
-  for x:=1 to MaxSize do
-    for y:=1 to maxsize do
-      for z:=1 to maxsize do
-        if Cube[x,y,z]<>0 then
-          writeln ('Atom at (',x,',',y,',',z,')');
-end;
-}
-
-begin
-  FillCube;
-  Guessed:=0;
-  Repeat
-    repeat
-      Write ('Shoot, guess or quit (s/g/q) : ');
-      readln (ans);
-      ans[1]:=Upcase(ans[1]);
-      if not (ans[1] in ['S','G','Q']) then
-        writeln ('Invalid entry. Please try again.');
-    until ans[1] in ['S','G','Q'];
-    Case ans[1] of
-     'S' : begin
-           getstart (x,y,z);
-           calcexit (x,y,z);
-           end;
-     'G' : If GetGuess then Inc(Guessed);
-    end;
-  until (ans[1]='Q') or (guessed=count);
-  If Guessed=count then
-    Writeln ('Congratulations! All ',Count,' correct !')
-  else
-    Writeln ('Only ',guessed,' out of ',count,' correct...');
-end.

+ 0 - 60
demo/text/eratos.pp

@@ -1,60 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-2005 by Florian Klaempfl
-
-    Eratos Example, Calculates all Prime Numbers from 1 to max
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program eratosthenes;
-
-  const
-{$ifndef MACOS}
-     max = 1000000;
-{$else}
-     max = 10000; {Actually it works with 100000 also, but not 1000000,}
-                  {in which case the OS refuses to start it.}
-{$endif}
-
-  var
-     a : array[1..max] of boolean;
-
-  procedure eratos;
-
-    var
-       i,j : longint;
-
-    begin
-       a[1]:=false;
-       for i:=2 to max do
-         a[i]:=true;
-       for i:=2 to max div 2 do
-         if a[i] then
-           for j:=2 to max div i do
-             a[i*j]:=false;
-       writeln;
-       j:=0;
-       for i:=1 to max do
-        begin
-          if a[i] then
-           begin
-             write(i:7);
-             inc(j);
-             if (j mod 10)=0 then
-              writeln;
-           end;
-        end;
-       writeln;
-    end;
-
-  begin
-     write('Calculating the Prime Numbers from 1 to ',max,'...');
-     eratos;
-  end.
-

+ 0 - 21
demo/text/hello.pp

@@ -1,21 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-98 by the Free Pascal Development Team
-
-    Hello World Example
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-program hello;
-
-  begin
-     writeln('Hello world');
-  end.
-

+ 0 - 74
demo/text/lines.pp

@@ -1,74 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-98 by Florian Klaempfl
-
-    Line Counter Example
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program count_lines;
-{
-  Program that counts number of Lines in a file
-}
-
-  uses
-     dos,crt;
-
-  type
-     td = array[1..10000] of byte;
-
-  var
-     lines : longint;
-     s : searchrec;
-     f : file;
-     d : ^td;
-{$ifdef tp}
-     count : word;
-     i,z   : integer;
-{$else}
-     count,i,z : longint;
-{$endif}
-
-  begin
-     lines:=0;
-     new(d);
-     if paramcount<1 then
-       begin
-          writeln('Usage: ',paramstr(0),' filename.ext [filename.ext] ...');
-          writeln('  Multiple File Names and Wild Cards Allowed:');
-          writeln('  Example: lines *.cpp stdio.h *.asm');
-          halt(1);
-       end;
-     for i:=1 to paramcount do
-       begin
-          findfirst(paramstr(i),archive,s);
-          while (doserror=0) do
-            begin
-               gotoxy(1,wherey);
-               write('                               ');
-               gotoxy(1,wherey);
-               write('Scanning: ',s.name);
-               assign(f,s.name);
-               reset(f,1);
-               while not(eof(f)) do
-                 begin
-                    blockread(f,d^,10000,count);
-                    for z:=1 to count do
-                      if d^[z]=10 then inc(lines);
-                 end;
-               close(f);
-               findnext(s);
-            end;
-       end;
-     dispose(d);
-     gotoxy(1,wherey);
-     write('                               ');
-     gotoxy(1,wherey);
-     if lines=1 then writeln('1 Line') else writeln(lines,' Lines');
-  end.

+ 0 - 97
demo/text/magic.pp

@@ -1,97 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-98 by Florian Klaempfl
-
-    Magic Square Example
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program magic;
-
-{
-  Calculate a magic square (sum of the row, colums and diagonals is equal
-}
-
-  const
-     maxsize = 11;
-
-  type
-     sqrtype = array[1..maxsize, 1..maxsize] of longint;
-
-  var
-     square : sqrtype;
-     size, row, sum : longint;
-
-  procedure makesquare(var sq : sqrtype;limit : longint);
-
-    var
-       num,r,c : longint;
-
-    begin
-       for r:=1 to limit do
-         for c:=1 to limit do
-           sq[r, c] := 0;
-       if (limit and 1)<>0 then
-         begin
-            r:=(limit+1) div 2;
-            c:=limit;
-            for num:=1 to limit*limit do
-              begin
-                 if sq[r,c]<>0 then
-                   begin
-                      dec(r);
-                      if r<1 then
-                        inc(r,limit);
-                      dec(c,2);
-                      if c<1 then
-                        inc(c,limit);
-                   end;
-                 sq[r,c]:=num;
-                 inc(r);
-                 if r>limit then
-                   dec(r,limit);
-                 inc(c);
-                 if c>limit then
-                   dec(c,limit);
-              end;
-         end;
-     end;
-
-  procedure writesquare(var sq : sqrtype;limit : longint);
-
-    var
-       row,col : longint;
-
-    begin
-       for row:=1 to Limit do
-         begin
-            for col:=1 to (limit div 2) do
-              write(sq[row,2*col-1]:4,' ',sq[row,2*col]:4,' ');
-            writeln(sq[row,limit]:4);
-         end;
-    end;
-
-begin
-  size:=3;
-  while (size<=maxsize) do
-    begin
-       writeln('Magic Square with size ',size);
-       writeln;
-       makesquare(square,size);
-       writesquare(square,size);
-       writeln;
-       sum:=0;
-       for row:=1 to size do
-         inc(sum,square[row,1]);
-       writeln('Sum of the rows,columns and diagonals = ', sum);
-       writeln;
-       writeln;
-       inc(size,2);
-    end;
-end.

+ 0 - 82
demo/text/qsort.pp

@@ -1,82 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-2005 by the Free Pascal Development Team
-
-    QuickSort Example
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program quicksort;
-
-  const
-{$ifndef MACOS}
-     max = 100000;
-{$else}
-     max = 1000; {Actually it works with 100000 also, but that might }
-                 {lead problems occacionally.}
-{$endif}
-
-  type
-     tlist = array[1..max] of longint;
-
-  var
-     data : tlist;
-
-
-procedure qsort(var a : tlist);
-
-    procedure sort(l,r: longint);
-      var
-         i,j,x,y: longint;
-      begin
-         i:=l;
-         j:=r;
-         x:=a[(l+r) div 2];
-         repeat
-           while a[i]<x do
-            inc(i);
-           while x<a[j] do
-            dec(j);
-           if not(i>j) then
-             begin
-                y:=a[i];
-                a[i]:=a[j];
-                a[j]:=y;
-                inc(i);
-                j:=j-1;
-             end;
-         until i>j;
-         if l<j then
-           sort(l,j);
-         if i<r then
-           sort(i,r);
-      end;
-
-    begin
-       sort(1,max);
-    end;
-
-var
-  i : longint;
-begin
-  write('Creating ',Max,' random numbers between 1 and 500000');
-  randomize;
-  for i:=1 to max do
-    data[i]:=random(500000);
-  writeln;
-  writeln('Sorting...');
-  qsort(data);
-  writeln;
-  for i:=1 to max do
-   begin
-     write(data[i]:7);
-     if (i mod 10)=0 then
-      writeln;
-   end;
-end.

+ 0 - 1547
demo/win32/Makefile

@@ -1,1547 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(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
-export ECHO
-endif
-override DEFAULT_FPCDIR=../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-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 $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=winhello menu dlltest testdll edit
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-STATICLIBPREFIX=libp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.asm
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-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
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-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
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-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
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
-FPCCPUOPT:=
-endif
-endif
-override FPCOPT+=-Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-OG2p3
-endif
-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 CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-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_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(FPC_VERSION),1.0.6)
-override FPCOPTDEF+=HASUNIX
-endif
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-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 HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.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 CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(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)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(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)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared:
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif

+ 0 - 9
demo/win32/Makefile.fpc

@@ -1,9 +0,0 @@
-#
-#   Makefile.fpc for FPC win32 demos (part of FPC demo package)
-#
-
-[target]
-programs_win32=winhello menu dlltest testdll edit
-
-[default]
-fpcdir=../..

+ 0 - 25
demo/win32/dlltest.pp

@@ -1,25 +0,0 @@
-{
-  Copyright (c) 1998 by Pierre Muller
-
-  Win32 DLL usage example. It needs testdll.pp
-}
-program dlltest;
-
-procedure p1(x:pointer);
- external 'testdll' name 'P1';
-procedure proc2(x:longint);
- external 'testdll' name 'Proc2';
-
-var
-   s : string;external 'testdll' name 'FPC_string';
-
-begin
-  writeln('Main: Hello!');
-  p1(nil);
-  writeln('Main: ',Hinstance,' ',Hprevinst);
-  writeln('Main: testdll s string = ',s);
-  s:='Changed by program';
-  proc2(1234);
-  writeln('Main: press enter');
-  readln;
-end.

+ 0 - 459
demo/win32/edit.pp

@@ -1,459 +0,0 @@
-{
-  Copyright (c) 1999 by Michael van Canneyt and Goran Andersson
-
-  Win32 editor example.
-}
-
-{ Derived from menu.pp
-
-Changes by Goeran Andersson:
-
-  2000.02.24
-    Handles WM_DrawBkgnd to reduce flicker
-    Changes to also compile in FPC mode
-
-Changes by Morten Skovrup:
-
-  2000-02-21
-    Change font
-    Modified statusbar
-
-Changes by Goeran Andersson:
-
-  2000.02.20
-    Sends focus to editor
-
-  2000.02.19
-    Client edge added to editor
-    Changes to also compile in FPC mode
-    Handles Edit modify flag
-    Undo menu item added
-    Key codes added to edit menu
-    Undo, Cut, Copy & Paste implemented
-    WM_Paint sections commented
-
-  1999.08.10
-    LoadText() added
-    NewText() added
-    File selector added
-    Asks to save file
-    Empty files works
-    EditCreate styles corrected
-}
-
-Program editdemo;
-
-{$APPTYPE GUI}
-
-Uses
-  Strings,Windows;
-
-Const
-  AppName = 'EditDemo';
-
-Type
-  TFileName = Array[0..Max_Path] Of Char;
-
-Var
-  AMessage              : Msg;
-  HWindow,HStatus,HEdit : HWnd;
-  TheFont               : HFont;
-  TheLogFont            : TLogFont;
-  TheColor              : DWORD;
-  FileName              : TFileName;
-
-{********************************************************************}
-
-Procedure SetStatusText(Num : Integer; Const Text : string);
-var
-  StatText : array[0..255] of Char;
-begin
-  if Num = 0 then
-    StatText[0] := ' '  // Add space to text in first item
-  else
-    StatText[0] := #9;  // Center the rest
-  StrPCopy(@StatText[1],Text);
-  SendMessage(HStatus,SB_SETTEXT,WPARAM(Num),LPARAM(@StatText));
-end;
-
-{********************************************************************}
-
-Function SelectFile(Var FName:TFileName; Open:Boolean): Boolean;
-Const
-  Filter : PChar = 'Text files (*.txt)'#0'*.txt'#0+
-                   'All files (*.*)'#0'*.*'#0#0;
-  Ext    : PChar = 'txt';
-Var
-  NameRec : OpenFileName;
-Begin
-  FillChar(NameRec,SizeOf(NameRec),0);
-  FName[0] := #0;
-  With NameRec Do
-    Begin
-      LStructSize := SizeOf(NameRec);
-      HWndOwner   := HWindow;
-      LpStrFilter := Filter;
-      LpStrFile   := @FName;
-      NMaxFile    := Max_Path;
-      Flags       := OFN_Explorer Or OFN_HideReadOnly;
-      If Open Then
-        Begin
-          Flags := Flags Or OFN_FileMustExist;
-        End;
-      LpStrDefExt := Ext;
-    End;
-  If Open Then
-      SelectFile := GetOpenFileName(@NameRec)
-  Else
-      SelectFile := GetSaveFileName(@NameRec);
-End;
-
-{********************************************************************}
-
-Procedure SaveText;
-Var
-  Len   : Longint;
-  P     : PChar;
-  F     : File;
-  FName : TFileName;
-Begin
-  If SelectFile(FName,False) Then
-    Begin
-      Assign(F,@FName);
-      Rewrite(F,1);
-      Len := GetWindowTextLength(HEdit);
-      GetMem(P,Len+1);
-      P[Len] := #0;
-      If Len>0 Then
-        Begin
-          GetWindowText(HEdit,P,Len+1);
-          BlockWrite(F,P^,Len);
-        End;
-      Close(F);
-      FreeMem(P,Len+1);
-      StrCopy(FileName,FName);
-      SetStatusText(0,StrPas(FileName));
-      SetStatusText(1,'');
-      SendMessage(HEdit,EM_SetModify,0,0);
-    End;
-End;
-
-{********************************************************************}
-
-Procedure AskSave;
-Const
-  BoxType = MB_IconQuestion Or MB_YesNo;
-Begin
-  If SendMessage(HEdit,EM_GetModify,0,0)<>0 Then
-    Begin
-      If MessageBox(HWindow,'Save text?','Edited',BoxType)=IdYes Then
-        Begin
-          SaveText;
-        End;
-    End;
-End;
-
-{********************************************************************}
-
-Procedure LoadText;
-Var
-  F     : File;
-  Len   : LongInt;
-  P     : PChar;
-Begin
-  AskSave;
-  If SelectFile(FileName,True) Then
-    Begin
-      Assign(F,@FileName);
-      Reset(F,1);
-      Len := FileSize(F);
-      GetMem(P,Len+1);
-      P[Len] := #0;
-      If Len>0 Then BlockRead(F,P^,Len);
-      Close(F);
-      SetWindowText(HEdit,P);
-      SendMessage(HEdit,EM_SetModify,0,0);
-      FreeMem(P,Len+1);
-      SetStatusText(0,StrPas(FileName));
-      SetStatusText(1,'');
-    End;
-End;
-
-{********************************************************************}
-
-Procedure NewText;
-Const
-  Empty : PChar = '';
-Begin
-  AskSave;
-  FileName := 'Unsaved';
-  SetStatusText(0,StrPas(FileName));
-  SendMessage(HEdit,WM_SetText,1,LRESULT(Empty));
-  SendMessage(HEdit,EM_SetModify,0,0);
-End;
-
-{********************************************************************}
-
-procedure SelectFont;
-var
-  ChooseFontRec : TChooseFont;
-begin
-  with ChooseFontRec do
-    begin
-      lStructSize    := SizeOf(ChooseFontRec);
-      hwndOwner      := HWindow;
-      hDC            := 0;
-      lpLogFont      := @TheLogFont;
-      iPointSize     := 0;
-      Flags          := CF_INITTOLOGFONTSTRUCT or CF_SCREENFONTS or CF_EFFECTS;
-      rgbColors      := TheColor;
-      lCustData      := 0;
-      lpfnHook       := nil;
-      lpTemplateName := nil;
-      hInstance      := 0;
-      lpszStyle      := nil;
-      nFontType      := 0;
-      nSizeMin       := 0;
-      nSizeMax       := 0;
-    end;
-  if ChooseFont(@ChooseFontRec) then
-    begin
-      DeleteObject(TheFont);
-      TheColor := ChooseFontRec.rgbColors;
-      TheFont  := CreateFontIndirect(@TheLogFont);
-      SendMessage(HEdit,WM_SETFONT,WPARAM(TheFont),1);
-    end;
-end;
-
-{********************************************************************}
-
-Function WindowProc (Window:HWnd;AMessage: UINT;WParam:WPARAM; LParam:LPARAM): LRESULT;
-stdcall; export;
-Var
-  R        : rect;
-  StatH    : LONG;
-  NrMenu   : Longint;
-  NotiCode : LongInt;
-Begin
-  WindowProc := 0;
-  Case AMessage Of
-    wm_Close:
-      Begin
-        AskSave;
-      End;
-    wm_Destroy:
-      Begin
-        PostQuitMessage (0);
-        Exit;
-      End;
-    wm_SetFocus:
-      Begin
-        SetFocus(HEdit);
-      End;
-    WM_EraseBkgnd:
-      Begin
-        Exit(1);
-      End;
-    wm_Size:
-      Begin
-        GetClientRect(HStatus,@R);
-        StatH := R.Bottom-R.Top;
-        GetClientRect(Window,@R);
-        MoveWindow (HEdit,0,0,R.Right,R.Bottom-StatH,False);
-        MoveWindow (HStatus,0,R.Bottom-StatH,R.Right,R.Bottom,False);
-      End;
-    wm_Command:
-      Begin
-        NotiCode := HiWord(WParam);
-        Case NotiCode of
-          en_Change     : //Editor has changed
-            Begin
-              If SendMessage(HEdit,EM_GetModify,0,0)<>0 then
-                SetStatusText(1,'Modified')
-              Else
-                SetStatusText(1,'');
-            End;
-          Else
-            Begin //Menu item
-              NrMenu := LoWord(WParam);
-              Case NrMenu Of
-                101 : NewText;
-                102 : LoadText;
-                103 : SaveText;
-                104 : PostMessage(Window,WM_Close,0,0);
-                201 : SendMessage(HEdit,WM_Undo,0,0);
-                202 : SendMessage(HEdit,WM_Cut,0,0);
-                203 : SendMessage(HEdit,WM_Copy,0,0);
-                204 : SendMessage(HEdit,WM_Paste,0,0);
-                301 : SelectFont;
-                401 : MessageBox(Window,'Help','Not implemented',
-                                 MB_OK Or MB_IconInformation);
-              End;
-            End;
-        End;
-      End;
-    wm_CtlColorEdit :
-      Begin
-        SetTextColor(WParam,TheColor);
-        Exit(GetSysColorBrush(COLOR_WINDOW));
-      End;
-  End;
-  WindowProc := DefWindowProc(Window,AMessage,WParam,LParam);
-End;
-
-{********************************************************************}
-
-Function WinRegister: Boolean;
-Var
-  WindowClass : WndClass;
-Begin
-  With WindowClass Do
-    Begin
-      Style         := cs_hRedraw Or cs_vRedraw;
-      lpfnWndProc   := WndProc(@WindowProc);
-      cbClsExtra    := 0;
-      cbWndExtra    := 0;
-      hInstance     := system.MainInstance;
-      hIcon         := LoadIcon (0,idi_Application);
-      hCursor       := LoadCursor (0,idc_Arrow);
-      hbrBackground := GetStockObject(GRAY_BRUSH);
-      lpszMenuName  := Nil;
-      lpszClassName := AppName;
-    End;
-  WinRegister := RegisterClass (WindowClass)<>0;
-End;
-
-{********************************************************************}
-
-Function EditCreate(ParentWindow,Status:HWnd): HWnd;
-Const
-  CS_Start = WS_Child or WS_HScroll or WS_VScroll or ES_MultiLine or ES_Left;
-  CS_Ex    = WS_EX_ClientEdge;
-  EdiTText : PChar = '';
-Var
-  HEdit : HWND;
-  R     : TRect;
-  StatH : Word;
-Begin
-  GetClientRect(Status,@R);
-  StatH := R.Bottom-R.Top;
-  GetClientRect(ParentWindow,@R);
-  HEdit := CreateWindowEx (CS_Ex,'EDIT',EditText,CS_Start,0,0,
-                           R.Right-R.Left,R.Bottom-R.Top-StatH,ParentWindow,0,
-                           MainInstance,Nil);
-  If HEdit<>0 Then
-    Begin
-      //Set Courier new as default font
-      with TheLogFont do
-        begin
-          lfHeight         := 0;                // Default logical height of font
-          lfWidth          := 0;                // Default logical average character width
-          lfEscapement     := 0;                // angle of escapement
-          lfOrientation    := 0;                // base-line orientation angle
-          lfWeight         := FW_NORMAL;        // font weight
-          lfItalic         := 0;                // italic attribute flag
-          lfUnderline      := 0;                // underline attribute flag
-          lfStrikeOut      := 0;                // strikeout attribute flag
-          lfCharSet        := DEFAULT_CHARSET;  // character set identifier
-          lfOutPrecision   := OUT_DEFAULT_PRECIS;  // output precision
-          lfClipPrecision  := CLIP_DEFAULT_PRECIS; // clipping precision
-          lfQuality        := DEFAULT_QUALITY;     // output quality
-          lfPitchAndFamily := DEFAULT_PITCH;    // pitch and family
-          Strcopy(lfFaceName,'Courier New');    // pointer to typeface name string
-        end;
-      TheColor := GetSysColor(COLOR_WINDOWTEXT);
-      TheFont  := CreateFontIndirect(@TheLogFont);
-      SendMessage(HEdit,WM_SETFONT,WPARAM(TheFont),1);
-      ShowWindow(Hedit,SW_Show);
-      UpdateWindow(HEdit);
-    End;
-  EditCreate := HEdit;
-End;
-
-{********************************************************************}
-
-Function WinCreate: HWnd;
-
-Var hWindow : HWnd;
-    Menu    : hMenu;
-    SubMenu : hMenu;
-Begin
-  hWindow := CreateWindow (AppName,'EditDemo',ws_OverlappedWindow,
-                           cw_UseDefault,cw_UseDefault,cw_UseDefault,
-                           cw_UseDefault,0,0,MainInstance,Nil);
-  If hWindow<>0 Then
-    Begin
-      Menu := CreateMenu;
-      SubMenu := CreateMenu;
-      AppendMenu(Submenu,MF_STRING,101,'&New...');
-      AppendMenu(Submenu,MF_STRING,102,'&Open...');
-      AppendMenu(Submenu,MF_STRING,103,'&Save...');
-      AppendMenu(Submenu,MF_SEPARATOR,0,Nil);
-      AppendMenu(SubMenu,MF_String,104,'E&xit');
-      AppendMenu(Menu,MF_POPUP,SubMenu,'&File');
-      SubMenu := CreateMenu;
-      AppendMenu(SubMenu,MF_String,201,'&Undo'#8'Ctrl+Z');
-      AppendMenu(Submenu,MF_SEPARATOR,0,Nil);
-      AppendMenu(SubMenu,MF_String,202,'&Cut'#8'Ctrl+X');
-      AppendMenu(SubMenu,MF_String,203,'&Copy'#8'Ctrl+C');
-      AppendMenu(SubMenu,MF_STRING,204,'&Paste'#8'Ctrl+V');
-      AppendMenu(Menu,MF_POPUP,SubMenu,'&Edit');
-      SubMenu := CreateMenu;
-      AppendMenu(SubMenu,MF_String,301,'&Font...');
-      AppendMenu(Menu,MF_POPUP,SubMenu,'&Options');
-      AppendMenu(Menu,MF_STRING,401,'&Help');
-      SetMenu(hWindow,menu);
-      ShowWindow(hWindow,SW_Show);
-      UpdateWindow(hWindow);
-    End;
-  WinCreate := hWindow;
-End;
-
-{********************************************************************}
-
-Function StatusCreate (parent:hwnd): HWnd;
-var
-  AWnd   : HWnd;
-  Edges  : array[1..2] of LongInt;
-Begin
-  FileName := 'Unsaved';
-  AWnd := CreateStatusWindow(WS_CHILD or WS_VISIBLE,FileName,Parent,$7712);
-  // Create items:
-  if AWnd <> 0 then
-    begin
-      Edges[1] := 400;
-      Edges[2] := 500;
-      SendMessage(AWnd,SB_SETPARTS,2,LPARAM(@Edges));
-    end;
-  StatusCreate := AWnd;
-End;
-
-{********************************************************************}
-
-Begin
-  If Not WinRegister Then
-    Begin
-      MessageBox (0,'Register failed',Nil, mb_Ok);
-    End
-  Else
-    Begin
-      hWindow := WinCreate;
-      If longint(hWindow)=0 Then
-        Begin
-          MessageBox (0,'WinCreate failed',Nil,MB_OK);
-        End
-      Else
-        Begin
-          HStatus := statuscreate(hwindow);
-          HEdit := EditCreate(HWindow,HStatus);
-          SetFocus(HEdit);
-          While GetMessage(@AMessage,0,0,0) Do
-            Begin
-              TranslateMessage(AMessage);
-              DispatchMessage(AMessage);
-            End;
-          DeleteObject(TheFont);
-          Halt(AMessage.wParam);
-        End;
-    End;
-End.

+ 0 - 339
demo/win32/menu.pp

@@ -1,339 +0,0 @@
-  Copyright (c) 1999 by Michael van Canneyt
-
-  Win32 menu creation example.
-}
-
-{ Changes by G”ran Andersson:                                  major
-  const FileMenus[] removed
-  const filename removed
-  type TFileName added
-  SelectFile() added                                           *
-  LoadText() added                                             *
-  SaveText():
-    SelectFile used                                            *
-    uses GetWindowTextLength & GetWindowText
-    also saves empty files
-    uses untyped file
-    FreeMem frees Len+1, not Len
-  AskSave() added                                              *
-  NewText() added                                              *
-  WindowProc():
-    WM_Close added
-    WM_Size don't assumes StatH=16
-    WM_Command 101 calls NewText
-    WM_Command 102 calls LoadText
-    WM_Command 104 issues a WM_Close instead of doing a Halt
-  WinRegister():
-    with structure used
-  EditCreate():
-    takes Status object as parameter
-    const EditText changed to empty string
-    unused variable DC removed
-    WS_HScroll & WS_VScroll added to const CS_Start
-    ES_AutoHScroll & ES_AutoVScroll removed from CS_Start
-    don't assumes StatH=16
-    AddText() commented out
-  WinCreate():
-    menu creation moved inside if structure
-    Options menu item uses the newly created SubMenu
-  main:
-    slight structure change (avoid unneccesary Exit)
-    call to StatusCreate before EditCreate
-
-2do:
-  make edit panel always active
-  add 3d inner bevel to edit panel
-  window background color : white
-  only ask to save if edited
-  cut
-  copy
-  paste
-  settings
-  help
-}
-
-Program menudemo;
-{$APPTYPE GUI}
-{$MODE DELPHI}
-
-Uses Strings,Windows;
-
-Const AppName = 'MenuDemo';
-
-Var AMessage: Msg;
-    hWindow,hStatus,Hedit: HWnd;
-    WindowClass: WndClass;
-    Menu: hMenu;
-
-Const
-  EditMenus: Array[201..203] Of pchar = ('Cut','copy','paste');
-
-Type
-  TFileName = Array[0..Max_Path] Of Char;
-
-Function SelectFile(Var FName:TFileName; Open:Boolean): Boolean;
-
-Const
-  Filter: PChar = 'Text files (*.txt)'#0'*.txt'#0'All files (*.*)'#0'*.*'#0;
-  Ext: PChar = 'txt';
-
-Var
-  NameRec: OpenFileName;
-Begin
-  FillChar(NameRec,SizeOf(NameRec),0);
-  FName[0] := #0;
-  With NameRec Do
-    Begin
-      LStructSize := SizeOf(NameRec);
-      HWndOwner := HWindow;
-      LpStrFilter := Filter;
-      LpStrFile := @FName;
-      NMaxFile := Max_Path;
-      Flags := OFN_Explorer Or OFN_HideReadOnly;
-      If Open Then
-        Begin
-          Flags := Flags Or OFN_FileMustExist;
-        End;
-      LpStrDefExt := Ext;
-    End;
-  If Open Then
-      SelectFile := GetOpenFileName(@NameRec)
-  Else
-      SelectFile := GetSaveFileName(@NameRec);
-End;
-
-Procedure SaveText;
-
-Var Len: Longint;
-    P: PChar;
-    F: File;
-    FName: TFileName;
-Begin
-  If SelectFile(FName,False) Then
-    Begin
-      Assign(F,@FName);
-      Rewrite(F,1);
-      Len := GetWindowTextLength(HEdit);
-      GetMem(P,Len+1);
-      P[Len] := #0;
-      If Len>0 Then
-        Begin
-          GetWindowText(HEdit,P,Len+1);
-          BlockWrite(F,P^,Len);
-        End;
-      Close(F);
-      FreeMem(P,Len+1);
-    End;
-End;
-
-Procedure AskSave;
-Begin
-  If MessageBox(HWindow,'Save text?','Edited',MB_IconQuestion Or MB_YesNo)=IdYes Then
-    Begin
-      SaveText;
-    End;
-End;
-
-Procedure LoadText;
-
-Var
-  FName: TFileName;
-  F: File;
-  Len: LongInt;
-  P: PChar;
-Begin
-  AskSave;
-  If SelectFile(FName,True) Then
-    Begin
-      Assign(F,@FName);
-      Reset(F,1);
-      Len := FileSize(F);
-      GetMem(P,Len+1);
-      P[Len] := #0;
-      If Len>0 Then BlockRead(F,P^,Len);
-      Close(F);
-      SetWindowText(HEdit,P);
-      FreeMem(P,Len+1);
-    End;
-End;
-
-Procedure NewText;
-
-Const
-  Empty: PChar = '';
-Begin
-  AskSave;
-  SendMessage(HEdit,WM_SetText,1,LongInt(Empty));
-End;
-
-Function WindowProc (Window:HWnd;AMessage : UINT; WParam : WParam; LParam:LParam): LResult;
-stdcall;
-export;
-
-Var ps: paintstruct;
-    r: rect;
-    StatH: Word;
-    nrmenu : longint;
-Begin
-  WindowProc := 0;
-  Case AMessage Of
-    wm_Paint:
-              Begin
-                BeginPaint(Window,@ps);
-                GetClientRect(Window,@r);
-                EndPaint(Window,ps);
-                Exit;
-              End;
-    wm_Close:
-              Begin
-                AskSave;
-              End;
-    wm_Destroy:
-                Begin
-                  PostQuitMessage (0);
-                  Exit;
-                End;
-    wm_Size:
-             Begin
-               if HStatus<>0 then
-                 begin
-                   GetClientRect(HStatus,@R);
-                   StatH := R.Bottom-R.Top;
-                   GetClientRect(Window,@R);
-                   MoveWindow (hStatus,r.left,r.bottom-StatH,r.right,r.bottom,true);
-                   if HEdit<>0 then
-                     MoveWindow (HEdit,0,0,r.right-r.left,r.bottom-r.top-StatH,true);
-                 end;
-             End;
-    wm_Command:
-                Begin
-                  NrMenu := WParam And $FFFF;
-                  Case NrMenu Of
-                    101 : NewText;
-                    102 : LoadText;
-                    103 : SaveText;
-                    104 : PostMessage(Window,WM_Close,0,0);
-                    201..203: MessageBox(Window,EditMenus[NrMenu],
-                                         'Edit operation not implemented',MB_OK Or
-                                         MB_IconInformation);
-                  End;
-                End;
-  End;
-  WindowProc := DefWindowProc(Window,AMessage,WParam,LParam);
-End;
-
-Function WinRegister: Boolean;
-Begin
-  With WindowClass Do
-    Begin
-      Style := cs_hRedraw Or cs_vRedraw;
-      lpfnWndProc := WndProc(@WindowProc);
-      cbClsExtra := 0;
-      cbWndExtra := 0;
-      hInstance := system.MainInstance;
-      hIcon := LoadIcon (0,idi_Application);
-      hCursor := LoadCursor (0,idc_Arrow);
-      hbrBackground := GetStockObject(GRAY_BRUSH);
-      lpszMenuName := 'Files';
-      lpszClassName := AppName;
-    End;
-  Result := RegisterClass (WindowClass)<>0;
-End;
-
-Function EditCreate(ParentWindow,Status:HWnd): HWnd;
-
-Const
-  CS_Start = WS_Child or WS_HScroll or WS_VScroll or ES_MultiLine or ES_Left;
-  EdiTText: PChar = '';
-
-Var
-  HEdit: HWND;
-  R: TRect;
-  StatH: Word;
-{                                             rev 1.5 : comment out
-  Procedure AddText (S:String);
-  begin
-    S:=S+#0;
-    SendMessage(HEdit,em_replacesel,0,longint(pchar(@S[1])));
-  end;
-}
-Begin
-  GetClientRect(Status,@R);
-  StatH := R.Bottom-R.Top;
-  GetClientRect(ParentWindow,@R);
-  HEdit := CreateWindow ('EDIT',EditText,CS_Start,0,0,
-                       R.Right-R.Left,R.Bottom-R.top-StatH,ParentWindow,0,
-                       System.MainInstance,Nil);
-  If HEdit<>0 Then
-    Begin
-      ShowWindow(Hedit,cmdShow);
-      UpdateWindow(HEdit);
-    End;
-  Result := HEdit;
-End;
-
-Function WinCreate: HWnd;
-
-Var hWindow: HWnd;
-    SubMenu: hMenu;
-Begin
-  hWindow := CreateWindow (AppName,'MenuDemo',ws_OverlappedWindow,
-                         cw_UseDefault,cw_UseDefault,cw_UseDefault,
-                         cw_UseDefault,0,0,system.MainInstance,Nil);
-  If hWindow<>0 Then
-    Begin
-      Menu := CreateMenu;
-      SubMenu := CreateMenu;
-      AppendMenu(Submenu,MF_STRING,101,'&New...');
-      AppendMenu(Submenu,MF_STRING,102,'&Open...');
-      AppendMenu(Submenu,MF_STRING,103,'&Save...');
-      AppendMenu(Submenu,MF_SEPARATOR,0,Nil);
-      AppendMenu(SubMenu,MF_String,104,'E&xit');
-      AppendMenu(Menu,MF_POPUP,SubMenu,'&Files');
-      SubMenu := CreateMenu;
-      AppendMenu(SubMenu,MF_String,201,'&Cut');
-      AppendMenu(SubMenu,MF_String,202,'&Copy');
-      AppendMenu(SubMenu,MF_STRING,203,'&Paste');
-      AppendMenu(Menu,MF_POPUP,SubMenu,'&Edit');
-      SubMenu := CreateMenu;
-      AppendMenu(SubMenu,MF_String,301,'&Settings');
-      AppendMenu(Menu,MF_POPUP,SubMenu,'&Options');
-      AppendMenu(Menu,MF_STRING,0,'&Help');
-      SetMenu(hWindow,menu);
-      ShowWindow(hWindow,CmdShow);
-      ShowWindow(hWindow,SW_SHOW);
-      UpdateWindow(hWindow);
-    End;
-  Result := hWindow;
-End;
-
-Function StatusCreate (parent:hwnd): HWnd;
-Begin
-  StatusCreate := CreateStatusWindow (WS_CHILD Or WS_VISIBLE,'Ready...',parent,$7712);
-End;
-
-Begin
-  If Not WinRegister Then
-    Begin
-      MessageBox (0,'Register failed',Nil, mb_Ok);
-    End
-  Else
-    Begin
-      hWindow := WinCreate;
-      If longint(hWindow)=0 Then
-        Begin
-          MessageBox (0,'WinCreate failed',Nil,MB_OK);
-        End
-      Else
-        Begin
-          HStatus := statuscreate(hwindow);
-          HEdit := EditCreate(HWindow,HStatus);
-          While GetMessage(@AMessage,0,0,0) Do
-          Begin
-            TranslateMessage(AMessage);
-            DispatchMessage(AMessage);
-          End;
-          Halt(AMessage.wParam);
-        End;
-    End;
-End.

+ 0 - 61
demo/win32/testdll.pp

@@ -1,61 +0,0 @@
-{
-  Copyright (c) 1998 by Pierre Muller
-
-  Win32 DLL usage example. It needs dlltest.pp
-}
-library testdll;
-
-function GetModuleFileName(hModule:longint;lpszPath:pchar;cchPath:longint):longint;
- external 'kernel32' name 'GetModuleFileNameA';
-procedure beep(ID:longint);
- external 'user32' name 'MessageBeep';
-
-var
-  teststr : string;
-
-procedure P1(var s:string);export;
-var
-  p:array[0..255] of char;
-begin
-  length(s);
-  getmodulefilename(Hinstance,@p,255);
-  writeln('DLL: Hello, I''m DLL ',pchar(@p));
-end;
-
-procedure P2(x:longint);export;
-begin
-  writeln('DLL: Argument X=',x);
-  writeln('DLL: New teststr="',teststr,'"');
-end;
-
-procedure P3(var t);export;
-var
-  p : pointer;
-begin
-  p:=Addr(T);
-  p:=p;
-end;
-
-procedure P4(x1:pointer);export;
-begin
-  Inc(x1);
-end;
-
-procedure NewExit;
-begin
-  beep(0);
-  writeln('DLL: Exit from testdll');
-end;
-
-exports
- P1 index 1,
- P2 name 'Proc2',
- P3,
- P4 resident,
- teststr name 'FPC_string';
-
-begin
-  writeln('DLL: HInstance ',Hinstance,'  PrevInst ',Hprevinst,'  DLLReason ',DLLreason,'  DLLParam ',DLLparam);
-  teststr:='DLL init done';
-  exitproc:=@newExit;
-end.

+ 0 - 109
demo/win32/winhello.pp

@@ -1,109 +0,0 @@
-{
-  Copyright (c) 1996 by Charlie Calvert
-  Modifications by Florian Klaempfl
-
-  Standard Windows API application written in Object Pascal.
-  No VCL code included. This is all done on the Windows API
-  level.
-}
-
-{$APPTYPE GUI}
-{$MODE DELPHI}
-program WinHello;
-
-uses
-  Strings, Windows;
-
-const
-  AppName = 'WinHello';
-
-function WindowProc(Window: HWnd; AMessage: UINT; WParam : WPARAM;
-                    LParam: LPARAM): LRESULT; stdcall; export;
-
-  var
-     dc : hdc;
-     ps : paintstruct;
-     r : rect;
-
-begin
-  WindowProc := 0;
-
-  case AMessage of
-    wm_paint:
-      begin
-         dc:=BeginPaint(Window,@ps);
-         GetClientRect(Window,@r);
-         DrawText(dc,'Hello world by Free Pascal',-1,@r,
-           DT_SINGLELINE or DT_CENTER or DT_VCENTER);
-         EndPaint(Window,ps);
-         Exit;
-      end;
-    wm_Destroy:
-      begin
-         PostQuitMessage(0);
-         Exit;
-      end;
-  end;
-
-  WindowProc := DefWindowProc(Window, AMessage, WParam, LParam);
-end;
-
- { Register the Window Class }
-function WinRegister: Boolean;
-var
-  WindowClass: WndClass;
-begin
-  WindowClass.Style := cs_hRedraw or cs_vRedraw;
-  WindowClass.lpfnWndProc := WndProc(@WindowProc);
-  WindowClass.cbClsExtra := 0;
-  WindowClass.cbWndExtra := 0;
-  WindowClass.hInstance := system.MainInstance;
-  WindowClass.hIcon := LoadIcon(0, idi_Application);
-  WindowClass.hCursor := LoadCursor(0, idc_Arrow);
-  WindowClass.hbrBackground := GetStockObject(WHITE_BRUSH);
-  WindowClass.lpszMenuName := nil;
-  WindowClass.lpszClassName := AppName;
-
-  Result := RegisterClass(WindowClass) <> 0;
-end;
-
- { Create the Window Class }
-function WinCreate: HWnd;
-var
-  hWindow: HWnd;
-begin
-  hWindow := CreateWindow(AppName, 'Hello world program',
-              ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,
-              cw_UseDefault, cw_UseDefault, 0, 0, system.MainInstance, nil);
-
-  if hWindow <> 0 then begin
-    ShowWindow(hWindow, CmdShow);
-    ShowWindow(hWindow, SW_SHOW);
-    UpdateWindow(hWindow);
-  end;
-
-  Result := hWindow;
-end;
-
-
-var
-  AMessage: Msg;
-  hWindow: HWnd;
-
-begin
-  if not WinRegister then begin
-    MessageBox(0, 'Register failed', nil, mb_Ok);
-    Exit;
-  end;
-  hWindow := WinCreate;
-  if longint(hWindow) = 0 then begin
-    MessageBox(0, 'WinCreate failed', nil, mb_Ok);
-    Exit;
-  end;
-
-  while GetMessage(@AMessage, 0, 0, 0) do begin
-    TranslateMessage(AMessage);
-    DispatchMessage(AMessage);
-  end;
-  Halt(AMessage.wParam);
-end.