Browse Source

* libgd moved

git-svn-id: trunk@10005 -
marco 17 years ago
parent
commit
35abcb60f3

+ 7 - 25
.gitattributes

@@ -1091,23 +1091,6 @@ packages/extra/amunits/utilunits/tagsarray.pas svneol=native#text/plain
 packages/extra/amunits/utilunits/timerutils.pas svneol=native#text/plain
 packages/extra/amunits/utilunits/timerutils.pas svneol=native#text/plain
 packages/extra/amunits/utilunits/vartags.pas svneol=native#text/plain
 packages/extra/amunits/utilunits/vartags.pas svneol=native#text/plain
 packages/extra/amunits/utilunits/wbargs.pas svneol=native#text/plain
 packages/extra/amunits/utilunits/wbargs.pas svneol=native#text/plain
-packages/extra/cdrom/Makefile svneol=native#text/plain
-packages/extra/cdrom/Makefile.fpc svneol=native#text/plain
-packages/extra/cdrom/README -text
-packages/extra/cdrom/cdrom.pp svneol=native#text/plain
-packages/extra/cdrom/cdromioctl.pp svneol=native#text/plain
-packages/extra/cdrom/cdromlin.inc svneol=native#text/plain
-packages/extra/cdrom/cdromw32.inc svneol=native#text/plain
-packages/extra/cdrom/discid.pp svneol=native#text/plain
-packages/extra/cdrom/fpmake.inc svneol=native#text/plain
-packages/extra/cdrom/fpmake.pp svneol=native#text/plain
-packages/extra/cdrom/getdiscid.pp svneol=native#text/plain
-packages/extra/cdrom/lincd.pp svneol=native#text/plain
-packages/extra/cdrom/major.pp svneol=native#text/plain
-packages/extra/cdrom/scsidefs.pp svneol=native#text/plain
-packages/extra/cdrom/showcds.pp svneol=native#text/plain
-packages/extra/cdrom/wincd.pp svneol=native#text/plain
-packages/extra/cdrom/wnaspi32.pp svneol=native#text/plain
 packages/extra/fftw/Makefile -text
 packages/extra/fftw/Makefile -text
 packages/extra/fftw/Makefile.fpc -text
 packages/extra/fftw/Makefile.fpc -text
 packages/extra/fftw/example.pas -text
 packages/extra/fftw/example.pas -text
@@ -1355,14 +1338,6 @@ packages/extra/graph/unix/graph16.inc svneol=native#text/plain
 packages/extra/graph/win32/graph.pp svneol=native#text/plain
 packages/extra/graph/win32/graph.pp svneol=native#text/plain
 packages/extra/graph/win32/wincrt.pp svneol=native#text/plain
 packages/extra/graph/win32/wincrt.pp svneol=native#text/plain
 packages/extra/graph/win32/winmouse.pp svneol=native#text/plain
 packages/extra/graph/win32/winmouse.pp svneol=native#text/plain
-packages/extra/libgd/Makefile svneol=native#text/plain
-packages/extra/libgd/Makefile.fpc svneol=native#text/plain
-packages/extra/libgd/README -text
-packages/extra/libgd/fpmake.inc svneol=native#text/plain
-packages/extra/libgd/fpmake.pp svneol=native#text/plain
-packages/extra/libgd/gd.pp svneol=native#text/plain
-packages/extra/libgd/gdtest.pp svneol=native#text/plain
-packages/extra/libgd/gdtestcgi.pp svneol=native#text/plain
 packages/extra/libndsfpc/Makefile svneol=native#text/plain
 packages/extra/libndsfpc/Makefile svneol=native#text/plain
 packages/extra/libndsfpc/Makefile.fpc svneol=native#text/plain
 packages/extra/libndsfpc/Makefile.fpc svneol=native#text/plain
 packages/extra/libndsfpc/dswifi/dswifi7.inc svneol=native#text/plain
 packages/extra/libndsfpc/dswifi/dswifi7.inc svneol=native#text/plain
@@ -4073,6 +4048,13 @@ packages/libcurl/fpmake.pp svneol=native#text/plain
 packages/libcurl/src/libcurl.pp svneol=native#text/plain
 packages/libcurl/src/libcurl.pp svneol=native#text/plain
 packages/libcurl/tests/testcurl.pp svneol=native#text/plain
 packages/libcurl/tests/testcurl.pp svneol=native#text/plain
 packages/libcurl/tests/teststream.pp svneol=native#text/plain
 packages/libcurl/tests/teststream.pp svneol=native#text/plain
+packages/libgd/Makefile svneol=native#text/plain
+packages/libgd/Makefile.fpc svneol=native#text/plain
+packages/libgd/README svneol=native#text/plain
+packages/libgd/fpmake.pp svneol=native#text/plain
+packages/libgd/src/gd.pp svneol=native#text/plain
+packages/libgd/tests/gdtest.pp svneol=native#text/plain
+packages/libgd/tests/gdtestcgi.pp svneol=native#text/plain
 packages/libpng/Makefile svneol=native#text/plain
 packages/libpng/Makefile svneol=native#text/plain
 packages/libpng/Makefile.fpc svneol=native#text/plain
 packages/libpng/Makefile.fpc svneol=native#text/plain
 packages/libpng/fpmake.pp svneol=native#text/plain
 packages/libpng/fpmake.pp svneol=native#text/plain

+ 0 - 14
.gitignore

