Browse Source

+ Added unit macpas

olle 21 years ago
parent
commit
3a29988676

+ 1 - 188
rtl/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/06/06]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
@@ -954,193 +954,6 @@ else
 TAROPT=vz
 TAROPT=vz
 TAREXT=.tar.gz
 TAREXT=.tar.gz
 endif
 endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),sparc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),arm)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),go32v2)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),os2)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),freebsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),freebsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),freebsd)
-ifeq ($(CPU_TARGET),x86_64)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),beos)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),sparc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),amiga)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),atari)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),sunos)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),sunos)
-ifeq ($(CPU_TARGET),sparc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),qnx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netware)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),openbsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),openbsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),wdosx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),palmos)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),macos)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),darwin)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),emx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),watcom)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),morphos)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
-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
 ifndef NOCPUDEF
 override FPCOPTDEF=$(CPU_TARGET)
 override FPCOPTDEF=$(CPU_TARGET)
 endif
 endif

+ 157 - 77
rtl/amiga/Makefile

@@ -1,15 +1,25 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/07]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx
-override PATH:=$(subst \,/,$(PATH))
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+BSDs = freebsd netbsd openbsd darwin
+UNIXs = linux $(BSDs) sunos qnx
+FORCE:
+.PHONY: FORCE
+override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
+ifneq ($(findstring darwin,$(OSTYPE)),)
+inUnix=1 #darwin
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
 ifeq ($(findstring ;,$(PATH)),)
 ifeq ($(findstring ;,$(PATH)),)
 inUnix=1
 inUnix=1
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 else
 else
 SEARCHPATH:=$(subst ;, ,$(PATH))
 SEARCHPATH:=$(subst ;, ,$(PATH))
 endif
 endif
+endif
+SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 ifeq ($(PWD),)
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
@@ -36,22 +46,13 @@ ifneq ($(findstring cygdrive,$(PATH)),)
 inCygWin=1
 inCygWin=1
 endif
 endif
 endif
 endif
-ifeq ($(OS_TARGET),freebsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-BSDhier=1
-endif
 ifdef inUnix
 ifdef inUnix
-BATCHEXT=.sh
+SRCBATCHEXT=.sh
 else
 else
 ifdef inOS2
 ifdef inOS2
-BATCHEXT=.cmd
+SRCBATCHEXT=.cmd
 else
 else
-BATCHEXT=.bat
+SRCBATCHEXT=.bat
 endif
 endif
 endif
 endif
 ifdef inUnix
 ifdef inUnix
@@ -156,6 +157,12 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 endif
 endif
 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 CROSSCOMPILE
 export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
 ifdef FPCDIR
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 override FPCDIR:=$(subst \,/,$(FPCDIR))
@@ -185,11 +192,14 @@ override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR:=$(FPCDIR)/..
 override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR=c:/pp
 override FPCDIR=c:/pp
 endif
 endif
 endif
 endif
 endif
 endif
 endif
 endif
+endif
 ifndef CROSSDIR
 ifndef CROSSDIR
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 endif
 endif
@@ -240,42 +250,12 @@ ifdef REQUIRE_PACKAGESDIR
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 endif
 endif
 ifdef ZIPINSTALL
 ifdef ZIPINSTALL
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 else
 else
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
@@ -284,7 +264,7 @@ INSTALL_PREFIX=$(PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_PREFIX=/usr/local
 INSTALL_PREFIX=/usr/local
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -303,7 +283,7 @@ DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
 else
@@ -314,10 +294,18 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
+else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
+endif
+else
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 endif
 endif
@@ -336,19 +324,23 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_LIBDIR
 ifndef INSTALL_LIBDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 else
 else
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 endif
 endif
 endif
 endif
 ifndef INSTALL_SOURCEDIR
 ifndef INSTALL_SOURCEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 SRCPREFIXDIR=share/src
 SRCPREFIXDIR=share/src
 else
 else
+ifdef linuxHier
+SRCPREFIXDIR=share/src
+else
 SRCPREFIXDIR=src
 SRCPREFIXDIR=src
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCSUBDIR
 ifdef INSTALL_FPCSUBDIR
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@@ -371,12 +363,16 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_DOCDIR
 ifndef INSTALL_DOCDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 DOCPREFIXDIR=share/doc
 DOCPREFIXDIR=share/doc
 else
 else
+ifdef linuxHier
+DOCPREFIXDIR=share/doc
+else
 DOCPREFIXDIR=doc
 DOCPREFIXDIR=doc
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
@@ -391,20 +387,28 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_EXAMPLEDIR
 ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 endif
 endif
+endif
 else
 else
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 endif
 endif
 endif
 endif
+endif
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@@ -426,6 +430,7 @@ endif
 else
 else
 CROSSBINDIR=
 CROSSBINDIR=
 endif
 endif
+BATCHEXT=.bat
 LOADEREXT=.as
 LOADEREXT=.as
 EXEEXT=.exe
 EXEEXT=.exe
 PPLEXT=.ppl
 PPLEXT=.ppl
@@ -449,25 +454,37 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.wat
+ZIPSUFFIX=watc
+OEXT=.obj
+ASMEXT=.asm
+SHAREDLIBEXT=.dll
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -479,6 +496,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -487,6 +505,7 @@ ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),emx)
 ifeq ($(OS_TARGET),emx)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -499,21 +518,29 @@ EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
 FPCMADE=fpcmade.amg
 FPCMADE=fpcmade.amg
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADE=fpcmade.mos
+endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.be
 FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.sun
 FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.qnx
 FPCMADE=fpcmade.qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
@@ -525,10 +552,14 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+FPCMADE=fpcmade.macos
+ZIPSUFFIX=macos
+DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.darwin
 FPCMADE=fpcmade.darwin
@@ -551,25 +582,34 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=watcom
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -586,6 +626,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 PPUEXT=.ppo
 PPUEXT=.ppo
 ASMEXT=.so2
 ASMEXT=.so2
 OEXT=.oo2
 OEXT=.oo2
@@ -618,6 +659,7 @@ EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -628,6 +670,7 @@ FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -638,6 +681,7 @@ FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -660,13 +704,15 @@ ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
 SMARTEXT=.sl
 SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+DEBUGSYMEXT=.xcoff
+FPCMADE=fpcmade.macos
 endif
 endif
 endif
 endif
 ifndef ECHO
 ifndef ECHO
@@ -674,7 +720,7 @@ ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
-ECHO=
+ECHO= __missing_command__
 else
 else
 ECHO:=$(firstword $(ECHO))
 ECHO:=$(firstword $(ECHO))
 endif
 endif
@@ -688,7 +734,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
-DATE=
+DATE= __missing_command__
 else
 else
 DATE:=$(firstword $(DATE))
 DATE:=$(firstword $(DATE))
 endif
 endif
@@ -702,7 +748,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
-GINSTALL=
+GINSTALL= __missing_command__
 else
 else
 GINSTALL:=$(firstword $(GINSTALL))
 GINSTALL:=$(firstword $(GINSTALL))
 endif
 endif
@@ -714,7 +760,7 @@ export GINSTALL
 ifndef CPPROG
 ifndef CPPROG
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(CPPROG),)
 ifeq ($(CPPROG),)
-CPPROG=
+CPPROG= __missing_command__
 else
 else
 CPPROG:=$(firstword $(CPPROG))
 CPPROG:=$(firstword $(CPPROG))
 endif
 endif
@@ -723,7 +769,7 @@ export CPPROG
 ifndef RMPROG
 ifndef RMPROG
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(RMPROG),)
 ifeq ($(RMPROG),)
-RMPROG=
+RMPROG= __missing_command__
 else
 else
 RMPROG:=$(firstword $(RMPROG))
 RMPROG:=$(firstword $(RMPROG))
 endif
 endif
@@ -732,14 +778,18 @@ export RMPROG
 ifndef MVPROG
 ifndef MVPROG
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(MVPROG),)
 ifeq ($(MVPROG),)
-MVPROG=
+MVPROG= __missing_command__
 else
 else
 MVPROG:=$(firstword $(MVPROG))
 MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
-ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
+ifndef inUnix
+ECHOREDIR=echo
+else
+ECHOREDIR=$(ECHO)
+endif
 endif
 endif
 ifndef COPY
 ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
@@ -777,7 +827,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(PPUMOVE),)
 ifeq ($(PPUMOVE),)
-PPUMOVE=
+PPUMOVE= __missing_command__
 else
 else
 PPUMOVE:=$(firstword $(PPUMOVE))
 PPUMOVE:=$(firstword $(PPUMOVE))
 endif
 endif
@@ -786,7 +836,7 @@ export PPUMOVE
 ifndef FPCMAKE
 ifndef FPCMAKE
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(FPCMAKE),)
 ifeq ($(FPCMAKE),)
-FPCMAKE=
+FPCMAKE= __missing_command__
 else
 else
 FPCMAKE:=$(firstword $(FPCMAKE))
 FPCMAKE:=$(firstword $(FPCMAKE))
 endif
 endif
@@ -795,7 +845,7 @@ export FPCMAKE
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
 ifeq ($(ZIPPROG),)
-ZIPPROG=
+ZIPPROG= __missing_command__
 else
 else
 ZIPPROG:=$(firstword $(ZIPPROG))
 ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
@@ -804,21 +854,25 @@ export ZIPPROG
 ifndef TARPROG
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
 ifeq ($(TARPROG),)
-TARPROG=
+TARPROG= __missing_command__
 else
 else
 TARPROG:=$(firstword $(TARPROG))
 TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 endif
 endif
 export TARPROG
 export TARPROG
-ASNAME=as
-LDNAME=ld
-ARNAME=ar
-RCNAME=rc
+ASNAME=$(BINUTILSPREFIX)as
+LDNAME=$(BINUTILSPREFIX)ld
+ARNAME=$(BINUTILSPREFIX)ar
+RCNAME=$(BINUTILSPREFIX)rc
+ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
+ifeq ($(CROSSBINDIR),)
 ASNAME=asw
 ASNAME=asw
 LDNAME=ldw
 LDNAME=ldw
 ARNAME=arw
 ARNAME=arw
 endif
 endif
+endif
+endif
 ifndef ASPROG
 ifndef ASPROG
 ifdef CROSSBINDIR
 ifdef CROSSBINDIR
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
@@ -851,7 +905,7 @@ AS=$(ASPROG)
 LD=$(LDPROG)
 LD=$(LDPROG)
 RC=$(RCPROG)
 RC=$(RCPROG)
 AR=$(ARPROG)
 AR=$(ARPROG)
-PPAS=ppas$(BATCHEXT)
+PPAS=ppas$(SRCBATCHEXT)
 ifdef inUnix
 ifdef inUnix
 LDCONFIG=ldconfig
 LDCONFIG=ldconfig
 else
 else
@@ -899,6 +953,14 @@ endif
 ifeq ($(OS_SOURCE),openbsd)
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 endif
+ifndef CROSSBOOTSTRAP
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
+endif
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-Xr$(RLINKPATH)
+endif
+endif
 ifdef UNITDIR
 ifdef UNITDIR
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 endif
 endif
@@ -925,8 +987,12 @@ ifdef RELEASE
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
 FPCCPUOPT:=-OG2p3
 FPCCPUOPT:=-OG2p3
 else
 else
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1
+else
 FPCCPUOPT:=
 FPCCPUOPT:=
 endif
 endif
+endif
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPTDEF+=RELEASE
 override FPCOPTDEF+=RELEASE
 endif
 endif
@@ -1008,7 +1074,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_loaders
 .PHONY: fpc_loaders
-ifdef TARGET_LOADERS
+ifneq ($(TARGET_LOADERS),)
 override ALLTARGET+=fpc_loaders
 override ALLTARGET+=fpc_loaders
 override CLEANTARGET+=fpc_loaders_clean
 override CLEANTARGET+=fpc_loaders_clean
 override INSTALLTARGET+=fpc_loaders_install
 override INSTALLTARGET+=fpc_loaders_install
@@ -1023,7 +1089,7 @@ fpc_loaders_install:
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 .PHONY: fpc_units
 .PHONY: fpc_units
-ifdef TARGET_UNITS
+ifneq ($(TARGET_UNITS),)
 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))
@@ -1045,7 +1111,7 @@ fpc_debug:
 	$(MAKE) all DEBUG=1
 	$(MAKE) all DEBUG=1
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
@@ -1058,10 +1124,14 @@ fpc_release:
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
+%$(EXEEXT): %.dpr
+	$(COMPILER) $<
+	$(EXECPPAS)
 %.res: %.rc
 %.res: %.rc
 	windres -i $< -o $@
 	windres -i $< -o $@
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1138,6 +1208,9 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
 endif
 endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 endif
 endif
@@ -1161,6 +1234,7 @@ ifdef LIB_NAME
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 fpc_distclean: clean
 fpc_distclean: clean
 ifdef COMPILER_UNITTARGETDIR
 ifdef COMPILER_UNITTARGETDIR
 TARGETDIRCLEAN=fpc_clean
 TARGETDIRCLEAN=fpc_clean
@@ -1172,9 +1246,13 @@ endif
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
 endif
 endif
+ifdef DEBUGSYMEXT
+	-$(DEL) *$(DEBUGSYMEXT)
+endif
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1320,6 +1398,8 @@ objpas$(PPUEXT) : $(OBJPASDIR)/objpas.pp system$(PPUEXT)
 sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp objpas$(PPUEXT) system$(PPUEXT)
 sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp objpas$(PPUEXT) system$(PPUEXT)
 	$(COPY) $(OBJPASDIR)/sysutils.pp .
 	$(COPY) $(OBJPASDIR)/sysutils.pp .
 	$(COMPILER) sysutils $(REDIR)
 	$(COMPILER) sysutils $(REDIR)
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 dos$(PPUEXT) : $(DOSDEPS) system$(PPUEXT)
 dos$(PPUEXT) : $(DOSDEPS) system$(PPUEXT)
 	$(COMPILER) dos $(REDIR)
 	$(COMPILER) dos $(REDIR)
 crt$(PPUEXT) : crt.pp $(INC)/textrec.inc system$(PPUEXT)
 crt$(PPUEXT) : crt.pp $(INC)/textrec.inc system$(PPUEXT)

+ 11 - 1
rtl/amiga/Makefile.fpc

@@ -116,6 +116,13 @@ sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp objpas$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) sysutils $(REDIR)
 	$(COMPILER) sysutils $(REDIR)
 #$(DEL) sysutils.pp
 #$(DEL) sysutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # System Dependent Units
 # System Dependent Units
 #
 #
@@ -148,7 +155,10 @@ heaptrc$(PPUEXT) : $(INC)/heaptrc.pp system$(PPUEXT)
 
 
 #
 #
 # $Log$
 # $Log$
-# Revision 1.7  2004-07-07 21:37:29  daniel
+# Revision 1.8  2004-08-16 16:22:17  olle
+#   + Added unit macpas
+#
+# Revision 1.7  2004/07/07 21:37:29  daniel
 #   * Matrix unit included in build process
 #   * Matrix unit included in build process
 #
 #
 # Revision 1.6  2004/05/06 22:01:17  florian
 # Revision 1.6  2004/05/06 22:01:17  florian

+ 157 - 77
rtl/beos/Makefile

@@ -1,15 +1,25 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/07]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx
-override PATH:=$(subst \,/,$(PATH))
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+BSDs = freebsd netbsd openbsd darwin
+UNIXs = linux $(BSDs) sunos qnx
+FORCE:
+.PHONY: FORCE
+override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
+ifneq ($(findstring darwin,$(OSTYPE)),)
+inUnix=1 #darwin
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
 ifeq ($(findstring ;,$(PATH)),)
 ifeq ($(findstring ;,$(PATH)),)
 inUnix=1
 inUnix=1
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 else
 else
 SEARCHPATH:=$(subst ;, ,$(PATH))
 SEARCHPATH:=$(subst ;, ,$(PATH))
 endif
 endif
+endif
+SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 ifeq ($(PWD),)
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
@@ -36,22 +46,13 @@ ifneq ($(findstring cygdrive,$(PATH)),)
 inCygWin=1
 inCygWin=1
 endif
 endif
 endif
 endif