@@ -591,13 +591,6 @@ packages/extra/amunits/utilunits/*.ppu
 packages/extra/amunits/utilunits/*.s
 packages/extra/amunits/utilunits/*.s
 packages/extra/amunits/utilunits/fpcmade.*
 packages/extra/amunits/utilunits/fpcmade.*
 packages/extra/amunits/utilunits/units
 packages/extra/amunits/utilunits/units
-packages/extra/cdrom/*.bak
-packages/extra/cdrom/*.exe
-packages/extra/cdrom/*.o
-packages/extra/cdrom/*.ppu
-packages/extra/cdrom/*.s
-packages/extra/cdrom/fpcmade.*
-packages/extra/cdrom/units
 packages/extra/fftw/*.bak
 packages/extra/fftw/*.bak
 packages/extra/fftw/*.exe
 packages/extra/fftw/*.exe
 packages/extra/fftw/*.o
 packages/extra/fftw/*.o
@@ -729,13 +722,6 @@ packages/extra/graph/inc/*.s
 packages/extra/graph/inc/fpcmade.*
 packages/extra/graph/inc/fpcmade.*
 packages/extra/graph/inc/units
 packages/extra/graph/inc/units
 packages/extra/graph/units
 packages/extra/graph/units
-packages/extra/libgd/*.bak
-packages/extra/libgd/*.exe
-packages/extra/libgd/*.o
-packages/extra/libgd/*.ppu
-packages/extra/libgd/*.s
-packages/extra/libgd/fpcmade.*
-packages/extra/libgd/units
 packages/extra/numlib/*.bak
 packages/extra/numlib/*.bak
 packages/extra/numlib/*.exe
 packages/extra/numlib/*.exe
 packages/extra/numlib/*.o
 packages/extra/numlib/*.o

+ 0 - 2132
packages/extra/cdrom/Makefile

@@ -1,2132 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
-#
-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-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-OSNeedsComspecToRunBatch = go32v2 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 COMSPEC
-ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
-RUNBATCH=$(COMSPEC) /C
-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))
-ifneq ($(CPU_TARGET),)
-FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
-else
-FPC:=$(shell $(FPCPROG) -PB)
-endif
-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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-override PACKAGE_NAME=cdrom
-override PACKAGE_VERSION=2.0.0
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=cdrom discid
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_IMPLICITUNITS+=major lincd
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_IMPLICITUNITS+=scsidefs wnaspi32 cdromioctl wincd
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_IMPLICITUNITS+=major lincd
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_IMPLICITUNITS+=major lincd
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_IMPLICITUNITS+=major lincd
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_IMPLICITUNITS+=major lincd
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_IMPLICITUNITS+=major lincd
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_IMPLICITUNITS+=major lincd
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_EXAMPLES+=showcds getdiscid
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_EXAMPLES+=showcds getdiscid
-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
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-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
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-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
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-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=.s
-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 /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-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-darwin)
-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),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-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),m68k-embedded)
-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-amiga)
-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),powerpc-embedded)
-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),sparc-embedded)
-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),x86_64-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-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
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX)
-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
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-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
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-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 AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-ifdef RUNBATCH
-EXECPPAS:=@$(RUNBATCH) $(PPAS)
-else
-EXECPPAS:=@$(PPAS)
-endif
-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)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_examples
-ifneq ($(TARGET_EXAMPLES),)
-HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
-override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-endif
-ifneq ($(TARGET_EXAMPLEDIRS),)
-HASEXAMPLES=1
-endif
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(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 %.inc $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
-	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
-	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
-	@$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
-	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-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))) $(addprefix $(IMPORTLIBPREFIX),$(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
-ifdef RUNBATCH
-	$(RUNBATCH) (ZIPWRAPPER)
-else
-	$(ZIPWRAPPER)
-endif
-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))) $(addprefix $(IMPORTLIBPREFIX),$(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: fpc_examples
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall: fpc_distinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
-zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_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
-.NOTPARALLEL:

+ 0 - 22
packages/extra/cdrom/Makefile.fpc

@@ -1,22 +0,0 @@
-#
-#   Makefile.fpc for cdrom
-#
-
-[package]
-name=cdrom
-version=2.0.0
-
-[target]
-units=cdrom discid
-implicitunits_win32=scsidefs wnaspi32 cdromioctl wincd
-implicitunits_linux=major lincd
-examples=showcds getdiscid
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../..
-
-[rules]
-.NOTPARALLEL:

+ 0 - 176
packages/extra/cdrom/README

@@ -1,176 +0,0 @@
-This directory contains some CD-ROM support routines for Free Pascal.
-
-The routines are demonstrated by the 'getdiscid' and 'showcds' programs.
-The latter shows the available CD-rom drives on the system, the former
-calculates a disc-id and query for use with a freecddb server.
-
-Unit cdrom
-----------
-
-The unit 'cdrom' implements a cross-platform interface for handling CD-roms.
-Currently, it is implemented for Linux and Windows only.
-The other units are support units, needed by various implementations.
-
-The unit presents 2 calls:
-
-Type 
-  TTocEntry = Record 
-    min, sec, frame : Integer
-  end;
-  PTocEntry = ^TTocEntry;
-
-Function GetCDRomDevices(Var Devices : Array of string) : Integer;
-Function ReadCDTOC(Device : String; Var CDTOC : Array of TTocEntry) : Integer;
-
-The GetCDRomDevices call retrieves a list of available CD-ROM devices/drives
-on the system. The algorithm used to detect these devices depends on the
-system. The function returns the number of devices found, or a negative
-number on error. The 'Devices' array is filled with strings that describe
-the devices. For unix like systems, these are the device files (/dev/hdc
-etc), for windows, these can be drive letters (D: etc) or ASPI Adaptor,
-Target, lun IDs triples, for example ASPI[1;0;0].
-
-(an algorithm mapping these to drive letters would be appreciated)
-
-The ReadCDTOC call retrieves the table of contents of a CD in the CD-rom
-drive (Device) This returns the number of tracks on the CD-ROM. On return,
-The CDTOC array will be filled with the length of the tracks, and the frame
-number, manipulated to be usable in a disc ID calculation. There will be one
-extra entry at the end of the array, describing the lead-out.
-
-unit discid
------------
-
-The DISCID unit calculates a DISC-ID as needed by a freecddb server to 
-query for the contents of a disc.
-
-Function CDDBDiscID(Const CDTOC : Array of TTocEntry; Count : Integer) : integer ;
-
-The count is the number of tracks, the array should contain Count+1
-elements, the last one being the lead out. The output of the ReadCDToc
-function can be used as input for this function.
-
-Function GetCDDBQueryString(Const Tracks : Array of TTocEntry; Count : Integer) : String;
-
-This function returns a query string as expected by a freecddb server.
-It consists of the disc id, number of tracks, and the frame fields of the 
-TCDToc records in the tracks array.
-
-unit lincd
-----------
-
-Essentially translation of the linux/cdrom.h include file, plus 2 functions
-
-Function IsCDDevice(Device : String) : Boolean;
-
-Returns True if the device file is a cdrom.
-
-Function DetectCd : String;
-
-Detects the first cd in the system; it does this by checking a number of
-well-known common device files; the first once for which IsCDDevice returns
-True is returned. Note that this can take some time.
-
-unit major
-----------
-
-Definitions of the major device numbers under linux. used by the lincd unit.
-
-unit wincd
-----------
-Some CD-routines. Essentially the low-level counterpart of the cd-rom unit.
-The unit tries to use the windows ASPI layer to detect cd-roms. If the layer
-is not present, the common IOCTL or SPTI interfaces are used.
-
-TCDAccessMethod = (camNone,camASPI,camSPTI,camIOCTL);
-
-Determines which access method is used.
-
-Records used in the low-level calls:
-
-TTOCTrack = packed record
-  rsvd,
-  ADR,
-  trackNumber,
-  rsvd2 : Byte;
-  addr : Array[0..3] of byte;
-end;  
-
-TTOC = packed Record
-  toclen : word;
-  firsttrack,
-  lastTrack  : byte;
-  toctrack:  Array[0..99] of TTocTrack;
-end;
-
-Const
-  AccessMethodNames : Array[TCDAccessMethod] of string
-                    = ('None','ASPI','SPTI','IOCTL');
-                    
-Function  GetCDAccessMethod : TCDAccessMethod;
-
-Returns the current CD-rom detection method.
-
-Procedure SetCDAccessMethod (Value : TCDAccessMethod);
-
-Sets the current CD-rom detection method.
-
-Function  ReadTOC(Device : String; Var TOC : TTOc) : Integer;
-
-Reads the CD-Rom devices. Device is a drive letter, or if ASPI is used
-a string of the form [Aid,TgID,LunID] (Adapter ID, Target ID, LUN id)
-
-Function  EnumCDDrives(Var Drives : Array of String) : Integer;
-
-Returns the CD-ROM drive letters of the system, or strings describing ASPI
-drives.
-
-Function  GetNumDrives : Integer;
-
-Returns the number of drives.
-
-NOTE: A function mapping an ASPI triple to a drive letter would be
-appreciated.
-
-unit Wnaspi32:
---------------
-
-Low-level ASPI unit. Contains all structures, plus the following:
-
-  TSendASPI32Command = function( LPSRB : Pointer ) : DWORD; cdecl;
-  TGetASPI32SupportInfo = function : DWORD; cdecl;
-
-  SendASPI32Command : TSendASPI32Command = nil;
-  GetASPI32SupportInfo : TGetASPI32SupportInfo = nil;
-
-These procedural variables map to the actual API calls. They are only valid
-and usable if ASPILoaded returns TRUE.
-
-Function ASPILoaded : Boolean;
-
-Returns TRUE if ASPI is available and loaded.
-
-Procedure CheckASPI;
-
-Checks whether ASPI is available. After calling this it is possible to use
-the ASPIAvailable function. This procedure is called in the initialization
-section of the unit.
-
-procedure UnloadASPI;
-
-Unloads the ASPI library if it was loaded. This procedure is called in the
-finalization section of the unit.
-
-scsidefs.pp
------------
-
-Bare translation of the scsidefs.h windows SDK header.
-
-cdromioctl.pp
--------------
-
-This unit contains some records and constants defined in window's 
-cdromioctl.h
-
-
-Michael.

+ 0 - 39
packages/extra/cdrom/cdrom.pp

@@ -1,39 +0,0 @@
-{
-    Copyright (c) 1999-2000 by Michael Van Canneyt
-
-    Unit to read a CDROM disc TOC and get a list of CD Rom devices
-
-    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 cdrom;
-
-{$mode objfpc}
-{$h+}
-
-
-interface
-
-Type
-  TTocEntry = Record
-    min, sec, frame : Integer;
-  end;
-  PTocEntry = ^TTocEntry;
-
-Function ReadCDTOC(Device : String; Var CDTOC : Array of TTocEntry) : Integer;
-Function GetCDRomDevices(Var Devices : Array of string) : Integer;
-
-Implementation
-
-{$ifdef linux}
-{$i cdromlin.inc}
-{$else}
-{$i cdromw32.inc}
-{$endif}
-
-end.

+ 0 - 168
packages/extra/cdrom/cdromioctl.pp

@@ -1,168 +0,0 @@
-unit cdromioctl;
-{$mode objfpc}
-interface
-
-uses windows;
-
-{
-  Automatically converted by H2Pas 0.99.15 from cdromioctl.h
-  The following command line parameters were used:
-    cdromioctl.h
-}
-
-{$PACKRECORDS C}
-
-  {
-     distilled information from various header files from Microsoft's
-     DDK for Windows NT 4.0
-  }
-
-  type
-
-     SCSI_PASS_THROUGH = record
-          Length : USHORT;
-          ScsiStatus : UCHAR;
-          PathId : UCHAR;
-          TargetId : UCHAR;
-          Lun : UCHAR;
-          CdbLength : UCHAR;
-          SenseInfoLength : UCHAR;
-          DataIn : UCHAR;
-          DataTransferLength : ULONG;
-          TimeOutValue : ULONG;
-          DataBufferOffset : ULONG;
-          SenseInfoOffset : ULONG;
-          Cdb : array[0..15] of UCHAR;
-       end;
-     PSCSI_PASS_THROUGH = ^SCSI_PASS_THROUGH;
-
-     SCSI_PASS_THROUGH_DIRECT = record
-          Length : USHORT;
-          ScsiStatus : UCHAR;
-          PathId : UCHAR;
-          TargetId : UCHAR;
-          Lun : UCHAR;
-          CdbLength : UCHAR;
-          SenseInfoLength : UCHAR;
-          DataIn : UCHAR;
-          DataTransferLength : ULONG;
-          TimeOutValue : ULONG;
-          DataBuffer : PVOID;
-          SenseInfoOffset : ULONG;
-          Cdb : array[0..15] of UCHAR;
-       end;
-     PSCSI_PASS_THROUGH_DIRECT = ^SCSI_PASS_THROUGH_DIRECT;
-
-     SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER = record
-          spt : SCSI_PASS_THROUGH_DIRECT;
-          Filler : ULONG;
-          ucSenseBuf : array[0..31] of UCHAR;
-       end;
-     PSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER = ^SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER;
-  {
-     method codes
-    }
-
-  const
-     METHOD_BUFFERED = 0;
-     METHOD_IN_DIRECT = 1;
-     METHOD_OUT_DIRECT = 2;
-     METHOD_NEITHER = 3;
-  {
-     file access values
-    }
-     FILE_ANY_ACCESS = 0;
-     FILE_READ_ACCESS = $0001;
-     FILE_WRITE_ACCESS = $0002;
-     IOCTL_CDROM_BASE = $00000002;
-     IOCTL_SCSI_BASE = $00000004;
-  {
-     constants for DataIn member of SCSI_PASS_THROUGH  structures
-    }
-     SCSI_IOCTL_DATA_OUT = 0;
-     SCSI_IOCTL_DATA_IN = 1;
-     SCSI_IOCTL_DATA_UNSPECIFIED = 2;
-
-    {
-     Standard IOCTL define
-    }
-
-    Function CTL_CODE( ADevType, AFunction, AMethod, AAccess : Longint) : Longint;
-    function IOCTL_CDROM_READ_TOC : Longint;
-    function IOCTL_CDROM_GET_LAST_SESSION : longint;
-    function IOCTL_SCSI_PASS_THROUGH : longint;
-    function IOCTL_SCSI_MINIPORT : longint;
-    function IOCTL_SCSI_GET_INQUIRY_DATA : longint;
-    function IOCTL_SCSI_GET_CAPABILITIES : longint;
-    function IOCTL_SCSI_PASS_THROUGH_DIRECT : longint;
-    function IOCTL_SCSI_GET_ADDRESS : longint;
-
-
-implementation
-
-    { was #define dname def_expr }
-    function IOCTL_CDROM_GET_LAST_SESSION : longint;
-        { return type might be wrong }
-        begin
-           IOCTL_CDROM_GET_LAST_SESSION:=CTL_CODE(IOCTL_CDROM_BASE,$000E,METHOD_BUFFERED,FILE_READ_ACCESS);
-        end;
-
-    { was #define dname def_expr }
-    function IOCTL_SCSI_PASS_THROUGH : longint;
-        { return type might be wrong }
-        begin
-           IOCTL_SCSI_PASS_THROUGH:=CTL_CODE(IOCTL_SCSI_BASE,$0401,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS);
-        end;
-
-    { was #define dname def_expr }
-    function IOCTL_SCSI_MINIPORT : longint;
-        { return type might be wrong }
-        begin
-           IOCTL_SCSI_MINIPORT:=CTL_CODE(IOCTL_SCSI_BASE,$0402,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS);
-        end;
-
-    { was #define dname def_expr }
-    function IOCTL_SCSI_GET_INQUIRY_DATA : longint;
-        { return type might be wrong }
-        begin
-           IOCTL_SCSI_GET_INQUIRY_DATA:=CTL_CODE(IOCTL_SCSI_BASE,$0403,METHOD_BUFFERED,FILE_ANY_ACCESS);
-        end;
-
-    { was #define dname def_expr }
-    function IOCTL_SCSI_GET_CAPABILITIES : longint;
-        { return type might be wrong }
-        begin
-           IOCTL_SCSI_GET_CAPABILITIES:=CTL_CODE(IOCTL_SCSI_BASE,$0404,METHOD_BUFFERED,FILE_ANY_ACCESS);
-        end;
-
-    { was #define dname def_expr }
-    function IOCTL_SCSI_PASS_THROUGH_DIRECT : longint;
-        { return type might be wrong }
-        begin
-           IOCTL_SCSI_PASS_THROUGH_DIRECT:=CTL_CODE(IOCTL_SCSI_BASE,$0405,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS);
-        end;
-
-    { was #define dname def_expr }
-    function IOCTL_SCSI_GET_ADDRESS : longint;
-        { return type might be wrong }
-        begin
-           IOCTL_SCSI_GET_ADDRESS:=CTL_CODE(IOCTL_SCSI_BASE,$0406,METHOD_BUFFERED,FILE_ANY_ACCESS);
-        end;
-
-Function CTL_CODE( ADevType, AFunction, AMethod, AAccess : Longint) : Longint;
-
-begin
-    Result:= (ADevType shl 16 )
-             Or (AAccess shl 14)
-             Or (AFunction SHL 2)
-             Or AMethod;
-end;
-
-function IOCTL_CDROM_READ_TOC : Longint;
-
-begin
-  Result:=CTL_CODE(IOCTL_CDROM_BASE, 0, METHOD_BUFFERED, FILE_READ_ACCESS )
-end;
-
-
-end.

+ 0 - 136
packages/extra/cdrom/cdromlin.inc

@@ -1,136 +0,0 @@
-uses
-  baseunix,
-  unix,
-  lincd;
-
-Function ReadCDTOC(Device : String; Var CDTOC : Array of TTocEntry) : Integer;
-
-Var
-  I,Drive    : Integer;
-  tochdr   : Tcdrom_tochdr;
-  tocentry : tcdrom_tocentry;
-
-begin
-  drive:=fpOpen(Device, Open_RDONLY or Open_NONBLOCK);
-  if drive<0 then
-    begin
-    Result:=-1;
-    Exit;
-    end;
-  if fpioctl(drive, CDROMREADTOCHDR, @tochdr)<>0 then
-    begin
-    Result:=-1;
-    Exit;
-    end;
-  If (tochdr.cdth_trk1-tochdr.cdth_trk0)>High(CDToc) then
-    Result:=-2
-  else
-    begin
-    Result:=0;
-    for i := tochdr.cdth_trk0 to tochdr.cdth_trk1 do
-      begin
-      tocentry.cdte_track := i;
-      tocentry.cdte_format := CDROM_MSF;
-      fpIOCtl(drive, CDROMREADTOCENTRY, @tocentry);
-      // We should do some error checking here actually.
-      With cdtoc[result] do
-        begin
-        min := tocentry.cdte_addr.msf.minute;
-        sec := tocentry.cdte_addr.msf.second;
-        frame := tocentry.cdte_addr.msf.frame;
-        inc(frame,min*60*75);
-        inc(frame,sec*75);
-        end;
-      Inc(result);
-      end;
-    tocentry.cdte_track := $AA;
-    tocentry.cdte_format := CDROM_MSF;
-    fpIOCtl(drive, CDROMREADTOCENTRY, @tocentry);
-    With cdtoc[Result] do
-      begin
-      Min := tocentry.cdte_addr.msf.minute;
-      sec := tocentry.cdte_addr.msf.second;
-      frame := tocentry.cdte_addr.msf.frame;
-      inc(frame, min*60*75);
-      inc(frame, sec*75);
-      end;
-    end;
-  fpClose(drive);
-end;
-
-{ ---------------------------------------------------------------------
-    /etc/fstab scanning.
-  ---------------------------------------------------------------------}
-
-Function ExtractDevice(S : String) : String;
-
-Var
-  P,L : Integer;
-
-begin
-  Result:='';
-  P:=Pos('#',S);
-  If P<>0 then
-    S:=Copy(S,1,P-1);
-  If Length(S)>0 then
-    begin
-    P:=1;
-    While (P<=Length(S)) and (S[P] in [#9,' ']) do
-      Inc(p);
-    L:=P;
-    While (L<=Length(S)) and (Not (S[L] in [#9,' '])) do
-      Inc(L);
-    If L>P then
-      Result:=Copy(S,P,L-P);
-    end;
-end;
-
-Function TestFSTab(var Devices : Array of String) : Integer;
-
-Var
-  fstab : text;
-  Line : String;
-
-begin
-  Result:=0;
-  Assign(FSTab,'/etc/fstab');
-  {$i-}
-  Reset(fstab);
-  {$i+}
-  If IOResult=0 then
-    begin
-    While Not EOF(fstab) do
-      begin
-      ReadLn(fsTab,Line);
-      Line:=ExtractDevice(Line);
-      If IsCdDevice(Line) and (Result<=High(Devices)) then
-        begin
-        Devices[Result]:=Line;
-        inc(Result);
-        end;
-      end;
-    Close(fstab);
-    end
-  else
-    Result:=-1;
-end;
-
-Function GetCDRomDevices(Var Devices : Array of string) : Integer;
-
-Var
-  S : String;
-
-begin
-  Result:=TestFSTab(Devices);
-  If (Result<1) then
-    begin
-    S:=DetectCD;
-    If (S<>'') then
-      begin
-      Devices[0]:=S;
-      Result:=1;
-      end;
-    end
-end;
-
-

+ 0 - 50
packages/extra/cdrom/cdromw32.inc

@@ -1,50 +0,0 @@
-uses wincd;
-
-
-Function ReadCDTOC(Device : String; Var CDTOC : Array of TTocEntry) : Integer;
-
-Var
-  Toc :  TToc;
-  I,Res : Integer;
-
-begin
- Res:=ReadTOC(Device,TOC);
- If Res<0 then
-   Result:=Res
- else
-   begin
-   If Res>High(CDTOC)+1 then
-     Result:=-2
-   else
-     begin
-     Result:=0;
-     For I:=TOC.FirstTrack to Toc.LastTrack do
-       begin
-       With CDTOC[Result],TOC.TocTrack[Result] do
-         begin
-         min:=Addr[1];
-         sec:=Addr[2];
-         frame:=Addr[3]; // ?? tocentry.cdte_addr.msf.frame;
-         inc(frame,min*60*75);
-         inc(frame,sec*75);
-         end;
-       Inc(Result);
-       end;
-     // Lead out
-     With CDTOC[Result],TOC.TocTrack[Result] do
-       begin
-       min:=Addr[1];
-       sec:=Addr[2];
-       frame:=Addr[3]; // ?? tocentry.cdte_addr.msf.frame;
-       inc(frame,min*60*75);
-       inc(frame,sec*75);
-       end;
-     end;
-   end;
-end;
-
-
-Function GetCDRomDevices(Var Devices : Array of string) : Integer;
-begin
-  Result:=enumcddrives(Devices);
-end;

+ 0 - 69
packages/extra/cdrom/discid.pp

@@ -1,69 +0,0 @@
-{
-    Copyright (c) 1999-2000 by Michael Van Canneyt
-
-    Unit to read a disc TOC and get discid for a cddb query.
-
-
-    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 discid;
-
-{$mode objfpc}
-
-interface
-
-uses cdrom,sysutils;
-
-Function CDDBDiscID(Const CDTOC : Array of TTocEntry; Count : Integer) : integer ;
-Function GetCDDBQueryString(Const Tracks : Array of TTocEntry; Count : Integer) : String;
-
-Implementation
-
-Function cddb_sum(N : Integer) : Cardinal;
-
-begin
-  Result:=0;
-  while (n > 0) do
-    begin
-    Inc(result,(n mod 10));
-    n:=n div 10;
-    end;
-end;
-
-Function cddbdiscid(Const cdtoc : Array of TTocEntry; Count : Integer) : integer ;
-
-Var
- i,t,n :  cardinal;
-
-begin
-  t:=0;
-  n:=0;
-  i:= 0;
-  For I:=0 to count-1 do
-    n := n + cddb_sum((cdtoc[i].min * 60) + cdtoc[i].sec);
-  t:=((cdtoc[Count].min * 60) + cdtoc[Count].sec) -
-     ((cdtoc[0].min * 60) + cdtoc[0].sec);
-  Result:=(((n mod $ff) shl 24) or (t shl 8 or count));
-end;
-
-Function GetCDDBQueryString(Const Tracks : Array of TTocEntry; Count : Integer) : String;
-
-
-Var
-  I,TheDiscID : Integer;
-
-begin
-  TheDiscID:=cddbdiscid(Tracks,Count);
-  Result:=Lowercase(HexStr(TheDiscID,8))+' '+intToStr(Count);
-  for I:=0 to Count-1 do
-     Result:=Result+' '+IntToStr(tracks[i].frame);
-  Result:=Result+' '+IntToStr(tracks[Count].frame div 75);
-end;
-
-end.

+ 0 - 24
packages/extra/cdrom/fpmake.inc

@@ -1,24 +0,0 @@
-    StartPackage('cdrom');
-    {$IF defined(ALLPACKAGES)}
-    Directory:='extra/cdrom';
-    {$ELSEIF defined(EXTRAPACKAGES)}
-    Directory:='cdrom';
-    {$ENDIF}
-    OS:=[linux,win32];
-    T:=Targets.AddUnit('cdrom');
-    T:=Targets.AddUnit('discid');
-    T:=Targets.AddUnit('scsidefs');
-    T.OS:=[win32];
-    T:=Targets.AddUnit('wnaspi32');
-    T.OS:=[win32];
-    T:=Targets.AddUnit('cdromioctl');
-    T.OS:=[win32];
-    T:=Targets.AddUnit('wincd');
-    T.OS:=[win32];
-    T:=Targets.AddUnit('major');
-    T.OS:=[linux];
-    T:=Targets.AddUnit('lincd');
-    T.OS:=[linux];
-    T:=Targets.AddExampleunit('showcds');
-    T:=Targets.AddExampleunit('getdiscid');
-    EndPackage;

+ 0 - 17
packages/extra/cdrom/fpmake.pp

@@ -1,17 +0,0 @@
-{$mode objfpc}{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
-  T : TTarget;
-
-begin
-  With Installer do 
-    begin
-    { Base packages }
-    {$i fpmake.inc}
-    Run;
-    end;
-end.
-

+ 0 - 43
packages/extra/cdrom/getdiscid.pp

@@ -1,43 +0,0 @@
-{
-    Copyright (c) 1999-2000 by Michael Van Canneyt
-
-    Demonstrates DiscID unit usage.
-
-    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 getdiscid;
-
-uses cdrom,discid;
-
-Var
-  TheDiscID : cardinal;
-  Tracks, i : Integer;
-  Entries : Array[1..100] of TTocEntry;
-  Device : string;
-
-begin
-  Case ParamCount of
-    0 : Device:='/dev/cdrom';
-    1 : Device:=Paramstr(1);
-  else
-    Writeln('Usage: getdiscid [devicefile]');
-    halt(1);
-  end;
-  Tracks := ReadCDTOC(Device,Entries);
-  If Tracks<0 then
-    Writeln('Error reading TOC of device ',device)
-  else
-    begin
-    Writeln('Disk has ',tracks,' tracks.');
-    TheDiscID := CDDBDiscID(Entries,Tracks);
-    Writeln('Disc ID : ',lowercase(HexStr(theDiscID,8)));
-    Writeln('CDDB Query : ',GetCDDBQueryString(Entries,Tracks));
-    end;
-end.

+ 0 - 1203
packages/extra/cdrom/lincd.pp

@@ -1,1203 +0,0 @@
-{
-    Copyright (c) 1999-2000 by Michael Van Canneyt
-
-    Unit containing definitions from the Linux CDROM kernel interface.
-
-    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 lincd;
-
-{$mode objfpc}
-
-interface
-
-uses
-  baseunix,
-  unix;
-
-{ ---------------------------------------------------------------------
-    cdrom.h header translation.
-  ---------------------------------------------------------------------}
-
-  { Pointers to basic pascal types, inserted by h2pas conversion program.}
-Type
-  PLongint  = ^Longint;
-  PSmallInt = ^SmallInt;
-  PByte     = ^Byte;
-  PWord     = ^Word;
-  PDWord    = ^DWord;
-  PDouble   = ^Double;
-
-  TU8  = Byte;
-  PU8  = ^TU8;
-  TU32 = Cardinal;
-  PU32 = ^TU32;
-
-{$PACKRECORDS C}
-
-const
-   EDRIVE_CANT_DO_THIS = ESysEOPNOTSUPP; // = 95
-   CDROMPAUSE = $5301;
-   CDROMRESUME = $5302;
-   CDROMPLAYMSF = $5303;
-   CDROMPLAYTRKIND = $5304;
-   CDROMREADTOCHDR = $5305;
-   CDROMREADTOCENTRY = $5306;
-   CDROMSTOP = $5307;
-   CDROMSTART = $5308;
-   CDROMEJECT = $5309;
-   CDROMVOLCTRL = $530a;
-   CDROMSUBCHNL = $530b;
-   CDROMREADMODE2 = $530c;
-   CDROMREADMODE1 = $530d;
-   CDROMREADAUDIO = $530e;
-   CDROMEJECT_SW = $530f;
-   CDROMMULTISESSION = $5310;
-   CDROM_GET_MCN = $5311;
-   CDROM_GET_UPC = CDROM_GET_MCN;
-   CDROMRESET = $5312;
-   CDROMVOLREAD = $5313;
-   CDROMREADRAW = $5314;
-   CDROMREADCOOKED = $5315;
-   CDROMSEEK = $5316;
-   CDROMPLAYBLK = $5317;
-   CDROMREADALL = $5318;
-   CDROMGETSPINDOWN = $531d;
-   CDROMSETSPINDOWN = $531e;
-   CDROMCLOSETRAY = $5319;
-   CDROM_SET_OPTIONS = $5320;
-   CDROM_CLEAR_OPTIONS = $5321;
-   CDROM_SELECT_SPEED = $5322;
-   CDROM_SELECT_DISC = $5323;
-   CDROM_MEDIA_CHANGED = $5325;
-   CDROM_DRIVE_STATUS = $5326;
-   CDROM_DISC_STATUS = $5327;
-   CDROM_CHANGER_NSLOTS = $5328;
-   CDROM_LOCKDOOR = $5329;
-   CDROM_DEBUG = $5330;
-   CDROM_GET_CAPABILITY = $5331;
-   CDROMAUDIOBUFSIZ = $5382;
-   DVD_READ_STRUCT = $5390;
-   DVD_WRITE_STRUCT = $5391;
-   DVD_AUTH = $5392;
-   CDROM_SEND_PACKET = $5393;
-   CDROM_NEXT_WRITABLE = $5394;
-   CDROM_LAST_WRITTEN = $5395;
-
-type
-   Pcdrom_msf0 = ^Tcdrom_msf0;
-   Tcdrom_msf0 = record
-        minute : Tu8;
-        second : Tu8;
-        frame : Tu8;
-     end;
-
-   Pcdrom_addr = ^Tcdrom_addr;
-   Tcdrom_addr = record
-       case longint of
-          0 : ( msf : Tcdrom_msf0 );
-          1 : ( lba : longint );
-       end;
-
-   Pcdrom_msf = ^Tcdrom_msf;
-   Tcdrom_msf = record
-        cdmsf_min0 : Tu8;
-        cdmsf_sec0 : Tu8;
-        cdmsf_frame0 : Tu8;
-        cdmsf_min1 : Tu8;
-        cdmsf_sec1 : Tu8;
-        cdmsf_frame1 : Tu8;
-     end;
-
-   Pcdrom_ti = ^Tcdrom_ti;
-   Tcdrom_ti = record
-        cdti_trk0 : Tu8;
-        cdti_ind0 : Tu8;
-        cdti_trk1 : Tu8;
-        cdti_ind1 : Tu8;
-     end;
-
-   Pcdrom_tochdr = ^Tcdrom_tochdr;
-   Tcdrom_tochdr = record
-        cdth_trk0 : Tu8;
-        cdth_trk1 : Tu8;
-     end;
-
-   Pcdrom_volctrl = ^Tcdrom_volctrl;
-   Tcdrom_volctrl = record
-        channel0 : Tu8;
-        channel1 : Tu8;
-        channel2 : Tu8;
-        channel3 : Tu8;
-     end;
-
-   Pcdrom_subchnl = ^Tcdrom_subchnl;
-   Tcdrom_subchnl = record
-        cdsc_format : Tu8;
-        cdsc_audiostatus : Tu8;
-        flag0 : word;
-        cdsc_trk : Tu8;
-        cdsc_ind : Tu8;
-        cdsc_absaddr : Tcdrom_addr;
-        cdsc_reladdr : Tcdrom_addr;
-     end;
-
-const
-   bm_Tcdrom_subchnl_cdsc_adr = $F;
-   bp_Tcdrom_subchnl_cdsc_adr = 0;
-   bm_Tcdrom_subchnl_cdsc_ctrl = $F0;
-   bp_Tcdrom_subchnl_cdsc_ctrl = 4;
-function cdsc_adr(var a : Tcdrom_subchnl) : Tu8;
-procedure set_cdsc_adr(var a : Tcdrom_subchnl; __cdsc_adr : Tu8);
-function cdsc_ctrl(var a : Tcdrom_subchnl) : Tu8;
-procedure set_cdsc_ctrl(var a : Tcdrom_subchnl; __cdsc_ctrl : Tu8);
-
-type
-   Pcdrom_tocentry = ^Tcdrom_tocentry;
-   Tcdrom_tocentry = record
-        cdte_track : Tu8;
-        flag0 : tu8;
-        cdte_format : Tu8;
-        cdte_addr : Tcdrom_addr;
-        cdte_datamode : Tu8;
-     end;
-
-const
-   bm_Tcdrom_tocentry_cdte_adr = $F;
-   bp_Tcdrom_tocentry_cdte_adr = 0;
-   bm_Tcdrom_tocentry_cdte_ctrl = $F0;
-   bp_Tcdrom_tocentry_cdte_ctrl = 4;
-function cdte_adr(var a : Tcdrom_tocentry) : Tu8;
-procedure set_cdte_adr(var a : Tcdrom_tocentry; __cdte_adr : Tu8);
-function cdte_ctrl(var a : Tcdrom_tocentry) : Tu8;
-procedure set_cdte_ctrl(var a : Tcdrom_tocentry; __cdte_ctrl : Tu8);
-
-type
-   Pcdrom_read = ^Tcdrom_read;
-   Tcdrom_read = record
-        cdread_lba : longint;
-        cdread_bufaddr : Pchar;
-        cdread_buflen : longint;
-     end;
-
-   Pcdrom_read_audio = ^Tcdrom_read_audio;
-   Tcdrom_read_audio = record
-        addr : Tcdrom_addr;
-        addr_format : Tu8;
-        nframes : longint;
-        buf : Pu8;
-     end;
-
-   Pcdrom_multisession = ^Tcdrom_multisession;
-   Tcdrom_multisession = record
-        addr : Tcdrom_addr;
-        xa_flag : Tu8;
-        addr_format : Tu8;
-     end;
-
-   Pcdrom_mcn = ^Tcdrom_mcn;
-   Tcdrom_mcn = record
-        medium_catalog_number : array[0..13] of Tu8;
-     end;
-
-   Pcdrom_blk = ^Tcdrom_blk;
-   Tcdrom_blk = record
-        from : dword;
-        len : word;
-     end;
-
-
-const
-   CDROM_PACKET_SIZE = 12;
-   CGC_DATA_UNKNOWN = 0;
-   CGC_DATA_WRITE = 1;
-   CGC_DATA_READ = 2;
-   CGC_DATA_NONE = 3;
-
-// Moved here
-type
-   Prequest_sense = ^Trequest_sense;
-   Trequest_sense = record
-        flag0 : word;
-        segment_number : Tu8;
-        flag1 : word;
-        information : array[0..3] of Tu8;
-        add_sense_len : Tu8;
-        command_info : array[0..3] of Tu8;
-        asc : Tu8;
-        ascq : Tu8;
-        fruc : Tu8;
-        sks : array[0..2] of Tu8;
-        asb : array[0..45] of Tu8;
-     end;
-   Pcdrom_generic_command = ^Tcdrom_generic_command;
-   Tcdrom_generic_command = record
-        cmd : array[0..(CDROM_PACKET_SIZE)-1] of byte;
-        buffer : Pbyte;
-        buflen : dword;
-        stat : longint;
-        sense : Prequest_sense;
-        data_direction : byte;
-        quiet : longint;
-        timeout : longint;
-        reserved : array[0..0] of pointer;
-     end;
-
-
-const
-   CD_MINS = 74;
-   CD_SECS = 60;
-   CD_FRAMES = 75;
-   CD_SYNC_SIZE = 12;
-   CD_MSF_OFFSET = 150;
-   CD_CHUNK_SIZE = 24;
-   CD_NUM_OF_CHUNKS = 98;
-   CD_FRAMESIZE_SUB = 96;
-   CD_HEAD_SIZE = 4;
-   CD_SUBHEAD_SIZE = 8;
-   CD_EDC_SIZE = 4;
-   CD_ZERO_SIZE = 8;
-   CD_ECC_SIZE = 276;
-   CD_FRAMESIZE = 2048;
-   CD_FRAMESIZE_RAW = 2352;
-   CD_FRAMESIZE_RAWER = 2646;
-   CD_FRAMESIZE_RAW1 = CD_FRAMESIZE_RAW - CD_SYNC_SIZE;
-   CD_FRAMESIZE_RAW0 = (CD_FRAMESIZE_RAW - CD_SYNC_SIZE) - CD_HEAD_SIZE;
-   CD_XA_HEAD = CD_HEAD_SIZE + CD_SUBHEAD_SIZE;
-   CD_XA_TAIL = CD_EDC_SIZE + CD_ECC_SIZE;
-   CD_XA_SYNC_HEAD = CD_SYNC_SIZE + CD_XA_HEAD;
-   CDROM_LBA = $01;
-   CDROM_MSF = $02;
-   CDROM_DATA_TRACK = $04;
-   CDROM_LEADOUT = $AA;
-   CDROM_AUDIO_INVALID = $00;
-   CDROM_AUDIO_PLAY = $11;
-   CDROM_AUDIO_PAUSED = $12;
-   CDROM_AUDIO_COMPLETED = $13;
-   CDROM_AUDIO_ERROR = $14;
-   CDROM_AUDIO_NO_STATUS = $15;
-   CDC_CLOSE_TRAY = $1;
-   CDC_OPEN_TRAY = $2;
-   CDC_LOCK = $4;
-   CDC_SELECT_SPEED = $8;
-   CDC_SELECT_DISC = $10;
-   CDC_MULTI_SESSION = $20;
-   CDC_MCN = $40;
-   CDC_MEDIA_CHANGED = $80;
-   CDC_PLAY_AUDIO = $100;
-   CDC_RESET = $200;
-   CDC_IOCTLS = $400;
-   CDC_DRIVE_STATUS = $800;
-   CDC_GENERIC_PACKET = $1000;
-   CDC_CD_R = $2000;
-   CDC_CD_RW = $4000;
-   CDC_DVD = $8000;
-   CDC_DVD_R = $10000;
-   CDC_DVD_RAM = $20000;
-   CDS_NO_INFO = 0;
-   CDS_NO_DISC = 1;
-   CDS_TRAY_OPEN = 2;
-   CDS_DRIVE_NOT_READY = 3;
-   CDS_DISC_OK = 4;
-   CDS_AUDIO = 100;
-   CDS_DATA_1 = 101;
-   CDS_DATA_2 = 102;
-   CDS_XA_2_1 = 103;
-   CDS_XA_2_2 = 104;
-   CDS_MIXED = 105;
-   CDO_AUTO_CLOSE = $1;
-   CDO_AUTO_EJECT = $2;
-   CDO_USE_FFLAGS = $4;
-   CDO_LOCK = $8;
-   CDO_CHECK_TYPE = $10;
-{ was #define dname def_expr }
-function CDSL_NONE : longint;
-    { return type might be wrong }
-
-{ was #define dname def_expr }
-function CDSL_CURRENT : longint;
-
-
-const
-   CD_PART_MAX = 64;
-   CD_PART_MASK = CD_PART_MAX - 1;
-   GPCMD_BLANK = $a1;
-   GPCMD_CLOSE_TRACK = $5b;
-   GPCMD_FLUSH_CACHE = $35;
-   GPCMD_FORMAT_UNIT = $04;
-   GPCMD_GET_CONFIGURATION = $46;
-   GPCMD_GET_EVENT_STATUS_NOTIFICATION = $4a;
-   GPCMD_GET_PERFORMANCE = $ac;
-   GPCMD_INQUIRY = $12;
-   GPCMD_LOAD_UNLOAD = $a6;
-   GPCMD_MECHANISM_STATUS = $bd;
-   GPCMD_MODE_SELECT_10 = $55;
-   GPCMD_MODE_SENSE_10 = $5a;
-   GPCMD_PAUSE_RESUME = $4b;
-   GPCMD_PLAY_AUDIO_10 = $45;
-   GPCMD_PLAY_AUDIO_MSF = $47;
-   GPCMD_PLAY_AUDIO_TI = $48;
-   GPCMD_PLAY_CD = $bc;
-   GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL = $1e;
-   GPCMD_READ_10 = $28;
-   GPCMD_READ_12 = $a8;
-   GPCMD_READ_CDVD_CAPACITY = $25;
-   GPCMD_READ_CD = $be;
-   GPCMD_READ_CD_MSF = $b9;
-   GPCMD_READ_DISC_INFO = $51;
-   GPCMD_READ_DVD_STRUCTURE = $ad;
-   GPCMD_READ_FORMAT_CAPACITIES = $23;
-   GPCMD_READ_HEADER = $44;
-   GPCMD_READ_TRACK_RZONE_INFO = $52;
-   GPCMD_READ_SUBCHANNEL = $42;
-   GPCMD_READ_TOC_PMA_ATIP = $43;
-   GPCMD_REPAIR_RZONE_TRACK = $58;
-   GPCMD_REPORT_KEY = $a4;
-   GPCMD_REQUEST_SENSE = $03;
-   GPCMD_RESERVE_RZONE_TRACK = $53;
-   GPCMD_SCAN = $ba;
-   GPCMD_SEEK = $2b;
-   GPCMD_SEND_DVD_STRUCTURE = $ad;
-   GPCMD_SEND_EVENT = $a2;
-   GPCMD_SEND_KEY = $a3;
-   GPCMD_SEND_OPC = $54;
-   GPCMD_SET_READ_AHEAD = $a7;
-   GPCMD_SET_STREAMING = $b6;
-   GPCMD_START_STOP_UNIT = $1b;
-   GPCMD_STOP_PLAY_SCAN = $4e;
-   GPCMD_TEST_UNIT_READY = $00;
-   GPCMD_VERIFY_10 = $2f;
-   GPCMD_WRITE_10 = $2a;
-   GPCMD_WRITE_AND_VERIFY_10 = $2e;
-   GPCMD_SET_SPEED = $bb;
-   GPCMD_PLAYAUDIO_TI = $48;
-   GPCMD_GET_MEDIA_STATUS = $da;
-   GPMODE_R_W_ERROR_PAGE = $01;
-   GPMODE_WRITE_PARMS_PAGE = $05;
-   GPMODE_AUDIO_CTL_PAGE = $0e;
-   GPMODE_POWER_PAGE = $1a;
-   GPMODE_FAULT_FAIL_PAGE = $1c;
-   GPMODE_TO_PROTECT_PAGE = $1d;
-   GPMODE_CAPABILITIES_PAGE = $2a;
-   GPMODE_ALL_PAGES = $3f;
-   GPMODE_CDROM_PAGE = $0d;
-   DVD_STRUCT_PHYSICAL = $00;
-   DVD_STRUCT_COPYRIGHT = $01;
-   DVD_STRUCT_DISCKEY = $02;
-   DVD_STRUCT_BCA = $03;
-   DVD_STRUCT_MANUFACT = $04;
-
-type
-   Pdvd_layer = ^Tdvd_layer;
-   Tdvd_layer = record
-        flag0 : longint;
-        start_sector : Tu32;
-        end_sector : Tu32;
-        end_sector_l0 : Tu32;
-     end;
-
-const
-   bm_Tdvd_layer_book_version = $F;
-   bp_Tdvd_layer_book_version = 0;
-   bm_Tdvd_layer_book_type = $F0;
-   bp_Tdvd_layer_book_type = 4;
-   bm_Tdvd_layer_min_rate = $F00;
-   bp_Tdvd_layer_min_rate = 8;
-   bm_Tdvd_layer_disc_size = $F000;
-   bp_Tdvd_layer_disc_size = 12;
-   bm_Tdvd_layer_layer_type = $F0000;
-   bp_Tdvd_layer_layer_type = 16;
-   bm_Tdvd_layer_track_path = $100000;
-   bp_Tdvd_layer_track_path = 20;
-   bm_Tdvd_layer_nlayers = $600000;
-   bp_Tdvd_layer_nlayers = 21;
-   bm_Tdvd_layer_track_density = $7800000;
-   bp_Tdvd_layer_track_density = 23;
-   bm_Tdvd_layer_linear_density = $78000000;
-   bp_Tdvd_layer_linear_density = 27;
-   bm_Tdvd_layer_bca = $80000000;
-   bp_Tdvd_layer_bca = 31;
-function book_version(var a : Tdvd_layer) : Tu8;
-procedure set_book_version(var a : Tdvd_layer; __book_version : Tu8);
-function book_type(var a : Tdvd_layer) : Tu8;
-procedure set_book_type(var a : Tdvd_layer; __book_type : Tu8);
-function min_rate(var a : Tdvd_layer) : Tu8;
-procedure set_min_rate(var a : Tdvd_layer; __min_rate : Tu8);
-function disc_size(var a : Tdvd_layer) : Tu8;
-procedure set_disc_size(var a : Tdvd_layer; __disc_size : Tu8);
-function layer_type(var a : Tdvd_layer) : Tu8;
-procedure set_layer_type(var a : Tdvd_layer; __layer_type : Tu8);
-function track_path(var a : Tdvd_layer) : Tu8;
-procedure set_track_path(var a : Tdvd_layer; __track_path : Tu8);
-function nlayers(var a : Tdvd_layer) : Tu8;
-procedure set_nlayers(var a : Tdvd_layer; __nlayers : Tu8);
-function track_density(var a : Tdvd_layer) : Tu8;
-procedure set_track_density(var a : Tdvd_layer; __track_density : Tu8);
-function linear_density(var a : Tdvd_layer) : Tu8;
-procedure set_linear_density(var a : Tdvd_layer; __linear_density : Tu8);
-function bca(var a : Tdvd_layer) : Tu8;
-procedure set_bca(var a : Tdvd_layer; __bca : Tu8);
-
-const
-   DVD_LAYERS = 4;
-
-type
-   Pdvd_physical = ^Tdvd_physical;
-   Tdvd_physical = record
-        _type : Tu8;
-        layer_num : Tu8;
-        layer : array[0..(DVD_LAYERS)-1] of Tdvd_layer;
-     end;
-
-   Pdvd_copyright = ^Tdvd_copyright;
-   Tdvd_copyright = record
-        _type : Tu8;
-        layer_num : Tu8;
-        cpst : Tu8;
-        rmi : Tu8;
-     end;
-
-   Pdvd_disckey = ^Tdvd_disckey;
-   Tdvd_disckey = record
-        _type : Tu8;
-        flag0 : word;
-        value : array[0..2047] of Tu8;
-     end;
-
-const
-   bm_Tdvd_disckey_agid = $3;
-   bp_Tdvd_disckey_agid = 0;
-function agid(var a : Tdvd_disckey) : dword;
-procedure set_agid(var a : Tdvd_disckey; __agid : dword);
-
-type
-   Pdvd_bca = ^Tdvd_bca;
-   Tdvd_bca = record
-        _type : Tu8;
-        len : longint;
-        value : array[0..187] of Tu8;
-     end;
-
-   Pdvd_manufact = ^Tdvd_manufact;
-   Tdvd_manufact = record
-        _type : Tu8;
-        layer_num : Tu8;
-        len : longint;
-        value : array[0..2047] of Tu8;
-     end;
-
-
-   Pdvd_struct = ^Tdvd_struct;
-   Tdvd_struct = record
-       case longint of
-          0 : ( _type : Tu8 );
-          1 : ( physical : Tdvd_physical );
-          2 : ( copyright : Tdvd_copyright );
-          3 : ( disckey : Tdvd_disckey );
-          4 : ( bca : Tdvd_bca );
-          5 : ( manufact : Tdvd_manufact );
-       end;
-
-const
-   DVD_LU_SEND_AGID = 0;
-   DVD_HOST_SEND_CHALLENGE = 1;
-   DVD_LU_SEND_KEY1 = 2;
-   DVD_LU_SEND_CHALLENGE = 3;
-   DVD_HOST_SEND_KEY2 = 4;
-   DVD_AUTH_ESTABLISHED = 5;
-   DVD_AUTH_FAILURE = 6;
-   DVD_LU_SEND_TITLE_KEY = 7;
-   DVD_LU_SEND_ASF = 8;
-   DVD_INVALIDATE_AGID = 9;
-   DVD_LU_SEND_RPC_STATE = 10;
-   DVD_HOST_SEND_RPC_STATE = 11;
-
-type
-
-   Pdvd_key = ^Tdvd_key;
-   Tdvd_key = Tu8;
-
-   Pdvd_challenge = ^Tdvd_challenge;
-   Tdvd_challenge = Tu8;
-   Pdvd_lu_send_agid = ^Tdvd_lu_send_agid;
-   Tdvd_lu_send_agid = record
-        _type : Tu8;
-        flag0 : word;
-     end;
-
-const
-   bm_Tdvd_lu_send_agid_agid = $3;
-   bp_Tdvd_lu_send_agid_agid = 0;
-function agid(var a : Tdvd_lu_send_agid) : dword;
-procedure set_agid(var a : Tdvd_lu_send_agid; __agid : dword);
-
-type
-   Pdvd_host_send_challenge = ^Tdvd_host_send_challenge;
-   Tdvd_host_send_challenge = record
-        _type : Tu8;
-        flag0 : word;
-        chal : Tdvd_challenge;
-     end;
-
-const
-   bm_Tdvd_host_send_challenge_agid = $3;
-   bp_Tdvd_host_send_challenge_agid = 0;
-function agid(var a : Tdvd_host_send_challenge) : dword;
-procedure set_agid(var a : Tdvd_host_send_challenge; __agid : dword);
-
-type
-   Pdvd_send_key = ^Tdvd_send_key;
-   Tdvd_send_key = record
-        _type : Tu8;
-        flag0 : word;
-        key : Tdvd_key;
-     end;
-
-const
-   bm_Tdvd_send_key_agid = $3;
-   bp_Tdvd_send_key_agid = 0;
-function agid(var a : Tdvd_send_key) : dword;
-procedure set_agid(var a : Tdvd_send_key; __agid : dword);
-
-type
-   Pdvd_lu_send_challenge = ^Tdvd_lu_send_challenge;
-   Tdvd_lu_send_challenge = record
-        _type : Tu8;
-        flag0 : word;
-        chal : Tdvd_challenge;
-     end;
-
-const
-   bm_Tdvd_lu_send_challenge_agid = $3;
-   bp_Tdvd_lu_send_challenge_agid = 0;
-function agid(var a : Tdvd_lu_send_challenge) : dword;
-procedure set_agid(var a : Tdvd_lu_send_challenge; __agid : dword);
-
-const
-   DVD_CPM_NO_COPYRIGHT = 0;
-   DVD_CPM_COPYRIGHTED = 1;
-   DVD_CP_SEC_NONE = 0;
-   DVD_CP_SEC_EXIST = 1;
-   DVD_CGMS_UNRESTRICTED = 0;
-   DVD_CGMS_SINGLE = 2;
-   DVD_CGMS_RESTRICTED = 3;
-
-type
-   Pdvd_lu_send_title_key = ^Tdvd_lu_send_title_key;
-   Tdvd_lu_send_title_key = record
-        _type : Tu8;
-        flag0 : word;
-        title_key : Tdvd_key;
-        lba : longint;
-        flag1 : word;
-     end;
-
-const
-   bm_Tdvd_lu_send_title_key_agid = $3;
-   bp_Tdvd_lu_send_title_key_agid = 0;
-   bm_Tdvd_lu_send_title_key_cpm = $1;
-   bp_Tdvd_lu_send_title_key_cpm = 0;
-   bm_Tdvd_lu_send_title_key_cp_sec = $2;
-   bp_Tdvd_lu_send_title_key_cp_sec = 1;
-   bm_Tdvd_lu_send_title_key_cgms = $C;
-   bp_Tdvd_lu_send_title_key_cgms = 2;
-function agid(var a : Tdvd_lu_send_title_key) : dword;
-procedure set_agid(var a : Tdvd_lu_send_title_key; __agid : dword);
-function cpm(var a : Tdvd_lu_send_title_key) : dword;
-procedure set_cpm(var a : Tdvd_lu_send_title_key; __cpm : dword);
-function cp_sec(var a : Tdvd_lu_send_title_key) : dword;
-procedure set_cp_sec(var a : Tdvd_lu_send_title_key; __cp_sec : dword);
-function cgms(var a : Tdvd_lu_send_title_key) : dword;
-procedure set_cgms(var a : Tdvd_lu_send_title_key; __cgms : dword);
-
-type
-   Pdvd_lu_send_asf = ^Tdvd_lu_send_asf;
-   Tdvd_lu_send_asf = record
-        _type : Tu8;
-        flag0 : word;
-     end;
-
-const
-   bm_Tdvd_lu_send_asf_agid = $3;
-   bp_Tdvd_lu_send_asf_agid = 0;
-   bm_Tdvd_lu_send_asf_asf = $4;
-   bp_Tdvd_lu_send_asf_asf = 2;
-function agid(var a : Tdvd_lu_send_asf) : dword;
-procedure set_agid(var a : Tdvd_lu_send_asf; __agid : dword);
-function asf(var a : Tdvd_lu_send_asf) : dword;
-procedure set_asf(var a : Tdvd_lu_send_asf; __asf : dword);
-
-type
-   Pdvd_host_send_rpcstate = ^Tdvd_host_send_rpcstate;
-   Tdvd_host_send_rpcstate = record
-        _type : Tu8;
-        pdrc : Tu8;
-     end;
-
-   Pdvd_lu_send_rpcstate = ^Tdvd_lu_send_rpcstate;
-   Tdvd_lu_send_rpcstate = record
-        flag0 : word;
-        region_mask : Tu8;
-        rpc_scheme : Tu8;
-     end;
-
-const
-   bm_Tdvd_lu_send_rpcstate_type = $3;
-   bp_Tdvd_lu_send_rpcstate_type = 0;
-   bm_Tdvd_lu_send_rpcstate_vra = $1C;
-   bp_Tdvd_lu_send_rpcstate_vra = 2;
-   bm_Tdvd_lu_send_rpcstate_ucca = $E0;
-   bp_Tdvd_lu_send_rpcstate_ucca = 5;
-function get_type(var a : Tdvd_lu_send_rpcstate) : Tu8;
-procedure set_type(var a : Tdvd_lu_send_rpcstate; __type : Tu8);
-function get_vra(var a : Tdvd_lu_send_rpcstate) : Tu8;
-procedure set_vra(var a : Tdvd_lu_send_rpcstate; __vra : Tu8);
-function ucca(var a : Tdvd_lu_send_rpcstate) : Tu8;
-procedure set_ucca(var a : Tdvd_lu_send_rpcstate; __ucca : Tu8);
-
-type
-
-   Pdvd_authinfo = ^Tdvd_authinfo;
-   Tdvd_authinfo = record
-       case longint of
-          0 : ( _type : Tu8 );
-          1 : ( lsa : Tdvd_lu_send_agid );
-          2 : ( hsc : Tdvd_host_send_challenge );
-          3 : ( lsk : Tdvd_send_key );
-          4 : ( lsc : Tdvd_lu_send_challenge );
-          5 : ( hsk : Tdvd_send_key );
-          6 : ( lstk : Tdvd_lu_send_title_key );
-          7 : ( lsasf : Tdvd_lu_send_asf );
-          8 : ( hrpcs : Tdvd_host_send_rpcstate );
-          9 : ( lrpcs : Tdvd_lu_send_rpcstate );
-       end;
-
-const
-   bm_Trequest_sense_valid = $1;
-   bp_Trequest_sense_valid = 0;
-   bm_Trequest_sense_error_code = $FE;
-   bp_Trequest_sense_error_code = 1;
-   bm_Trequest_sense_reserved1 = $3;
-   bp_Trequest_sense_reserved1 = 0;
-   bm_Trequest_sense_ili = $4;
-   bp_Trequest_sense_ili = 2;
-   bm_Trequest_sense_reserved2 = $8;
-   bp_Trequest_sense_reserved2 = 3;
-   bm_Trequest_sense_sense_key = $F0;
-   bp_Trequest_sense_sense_key = 4;
-function valid(var a : Trequest_sense) : Tu8;
-procedure set_valid(var a : Trequest_sense; __valid : Tu8);
-function error_code(var a : Trequest_sense) : Tu8;
-procedure set_error_code(var a : Trequest_sense; __error_code : Tu8);
-function reserved1(var a : Trequest_sense) : Tu8;
-procedure set_reserved1(var a : Trequest_sense; __reserved1 : Tu8);
-function ili(var a : Trequest_sense) : Tu8;
-procedure set_ili(var a : Trequest_sense; __ili : Tu8);
-function reserved2(var a : Trequest_sense) : Tu8;
-procedure set_reserved2(var a : Trequest_sense; __reserved2 : Tu8);
-function sense_key(var a : Trequest_sense) : Tu8;
-procedure set_sense_key(var a : Trequest_sense; __sense_key : Tu8);
-
-
-{ ---------------------------------------------------------------------
-    Utility functions
-  ---------------------------------------------------------------------}
-
-Function IsCDDevice(Device : String) : Boolean;
-Function DetectCd : String;
-
-implementation
-
-uses major,sysutils;
-
-{ ---------------------------------------------------------------------
-    Functions from cdrom.h translation.
-  ---------------------------------------------------------------------}
-
-function cdsc_adr(var a : Tcdrom_subchnl) : Tu8;
-begin
-  cdsc_adr:=(a.flag0 and bm_Tcdrom_subchnl_cdsc_adr) shr bp_Tcdrom_subchnl_cdsc_adr;
-end;
-
-procedure set_cdsc_adr(var a : Tcdrom_subchnl; __cdsc_adr : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__cdsc_adr shl bp_Tcdrom_subchnl_cdsc_adr) and bm_Tcdrom_subchnl_cdsc_adr);
-end;
-
-function cdsc_ctrl(var a : Tcdrom_subchnl) : Tu8;
-begin
-  cdsc_ctrl:=(a.flag0 and bm_Tcdrom_subchnl_cdsc_ctrl) shr bp_Tcdrom_subchnl_cdsc_ctrl;
-end;
-
-procedure set_cdsc_ctrl(var a : Tcdrom_subchnl; __cdsc_ctrl : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__cdsc_ctrl shl bp_Tcdrom_subchnl_cdsc_ctrl) and bm_Tcdrom_subchnl_cdsc_ctrl);
-end;
-
-function cdte_adr(var a : Tcdrom_tocentry) : Tu8;
-begin
-  cdte_adr:=(a.flag0 and bm_Tcdrom_tocentry_cdte_adr) shr bp_Tcdrom_tocentry_cdte_adr;
-end;
-
-procedure set_cdte_adr(var a : Tcdrom_tocentry; __cdte_adr : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__cdte_adr shl bp_Tcdrom_tocentry_cdte_adr) and bm_Tcdrom_tocentry_cdte_adr);
-end;
-
-function cdte_ctrl(var a : Tcdrom_tocentry) : Tu8;
-begin
-  cdte_ctrl:=(a.flag0 and bm_Tcdrom_tocentry_cdte_ctrl) shr bp_Tcdrom_tocentry_cdte_ctrl;
-end;
-
-procedure set_cdte_ctrl(var a : Tcdrom_tocentry; __cdte_ctrl : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__cdte_ctrl shl bp_Tcdrom_tocentry_cdte_ctrl) and bm_Tcdrom_tocentry_cdte_ctrl);
-end;
-
-{ was #define dname def_expr }
-function CDSL_NONE : longint;
-    { return type might be wrong }
-    begin
-    CDSL_NONE:=(longint(( not (0)) shr 1)) - 1;
-    end;
-
-{ was #define dname def_expr }
-function CDSL_CURRENT : longint;
-    begin
-    CDSL_CURRENT:=longint(( not (0)) shr 1);
-    end;
-
-function book_version(var a : Tdvd_layer) : Tu8;
-begin
-  book_version:=(a.flag0 and bm_Tdvd_layer_book_version) shr bp_Tdvd_layer_book_version;
-end;
-
-procedure set_book_version(var a : Tdvd_layer; __book_version : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__book_version shl bp_Tdvd_layer_book_version) and bm_Tdvd_layer_book_version);
-end;
-
-function book_type(var a : Tdvd_layer) : Tu8;
-begin
-  book_type:=(a.flag0 and bm_Tdvd_layer_book_type) shr bp_Tdvd_layer_book_type;
-end;
-
-procedure set_book_type(var a : Tdvd_layer; __book_type : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__book_type shl bp_Tdvd_layer_book_type) and bm_Tdvd_layer_book_type);
-end;
-
-function min_rate(var a : Tdvd_layer) : Tu8;
-begin
-  min_rate:=(a.flag0 and bm_Tdvd_layer_min_rate) shr bp_Tdvd_layer_min_rate;
-end;
-
-procedure set_min_rate(var a : Tdvd_layer; __min_rate : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__min_rate shl bp_Tdvd_layer_min_rate) and bm_Tdvd_layer_min_rate);
-end;
-
-function disc_size(var a : Tdvd_layer) : Tu8;
-begin
-  disc_size:=(a.flag0 and bm_Tdvd_layer_disc_size) shr bp_Tdvd_layer_disc_size;
-end;
-
-procedure set_disc_size(var a : Tdvd_layer; __disc_size : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__disc_size shl bp_Tdvd_layer_disc_size) and bm_Tdvd_layer_disc_size);
-end;
-
-function layer_type(var a : Tdvd_layer) : Tu8;
-begin
-  layer_type:=(a.flag0 and bm_Tdvd_layer_layer_type) shr bp_Tdvd_layer_layer_type;
-end;
-
-procedure set_layer_type(var a : Tdvd_layer; __layer_type : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__layer_type shl bp_Tdvd_layer_layer_type) and bm_Tdvd_layer_layer_type);
-end;
-
-function track_path(var a : Tdvd_layer) : Tu8;
-begin
-  track_path:=(a.flag0 and bm_Tdvd_layer_track_path) shr bp_Tdvd_layer_track_path;
-end;
-
-procedure set_track_path(var a : Tdvd_layer; __track_path : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__track_path shl bp_Tdvd_layer_track_path) and bm_Tdvd_layer_track_path);
-end;
-
-function nlayers(var a : Tdvd_layer) : Tu8;
-begin
-  nlayers:=(a.flag0 and bm_Tdvd_layer_nlayers) shr bp_Tdvd_layer_nlayers;
-end;
-
-procedure set_nlayers(var a : Tdvd_layer; __nlayers : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__nlayers shl bp_Tdvd_layer_nlayers) and bm_Tdvd_layer_nlayers);
-end;
-
-function track_density(var a : Tdvd_layer) : Tu8;
-begin
-  track_density:=(a.flag0 and bm_Tdvd_layer_track_density) shr bp_Tdvd_layer_track_density;
-end;
-
-procedure set_track_density(var a : Tdvd_layer; __track_density : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__track_density shl bp_Tdvd_layer_track_density) and bm_Tdvd_layer_track_density);
-end;
-
-function linear_density(var a : Tdvd_layer) : Tu8;
-begin
-  linear_density:=(a.flag0 and bm_Tdvd_layer_linear_density) shr bp_Tdvd_layer_linear_density;
-end;
-
-procedure set_linear_density(var a : Tdvd_layer; __linear_density : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__linear_density shl bp_Tdvd_layer_linear_density) and bm_Tdvd_layer_linear_density);
-end;
-
-function bca(var a : Tdvd_layer) : Tu8;
-begin
-  bca:=(a.flag0 and bm_Tdvd_layer_bca) shr bp_Tdvd_layer_bca;
-end;
-
-procedure set_bca(var a : Tdvd_layer; __bca : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__bca shl bp_Tdvd_layer_bca) and bm_Tdvd_layer_bca);
-end;
-
-function agid(var a : Tdvd_disckey) : dword;
-begin
-  agid:=(a.flag0 and bm_Tdvd_disckey_agid) shr bp_Tdvd_disckey_agid;
-end;
-
-procedure set_agid(var a : Tdvd_disckey; __agid : dword);
-begin
-  a.flag0:=a.flag0 or ((__agid shl bp_Tdvd_disckey_agid) and bm_Tdvd_disckey_agid);
-end;
-
-function agid(var a : Tdvd_lu_send_agid) : dword;
-begin
-  agid:=(a.flag0 and bm_Tdvd_lu_send_agid_agid) shr bp_Tdvd_lu_send_agid_agid;
-end;
-
-procedure set_agid(var a : Tdvd_lu_send_agid; __agid : dword);
-begin
-  a.flag0:=a.flag0 or ((__agid shl bp_Tdvd_lu_send_agid_agid) and bm_Tdvd_lu_send_agid_agid);
-end;
-
-function agid(var a : Tdvd_host_send_challenge) : dword;
-begin
-  agid:=(a.flag0 and bm_Tdvd_host_send_challenge_agid) shr bp_Tdvd_host_send_challenge_agid;
-end;
-
-procedure set_agid(var a : Tdvd_host_send_challenge; __agid : dword);
-begin
-  a.flag0:=a.flag0 or ((__agid shl bp_Tdvd_host_send_challenge_agid) and bm_Tdvd_host_send_challenge_agid);
-end;
-
-function agid(var a : Tdvd_send_key) : dword;
-begin
-  agid:=(a.flag0 and bm_Tdvd_send_key_agid) shr bp_Tdvd_send_key_agid;
-end;
-
-procedure set_agid(var a : Tdvd_send_key; __agid : dword);
-begin
-  a.flag0:=a.flag0 or ((__agid shl bp_Tdvd_send_key_agid) and bm_Tdvd_send_key_agid);
-end;
-
-function agid(var a : Tdvd_lu_send_challenge) : dword;
-begin
-  agid:=(a.flag0 and bm_Tdvd_lu_send_challenge_agid) shr bp_Tdvd_lu_send_challenge_agid;
-end;
-
-procedure set_agid(var a : Tdvd_lu_send_challenge; __agid : dword);
-begin
-  a.flag0:=a.flag0 or ((__agid shl bp_Tdvd_lu_send_challenge_agid) and bm_Tdvd_lu_send_challenge_agid);
-end;
-
-function agid(var a : Tdvd_lu_send_title_key) : dword;
-begin
-  agid:=(a.flag0 and bm_Tdvd_lu_send_title_key_agid) shr bp_Tdvd_lu_send_title_key_agid;
-end;
-
-procedure set_agid(var a : Tdvd_lu_send_title_key; __agid : dword);
-begin
-  a.flag0:=a.flag0 or ((__agid shl bp_Tdvd_lu_send_title_key_agid) and bm_Tdvd_lu_send_title_key_agid);
-end;
-
-function cpm(var a : Tdvd_lu_send_title_key) : dword;
-begin
-  cpm:=(a.flag1 and bm_Tdvd_lu_send_title_key_cpm) shr bp_Tdvd_lu_send_title_key_cpm;
-end;
-
-procedure set_cpm(var a : Tdvd_lu_send_title_key; __cpm : dword);
-begin
-  a.flag1:=a.flag1 or ((__cpm shl bp_Tdvd_lu_send_title_key_cpm) and bm_Tdvd_lu_send_title_key_cpm);
-end;
-
-function cp_sec(var a : Tdvd_lu_send_title_key) : dword;
-begin
-  cp_sec:=(a.flag1 and bm_Tdvd_lu_send_title_key_cp_sec) shr bp_Tdvd_lu_send_title_key_cp_sec;
-end;
-
-procedure set_cp_sec(var a : Tdvd_lu_send_title_key; __cp_sec : dword);
-begin
-  a.flag1:=a.flag1 or ((__cp_sec shl bp_Tdvd_lu_send_title_key_cp_sec) and bm_Tdvd_lu_send_title_key_cp_sec);
-end;
-
-function cgms(var a : Tdvd_lu_send_title_key) : dword;
-begin
-  cgms:=(a.flag1 and bm_Tdvd_lu_send_title_key_cgms) shr bp_Tdvd_lu_send_title_key_cgms;
-end;
-
-procedure set_cgms(var a : Tdvd_lu_send_title_key; __cgms : dword);
-begin
-  a.flag1:=a.flag1 or ((__cgms shl bp_Tdvd_lu_send_title_key_cgms) and bm_Tdvd_lu_send_title_key_cgms);
-end;
-
-function agid(var a : Tdvd_lu_send_asf) : dword;
-begin
-  agid:=(a.flag0 and bm_Tdvd_lu_send_asf_agid) shr bp_Tdvd_lu_send_asf_agid;
-end;
-
-procedure set_agid(var a : Tdvd_lu_send_asf; __agid : dword);
-begin
-  a.flag0:=a.flag0 or ((__agid shl bp_Tdvd_lu_send_asf_agid) and bm_Tdvd_lu_send_asf_agid);
-end;
-
-function asf(var a : Tdvd_lu_send_asf) : dword;
-begin
-  asf:=(a.flag0 and bm_Tdvd_lu_send_asf_asf) shr bp_Tdvd_lu_send_asf_asf;
-end;
-
-procedure set_asf(var a : Tdvd_lu_send_asf; __asf : dword);
-begin
-  a.flag0:=a.flag0 or ((__asf shl bp_Tdvd_lu_send_asf_asf) and bm_Tdvd_lu_send_asf_asf);
-end;
-
-function get_type(var a : Tdvd_lu_send_rpcstate) : Tu8;
-begin
-  get_type:=(a.flag0 and bm_Tdvd_lu_send_rpcstate_type) shr bp_Tdvd_lu_send_rpcstate_type;
-end;
-
-procedure set_type(var a : Tdvd_lu_send_rpcstate; __type : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__type shl bp_Tdvd_lu_send_rpcstate_type) and bm_Tdvd_lu_send_rpcstate_type);
-end;
-
-function get_vra(var a : Tdvd_lu_send_rpcstate) : Tu8;
-begin
-  get_vra:=(a.flag0 and bm_Tdvd_lu_send_rpcstate_vra) shr bp_Tdvd_lu_send_rpcstate_vra;
-end;
-
-procedure set_vra(var a : Tdvd_lu_send_rpcstate; __vra : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__vra shl bp_Tdvd_lu_send_rpcstate_vra) and bm_Tdvd_lu_send_rpcstate_vra);
-end;
-
-function ucca(var a : Tdvd_lu_send_rpcstate) : Tu8;
-begin
-  ucca:=(a.flag0 and bm_Tdvd_lu_send_rpcstate_ucca) shr bp_Tdvd_lu_send_rpcstate_ucca;
-end;
-
-procedure set_ucca(var a : Tdvd_lu_send_rpcstate; __ucca : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__ucca shl bp_Tdvd_lu_send_rpcstate_ucca) and bm_Tdvd_lu_send_rpcstate_ucca);
-end;
-
-function valid(var a : Trequest_sense) : Tu8;
-begin
-  valid:=(a.flag0 and bm_Trequest_sense_valid) shr bp_Trequest_sense_valid;
-end;
-
-procedure set_valid(var a : Trequest_sense; __valid : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__valid shl bp_Trequest_sense_valid) and bm_Trequest_sense_valid);
-end;
-
-function error_code(var a : Trequest_sense) : Tu8;
-begin
-  error_code:=(a.flag0 and bm_Trequest_sense_error_code) shr bp_Trequest_sense_error_code;
-end;
-
-procedure set_error_code(var a : Trequest_sense; __error_code : Tu8);
-begin
-  a.flag0:=a.flag0 or ((__error_code shl bp_Trequest_sense_error_code) and bm_Trequest_sense_error_code);
-end;
-
-function reserved1(var a : Trequest_sense) : Tu8;
-begin
-  reserved1:=(a.flag1 and bm_Trequest_sense_reserved1) shr bp_Trequest_sense_reserved1;
-end;
-
-procedure set_reserved1(var a : Trequest_sense; __reserved1 : Tu8);
-begin
-  a.flag1:=a.flag1 or ((__reserved1 shl bp_Trequest_sense_reserved1) and bm_Trequest_sense_reserved1);
-end;
-
-function ili(var a : Trequest_sense) : Tu8;
-begin
-  ili:=(a.flag1 and bm_Trequest_sense_ili) shr bp_Trequest_sense_ili;
-end;
-
-procedure set_ili(var a : Trequest_sense; __ili : Tu8);
-begin
-  a.flag1:=a.flag1 or ((__ili shl bp_Trequest_sense_ili) and bm_Trequest_sense_ili);
-end;
-
-function reserved2(var a : Trequest_sense) : Tu8;
-begin
-  reserved2:=(a.flag1 and bm_Trequest_sense_reserved2) shr bp_Trequest_sense_reserved2;
-end;
-
-procedure set_reserved2(var a : Trequest_sense; __reserved2 : Tu8);
-begin
-  a.flag1:=a.flag1 or ((__reserved2 shl bp_Trequest_sense_reserved2) and bm_Trequest_sense_reserved2);
-end;
-
-function sense_key(var a : Trequest_sense) : Tu8;
-begin
-  sense_key:=(a.flag1 and bm_Trequest_sense_sense_key) shr bp_Trequest_sense_sense_key;
-end;
-
-procedure set_sense_key(var a : Trequest_sense; __sense_key : Tu8);
-begin
-  a.flag1:=a.flag1 or ((__sense_key shl bp_Trequest_sense_sense_key) and bm_Trequest_sense_sense_key);
-end;
-
-{ ---------------------------------------------------------------------
-    Implementation of utility functions.
-  ---------------------------------------------------------------------}
-
-
-Const
-  NrDevices = 16;
-  Devices : Array[1..NrDevices] of string = (
-  '/dev/cdrom',
-  '/dev/cdroms/cdrom?',
-  '/dev/hd?',
-  '/dev/sg?',
-  '/dev/cdu31a',
-  '/dev/cdu535',
-  '/dev/sbpcd',
-  '/dev/sbpcd?',
-  '/dev/sonycd',
-  '/dev/mcd',
-  '/dev/sjcd',
-  '/dev/cm206cd',
-  '/dev/gscd',
-  '/dev/scd?',
-  '/dev/sr?',
-  '/dev/optcd');
-
-Function DetectCD : String;
-
-Var
-  I,J,L : Integer;
-  S : String;
-
-begin
-  Result:='';
-  I:=0;
-  While (Result='') and (I<NrDevices) do
-    begin
-    Inc(I);
-    S:=Devices[i];
-    L:=Length(S);
-    If S[l]='?' then
-      begin
-      S:=Copy(S,1,L-1);
-      For J:=0 to 3 do
-        If IsCdDevice(S+Chr(Ord('0')+J)) then
-          Result:=S+Chr(Ord('0')+J)
-        else If IsCdDevice(S+Chr(Ord('a')+J)) then
-          Result:=S+Chr(Ord('a')+J)
-      end
-    else
-      If IsCdDevice(S) then
-        Result:=S;
-    end;
-end;
-
-Const
-  IDEMajor = [IDE0_MAJOR,IDE1_MAJOR,IDE2_MAJOR,IDE3_MAJOR];
-  CDMajor  = [CDU31A_CDROM_MAJOR,CDU535_CDROM_MAJOR,
-              MATSUSHITA_CDROM_MAJOR,MATSUSHITA_CDROM2_MAJOR,
-              MATSUSHITA_CDROM3_MAJOR,MATSUSHITA_CDROM4_MAJOR,
-              SANYO_CDROM_MAJOR,
-              MITSUMI_CDROM_MAJOR,MITSUMI_X_CDROM_MAJOR,
-              OPTICS_CDROM_MAJOR,AZTECH_CDROM_MAJOR,
-              GOLDSTAR_CDROM_MAJOR,CM206_CDROM_MAJOR];
-
-Function TestCDRomIOCTL(Device : String) : Boolean;forward;
-
-
-Function IsCDDevice(Device : String) : Boolean;
-
-Var
-  Info : stat;
-  S : String;
-  DeviceMajor,F : Integer;
-
-begin
-{$ifdef debug}
-  Writeln('Testing device : ',Device);
-{$endif}
-  Result:=False;
-  If fpstat(device,info)<>0 then
-    exit;
-  if not (fpS_ISCHR(info.st_mode) or
-     fpS_ISBLK(info.st_mode)) then
-    exit;
-  S:=fpReadLink(Device);
-  If (S<>'') then
-    Device:=S;
-  If fpStat(Device,info)<>0 then
-    exit;
-  DeviceMajor:=info.st_rdev shr 8;
-  If DeviceMajor in [IDE0_MAJOR,IDE1_MAJOR,IDE2_MAJOR,IDE3_MAJOR] then
-      Result:=TestCDRomIOCTL(Device)
-  else
-    begin
-    Result:=DeviceMajor in CDMajor;
-    If Not Result then
-      begin
-      // test SCSI
-      end
-    else
-      begin
-      F:=fpOpen(Device,OPEN_RDONLY or OPEN_NONBLOCK);
-      Result:=(F>=0);
-      If Result then
-        fpClose(F);
-      end;
-    end;
-end;
-
-Function TestCDRomIOCTL(Device : String) : Boolean;
-
-Var
-  F : Integer;
-  info : Tcdrom_volctrl;
-
-begin
-{$ifdef debug}
-  Writeln('Testing for ATAPI');
-{$endif}
-  Result:=False;
-  f:=fpOpen(device,OPEN_RDONLY or OPEN_NONBLOCK);
-  If (f<0) then
-    exit;
-  Result:=(fpIOCtl(f,CDROMVOLREAD,@info)=0);
-  fpClose(f);
-end;
-
-end.

+ 0 - 162
packages/extra/cdrom/major.pp

@@ -1,162 +0,0 @@
-unit major;
-interface
-
-{
-  Automatically converted by H2Pas 0.99.15 from major.h
-  The following command line parameters were used:
-    major.h
-}
-
-{$PACKRECORDS C}
-
-
-  const
-     MAX_CHRDEV = 255;
-     MAX_BLKDEV = 255;
-     UNNAMED_MAJOR = 0;
-     MEM_MAJOR = 1;
-     RAMDISK_MAJOR = 1;
-     FLOPPY_MAJOR = 2;
-     PTY_MASTER_MAJOR = 2;
-     IDE0_MAJOR = 3;
-     PTY_SLAVE_MAJOR = 3;
-     HD_MAJOR = IDE0_MAJOR;
-     TTY_MAJOR = 4;
-     TTYAUX_MAJOR = 5;
-     LP_MAJOR = 6;
-     VCS_MAJOR = 7;
-     LOOP_MAJOR = 7;
-     SCSI_DISK0_MAJOR = 8;
-     SCSI_TAPE_MAJOR = 9;
-     MD_MAJOR = 9;
-     MISC_MAJOR = 10;
-     SCSI_CDROM_MAJOR = 11;
-     QIC02_TAPE_MAJOR = 12;
-     XT_DISK_MAJOR = 13;
-     SOUND_MAJOR = 14;
-     CDU31A_CDROM_MAJOR = 15;
-     JOYSTICK_MAJOR = 15;
-     GOLDSTAR_CDROM_MAJOR = 16;
-     OPTICS_CDROM_MAJOR = 17;
-     SANYO_CDROM_MAJOR = 18;
-     CYCLADES_MAJOR = 19;
-     CYCLADESAUX_MAJOR = 20;
-     MITSUMI_X_CDROM_MAJOR = 20;
-  { ARM Linux /dev/mfm  }
-     MFM_ACORN_MAJOR = 21;
-     SCSI_GENERIC_MAJOR = 21;
-     Z8530_MAJOR = 34;
-     DIGI_MAJOR = 23;
-     IDE1_MAJOR = 22;
-     DIGICU_MAJOR = 22;
-     MITSUMI_CDROM_MAJOR = 23;
-     CDU535_CDROM_MAJOR = 24;
-     STL_SERIALMAJOR = 24;
-     MATSUSHITA_CDROM_MAJOR = 25;
-     STL_CALLOUTMAJOR = 25;
-     MATSUSHITA_CDROM2_MAJOR = 26;
-     QIC117_TAPE_MAJOR = 27;
-     MATSUSHITA_CDROM3_MAJOR = 27;
-     MATSUSHITA_CDROM4_MAJOR = 28;
-     STL_SIOMEMMAJOR = 28;
-     ACSI_MAJOR = 28;
-     AZTECH_CDROM_MAJOR = 29;
-  { SparcLinux & Linux/68k /dev/fb  }
-     GRAPHDEV_MAJOR = 29;
-  { Linux/mips, SGI /dev/shmiq  }
-     SHMIQ_MAJOR = 85;
-     CM206_CDROM_MAJOR = 32;
-     IDE2_MAJOR = 33;
-     IDE3_MAJOR = 34;
-  { expanded storage on S/390 = "slow ram"  }
-     XPRAM_MAJOR = 35;
-  { proposed by Peter                       }
-     NETLINK_MAJOR = 36;
-     PS2ESDI_MAJOR = 36;
-     IDETAPE_MAJOR = 37;
-     Z2RAM_MAJOR = 37;
-  { AP1000 Block device  }
-     APBLOCK_MAJOR = 38;
-  { AP1000 DDV block device  }
-     DDV_MAJOR = 39;
-  { Network block device         }
-     NBD_MAJOR = 43;
-     RISCOM8_NORMAL_MAJOR = 48;
-  { 48..55  }
-     DAC960_MAJOR = 48;
-     RISCOM8_CALLOUT_MAJOR = 49;
-     MKISS_MAJOR = 55;
-  { DSP56001 processor device  }
-     DSP56K_MAJOR = 55;
-     IDE4_MAJOR = 56;
-     IDE5_MAJOR = 57;
-  { Logical Volume Manager  }
-     LVM_BLK_MAJOR = 58;
-     SCSI_DISK1_MAJOR = 65;
-     SCSI_DISK2_MAJOR = 66;
-     SCSI_DISK3_MAJOR = 67;
-     SCSI_DISK4_MAJOR = 68;
-     SCSI_DISK5_MAJOR = 69;
-     SCSI_DISK6_MAJOR = 70;
-     SCSI_DISK7_MAJOR = 71;
-     COMPAQ_SMART2_MAJOR = 72;
-     COMPAQ_SMART2_MAJOR1 = 73;
-     COMPAQ_SMART2_MAJOR2 = 74;
-     COMPAQ_SMART2_MAJOR3 = 75;
-     COMPAQ_SMART2_MAJOR4 = 76;
-     COMPAQ_SMART2_MAJOR5 = 77;
-     COMPAQ_SMART2_MAJOR6 = 78;
-     COMPAQ_SMART2_MAJOR7 = 79;
-     SPECIALIX_NORMAL_MAJOR = 75;
-     SPECIALIX_CALLOUT_MAJOR = 76;
-     COMPAQ_CISS_MAJOR = 104;
-     COMPAQ_CISS_MAJOR1 = 105;
-     COMPAQ_CISS_MAJOR2 = 106;
-     COMPAQ_CISS_MAJOR3 = 107;
-     COMPAQ_CISS_MAJOR4 = 108;
-     COMPAQ_CISS_MAJOR5 = 109;
-     COMPAQ_CISS_MAJOR6 = 110;
-     COMPAQ_CISS_MAJOR7 = 111;
-     ATARAID_MAJOR = 114;
-  { Official assignations from Peter  }
-     DASD_MAJOR = 94;
-  { Official assignations from Peter  }
-     MDISK_MAJOR = 95;
-  { 80->87  }
-     I2O_MAJOR = 80;
-     IDE6_MAJOR = 88;
-     IDE7_MAJOR = 89;
-     IDE8_MAJOR = 90;
-     IDE9_MAJOR = 91;
-     UBD_MAJOR = 98;
-     AURORA_MAJOR = 79;
-     JSFD_MAJOR = 99;
-     PHONE_MAJOR = 100;
-  { Logical Volume Manager  }
-     LVM_CHAR_MAJOR = 109;
-     RTF_MAJOR = 150;
-     RAW_MAJOR = 162;
-     USB_ACM_MAJOR = 166;
-     USB_ACM_AUX_MAJOR = 167;
-     USB_CHAR_MAJOR = 180;
-     UNIX98_PTY_MASTER_MAJOR = 128;
-     UNIX98_PTY_MAJOR_COUNT = 8;
-     UNIX98_PTY_SLAVE_MAJOR = UNIX98_PTY_MASTER_MAJOR + UNIX98_PTY_MAJOR_COUNT;
-  { VERITAS volume i/o driver     }
-     VXVM_MAJOR = 199;
-  { VERITAS volume config driver  }
-     VXSPEC_MAJOR = 200;
-  { VERITAS volume multipath driver  }
-     VXDMP_MAJOR = 201;
-     MSR_MAJOR = 202;
-     CPUID_MAJOR = 203;
-  { OnStream-SCx0 SCSI tape  }
-     OSST_MAJOR = 206;
-  { Official allocations now  }
-     IBM_TTY3270_MAJOR = 227;
-     IBM_FS3270_MAJOR = 228;
-
-implementation
-
-
-end.

+ 0 - 293
packages/extra/cdrom/scsidefs.pp

@@ -1,293 +0,0 @@
-unit scsidefs;
-
-interface
-
-const
-
-{ ---------------------------------------------------------------------
-  TARGET STATUS VALUES
-  ---------------------------------------------------------------------}
-
-  STATUS_GOOD = $00;     // Status Good
-  STATUS_CHKCOND = $02;  // Check Condition
-  STATUS_CONDMET = $04;  // Condition Met
-  STATUS_BUSY = $08;     // Busy
-  STATUS_INTERM = $10;   // Intermediate
-  STATUS_INTCDMET = $14; // Intermediate-condition met
-  STATUS_RESCONF = $18;  // Reservation conflict
-  STATUS_COMTERM = $22;  // Command Terminated
-  STATUS_QFULL = $28;    // Queue full
-
-{ ---------------------------------------------------------------------
-  SCSI MISCELLANEOUS EQUATES
-  ---------------------------------------------------------------------}
-
-  MAXLUN = 7;         // Maximum Logical Unit Id
-  MAXTARG = 7;        // Maximum Target Id
-  MAX_SCSI_LUNS = 64; // Maximum Number of SCSI LUNs
-  MAX_NUM_HA = 8;     // Maximum Number of SCSI HA's
-
-{ ---------------------------------------------------------------------
-  SCSI COMMAND OPCODES
-  ---------------------------------------------------------------------}
-
-{ ---------------------------------------------------------------------
-  Commands for all Device Types
-  ---------------------------------------------------------------------}
-
-  SCSI_CHANGE_DEF = $40; // Change Definition (Optional)
-  SCSI_COMPARE = $39;    // Compare (O)
-  SCSI_COPY = $18;       // Copy (O)
-  SCSI_COP_VERIFY = $3A; // Copy and Verify (O)
-  SCSI_INQUIRY = $12;    // Inquiry (MANDATORY)
-  SCSI_LOG_SELECT = $4C; // Log Select (O)
-  SCSI_LOG_SENSE = $4D;  // Log Sense (O)
-  SCSI_MODE_SEL6 = $15;  // Mode Select 6-byte (Device Specific)
-  SCSI_MODE_SEL10 = $55; // Mode Select 10-byte (Device Specific)
-  SCSI_MODE_SEN6 = $1A;  // Mode Sense 6-byte (Device Specific)
-  SCSI_MODE_SEN10 = $5A; // Mode Sense 10-byte (Device Specific)
-  SCSI_READ_BUFF = $3C;  // Read Buffer (O)
-  SCSI_REQ_SENSE = $03;  // Request Sense (MANDATORY)
-  SCSI_SEND_DIAG = $1D;  // Send Diagnostic (O)
-  SCSI_TST_U_RDY = $00;  // Test Unit Ready (MANDATORY)
-  SCSI_WRITE_BUFF = $3B; // Write Buffer (O)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Direct Access Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_FORMAT = $04;     // Format Unit (MANDATORY)
-  SCSI_LCK_UN_CAC = $36; // Lock Unlock Cache (O)
-  SCSI_PREFETCH = $34;   // Prefetch (O)
-  SCSI_MED_REMOVL = $1E; // Prevent/Allow medium Removal (O)
-  SCSI_READ6 = $08;      // Read 6-byte (MANDATORY)
-  SCSI_READ10 = $28;     // Read 10-byte (MANDATORY)
-  SCSI_RD_CAPAC = $25;   // Read Capacity (MANDATORY)
-  SCSI_RD_DEFECT = $37;  // Read Defect Data (O)
-  SCSI_READ_LONG = $3E;  // Read Long (O)
-  SCSI_REASS_BLK = $07;  // Reassign Blocks (O)
-  SCSI_RCV_DIAG = $1C;   // Receive Diagnostic Results (O)
-  SCSI_RELEASE = $17;    // Release Unit (MANDATORY)
-  SCSI_REZERO = $01;     // Rezero Unit (O)
-  SCSI_SRCH_DAT_E = $31; // Search Data Equal (O)
-  SCSI_SRCH_DAT_H = $30; // Search Data High (O)
-  SCSI_SRCH_DAT_L = $32; // Search Data Low (O)
-  SCSI_SEEK6 = $0B;      // Seek 6-Byte (O)
-  SCSI_SEEK10 = $2B;     // Seek 10-Byte (O)
-  SCSI_SET_LIMIT = $33;  // Set Limits (O)
-  SCSI_START_STP = $1B;  // Start/Stop Unit (O)
-  SCSI_SYNC_CACHE = $35; // Synchronize Cache (O)
-  SCSI_VERIFY = $2F;     // Verify (O)
-  SCSI_WRITE6 = $0A;     // Write 6-Byte (MANDATORY)
-  SCSI_WRITE10 = $2A;    // Write 10-Byte (MANDATORY)
-  SCSI_WRT_VERIFY = $2E; // Write and Verify (O)
-  SCSI_WRITE_LONG = $3F; // Write Long (O)
-  SCSI_WRITE_SAME = $41; // Write Same (O)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Sequential Access Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_ERASE = $19;      // Erase (MANDATORY)
-  SCSI_LOAD_UN = $1B;    // Load/Unload (O)
-  SCSI_LOCATE = $2B;     // Locate (O)
-  SCSI_RD_BLK_LIM = $05; // Read Block Limits (MANDATORY)
-  SCSI_READ_POS = $34;   // Read Position (O)
-  SCSI_READ_REV = $0F;   // Read Reverse (O)
-  SCSI_REC_BF_DAT = $14; // Recover Buffer Data (O)
-  SCSI_RESERVE = $16;    // Reserve Unit (MANDATORY)
-  SCSI_REWIND = $01;     // Rewind (MANDATORY)
-  SCSI_SPACE = $11;      // Space (MANDATORY)
-  SCSI_VERIFY_T = $13;   // Verify (Tape) (O)
-  SCSI_WRT_FILE = $10;   // Write Filemarks (MANDATORY)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Printer Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_PRINT = $0A;      // Print (MANDATORY)
-  SCSI_SLEW_PNT = $0B;   // Slew and Print (O)
-  SCSI_STOP_PNT = $1B;   // Stop Print (O)
-  SCSI_SYNC_BUFF = $10;  // Synchronize Buffer (O)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Processor Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_RECEIVE = $08;    // Receive (O)
-  SCSI_SEND = $0A;       // Send (O)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Write-Once Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_MEDIUM_SCN = $38; // Medium Scan (O)
-  SCSI_SRCHDATE10 = $31; // Search Data Equal 10-Byte (O)
-  SCSI_SRCHDATE12 = $B1; // Search Data Equal 12-Byte (O)
-  SCSI_SRCHDATH10 = $30; // Search Data High 10-Byte (O)
-  SCSI_SRCHDATH12 = $B0; // Search Data High 12-Byte (O)
-  SCSI_SRCHDATL10 = $32; // Search Data Low 10-Byte (O)
-  SCSI_SRCHDATL12 = $B2; // Search Data Low 12-Byte (O)
-  SCSI_SET_LIM_10 = $33; // Set Limits 10-Byte (O)
-  SCSI_SET_LIM_12 = $B3; // Set Limits 10-Byte (O)
-  SCSI_VERIFY10 = $2F;   // Verify 10-Byte (O)
-  SCSI_VERIFY12 = $AF;   // Verify 12-Byte (O)
-  SCSI_WRITE12 = $AA;    // Write 12-Byte (O)
-  SCSI_WRT_VER10 = $2E;  // Write and Verify 10-Byte (O)
-  SCSI_WRT_VER12 = $AE;  // Write and Verify 12-Byte (O)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to CD-ROM Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_PLAYAUD_10  = $45; // Play Audio 10-Byte (O)
-  SCSI_PLAYAUD_12  = $A5; // Play Audio 12-Byte 12-Byte (O)
-  SCSI_PLAYAUDMSF  = $47; // Play Audio MSF (O)
-  SCSI_PLAYA_TKIN  = $48; // Play Audio Track/Index (O)
-  SCSI_PLYTKREL10  = $49; // Play Track Relative 10-Byte (O)
-  SCSI_PLYTKREL12  = $A9; // Play Track Relative 12-Byte (O)
-  SCSI_READCDCAP   = $25; // Read CD-ROM Capacity (MANDATORY)
-  SCSI_READHEADER  = $44; // Read Header (O)
-  SCSI_SUBCHANNEL  = $42; // Read Subchannel (O)
-  SCSI_READ_TOC    = $43; // Read TOC (O)
-  SCSI_STOP        = $4E;
-  SCSI_PAUSERESUME = $4B;
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Scanner Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_GETDBSTAT  = $34; // Get Data Buffer Status (O)
-  SCSI_GETWINDOW  = $25; // Get Window (O)
-  SCSI_OBJECTPOS  = $31; // Object Postion (O)
-  SCSI_SCAN       = $1B; // Scan (O)
-  SCSI_SETWINDOW  = $24; // Set Window (MANDATORY)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Optical Memory Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_UpdateBlk = $3D; // Update Block (O)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Optical Medium Changer Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_EXCHMEDIUM = $A6; // Exchange Medium (O)
-  SCSI_INITELSTAT = $07; // Initialize Element Status (O)
-  SCSI_POSTOELEM  = $2B; // Position to Element (O)
-  SCSI_REQ_VE_ADD = $B5; // Request Volume Element Address (O)
-  SCSI_SENDVOLTAG = $B6; // Send Volume Tag (O)
-
-{ ---------------------------------------------------------------------
-  Commands Unique to Optical Communication Devices
-  ---------------------------------------------------------------------}
-
-  SCSI_GET_MSG_6 = $08;  // Get Message 6-Byte (MANDATORY)
-  SCSI_GET_MSG_10 = $28; // Get Message 10-Byte (O)
-  SCSI_GET_MSG_12 = $A8; // Get Message 12-Byte (O)
-  SCSI_SND_MSG_6 = $0A;  // Send Message 6-Byte (MANDATORY)
-  SCSI_SND_MSG_10 = $2A; // Send Message 10-Byte (O)
-  SCSI_SND_MSG_12 = $AA; // Send Message 12-Byte (O)
-
-{ ---------------------------------------------------------------------
-  Request Sense Data Format
-  ---------------------------------------------------------------------}
-
-type
-
-  SENSE_DATA_FMT = record
-    ErrorCode, // Error Code (70H or 71H)
-    SegmentNum, // Number of current segment descriptor
-    SenseKey, // Sense Key(See bit definitions too)
-    InfoByte0, // Information MSB
-    InfoByte1, // Information MID
-    InfoByte2, // Information MID
-    InfoByte3, // Information LSB
-    AddSenLen, // Additional Sense Length
-    ComSpecInf0, // Command Specific Information MSB
-    ComSpecInf1, // Command Specific Information MID
-    ComSpecInf2, // Command Specific Information MID
-    ComSpecInf3, // Command Specific Information LSB
-    AddSenseCode, // Additional Sense Code
-    AddSenQual, // Additional Sense Code Qualifier
-    FieldRepUCode, // Field Replaceable Unit Code
-    SenKeySpec15, // Sense Key Specific 15th byte
-    SenKeySpec16, // Sense Key Specific 16th byte
-    SenKeySpec17, // Sense Key Specific 17th byte
-    AddSenseBytes : BYTE; // Additional Sense Bytes
-  end;
-
-  TSENSE_DATA_FMT = SENSE_DATA_FMT;
-  PSENSE_DATA_FMT = ^SENSE_DATA_FMT;
-
-{ ---------------------------------------------------------------------
-  REQUEST SENSE ERROR CODE
-  ---------------------------------------------------------------------}
-
-const
-
-  SERROR_CURRENT = $70; // Current Errors
-  SERROR_DEFERED = $71; // Deferred Errors
-
-{ ---------------------------------------------------------------------
-  REQUEST SENSE BIT DEFINITIONS
-  ---------------------------------------------------------------------}
-
-  SENSE_VALID   = $80; // Byte 0 Bit 7
-  SENSE_FILEMRK = $80; // Byte 2 Bit 7
-  SENSE_EOM     = $40; // Byte 2 Bit 6
-  SENSE_ILI     = $20; // Byte 2 Bit 5
-
-{ ---------------------------------------------------------------------
-  REQUEST SENSE SENSE KEY DEFINITIONS
-  ---------------------------------------------------------------------}
-
-  KEY_NOSENSE    = $00; // No Sense
-  KEY_RECERROR   = $01; // Recovered Error
-  KEY_NOTREADY   = $02; // Not Ready
-  KEY_MEDIUMERR  = $03; // Medium Error
-  KEY_HARDERROR  = $04; // Hardware Error
-  KEY_ILLGLREQ   = $05; // Illegal Request
-  KEY_UNITATT    = $06; // Unit Attention
-  KEY_DATAPROT   = $07; // Data Protect
-  KEY_BLANKCHK   = $08; // Blank Check
-  KEY_VENDSPEC   = $09; // Vendor Specific
-  KEY_COPYABORT  = $0A; // Copy Abort
-  KEY_EQUAL      = $0C; // Equal (Search)
-  KEY_VOLOVRFLW  = $0D; // Volume Overflow
-  KEY_MISCOMP    = $0E; // Miscompare (Search)
-  KEY_RESERVED   = $0F; // Reserved
-
-{ ---------------------------------------------------------------------
-  PERIPHERAL DEVICE TYPE DEFINITIONS
-  ---------------------------------------------------------------------}
-
-  DTYPE_DASD    = $00; // Disk Device
-  DTYPE_SEQD    = $01; // Tape Device
-  DTYPE_PRNT    = $02; // Printer
-  DTYPE_PROC    = $03; // Processor
-  DTYPE_WORM    = $04; // Write-once read-multiple
-  DTYPE_CROM    = $05; // CD-ROM device
-  DTYPE_CDROM   = DTYPE_CROM;
-  DTYPE_SCAN    = $06; // Scanner device
-  DTYPE_OPTI    = $07; // Optical memory device
-  DTYPE_JUKE    = $08; // Medium Changer device
-  DTYPE_COMM    = $09; // Communications device
-  DTYPE_RESL    = $0A; // Reserved (low)
-  DTYPE_RESH    = $1E; // Reserved (high)
-  DTYPE_UNKNOWN = $1F; // Unknown or no device type
-
-{ ---------------------------------------------------------------------
-  ANSI APPROVED VERSION DEFINITIONS
-  ---------------------------------------------------------------------}
-
-  ANSI_MAYBE = $0; // Device may or may not be ANSI approved stand
-  ANSI_SCSI1 = $1; // Device complies to ANSI X3.131-1986 (SCSI-1)
-  ANSI_SCSI2 = $2; // Device complies to SCSI-2
-  ANSI_RESLO = $3; // Reserved (low)
-  ANSI_RESHI = $7; // Reserved (high)
-
-implementation
-
-end.

+ 0 - 22
packages/extra/cdrom/showcds.pp

@@ -1,22 +0,0 @@
-program showcds;
-
-{$mode objfpc}
-{$h+}
-
-uses cdrom,sysutils;
-
-Var
-  Drives : Array[1..10] of String;
-  I,Count : Integer;
-
-begin
-  Try
-    Count:=GetCDRomDevices(Drives);
-    Writeln('This PC has ',count,' CD-ROM drives');
-    For I:=1 to count do
-      Writeln('Drive ',i,' on device: ',Drives[i]);
-  Except
-    On E : exception do
-      Writeln(E.ClassName,' exception caught with message: ',E.Message);
-  end;
-end.

+ 0 - 511
packages/extra/cdrom/wincd.pp

@@ -1,511 +0,0 @@
-{
-}
-unit wincd;
-
-{$mode objfpc}
-{$h+}
-
-interface
-
-uses Windows,SysUtils;
-
-Type
-  TCDAccessMethod = (camNone,camASPI,camSPTI,camIOCTL);
-{$packrecords c}
-TTOCTrack = packed record
-  rsvd,
-  ADR,
-  trackNumber,
-  rsvd2 : Byte;
-  addr : Array[0..3] of byte;
-end;
-
-TTOC = packed Record
-  toclen : word;
-  firsttrack,
-  lastTrack  : byte;
-  toctrack:  Array[0..99] of TTocTrack;
-end;
-
-Const
-  AccessMethodNames : Array[TCDAccessMethod] of string
-                    = ('None','ASPI','SPTI','IOCTL');
-
-Function  GetCDAccessMethod : TCDAccessMethod;
-Procedure SetCDAccessMethod (Value : TCDAccessMethod);
-Function  ReadTOC(Device : String; Var TOC : TTOc) : Integer;
-Function  EnumCDDrives(Var Drives : Array of String) : Integer;
-Function  GetNumDrives : Integer;
-
-implementation
-
-uses cdromioctl,wnaspi32,scsidefs;
-
-Var
-  CurrentAccessMethod : TCDAccessMethod;
-  CDOSVer : Integer;
-
-{ ---------------------------------------------------------------------
-  SPTI Defines.
-  ---------------------------------------------------------------------}
-
-Type
-
-{$packrecords C}
- SCSI_PASS_THROUGH = record
-   Length : USHORT;
-   ScsiStatus : UCHAR;
-   PathId : UCHAR;
-   TargetId : UCHAR;
-   Lun : UCHAR;
-   CdbLength : UCHAR;
-   SenseInfoLength : UCHAR;
-   DataIn : UCHAR;
-   DataTransferLength : ULONG;
-   TimeOutValue : ULONG;
-   DataBufferOffset : ULONG;
-   SenseInfoOffset : ULONG;
-   Cdb : array[0..15] of UCHAR;
- end;
- TSCSI_PASS_THROUGH = SCSI_PASS_THROUGH;
- PSCSI_PASS_THROUGH = ^TSCSI_PASS_THROUGH;
-
- SCSI_PASS_THROUGH_DIRECT = record
-   Length : USHORT;
-   ScsiStatus : UCHAR;
-   PathId : UCHAR;
-   TargetId : UCHAR;
-   Lun : UCHAR;
-   CdbLength : UCHAR;
-   SenseInfoLength : UCHAR;
-   DataIn : UCHAR;
-   DataTransferLength : ULONG;
-   TimeOutValue : ULONG;
-   DataBuffer : PVOID;
-   SenseInfoOffset : ULONG;
-   Cdb : array[0..15] of UCHAR;
- end;
- TSCSI_PASS_THROUGH_DIRECT = SCSI_PASS_THROUGH_DIRECT;
- PSCSI_PASS_THROUGH_DIRECT = ^SCSI_PASS_THROUGH_DIRECT;
-
- SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER = record
-    spt : SCSI_PASS_THROUGH_DIRECT;
-    Filler : ULONG;
-    ucSenseBuf : array[0..31] of UCHAR;
- end;
- TSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER = SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER;
- PSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER = ^SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER;
-
-
-const
- METHOD_BUFFERED   = 0;
- METHOD_IN_DIRECT  = 1;
- METHOD_OUT_DIRECT = 2;
- METHOD_NEITHER    = 3;
-
- FILE_ANY_ACCESS   = 0;
- FILE_READ_ACCESS  = $0001;
- FILE_WRITE_ACCESS = $0002;
- IOCTL_CDROM_BASE  = $00000002;
- IOCTL_SCSI_BASE   = $00000004;
-
- SCSI_IOCTL_DATA_OUT         = 0;
- SCSI_IOCTL_DATA_IN          = 1;
- SCSI_IOCTL_DATA_UNSPECIFIED = 2;
-
-{ ---------------------------------------------------------------------
-  Initialization code.
-  ---------------------------------------------------------------------}
-
-procedure InitWinCD;
-
-Var
-  TheCDOSVER : TOSVersionInfo;
-
-begin
-  TheCDOSVer.dwOSVersionInfoSize:=SizeOf(TheCDOSver);
-  GetVersionEx(TheCDOSVer);
-  CDOSVer:=TheCDOSVer.dwMajorVersion;
-  If AspiLoaded then
-    CurrentAccessMethod := camASPI
-  else
-    begin
-    if (CDOSver<1) then
-      CurrentAccessMethod := camNone
-    else
-      {
-        It is better to use SPTI on windows, but the problem with that
-        is that administrative priviledges are needed. A detection
-        algorithm for these priviledges here would be nice.
-      }
-      CurrentAccessMethod := camSPTI;
-    end;
-end;
-
-{ ---------------------------------------------------------------------
-  Actual reading of table of contents.
-  ---------------------------------------------------------------------}
-
-{ ---------------------------------------------------------------------
-  1. SPTI
-  ---------------------------------------------------------------------}
-
-Function sptiReadTOC(Device : String; var TOC: TToC) : Integer;
-
-Var
-  DriveHandle : THandle;
-  len : Cardinal;
-  buf : Array[0..31] of char;
-  ID,retVal : Integer;
-  Returned,Flags : Cardinal;
-  swb : TSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER;
-begin
-  Flags := Cardinal(GENERIC_READ);
-  if (CDOSVer>4) then
-    Flags:=Flags or Cardinal(GENERIC_WRITE);
-  Device:=Upcase('\\.\'+Device);
-  DriveHandle:=CreateFile(pchar(Device),Flags,FILE_SHARE_READ,
-                          nil,OPEN_EXISTING, 0, 0 );
-  if (DriveHandle=INVALID_HANDLE_VALUE) then
-    begin
-    Result:=-1;
-    Exit;
-    end;
-  Try
-    Returned:= 0;
-    len:= sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER);
-    FillChar(swb, len ,0);
-    With swb.spt do
-      begin
-      Length := sizeof(swb.spt); // SCSI_PASS_THROUGH);
-      CdbLength       := 10;
-      DataIn          := SCSI_IOCTL_DATA_IN;
-      DataTransferLength := SizeOf(tOC);
-      TimeOutValue    := 5;
-      DataBuffer      := @TOC;
-      SenseInfoOffset := @swb.ucSenseBuf[0]-pbyte(@swb.spt);
-      Cdb[0]          := $43; // read TOC
-      Cdb[1]          := $02; // MSF mode
-      Cdb[7]          := $03;
-      Cdb[8]          := $24;
-      end;
-    if (Not DeviceIoControl(DriveHandle,
-                            IOCTL_SCSI_PASS_THROUGH_DIRECT,
-                            @swb,
-                            len,
-                            @swb,
-                            len,
-                            @Returned,
-                            Nil)) then
-      begin
-      Result:=-1;
-      Exit;
-      end;
-    With TOC do
-      Result:=LastTrack-FirstTrack+1;
-  finally
-    CloseHandle(DriveHandle);
-  end;
-end;
-
-{ ---------------------------------------------------------------------
-  2. ASPI
-  ---------------------------------------------------------------------}
-
-Function AspiGetNumAdapters : Integer;
-
-Var
-  D : DWORD;
-  Count, Status : Byte;
-
-begin
-  d:= GetASPI32SupportInfo();
-  Count:=D and $FF;
-  Status:=(D shr 8) and $ff;
-  if (Status<>SS_COMP) and (Status<>SS_NO_ADAPTERS) then
-    Result:=-1
-  else
-    Result:=Count;
-end;
-
-Function DriveToSCSIParm (Device : String; Var HID,TGT,LUN : Byte) : Boolean;
-
-Var
-  Code : Integer;
-
-begin
-  Result:=False;
-  Code:=Pos('[',Device);
-  if Code<>0 then
-    begin
-    Delete(Device,1,Code);
-    Code:=Pos(';',Device);
-    HID:=StrToIntDef(Copy(Device,1,Code-1),-1);
-    Result:=HID<>-1;
-    If result then
-      begin
-      Delete(DEvice,1,Code);
-      Code:=Pos(';',Device);
-      Tgt:=StrToIntDef(Copy(Device,1,Code-1),-1);
-      Result:=tgt<>-1;
-      If result then
-        begin
-        Delete(DEvice,1,Code);
-        Code:=Pos(']',Device);
-        Lun:=StrToIntDef(Copy(Device,1,Code-1),-1);
-        Result:=Lun<>-1;
-        end;
-      end;
-    end;
-end;
-
-Var
-  Atoc : TTOc;
-
-Function AspiReadTOC(Device : String; Var TOC : TTOC) : Integer;
-
-Var
-  HAID,TGT,LUN : Byte;
-  Status : DWord;
-  S,T : SRB_ExecSCSICmd;
-  HEvent : THANDLE;
-
-begin
-  If Not DriveToSCSIParm(Device,HAID,TGT,lun) then
-    begin
-    Result:=-1;
-    Exit;
-    end;
-  Writeln('About to read toc from ',haid,' ',tgt,' ',lun);
-  hEvent:=CreateEvent( nil, TRUE, FALSE, nil );
-  Writeln('Resetting event');
-  ResetEvent(hEvent);
-  Writeln('Reset event');
-  Try
-   FillChar(S,sizeof(s),0);
-   s.SRB_Cmd      := SC_EXEC_SCSI_CMD;
-   s.SRB_HaID     := HaID;
-   s.SRB_Target   := Tgt;
-   s.SRB_Lun      := lun;
-   s.SRB_Flags    := SRB_DIR_IN or SRB_EVENT_NOTIFY;
-   s.SRB_BufLen   := SizeOf(Toc);
-   s.SRB_BufPointer := @TOC;
-   s.SRB_SenseLen := SENSE_LEN;
-   s.SRB_CDBLen   := $0A;
-   s.SRB_PostProc := LPVOID(hEvent);
-   s.CDBByte[0]   := SCSI_READ_TOC;   // read TOC command
-   s.CDBByte[1]   := $02;   // MSF mode
-   s.CDBByte[7]   := HiByte(Word(S.SRB_BufLen));   // high-order byte of buffer len
-   s.CDBByte[8]   := LoByte(Word(S.SRB_BUFLEN));   // low-order byte of buffer len
-   Writeln('Sending Command');
-   SendASPI32Command(LPSRB(@s));
-   Writeln('Sent Command');
-   Status:=S.SRB_STATUS;
-   Writeln('Command status,',Status);
-   if (Status=SS_PENDING ) then
-     begin
-     Writeln('Waiting for object');
-     WaitForSingleObject( hEvent, 10000 );  // wait up to 10 secs
-     Writeln('Waiting ended');
-     end;
-  Finally
-    CloseHandle( hEvent );
-  end;
-  if (S.SRB_Status<>SS_COMP ) then
-    begin
-    Result:=-1;
-    Exit;
-    end;
-  Writeln('Command completed');
-  With TOC do
-    Result:=LastTrack-FirstTrack+1;
-end;
-
-{ ---------------------------------------------------------------------
-  3. IOCTL
-  ---------------------------------------------------------------------}
-
-Function ioctlReadTOC(Device : String; Var TOC : TTOC) : Integer;
-
-Var
-  DriveHandle : Thandle;
-  Retval : Longint;
-  Returned : DWord;
-  Flags : Cardinal;
-
-begin
-  Flags:=Cardinal(GENERIC_READ);
-  device:=Upcase('\\.\'+device);
-  DriveHandle:=CreateFile(PChar(Device), Flags,
-                          FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0 );
-  if (DriveHandle = INVALID_HANDLE_VALUE) then
-    begin
-    result:=-1;
-    exit;
-    end;
-  Try
-    Returned := 0;
-    FillChar(Toc, sizeof(TOC),0 );
-    if Not DeviceIoControl(DriveHandle,
-                           IOCTL_CDROM_READ_TOC,
-                           Nil,
-                           0,
-                           @TOC,
-                           sizeof(TTOC),
-                           @Returned,
-                           NiL) then
-       begin
-       Result:=-1;
-       exit;
-       end;
-    With TOC do
-      Result:=LastTrack-FirstTrack+1;
-  Finally
-    CloseHandle(DriveHandle);
-  end;
-end;
-
-
-Function NtDriveInfo(CopyDrives : Boolean;Var CDDrives : Array of string): Integer;
-
-var
-  I : Integer;
-  Drives : Array[0..105] of char;
-  P : PChar;
-
-begin
-  FillChar(Drives,SizeOf(Drives),0);
-  GetLogicalDriveStrings(105,Drives);
-  P:=@Drives[0];
-  Result:=0;
-  While P[0]<>#0 do
-    begin
-    If GetDriveType(p)=DRIVE_CDROM then
-      begin
-      If CopyDrives and (Result<High(CDDrives)) then
-        CDDrives[Result]:=Upcase(P[0])+':';
-      Inc(Result);
-      end;
-    P:=P+Strlen(P)+1;
-    end;
-end;
-
-Function NTGetNumDrives: Integer;
-
-Var A : Array[1..1] of string;
-
-begin
-  Result:=NTDriveInfo(False,A);
-end;
-
-Function ioctlEnumDrives(Var Drives : Array of string) : Integer;
-
-begin
-  result:=NTDriveInfo(True,Drives);
-end;
-
-{ ---------------------------------------------------------------------
-  3. Generic
-  ---------------------------------------------------------------------}
-
-Function ReadTOC(Device : String; Var TOC : TTOc) : Integer;
-
-begin
-  Case CurrentAccessMethod of
-    camNone  : Result:=-1;
-    camASPI  : Result:=AspiReadTOC(Device,TOC);
-    camSPTI  : Result:=SptiReadTOC(Device,TOC);
-    camIOCTL : Result:=IOCTLReadTOC(Device,TOC);
-  end;
-end;
-
-Function  GetCDAccessMethod : TCDAccessMethod;
-
-begin
-  Result:=CurrentAccessMethod;
-end;
-
-Procedure SetCDAccessMethod (Value : TCDAccessMethod);
-
-begin
-  CurrentAccessMethod:=Value;
-end;
-
-
-Function ASPIDriveInfo(CopyInfo : Boolean; Var Drives : Array of string) : Integer;
-
-var
-  sh : SRB_HAInquiry;
-  sd : SRB_GDEVBlock;
-  numAdapters, maxTgt : Byte;
-  i, j, k : byte;
-  idx : Integer;
-
-begin
-  Result:=0;
-  numAdapters := AspiGetNumAdapters;
-  if (numAdapters=0) then
-    exit;
-  For I:=0 to NumAdapters-1 do
-    begin
-    FillChar(sh,sizeof(sh),0);
-    sh.SRB_Cmd := SC_HA_INQUIRY;
-    sh.SRB_HaID := i;
-    SendASPI32Command(LPSRB(@sh));
-    if (sh.SRB_Status=SS_COMP) then
-      begin
-      maxTgt:=sh.HA_Unique[3];
-      if (maxTgt=0) then
-        maxTgt:=MAXTARG;
-      For J:=0 to Maxtgt-1 do
-        For k:=0 to MAXLUN-1 do
-          begin
-          FillChar(sd,sizeof(sd),0);
-          sd.SRB_Cmd    := SC_GET_DEV_TYPE;
-          sd.SRB_HaID   := i;
-          sd.SRB_Target := j;
-          sd.SRB_Lun    := k;
-          SendASPI32Command(LPSRB(@sd));
-          if (sd.SRB_Status=SS_COMP) and
-             (sd.SRB_DeviceType=DTYPE_CDROM) then
-            begin
-            If CopyInfo and (Result<High(Drives)) then
-              Drives[Result]:=Format('ASPI[%d;%d;%d]',[I,J,K]);
-            Inc(Result);
-            end;
-          end;
-      end;
-    end;
-end;
-
-Function ASPIGetNumDrives: Integer;
-
-Var
-  A : Array[1..1] of string;
-
-begin
-  Result:=AspiDriveInfo(False,A);
-end;
-
-
-Function GetNumDrives : Integer;
-
-begin
- If CurrenTAccessMethod=camASPI then
-   Result:=AspiGetNumDrives
- else
-   Result:=NTGetNumDrives;
-end;
-
-Function EnumCDDrives(Var Drives : Array of String) : Integer;
-
-begin
- If CurrenTAccessMethod=camASPI then
-   Result:=AspiDriveInfo(True,Drives)
- else
-   Result:=ioctlEnumDrives(Drives);
-end;
-
-Initialization
-  InitWinCD;
-end.

+ 0 - 259
packages/extra/cdrom/wnaspi32.pp

@@ -1,259 +0,0 @@
-unit wnaspi32;
-
-{$mode objfpc}
-
-interface
-
-uses Windows;
-
-type
-  LPSRB = Pointer;
-
-const
-{ $packrecords c}
-
-  SENSE_LEN                 = 14;  // Default sense buffer length
-  SRB_DIR_SCSI              = $00; // Direction determined by SCSI command
-  SRB_DIR_IN                = $08; // Transfer from SCSI target to host
-  SRB_DIR_OUT               = $10; // Transfer from host to SCSI target
-  SRB_POSTING               = $01; // Enable ASPI posting
-  SRB_EVENT_NOTIFY          = $40; // Enable ASPI event notification
-  SRB_ENABLE_RESIDUAL_COUNT = $04; // Enable residual byte count reporting
-  SRB_DATA_SG_LIST          = $02; // Data buffer points to scatter-gather list
-
-  WM_ASPIPOST               = $4D42; // ASPI Post message
-
-{ ---------------------------------------------------------------------
-  ASPI Command Definitions
-  ---------------------------------------------------------------------}
-
-  SC_HA_INQUIRY     = $00; // Host adapter inquiry
-  SC_GET_DEV_TYPE   = $01; // Get device type
-  SC_EXEC_SCSI_CMD  = $02; // Execute SCSI command
-  SC_ABORT_SRB      = $03; // Abort an SRB
-  SC_RESET_DEV      = $04; // SCSI bus device reset
-  SC_GET_DISK_INFO  = $06; // Get Disk information
-
-{ ---------------------------------------------------------------------
-  SRB Status
-  ---------------------------------------------------------------------}
-
-  SS_PENDING        = $00; // SRB being processed
-  SS_COMP           = $01; // SRB completed without error
-  SS_ABORTED        = $02; // SRB aborted
-  SS_ABORT_FAIL     = $03; // Unable to abort SRB
-  SS_ERR            = $04; // SRB completed with error
-
-  SS_INVALID_CMD    = $80; // Invalid ASPI command
-  SS_INVALID_HA     = $81; // Invalid host adapter number
-  SS_NO_DEVICE      = $82; // SCSI device not installed
-
-  SS_INVALID_SRB    = $E0; // Invalid parameter set in SRB
-  SS_FAILED_INIT    = $E4; // ASPI for windows failed init
-  SS_ASPI_IS_BUSY   = $E5; // No resources available to execute cmd
-  SS_BUFFER_TO_BIG  = $E6; // Buffer size to big to handle!
-  SS_NO_ADAPTERS    = $E8; // No adapters.
-
-{ ---------------------------------------------------------------------
-    Host Adapter Status
-  ---------------------------------------------------------------------}
-
-  HASTAT_OK                   = $00; // Host adapter did not detect an                                                                                                                  // error
-  HASTAT_SEL_TO               = $11; // Selection Timeout
-  HASTAT_DO_DU                = $12; // Data overrun data underrun
-  HASTAT_BUS_FREE             = $13; // Unexpected bus free
-  HASTAT_PHASE_ERR            = $14; // Target bus phase sequence                                                                                                                               // failure
-  HASTAT_TIMEOUT              = $09; // Timed out while SRB was                                                                                                                                         waiting to beprocessed.
-  HASTAT_COMMAND_TIMEOUT      = $0B; // While processing the SRB, the adapter timed out.
-  HASTAT_MESSAGE_REJECT       = $0D; // While processing SRB, the                                                                                                                               // adapter received a MESSAGE                                                                                                                   // REJECT.
-  HASTAT_BUS_RESET            = $0E; // A bus reset was detected.
-  HASTAT_PARITY_ERROR         = $0F; // A parity error was detected.
-  HASTAT_REQUEST_SENSE_FAILED = $10; // The adapter failed in issuing
-
-{ ---------------------------------------------------------------------
-    SRB - HOST ADAPTER INQUIRY - SC_HA_INQUIRY
-  ---------------------------------------------------------------------}
-
-type
-
-  SRB_HAInquiry = record
-    SRB_Cmd : Byte;                       // ASPI command code = SC_HA_INQUIRY
-    SRB_Status : Byte;                    // ASPI command status byte
-    SRB_HaId : Byte;                      // ASPI host adapter number
-    SRB_Flags : Byte;                     // ASPI request flags
-    SRB_Hdr_Rsvd : DWORD;                 // Reserved, MUST = 0
-    HA_Count : Byte;                      // Number of host adapters present
-    HA_SCSI_ID : Byte;                    // SCSI ID of host adapter
-    HA_ManagerId : array[0..15] of Byte;  // String describing the manager
-    HA_Identifier : array[0..15] of Byte; // String describing the host adapter
-    HA_Unique : array[0..15] of Byte;     // Host Adapter Unique parameters
-    HA_Rsvd1 : Word;
-  end;
-
-  PSRB_HAInquiry = ^SRB_HAInquiry;
-  TSRB_HAInquiry = SRB_HAInquiry;
-
-{ ---------------------------------------------------------------------
-     SRB - GET DEVICE TYPE - SC_GET_DEV_TYPE
-  ---------------------------------------------------------------------}
-
-  SRB_GDEVBlock = record
-    SRB_Cmd,              // ASPI command code = SC_GET_DEV_TYPE
-    SRB_Status,           // ASPI command status byte
-    SRB_HaId,             // ASPI host adapter number
-    SRB_Flags : BYTE;     // Reserved
-    SRB_Hdr_Rsvd : DWORD; // Reserved
-    SRB_Target,           // Target's SCSI ID
-    SRB_Lun,              // Target's LUN number
-    SRB_DeviceType,       // Target's peripheral device type
-    SRB_Rsvd1 : BYTE;
-  end;
-
-  TSRB_GDEVBlock = SRB_GDEVBlock;
-  PSRB_GDEVBlock = ^SRB_GDEVBlock;
-
-{ ---------------------------------------------------------------------
-    SRB - EXECUTE SCSI COMMAND - SC_EXEC_SCSI_CMD
-  ---------------------------------------------------------------------}
-
-  SRB_ExecSCSICmd = record
-    SRB_Cmd,                   // ASPI command code = SC_EXEC_SCSI_CMD
-    SRB_Status,                // ASPI command status byte
-    SRB_HaId,                  // ASPI host adapter number
-    SRB_Flags : BYTE;          // ASPI request flags
-    SRB_Hdr_Rsvd : DWORD;      // Reserved
-    SRB_Target,                // Target's SCSI ID
-    SRB_Lun : BYTE;            // Target's LUN number
-    SRB_Rsvd1 : WORD;          // Reserved for Alignment
-    SRB_BufLen : DWORD;        // Data Allocation Length
-    SRB_BufPointer : Pointer;  // Data Buffer Pointer
-    SRB_SenseLen,              // Sense Allocation Length
-    SRB_CDBLen,                // CDB Length
-    SRB_HaStat,                // Host Adapter Status
-    SRB_TargStat : BYTE;       // Target Status
-    SRB_PostProc,              // Post routine
-    SRB_Rsvd2 : Pointer;       // Reserved
-    SRB_Rsvd3,                      // Reserved for alignment
-    CDBByte : array[0..15] of byte; // SCSI CDB
-    SenseArea : array[0..SENSE_LEN + 1] of byte; // Request Sense buffer
-  end;
-
-  TSRB_ExecSCSICmd = SRB_ExecSCSICmd;
-  PSRB_ExecSCSICmd = ^SRB_ExecSCSICmd;
-
-
-{ ---------------------------------------------------------------------
-    SRB - ABORT AN SRB - SC_ABORT_SRB
-  ---------------------------------------------------------------------}
-
-  SRB_Abort = record
-    SRB_Cmd,               // ASPI command code = SC_EXEC_SCSI_CMD
-    SRB_Status,            // ASPI command status byte
-    SRB_HaId,              // ASPI host adapter number
-    SRB_Flags : BYTE;      // Reserved
-    SRB_Hdr_Rsvd : DWORD;  // Reserved
-    SRB_ToAbort : Pointer; // Pointer to SRB to abort
-  end;
-
-  TSRB_Abort = SRB_Abort;
-  PSRB_Abort = ^SRB_Abort;
-
-{ ---------------------------------------------------------------------
-    SRB - BUS DEVICE RESET - SC_RESET_DEV
-  ---------------------------------------------------------------------}
-
-  SRB_BusDeviceReset = record
-    SRB_Cmd,                          // ASPI command code = SC_EXEC_SCSI_CMD
-    SRB_Status,                       // ASPI command status byte
-    SRB_HaId,                         // ASPI host adapter number
-    SRB_Flags : BYTE;                 // Reserved
-    SRB_Hdr_Rsvd : DWORD;             // Reserved
-    SRB_Target,                       // Target's SCSI ID
-    SRB_Lun : BYTE;                   // Target's LUN number
-    SRB_Rsvd1 : array[0..11] of byte; // Reserved for Alignment
-    SRB_HaStat,                       // Host Adapter Status
-    SRB_TargStat : BYTE;              // Target Status
-    SRB_PostProc,                     // Post routine
-    SRB_Rsvd2 : Pointer;              // Reserved
-    SRB_Rsvd3,                        // Reserved
-    CDBByte : array[0..15] of byte;   // SCSI CDB
-  end;
-
-  TSRB_BusDeviceReset = SRB_BusDeviceReset;
-  PSRB_BusDeviceReset = ^SRB_BusDeviceReset;
-
-{ ---------------------------------------------------------------------
-     SRB - GET DISK INFORMATION - SC_GET_DISK_INFO
-  ---------------------------------------------------------------------}
-
-  SRB_GetDiskInfo = record
-    SRB_Cmd,              // ASPI command code = SC_EXEC_SCSI_CMD
-    SRB_Status,           // ASPI command status byte
-    SRB_HaId,             // ASPI host adapter number
-    SRB_Flags : BYTE;     // Reserved
-    SRB_Hdr_Rsvd : DWORD; // Reserved
-    SRB_Target,           // Target's SCSI ID
-    SRB_Lun,              // Target's LUN number
-    SRB_DriveFlags,       // Driver flags
-    SRB_Int13HDriveInfo,  // Host Adapter Status
-    SRB_Heads,            // Preferred number of heads translation
-    SRB_Sectors : BYTE;   // Preferred number of sectors translation
-    SRB_Rsvd1 : array[0..9] of byte; // Reserved
-  end;
-
-  TSRB_GetDiskInfo = SRB_GetDiskInfo;
-  PSRB_GetDiskInfo = ^SRB_GetDiskInfo;
-
-type
-  TSendASPI32Command = function( LPSRB : Pointer ) : DWORD; cdecl;
-  TGetASPI32SupportInfo = function : DWORD; cdecl;
-
-Const
-  SendASPI32Command : TSendASPI32Command = nil;
-  GetASPI32SupportInfo : TGetASPI32SupportInfo = nil;
-
-Function ASPILoaded : Boolean;
-Procedure CheckASPI;
-procedure UnloadASPI;
-
-implementation
-
-const
-  HWNASPI : THandle = 0;
-  WNASPI  : pchar = 'wnaspi32.dll';
-
-Function ASPILoaded : Boolean;
-
-begin
-  Result:=HWNASPI<>0;
-end;
-
-Procedure CheckASPI;
-
-begin
-  HWNASPI:=LoadLibrary(WNASPI);
-  if (HWNASPI<>0) then
-    begin
-    SendASPI32Command:=TSendASPI32Command(GetProcAddress(HWNASPI,'SendASPI32Command'));
-    GetASPI32SupportInfo:=TGetASPI32SupportInfo(GetProcAddress(HWNASPI,'GetASPI32SupportInfo'));
-    end
-end;
-
-procedure UnloadASPI;
-
-begin
-  if (HWNASPI<>0) then
-    begin
-    FreeLibrary(HWNASPI);
-    HWNASPI:=0;
-    SendASPI32Command:=nil;
-    GetASPI32SupportInfo:=nil;
-    end;
-end;
-
-initialization
-  CheckAspi;
-
-finalization
-  UnloadASPI;
-end.

+ 0 - 10
packages/extra/libgd/fpmake.inc

@@ -1,10 +0,0 @@
-    StartPackage('libgd');
-    {$IF defined(ALLPACKAGES)}
-    Directory:='extra/libgd';
-    {$ELSEIF defined(EXTRAPACKAGES)}
-    Directory:='libgd';
-    {$ENDIF}
-    OS:=[linux,netbsd,freebsd,openbsd,darwin];
-    T:=Targets.AddUnit('gd');
-    T:=Targets.AddExampleunit('gdtest');
-    EndPackage;

+ 0 - 17
packages/extra/libgd/fpmake.pp

@@ -1,17 +0,0 @@
-{$mode objfpc}{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
-  T : TTarget;
-
-begin
-  With Installer do 
-    begin
-    { Base packages }
-    {$i fpmake.inc}
-    Run;
-    end;
-end.
-

+ 321 - 3
packages/extra/libgd/Makefile → packages/libgd/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/01/26]
 #
 #
 default: all
 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-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
@@ -98,7 +98,7 @@ endif
 endif
 endif
 export ECHO
 export ECHO
 endif
 endif
-override DEFAULT_FPCDIR=../../..
+override DEFAULT_FPCDIR=../..
 ifndef FPC
 ifndef FPC
 ifdef PP
 ifdef PP
 FPC=$(PP)
 FPC=$(PP)
@@ -561,6 +561,324 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_EXAMPLES+=gdtest
 override TARGET_EXAMPLES+=gdtest
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_SOURCEDIR+=src tests
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=src tests
+endif
 override SHARED_BUILD=n
 override SHARED_BUILD=n
 override SHARED_BUILD=n
 override SHARED_BUILD=n
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
@@ -1687,7 +2005,7 @@ endif
 endif
 endif
 endif
 endif
 .PHONY: fpc_units
 .PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
+ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
 override ALLTARGET+=fpc_units
 override ALLTARGET+=fpc_units
 override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
 override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
 override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
 override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))

+ 6 - 1
packages/extra/libgd/Makefile.fpc → packages/libgd/Makefile.fpc

@@ -17,7 +17,12 @@ examples=gdtest
 fpcpackage=y
 fpcpackage=y
 
 
 [default]
 [default]
-fpcdir=../../..
+fpcdir=../..
+
+[compiler]
+includedir=src
+sourcedir=src tests
+
 
 
 [shared]
 [shared]
 build=n
 build=n

+ 0 - 0
packages/extra/libgd/README → packages/libgd/README


+ 28 - 0
packages/libgd/fpmake.pp

@@ -0,0 +1,28 @@
+{$ifndef ALLPACKAGES}
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+
+Var
+  P : TPackage;
+  T : TTarget;
+begin
+  With Installer do
+    begin
+{$endif ALLPACKAGES}
+
+    P:=AddPackage('libgd');
+{$ifdef ALLPACKAGES}
+    P.Directory:='libgd';
+{$endif ALLPACKAGES}
+    P.Version:='2.0.0';
+    P.SourcePath.Add('src');
+
+    T:=P.Targets.AddUnit('gd.pp');
+
+{$ifndef ALLPACKAGES}
+    Run;
+    end;
+end.
+{$endif ALLPACKAGES}

+ 0 - 0
packages/extra/libgd/gd.pp → packages/libgd/src/gd.pp


+ 0 - 0
packages/extra/libgd/gdtest.pp → packages/libgd/tests/gdtest.pp


+ 0 - 0
packages/extra/libgd/gdtestcgi.pp → packages/libgd/tests/gdtestcgi.pp