-ifeq ($(OS_TARGET),freebsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-BSDhier=1
-endif
 ifdef inUnix
 ifdef inUnix
-BATCHEXT=.sh
+SRCBATCHEXT=.sh
 else
 else
 ifdef inOS2
 ifdef inOS2
-BATCHEXT=.cmd
+SRCBATCHEXT=.cmd
 else
 else
-BATCHEXT=.bat
+SRCBATCHEXT=.bat
 endif
 endif
 endif
 endif
 ifdef inUnix
 ifdef inUnix
@@ -156,6 +157,12 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 endif
 endif
 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 CROSSCOMPILE
 export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
 ifdef FPCDIR
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 override FPCDIR:=$(subst \,/,$(FPCDIR))
@@ -185,11 +192,14 @@ override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR:=$(FPCDIR)/..
 override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR=c:/pp
 override FPCDIR=c:/pp
 endif
 endif
 endif
 endif
 endif
 endif
 endif
 endif
+endif
 ifndef CROSSDIR
 ifndef CROSSDIR
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 endif
 endif
@@ -230,42 +240,12 @@ ifdef REQUIRE_PACKAGESDIR
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 endif
 endif
 ifdef ZIPINSTALL
 ifdef ZIPINSTALL
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 else
 else
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
@@ -274,7 +254,7 @@ INSTALL_PREFIX=$(PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_PREFIX=/usr/local
 INSTALL_PREFIX=/usr/local
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -293,7 +273,7 @@ DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
 else
@@ -304,10 +284,18 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
+else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
+endif
+else
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 endif
 endif
@@ -326,19 +314,23 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_LIBDIR
 ifndef INSTALL_LIBDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 else
 else
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 endif
 endif
 endif
 endif
 ifndef INSTALL_SOURCEDIR
 ifndef INSTALL_SOURCEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 SRCPREFIXDIR=share/src
 SRCPREFIXDIR=share/src
 else
 else
+ifdef linuxHier
+SRCPREFIXDIR=share/src
+else
 SRCPREFIXDIR=src
 SRCPREFIXDIR=src
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCSUBDIR
 ifdef INSTALL_FPCSUBDIR
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@@ -361,12 +353,16 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_DOCDIR
 ifndef INSTALL_DOCDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 DOCPREFIXDIR=share/doc
 DOCPREFIXDIR=share/doc
 else
 else
+ifdef linuxHier
+DOCPREFIXDIR=share/doc
+else
 DOCPREFIXDIR=doc
 DOCPREFIXDIR=doc
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
@@ -381,20 +377,28 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_EXAMPLEDIR
 ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 endif
 endif
+endif
 else
 else
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 endif
 endif
 endif
 endif
+endif
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@@ -416,6 +420,7 @@ endif
 else
 else
 CROSSBINDIR=
 CROSSBINDIR=
 endif
 endif
+BATCHEXT=.bat
 LOADEREXT=.as
 LOADEREXT=.as
 EXEEXT=.exe
 EXEEXT=.exe
 PPLEXT=.ppl
 PPLEXT=.ppl
@@ -439,25 +444,37 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.wat
+ZIPSUFFIX=watc
+OEXT=.obj
+ASMEXT=.asm
+SHAREDLIBEXT=.dll
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -469,6 +486,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -477,6 +495,7 @@ ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),emx)
 ifeq ($(OS_TARGET),emx)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -489,21 +508,29 @@ EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
 FPCMADE=fpcmade.amg
 FPCMADE=fpcmade.amg
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADE=fpcmade.mos
+endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.be
 FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.sun
 FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.qnx
 FPCMADE=fpcmade.qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
@@ -515,10 +542,14 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+FPCMADE=fpcmade.macos
+ZIPSUFFIX=macos
+DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.darwin
 FPCMADE=fpcmade.darwin
@@ -541,25 +572,34 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=watcom
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -576,6 +616,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 PPUEXT=.ppo
 PPUEXT=.ppo
 ASMEXT=.so2
 ASMEXT=.so2
 OEXT=.oo2
 OEXT=.oo2
@@ -608,6 +649,7 @@ EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -618,6 +660,7 @@ FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -628,6 +671,7 @@ FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -650,13 +694,15 @@ ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
 SMARTEXT=.sl
 SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+DEBUGSYMEXT=.xcoff
+FPCMADE=fpcmade.macos
 endif
 endif
 endif
 endif
 ifndef ECHO
 ifndef ECHO
@@ -664,7 +710,7 @@ ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
-ECHO=
+ECHO= __missing_command__
 else
 else
 ECHO:=$(firstword $(ECHO))
 ECHO:=$(firstword $(ECHO))
 endif
 endif
@@ -678,7 +724,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
-DATE=
+DATE= __missing_command__
 else
 else
 DATE:=$(firstword $(DATE))
 DATE:=$(firstword $(DATE))
 endif
 endif
@@ -692,7 +738,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
-GINSTALL=
+GINSTALL= __missing_command__
 else
 else
 GINSTALL:=$(firstword $(GINSTALL))
 GINSTALL:=$(firstword $(GINSTALL))
 endif
 endif
@@ -704,7 +750,7 @@ export GINSTALL
 ifndef CPPROG
 ifndef CPPROG
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(CPPROG),)
 ifeq ($(CPPROG),)
-CPPROG=
+CPPROG= __missing_command__
 else
 else
 CPPROG:=$(firstword $(CPPROG))
 CPPROG:=$(firstword $(CPPROG))
 endif
 endif
@@ -713,7 +759,7 @@ export CPPROG
 ifndef RMPROG
 ifndef RMPROG
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(RMPROG),)
 ifeq ($(RMPROG),)
-RMPROG=
+RMPROG= __missing_command__
 else
 else
 RMPROG:=$(firstword $(RMPROG))
 RMPROG:=$(firstword $(RMPROG))
 endif
 endif
@@ -722,14 +768,18 @@ export RMPROG
 ifndef MVPROG
 ifndef MVPROG
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(MVPROG),)
 ifeq ($(MVPROG),)
-MVPROG=
+MVPROG= __missing_command__
 else
 else
 MVPROG:=$(firstword $(MVPROG))
 MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
-ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
+ifndef inUnix
+ECHOREDIR=echo
+else
+ECHOREDIR=$(ECHO)
+endif
 endif
 endif
 ifndef COPY
 ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
@@ -767,7 +817,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(PPUMOVE),)
 ifeq ($(PPUMOVE),)
-PPUMOVE=
+PPUMOVE= __missing_command__
 else
 else
 PPUMOVE:=$(firstword $(PPUMOVE))
 PPUMOVE:=$(firstword $(PPUMOVE))
 endif
 endif
@@ -776,7 +826,7 @@ export PPUMOVE
 ifndef FPCMAKE
 ifndef FPCMAKE
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(FPCMAKE),)
 ifeq ($(FPCMAKE),)
-FPCMAKE=
+FPCMAKE= __missing_command__
 else
 else
 FPCMAKE:=$(firstword $(FPCMAKE))
 FPCMAKE:=$(firstword $(FPCMAKE))
 endif
 endif
@@ -785,7 +835,7 @@ export FPCMAKE
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
 ifeq ($(ZIPPROG),)
-ZIPPROG=
+ZIPPROG= __missing_command__
 else
 else
 ZIPPROG:=$(firstword $(ZIPPROG))
 ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
@@ -794,21 +844,25 @@ export ZIPPROG
 ifndef TARPROG
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
 ifeq ($(TARPROG),)
-TARPROG=
+TARPROG= __missing_command__
 else
 else
 TARPROG:=$(firstword $(TARPROG))
 TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 endif
 endif
 export TARPROG
 export TARPROG
-ASNAME=as
-LDNAME=ld
-ARNAME=ar
-RCNAME=rc
+ASNAME=$(BINUTILSPREFIX)as
+LDNAME=$(BINUTILSPREFIX)ld
+ARNAME=$(BINUTILSPREFIX)ar
+RCNAME=$(BINUTILSPREFIX)rc
+ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
+ifeq ($(CROSSBINDIR),)
 ASNAME=asw
 ASNAME=asw
 LDNAME=ldw
 LDNAME=ldw
 ARNAME=arw
 ARNAME=arw
 endif
 endif
+endif
+endif
 ifndef ASPROG
 ifndef ASPROG
 ifdef CROSSBINDIR
 ifdef CROSSBINDIR
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
@@ -841,7 +895,7 @@ AS=$(ASPROG)
 LD=$(LDPROG)
 LD=$(LDPROG)
 RC=$(RCPROG)
 RC=$(RCPROG)
 AR=$(ARPROG)
 AR=$(ARPROG)
-PPAS=ppas$(BATCHEXT)
+PPAS=ppas$(SRCBATCHEXT)
 ifdef inUnix
 ifdef inUnix
 LDCONFIG=ldconfig
 LDCONFIG=ldconfig
 else
 else
@@ -889,6 +943,14 @@ endif
 ifeq ($(OS_SOURCE),openbsd)
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 endif
+ifndef CROSSBOOTSTRAP
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
+endif
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-Xr$(RLINKPATH)
+endif
+endif
 ifdef UNITDIR
 ifdef UNITDIR
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 endif
 endif
@@ -915,8 +977,12 @@ ifdef RELEASE
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
 FPCCPUOPT:=-OG2p3
 FPCCPUOPT:=-OG2p3
 else
 else
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1
+else
 FPCCPUOPT:=
 FPCCPUOPT:=
 endif
 endif
+endif
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPTDEF+=RELEASE
 override FPCOPTDEF+=RELEASE
 endif
 endif
@@ -998,7 +1064,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_loaders
 .PHONY: fpc_loaders
-ifdef TARGET_LOADERS
+ifneq ($(TARGET_LOADERS),)
 override ALLTARGET+=fpc_loaders
 override ALLTARGET+=fpc_loaders
 override CLEANTARGET+=fpc_loaders_clean
 override CLEANTARGET+=fpc_loaders_clean
 override INSTALLTARGET+=fpc_loaders_install
 override INSTALLTARGET+=fpc_loaders_install
@@ -1013,7 +1079,7 @@ fpc_loaders_install:
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 .PHONY: fpc_units
 .PHONY: fpc_units
-ifdef TARGET_UNITS
+ifneq ($(TARGET_UNITS),)
 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))
@@ -1035,7 +1101,7 @@ fpc_debug:
 	$(MAKE) all DEBUG=1
 	$(MAKE) all DEBUG=1
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
@@ -1048,10 +1114,14 @@ fpc_release:
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
+%$(EXEEXT): %.dpr
+	$(COMPILER) $<
+	$(EXECPPAS)
 %.res: %.rc
 %.res: %.rc
 	windres -i $< -o $@
 	windres -i $< -o $@
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1128,6 +1198,9 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
 endif
 endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 endif
 endif
@@ -1151,6 +1224,7 @@ ifdef LIB_NAME
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 fpc_distclean: clean
 fpc_distclean: clean
 ifdef COMPILER_UNITTARGETDIR
 ifdef COMPILER_UNITTARGETDIR
 TARGETDIRCLEAN=fpc_clean
 TARGETDIRCLEAN=fpc_clean
@@ -1162,9 +1236,13 @@ endif
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
 endif
 endif
+ifdef DEBUGSYMEXT
+	-$(DEL) *$(DEBUGSYMEXT)
+endif
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1331,6 +1409,8 @@ varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
 	$(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
 	$(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
 	$(COMPILER) $(OBJPASDIR)/types.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) system$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) system$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp system$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp system$(PPUEXT)

+ 7 - 0
rtl/beos/Makefile.fpc

@@ -139,6 +139,13 @@ varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/types.pp
         $(COMPILER) $(OBJPASDIR)/types.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 4 - 2
rtl/darwin/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/08]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
@@ -238,7 +238,7 @@ GRAPHDIR=$(INC)/graph
 ifndef USELIBGGI
 ifndef USELIBGGI
 USELIBGGI=NO
 USELIBGGI=NO
 endif
 endif
-override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings sysctl baseunix unixtype unixutil unix initc cmem matrix dos dl objects printer sockets sysutils typinfo systhrds classes math varutils charset ucomplex getopts heaptrc lineinfo errors terminfo termio video crt mouse keyboard console variants types sysctl dateutils sysconst cthreads strutils rtlconst
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysctl baseunix unixtype unixutil unix initc cmem matrix dos dl objects printer sockets sysutils typinfo systhrds classes math varutils charset ucomplex getopts heaptrc lineinfo errors terminfo termio video crt mouse keyboard console variants types sysctl dateutils sysconst cthreads strutils rtlconst
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils systhrds sysconst rtlconst
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils systhrds sysconst rtlconst
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
@@ -1417,6 +1417,8 @@ rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 		    sysutils$(PPUEXT)
 		    sysutils$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)

+ 7 - 1
rtl/darwin/Makefile.fpc

@@ -8,7 +8,7 @@ main=rtl
 # disabled units: serial sockets ipc mouse console
 # disabled units: serial sockets ipc mouse console
 [target]
 [target]
 loaders=
 loaders=
-units=$(SYSTEMUNIT) objpas strings sysctl baseunix unixtype unixutil \
+units=$(SYSTEMUNIT) objpas macpas strings sysctl baseunix unixtype unixutil \
       unix initc cmem matrix \
       unix initc cmem matrix \
       dos dl objects printer sockets \
       dos dl objects printer sockets \
       sysutils typinfo systhrds classes math varutils \
       sysutils typinfo systhrds classes math varutils \
@@ -195,6 +195,12 @@ strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
                     sysutils$(PPUEXT)
                     sysutils$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/strutils.pp
         $(COMPILER) $(OBJPASDIR)/strutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
 
 
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units

+ 3 - 1
rtl/emx/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/18]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
@@ -1436,6 +1436,8 @@ convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)

+ 7 - 0
rtl/emx/Makefile.fpc

@@ -194,6 +194,13 @@ convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/strutils.pp
         $(COMPILER) $(OBJPASDIR)/strutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 157 - 77
rtl/freebsd/Makefile

@@ -1,15 +1,25 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/07]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx
-override PATH:=$(subst \,/,$(PATH))
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+BSDs = freebsd netbsd openbsd darwin
+UNIXs = linux $(BSDs) sunos qnx
+FORCE:
+.PHONY: FORCE
+override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
+ifneq ($(findstring darwin,$(OSTYPE)),)
+inUnix=1 #darwin
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
 ifeq ($(findstring ;,$(PATH)),)
 ifeq ($(findstring ;,$(PATH)),)
 inUnix=1
 inUnix=1
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 else
 else
 SEARCHPATH:=$(subst ;, ,$(PATH))
 SEARCHPATH:=$(subst ;, ,$(PATH))
 endif
 endif
+endif
+SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 ifeq ($(PWD),)
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
@@ -36,22 +46,13 @@ ifneq ($(findstring cygdrive,$(PATH)),)
 inCygWin=1
 inCygWin=1
 endif
 endif
 endif
 endif
-ifeq ($(OS_TARGET),freebsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-BSDhier=1
-endif
 ifdef inUnix
 ifdef inUnix
-BATCHEXT=.sh
+SRCBATCHEXT=.sh
 else
 else
 ifdef inOS2
 ifdef inOS2
-BATCHEXT=.cmd
+SRCBATCHEXT=.cmd
 else
 else
-BATCHEXT=.bat
+SRCBATCHEXT=.bat
 endif
 endif
 endif
 endif
 ifdef inUnix
 ifdef inUnix
@@ -155,6 +156,12 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 endif
 endif
 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 CROSSCOMPILE
 export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
 ifdef FPCDIR
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 override FPCDIR:=$(subst \,/,$(FPCDIR))
@@ -184,11 +191,14 @@ override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR:=$(FPCDIR)/..
 override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR=c:/pp
 override FPCDIR=c:/pp
 endif
 endif
 endif
 endif
 endif
 endif
 endif
 endif
+endif
 ifndef CROSSDIR
 ifndef CROSSDIR
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 endif
 endif
@@ -243,42 +253,12 @@ ifdef REQUIRE_PACKAGESDIR
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 endif
 endif
 ifdef ZIPINSTALL
 ifdef ZIPINSTALL
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 else
 else
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
@@ -287,7 +267,7 @@ INSTALL_PREFIX=$(PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_PREFIX=/usr/local
 INSTALL_PREFIX=/usr/local
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -306,7 +286,7 @@ DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
 else
@@ -317,10 +297,18 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
+else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
+endif
+else
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 endif
 endif
@@ -339,19 +327,23 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_LIBDIR
 ifndef INSTALL_LIBDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 else
 else
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 endif
 endif
 endif
 endif
 ifndef INSTALL_SOURCEDIR
 ifndef INSTALL_SOURCEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 SRCPREFIXDIR=share/src
 SRCPREFIXDIR=share/src
 else
 else
+ifdef linuxHier
+SRCPREFIXDIR=share/src
+else
 SRCPREFIXDIR=src
 SRCPREFIXDIR=src
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCSUBDIR
 ifdef INSTALL_FPCSUBDIR
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@@ -374,12 +366,16 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_DOCDIR
 ifndef INSTALL_DOCDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 DOCPREFIXDIR=share/doc
 DOCPREFIXDIR=share/doc
 else
 else
+ifdef linuxHier
+DOCPREFIXDIR=share/doc
+else
 DOCPREFIXDIR=doc
 DOCPREFIXDIR=doc
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
@@ -394,20 +390,28 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_EXAMPLEDIR
 ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 endif
 endif
+endif
 else
 else
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 endif
 endif
 endif
 endif
+endif
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@@ -429,6 +433,7 @@ endif
 else
 else
 CROSSBINDIR=
 CROSSBINDIR=
 endif
 endif
+BATCHEXT=.bat
 LOADEREXT=.as
 LOADEREXT=.as
 EXEEXT=.exe
 EXEEXT=.exe
 PPLEXT=.ppl
 PPLEXT=.ppl
@@ -452,25 +457,37 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.wat
+ZIPSUFFIX=watc
+OEXT=.obj
+ASMEXT=.asm
+SHAREDLIBEXT=.dll
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -482,6 +499,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -490,6 +508,7 @@ ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),emx)
 ifeq ($(OS_TARGET),emx)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -502,21 +521,29 @@ EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
 FPCMADE=fpcmade.amg
 FPCMADE=fpcmade.amg
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADE=fpcmade.mos
+endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.be
 FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.sun
 FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.qnx
 FPCMADE=fpcmade.qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
@@ -528,10 +555,14 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+FPCMADE=fpcmade.macos
+ZIPSUFFIX=macos
+DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.darwin
 FPCMADE=fpcmade.darwin
@@ -554,25 +585,34 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=watcom
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -589,6 +629,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 PPUEXT=.ppo
 PPUEXT=.ppo
 ASMEXT=.so2
 ASMEXT=.so2
 OEXT=.oo2
 OEXT=.oo2
@@ -621,6 +662,7 @@ EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -631,6 +673,7 @@ FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -641,6 +684,7 @@ FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -663,13 +707,15 @@ ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
 SMARTEXT=.sl
 SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+DEBUGSYMEXT=.xcoff
+FPCMADE=fpcmade.macos
 endif
 endif
 endif
 endif
 ifndef ECHO
 ifndef ECHO
@@ -677,7 +723,7 @@ ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
-ECHO=
+ECHO= __missing_command__
 else
 else
 ECHO:=$(firstword $(ECHO))
 ECHO:=$(firstword $(ECHO))
 endif
 endif
@@ -691,7 +737,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
-DATE=
+DATE= __missing_command__
 else
 else
 DATE:=$(firstword $(DATE))
 DATE:=$(firstword $(DATE))
 endif
 endif
@@ -705,7 +751,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
-GINSTALL=
+GINSTALL= __missing_command__
 else
 else
 GINSTALL:=$(firstword $(GINSTALL))
 GINSTALL:=$(firstword $(GINSTALL))
 endif
 endif
@@ -717,7 +763,7 @@ export GINSTALL
 ifndef CPPROG
 ifndef CPPROG
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(CPPROG),)
 ifeq ($(CPPROG),)
-CPPROG=
+CPPROG= __missing_command__
 else
 else
 CPPROG:=$(firstword $(CPPROG))
 CPPROG:=$(firstword $(CPPROG))
 endif
 endif
@@ -726,7 +772,7 @@ export CPPROG
 ifndef RMPROG
 ifndef RMPROG
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(RMPROG),)
 ifeq ($(RMPROG),)
-RMPROG=
+RMPROG= __missing_command__
 else
 else
 RMPROG:=$(firstword $(RMPROG))
 RMPROG:=$(firstword $(RMPROG))
 endif
 endif
@@ -735,14 +781,18 @@ export RMPROG
 ifndef MVPROG
 ifndef MVPROG
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(MVPROG),)
 ifeq ($(MVPROG),)
-MVPROG=
+MVPROG= __missing_command__
 else
 else
 MVPROG:=$(firstword $(MVPROG))
 MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
-ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
+ifndef inUnix
+ECHOREDIR=echo
+else
+ECHOREDIR=$(ECHO)
+endif
 endif
 endif
 ifndef COPY
 ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
@@ -780,7 +830,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(PPUMOVE),)
 ifeq ($(PPUMOVE),)
-PPUMOVE=
+PPUMOVE= __missing_command__
 else
 else
 PPUMOVE:=$(firstword $(PPUMOVE))
 PPUMOVE:=$(firstword $(PPUMOVE))
 endif
 endif
@@ -789,7 +839,7 @@ export PPUMOVE
 ifndef FPCMAKE
 ifndef FPCMAKE
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(FPCMAKE),)
 ifeq ($(FPCMAKE),)
-FPCMAKE=
+FPCMAKE= __missing_command__
 else
 else
 FPCMAKE:=$(firstword $(FPCMAKE))
 FPCMAKE:=$(firstword $(FPCMAKE))
 endif
 endif
@@ -798,7 +848,7 @@ export FPCMAKE
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
 ifeq ($(ZIPPROG),)
-ZIPPROG=
+ZIPPROG= __missing_command__
 else
 else
 ZIPPROG:=$(firstword $(ZIPPROG))
 ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
@@ -807,21 +857,25 @@ export ZIPPROG
 ifndef TARPROG
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
 ifeq ($(TARPROG),)
-TARPROG=
+TARPROG= __missing_command__
 else
 else
 TARPROG:=$(firstword $(TARPROG))
 TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 endif
 endif
 export TARPROG
 export TARPROG
-ASNAME=as
-LDNAME=ld
-ARNAME=ar
-RCNAME=rc
+ASNAME=$(BINUTILSPREFIX)as
+LDNAME=$(BINUTILSPREFIX)ld
+ARNAME=$(BINUTILSPREFIX)ar
+RCNAME=$(BINUTILSPREFIX)rc
+ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
+ifeq ($(CROSSBINDIR),)
 ASNAME=asw
 ASNAME=asw
 LDNAME=ldw
 LDNAME=ldw
 ARNAME=arw
 ARNAME=arw
 endif
 endif
+endif
+endif
 ifndef ASPROG
 ifndef ASPROG
 ifdef CROSSBINDIR
 ifdef CROSSBINDIR
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
@@ -854,7 +908,7 @@ AS=$(ASPROG)
 LD=$(LDPROG)
 LD=$(LDPROG)
 RC=$(RCPROG)
 RC=$(RCPROG)
 AR=$(ARPROG)
 AR=$(ARPROG)
-PPAS=ppas$(BATCHEXT)
+PPAS=ppas$(SRCBATCHEXT)
 ifdef inUnix
 ifdef inUnix
 LDCONFIG=ldconfig
 LDCONFIG=ldconfig
 else
 else
@@ -902,6 +956,14 @@ endif
 ifeq ($(OS_SOURCE),openbsd)
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 endif
+ifndef CROSSBOOTSTRAP
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
+endif
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-Xr$(RLINKPATH)
+endif
+endif
 ifdef UNITDIR
 ifdef UNITDIR
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 endif
 endif
@@ -928,8 +990,12 @@ ifdef RELEASE
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
 FPCCPUOPT:=-OG2p3
 FPCCPUOPT:=-OG2p3
 else
 else
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1
+else
 FPCCPUOPT:=
 FPCCPUOPT:=
 endif
 endif
+endif
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPTDEF+=RELEASE
 override FPCOPTDEF+=RELEASE
 endif
 endif
@@ -1011,7 +1077,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_loaders
 .PHONY: fpc_loaders
-ifdef TARGET_LOADERS
+ifneq ($(TARGET_LOADERS),)
 override ALLTARGET+=fpc_loaders
 override ALLTARGET+=fpc_loaders
 override CLEANTARGET+=fpc_loaders_clean
 override CLEANTARGET+=fpc_loaders_clean
 override INSTALLTARGET+=fpc_loaders_install
 override INSTALLTARGET+=fpc_loaders_install
@@ -1026,7 +1092,7 @@ fpc_loaders_install:
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 .PHONY: fpc_units
 .PHONY: fpc_units
-ifdef TARGET_UNITS
+ifneq ($(TARGET_UNITS),)
 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))
@@ -1048,7 +1114,7 @@ fpc_debug:
 	$(MAKE) all DEBUG=1
 	$(MAKE) all DEBUG=1
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
@@ -1061,10 +1127,14 @@ fpc_release:
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
+%$(EXEEXT): %.dpr
+	$(COMPILER) $<
+	$(EXECPPAS)
 %.res: %.rc
 %.res: %.rc
 	windres -i $< -o $@
 	windres -i $< -o $@
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1141,6 +1211,9 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
 endif
 endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 endif
 endif
@@ -1164,6 +1237,7 @@ ifdef LIB_NAME
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 fpc_distclean: clean
 fpc_distclean: clean
 ifdef COMPILER_UNITTARGETDIR
 ifdef COMPILER_UNITTARGETDIR
 TARGETDIRCLEAN=fpc_clean
 TARGETDIRCLEAN=fpc_clean
@@ -1175,9 +1249,13 @@ endif
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
 endif
 endif
+ifdef DEBUGSYMEXT
+	-$(DEL) *$(DEBUGSYMEXT)
+endif
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1359,6 +1437,8 @@ types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
 	$(COMPILER) $(OBJPASDIR)/types.pp
 sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/sysconst.pp
 	$(COMPILER) $(OBJPASDIR)/sysconst.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)

+ 7 - 0
rtl/freebsd/Makefile.fpc

@@ -205,6 +205,13 @@ types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/sysconst.pp
         $(COMPILER) $(OBJPASDIR)/sysconst.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 3 - 1
rtl/go32v2/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/18]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
@@ -1431,6 +1431,8 @@ convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) system$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) system$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp system$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp system$(PPUEXT)

+ 7 - 0
rtl/go32v2/Makefile.fpc

@@ -186,6 +186,13 @@ convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
         $(COMPILER) $(OBJPASDIR)/strutils.pp
         $(COMPILER) $(OBJPASDIR)/strutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 3 - 1
rtl/linux/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/05]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
@@ -1467,6 +1467,8 @@ rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 		    sysutils$(PPUEXT)
 		    sysutils$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
 	$(COMPILER) $(OBJPASDIR)/strutils.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)

+ 7 - 0
rtl/linux/Makefile.fpc

@@ -244,6 +244,13 @@ strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
                     sysutils$(PPUEXT)
                     sysutils$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/strutils.pp
         $(COMPILER) $(OBJPASDIR)/strutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other $(SYSTEMUNIT)-independent RTL Units
 # Other $(SYSTEMUNIT)-independent RTL Units
 #
 #

+ 10 - 3
rtl/macos/Makefile

@@ -1,8 +1,8 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/06/02]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
 FORCE:
 FORCE:
@@ -230,7 +230,7 @@ endif
 endif
 endif
 OBJPASDIR=$(RTL)/objpas
 OBJPASDIR=$(RTL)/objpas
 GRAPHDIR=$(INC)/graph
 GRAPHDIR=$(INC)/graph
-override TARGET_UNITS+=system strings objpas heaptrc getopts macostp macutils unixutil dos objects
+override TARGET_UNITS+=system strings objpas macpas heaptrc getopts macostp macutils unixutil dos objects matrix
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
@@ -510,6 +510,11 @@ EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
 FPCMADE=fpcmade.amg
 FPCMADE=fpcmade.amg
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADE=fpcmade.mos
+endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
@@ -1366,6 +1371,8 @@ objpas$(PPUEXT) : $(OBJPASDIR)/objpas.pp system$(PPUEXT)
 sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp objpas$(PPUEXT) system$(PPUEXT) sysconst$(PPUEXT)
 sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp objpas$(PPUEXT) system$(PPUEXT) sysconst$(PPUEXT)
 	$(COPY) $(OBJPASDIR)/sysutils.pp .
 	$(COPY) $(OBJPASDIR)/sysutils.pp .
 	$(COMPILER) sysutils $(REDIR)
 	$(COMPILER) sysutils $(REDIR)
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 dos$(PPUEXT) : $(DOSDEPS) unixutil$(PPUEXT) system$(PPUEXT)
 dos$(PPUEXT) : $(DOSDEPS) unixutil$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) dos $(REDIR)
 	$(COMPILER) dos $(REDIR)
 objects$(PPUEXT) : $(INC)/objects.pp system$(PPUEXT)
 objects$(PPUEXT) : $(INC)/objects.pp system$(PPUEXT)

+ 8 - 1
rtl/macos/Makefile.fpc

@@ -7,7 +7,7 @@ main=rtl
 
 
 [target]
 [target]
 loaders=
 loaders=
-units=system strings objpas heaptrc getopts macostp macutils unixutil dos objects matrix
+units=system strings objpas macpas heaptrc getopts macostp macutils unixutil dos objects matrix
 #      exec  \
 #      exec  \
 #      crt printer \
 #      crt printer \
 #      lineinfo  graph \
 #      lineinfo  graph \
@@ -108,6 +108,13 @@ sysutils$(PPUEXT) : $(OBJPASDIR)/sysutils.pp objpas$(PPUEXT) system$(PPUEXT) sys
 	$(COMPILER) sysutils $(REDIR)
 	$(COMPILER) sysutils $(REDIR)
 #$(DEL) sysutils.pp
 #$(DEL) sysutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # System Dependent Units
 # System Dependent Units
 #
 #

+ 3 - 1
rtl/morphos/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/03]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
@@ -1405,6 +1405,8 @@ sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 	$(COMPILER) $(OBJPASDIR)/sysconst.pp
 	$(COMPILER) $(OBJPASDIR)/sysconst.pp
 dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
 dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
 heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)

+ 7 - 0
rtl/morphos/Makefile.fpc

@@ -145,6 +145,13 @@ sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
 dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
         $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
         $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 157 - 77
rtl/netbsd/Makefile

@@ -1,15 +1,25 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/07]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx
-override PATH:=$(subst \,/,$(PATH))
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
+BSDs = freebsd netbsd openbsd darwin
+UNIXs = linux $(BSDs) sunos qnx
+FORCE:
+.PHONY: FORCE
+override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
+ifneq ($(findstring darwin,$(OSTYPE)),)
+inUnix=1 #darwin
+SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
+else
 ifeq ($(findstring ;,$(PATH)),)
 ifeq ($(findstring ;,$(PATH)),)
 inUnix=1
 inUnix=1
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 else
 else
 SEARCHPATH:=$(subst ;, ,$(PATH))
 SEARCHPATH:=$(subst ;, ,$(PATH))
 endif
 endif
+endif
+SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 ifeq ($(PWD),)
 ifeq ($(PWD),)
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
@@ -36,22 +46,13 @@ ifneq ($(findstring cygdrive,$(PATH)),)
 inCygWin=1
 inCygWin=1
 endif
 endif
 endif
 endif
-ifeq ($(OS_TARGET),freebsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-BSDhier=1
-endif
 ifdef inUnix
 ifdef inUnix
-BATCHEXT=.sh
+SRCBATCHEXT=.sh
 else
 else
 ifdef inOS2
 ifdef inOS2
-BATCHEXT=.cmd
+SRCBATCHEXT=.cmd
 else
 else
-BATCHEXT=.bat
+SRCBATCHEXT=.bat
 endif
 endif
 endif
 endif
 ifdef inUnix
 ifdef inUnix
@@ -155,6 +156,12 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 endif
 endif
 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 CROSSCOMPILE
 export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
 ifdef FPCDIR
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 override FPCDIR:=$(subst \,/,$(FPCDIR))
@@ -184,11 +191,14 @@ override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR:=$(FPCDIR)/..
 override FPCDIR:=$(FPCDIR)/..
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
 override FPCDIR=c:/pp
 override FPCDIR=c:/pp
 endif
 endif
 endif
 endif
 endif
 endif
 endif
 endif
+endif
 ifndef CROSSDIR
 ifndef CROSSDIR
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
 endif
 endif
@@ -250,42 +260,12 @@ ifdef REQUIRE_PACKAGESDIR
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 endif
 endif
 ifdef ZIPINSTALL
 ifdef ZIPINSTALL
-ifeq ($(OS_TARGET),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 else
 else
-ifeq ($(OS_SOURCE),linux)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),freebsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),netbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_SOURCE),openbsd)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),sunos)
-UNIXINSTALLDIR=1
-endif
-ifeq ($(OS_TARGET),qnx)
-UNIXINSTALLDIR=1
+ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
+UNIXHier=1
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
@@ -294,7 +274,7 @@ INSTALL_PREFIX=$(PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_PREFIX=/usr/local
 INSTALL_PREFIX=/usr/local
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -313,7 +293,7 @@ DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
 else
@@ -324,10 +304,18 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
+else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
+endif
+else
+ifdef CROSSCOMPILE
+INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
 endif
 endif
@@ -346,19 +334,23 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_LIBDIR
 ifndef INSTALL_LIBDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 else
 else
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 endif
 endif
 endif
 endif
 ifndef INSTALL_SOURCEDIR
 ifndef INSTALL_SOURCEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 SRCPREFIXDIR=share/src
 SRCPREFIXDIR=share/src
 else
 else
+ifdef linuxHier
+SRCPREFIXDIR=share/src
+else
 SRCPREFIXDIR=src
 SRCPREFIXDIR=src
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCSUBDIR
 ifdef INSTALL_FPCSUBDIR
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@@ -381,12 +373,16 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_DOCDIR
 ifndef INSTALL_DOCDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef BSDhier
 ifdef BSDhier
 DOCPREFIXDIR=share/doc
 DOCPREFIXDIR=share/doc
 else
 else
+ifdef linuxHier
+DOCPREFIXDIR=share/doc
+else
 DOCPREFIXDIR=doc
 DOCPREFIXDIR=doc
 endif
 endif
+endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
@@ -401,20 +397,28 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_EXAMPLEDIR
 ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXINSTALLDIR
+ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 endif
 endif
+endif
 else
 else
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 else
 else
+ifdef linuxHier
+INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
+else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 endif
 endif
 endif
 endif
+endif
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@@ -436,6 +440,7 @@ endif
 else
 else
 CROSSBINDIR=
 CROSSBINDIR=
 endif
 endif
+BATCHEXT=.bat
 LOADEREXT=.as
 LOADEREXT=.as
 EXEEXT=.exe
 EXEEXT=.exe
 PPLEXT=.ppl
 PPLEXT=.ppl
@@ -459,25 +464,37 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.wat
+ZIPSUFFIX=watc
+OEXT=.obj
+ASMEXT=.asm
+SHAREDLIBEXT=.dll
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -489,6 +506,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -497,6 +515,7 @@ ZIPSUFFIX=os2
 ECHO=echo
 ECHO=echo
 endif
 endif
 ifeq ($(OS_TARGET),emx)
 ifeq ($(OS_TARGET),emx)
+BATCHEXT=.cmd
 AOUTEXT=.out
 AOUTEXT=.out
 STATICLIBPREFIX=
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
 SHAREDLIBEXT=.dll
@@ -509,21 +528,29 @@ EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
 FPCMADE=fpcmade.amg
 FPCMADE=fpcmade.amg
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADE=fpcmade.mos
+endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.be
 FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.sun
 FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 FPCMADE=fpcmade.qnx
 FPCMADE=fpcmade.qnx
 ZIPSUFFIX=qnx
 ZIPSUFFIX=qnx
@@ -535,10 +562,14 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 ZIPSUFFIX=nw
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+FPCMADE=fpcmade.macos
+ZIPSUFFIX=macos
+DEBUGSYMEXT=.xcoff
 endif
 endif
 ifeq ($(OS_TARGET),darwin)
 ifeq ($(OS_TARGET),darwin)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.darwin
 FPCMADE=fpcmade.darwin
@@ -561,25 +592,34 @@ STATICLIBPREFIX=
 FPCMADE=fpcmade.dos
 FPCMADE=fpcmade.dos
 ZIPSUFFIX=go32
 ZIPSUFFIX=go32
 endif
 endif
+ifeq ($(OS_TARGET),watcom)
+STATICLIBPREFIX=
+FPCMADE=fpcmade.dos
+ZIPSUFFIX=watcom
+endif
 ifeq ($(OS_TARGET),linux)
 ifeq ($(OS_TARGET),linux)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.lnx
 FPCMADE=fpcmade.lnx
 ZIPSUFFIX=linux
 ZIPSUFFIX=linux
 endif
 endif
 ifeq ($(OS_TARGET),freebsd)
 ifeq ($(OS_TARGET),freebsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.freebsd
 FPCMADE=fpcmade.freebsd
 ZIPSUFFIX=freebsd
 ZIPSUFFIX=freebsd
 endif
 endif
 ifeq ($(OS_TARGET),netbsd)
 ifeq ($(OS_TARGET),netbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.netbsd
 FPCMADE=fpcmade.netbsd
 ZIPSUFFIX=netbsd
 ZIPSUFFIX=netbsd
 endif
 endif
 ifeq ($(OS_TARGET),openbsd)
 ifeq ($(OS_TARGET),openbsd)
+BATCHEXT=.sh
 EXEEXT=
 EXEEXT=
 HASSHAREDLIB=1
 HASSHAREDLIB=1
 FPCMADE=fpcmade.openbsd
 FPCMADE=fpcmade.openbsd
@@ -596,6 +636,7 @@ FPCMADE=fpcmade.w32
 ZIPSUFFIX=w32
 ZIPSUFFIX=w32
 endif
 endif
 ifeq ($(OS_TARGET),os2)
 ifeq ($(OS_TARGET),os2)
+BATCHEXT=.cmd
 PPUEXT=.ppo
 PPUEXT=.ppo
 ASMEXT=.so2
 ASMEXT=.so2
 OEXT=.oo2
 OEXT=.oo2
@@ -628,6 +669,7 @@ EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
 endif
 endif
 ifeq ($(OS_TARGET),beos)
 ifeq ($(OS_TARGET),beos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -638,6 +680,7 @@ FPCMADE=fpcmade.be
 ZIPSUFFIX=be
 ZIPSUFFIX=be
 endif
 endif
 ifeq ($(OS_TARGET),sunos)
 ifeq ($(OS_TARGET),sunos)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -648,6 +691,7 @@ FPCMADE=fpcmade.sun
 ZIPSUFFIX=sun
 ZIPSUFFIX=sun
 endif
 endif
 ifeq ($(OS_TARGET),qnx)
 ifeq ($(OS_TARGET),qnx)
+BATCHEXT=.sh
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
@@ -670,13 +714,15 @@ ZIPSUFFIX=nw
 EXEEXT=.nlm
 EXEEXT=.nlm
 endif
 endif
 ifeq ($(OS_TARGET),macos)
 ifeq ($(OS_TARGET),macos)
+BATCHEXT=
 PPUEXT=.ppu
 PPUEXT=.ppu
 ASMEXT=.s
 ASMEXT=.s
 OEXT=.o
 OEXT=.o
 SMARTEXT=.sl
 SMARTEXT=.sl
 STATICLIBEXT=.a
 STATICLIBEXT=.a
 EXEEXT=
 EXEEXT=
-FPCMADE=fpcmade.mcc
+DEBUGSYMEXT=.xcoff
+FPCMADE=fpcmade.macos
 endif
 endif
 endif
 endif
 ifndef ECHO
 ifndef ECHO
@@ -684,7 +730,7 @@ ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
-ECHO=
+ECHO= __missing_command__
 else
 else
 ECHO:=$(firstword $(ECHO))
 ECHO:=$(firstword $(ECHO))
 endif
 endif
@@ -698,7 +744,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 ifeq ($(DATE),)
-DATE=
+DATE= __missing_command__
 else
 else
 DATE:=$(firstword $(DATE))
 DATE:=$(firstword $(DATE))
 endif
 endif
@@ -712,7 +758,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 ifeq ($(GINSTALL),)
-GINSTALL=
+GINSTALL= __missing_command__
 else
 else
 GINSTALL:=$(firstword $(GINSTALL))
 GINSTALL:=$(firstword $(GINSTALL))
 endif
 endif
@@ -724,7 +770,7 @@ export GINSTALL
 ifndef CPPROG
 ifndef CPPROG
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(CPPROG),)
 ifeq ($(CPPROG),)
-CPPROG=
+CPPROG= __missing_command__
 else
 else
 CPPROG:=$(firstword $(CPPROG))
 CPPROG:=$(firstword $(CPPROG))
 endif
 endif
@@ -733,7 +779,7 @@ export CPPROG
 ifndef RMPROG
 ifndef RMPROG
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(RMPROG),)
 ifeq ($(RMPROG),)
-RMPROG=
+RMPROG= __missing_command__
 else
 else
 RMPROG:=$(firstword $(RMPROG))
 RMPROG:=$(firstword $(RMPROG))
 endif
 endif
@@ -742,14 +788,18 @@ export RMPROG
 ifndef MVPROG
 ifndef MVPROG
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(MVPROG),)
 ifeq ($(MVPROG),)
-MVPROG=
+MVPROG= __missing_command__
 else
 else
 MVPROG:=$(firstword $(MVPROG))
 MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 endif
 endif
 export MVPROG
 export MVPROG
 ifndef ECHOREDIR
 ifndef ECHOREDIR
-ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
+ifndef inUnix
+ECHOREDIR=echo
+else
+ECHOREDIR=$(ECHO)
+endif
 endif
 endif
 ifndef COPY
 ifndef COPY
 COPY:=$(CPPROG) -fp
 COPY:=$(CPPROG) -fp
@@ -787,7 +837,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef PPUMOVE
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(PPUMOVE),)
 ifeq ($(PPUMOVE),)
-PPUMOVE=
+PPUMOVE= __missing_command__
 else
 else
 PPUMOVE:=$(firstword $(PPUMOVE))
 PPUMOVE:=$(firstword $(PPUMOVE))
 endif
 endif
@@ -796,7 +846,7 @@ export PPUMOVE
 ifndef FPCMAKE
 ifndef FPCMAKE
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(FPCMAKE),)
 ifeq ($(FPCMAKE),)
-FPCMAKE=
+FPCMAKE= __missing_command__
 else
 else
 FPCMAKE:=$(firstword $(FPCMAKE))
 FPCMAKE:=$(firstword $(FPCMAKE))
 endif
 endif
@@ -805,7 +855,7 @@ export FPCMAKE
 ifndef ZIPPROG
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
 ifeq ($(ZIPPROG),)
-ZIPPROG=
+ZIPPROG= __missing_command__
 else
 else
 ZIPPROG:=$(firstword $(ZIPPROG))
 ZIPPROG:=$(firstword $(ZIPPROG))
 endif
 endif
@@ -814,21 +864,25 @@ export ZIPPROG
 ifndef TARPROG
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
 ifeq ($(TARPROG),)
-TARPROG=
+TARPROG= __missing_command__
 else
 else
 TARPROG:=$(firstword $(TARPROG))
 TARPROG:=$(firstword $(TARPROG))
 endif
 endif
 endif
 endif
 export TARPROG
 export TARPROG
-ASNAME=as
-LDNAME=ld
-ARNAME=ar
-RCNAME=rc
+ASNAME=$(BINUTILSPREFIX)as
+LDNAME=$(BINUTILSPREFIX)ld
+ARNAME=$(BINUTILSPREFIX)ar
+RCNAME=$(BINUTILSPREFIX)rc
+ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
+ifeq ($(CROSSBINDIR),)
 ASNAME=asw
 ASNAME=asw
 LDNAME=ldw
 LDNAME=ldw
 ARNAME=arw
 ARNAME=arw
 endif
 endif
+endif
+endif
 ifndef ASPROG
 ifndef ASPROG
 ifdef CROSSBINDIR
 ifdef CROSSBINDIR
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
 ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
@@ -861,7 +915,7 @@ AS=$(ASPROG)
 LD=$(LDPROG)
 LD=$(LDPROG)
 RC=$(RCPROG)
 RC=$(RCPROG)
 AR=$(ARPROG)
 AR=$(ARPROG)
-PPAS=ppas$(BATCHEXT)
+PPAS=ppas$(SRCBATCHEXT)
 ifdef inUnix
 ifdef inUnix
 LDCONFIG=ldconfig
 LDCONFIG=ldconfig
 else
 else
@@ -909,6 +963,14 @@ endif
 ifeq ($(OS_SOURCE),openbsd)
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 endif
+ifndef CROSSBOOTSTRAP
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
+endif
+ifneq ($(BINUTILSPREFIX),)
+override FPCOPT+=-Xr$(RLINKPATH)
+endif
+endif
 ifdef UNITDIR
 ifdef UNITDIR
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
 endif
 endif
@@ -935,8 +997,12 @@ ifdef RELEASE
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
 FPCCPUOPT:=-OG2p3
 FPCCPUOPT:=-OG2p3
 else
 else
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1
+else
 FPCCPUOPT:=
 FPCCPUOPT:=
 endif
 endif
+endif
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPTDEF+=RELEASE
 override FPCOPTDEF+=RELEASE
 endif
 endif
@@ -1018,7 +1084,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
 .PHONY: fpc_loaders
 .PHONY: fpc_loaders
-ifdef TARGET_LOADERS
+ifneq ($(TARGET_LOADERS),)
 override ALLTARGET+=fpc_loaders
 override ALLTARGET+=fpc_loaders
 override CLEANTARGET+=fpc_loaders_clean
 override CLEANTARGET+=fpc_loaders_clean
 override INSTALLTARGET+=fpc_loaders_install
 override INSTALLTARGET+=fpc_loaders_install
@@ -1033,7 +1099,7 @@ fpc_loaders_install:
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(MKDIR) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 	$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
 .PHONY: fpc_units
 .PHONY: fpc_units
-ifdef TARGET_UNITS
+ifneq ($(TARGET_UNITS),)
 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))
@@ -1055,7 +1121,7 @@ fpc_debug:
 	$(MAKE) all DEBUG=1
 	$(MAKE) all DEBUG=1
 fpc_release:
 fpc_release:
 	$(MAKE) all RELEASE=1
 	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
 %$(PPUEXT): %.pp
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
@@ -1068,10 +1134,14 @@ fpc_release:
 %$(EXEEXT): %.pas
 %$(EXEEXT): %.pas
 	$(COMPILER) $<
 	$(COMPILER) $<
 	$(EXECPPAS)
 	$(EXECPPAS)
+%$(EXEEXT): %.dpr
+	$(COMPILER) $<
+	$(EXECPPAS)
 %.res: %.rc
 %.res: %.rc
 	windres -i $< -o $@
 	windres -i $< -o $@
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
 ifdef INSTALL_UNITS
@@ -1148,6 +1218,9 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
 endif
 endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 endif
 endif
@@ -1171,6 +1244,7 @@ ifdef LIB_NAME
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 fpc_distclean: clean
 fpc_distclean: clean
 ifdef COMPILER_UNITTARGETDIR
 ifdef COMPILER_UNITTARGETDIR
 TARGETDIRCLEAN=fpc_clean
 TARGETDIRCLEAN=fpc_clean
@@ -1182,9 +1256,13 @@ endif
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DELTREE) *$(SMARTEXT)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
 endif
 endif
+ifdef DEBUGSYMEXT
+	-$(DEL) *$(DEBUGSYMEXT)
+endif
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1356,6 +1434,8 @@ varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
 	$(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
 	$(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
 	$(COMPILER) $(OBJPASDIR)/types.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)

+ 7 - 0
rtl/netbsd/Makefile.fpc

@@ -189,6 +189,13 @@ varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/types.pp
         $(COMPILER) $(OBJPASDIR)/types.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 6 - 0
rtl/netware/Makefile.fpc

@@ -186,6 +186,12 @@ convutils$(PPUEXT) : $(OBJPASDIR)/convutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
         $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/strutils.pp
         $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/strutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
 
 
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units

+ 7 - 0
rtl/openbsd/Makefile.fpc

@@ -189,6 +189,13 @@ varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/types.pp
         $(COMPILER) $(OBJPASDIR)/types.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 4 - 2
rtl/os2/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/07/18]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
@@ -1434,7 +1434,9 @@ dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutil.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp sysutils$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp sysutils$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/strutils.pp
+	$(COMPILER) $(OBJPASDIR)/strutils.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)

+ 7 - 0
rtl/os2/Makefile.fpc

@@ -193,6 +193,13 @@ convutil$(PPUEXT) : $(OBJPASDIR)/convutil.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp sysutils$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp sysutils$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/strutils.pp
         $(COMPILER) $(OBJPASDIR)/strutils.pp
 
 
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 8 - 0
rtl/watcom/Makefile.fpc

@@ -172,6 +172,14 @@ varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) $(OBJPASDIR)/types.pp
         $(COMPILER) $(OBJPASDIR)/types.pp
 
 
+
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units
 #
 #

+ 10 - 3
rtl/win32/Makefile

@@ -1,8 +1,8 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/23]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/16]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
+MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
 FORCE:
 FORCE:
@@ -235,7 +235,7 @@ OBJPASDIR=$(RTL)/objpas
 GRAPHDIR=$(INC)/graph
 GRAPHDIR=$(INC)/graph
 include $(WININC)/makefile.inc
 include $(WININC)/makefile.inc
 WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
 WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
-override TARGET_UNITS+=$(SYSTEMUNIT) systhrds objpas strings lineinfo heaptrc windows ole2 activex shellapi winsock initc cmem dos crt objects graph messages sysutils classes typinfo math varutils variants cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer dynlibs video mouse keyboard types comobj dateutils rtlconst sysconst winsysut strutils convutils
+override TARGET_UNITS+=$(SYSTEMUNIT) systhrds objpas strings lineinfo heaptrc matrix windows ole2 activex shellapi shlobj winsock initc cmem dos crt objects graph messages sysutils classes typinfo math varutils variants cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer dynlibs video mouse keyboard types comobj dateutils rtlconst sysconst winsysut strutils convutils
 override TARGET_LOADERS+=wprt0 wdllprt0 gprt0
 override TARGET_LOADERS+=wprt0 wdllprt0 gprt0
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
@@ -517,6 +517,11 @@ EXEEXT=
 SHAREDLIBEXT=.library
 SHAREDLIBEXT=.library
 FPCMADE=fpcmade.amg
 FPCMADE=fpcmade.amg
 endif
 endif
+ifeq ($(OS_TARGET),morphos)
+EXEEXT=
+SHAREDLIBEXT=.library
+FPCMADE=fpcmade.mos
+endif
 ifeq ($(OS_TARGET),atari)
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
 EXEEXT=.ttp
 FPCMADE=fpcmade.ata
 FPCMADE=fpcmade.ata
@@ -1443,6 +1448,8 @@ convutils$(PPUEXT) : $(OBJPASDIR)/convutils.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutils.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/convutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/strutils.pp
 	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/strutils.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+	$(COMPILER) $(INC)/macpas.pp $(REDIR)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
 getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)

+ 5 - 0
rtl/win32/Makefile.fpc

@@ -216,7 +216,12 @@ convutils$(PPUEXT) : $(OBJPASDIR)/convutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
 strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp
         $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/strutils.pp
         $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/strutils.pp
 
 
+#
+# Mac Pascal Model
+#
 
 
+macpas$(PPUEXT) : $(INC)/macpas.pp system$(PPUEXT)
+        $(COMPILER) $(INC)/macpas.pp $(REDIR)
 
 
 #
 #
 # Other system-independent RTL Units
 # Other system-independent RTL Units