瀏覽代碼

* regenerated with recent fpcmake

florian 21 年之前
父節點
當前提交
19e6fa2783
共有 1 個文件被更改,包括 168 次插入95 次删除
  1. 168 95
      utils/fpdoc/Makefile

+ 168 - 95
utils/fpdoc/Makefile

@@ -1,10 +1,11 @@
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/08/31]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/11/14]
 #
 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 netwlibc
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
+LIMIT83fs = go32v2 os2
 FORCE:
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -145,8 +146,13 @@ endif
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FULL_TARGET=$(OS_TARGET)
+FULL_SOURCE=$(OS_SOURCE)
+else
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifneq ($(FULL_TARGET),$(FULL_SOURCE))
 CROSSCOMPILE=1
 endif
@@ -198,18 +204,18 @@ endif
 endif
 endif
 endif
-ifndef CROSSDIR
-CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
-endif
-ifndef CROSSTARGETDIR
-CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(FULL_TARGET))
 endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
 ifdef CROSSCOMPILE
-UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
 endif
-else
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(FULL_TARGET))
+ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
@@ -259,6 +265,16 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 endif
 export DIST_DESTDIR
+ifndef COMPILER_UNITTARGETDIR
+ifdef PACKAGEDIR_MAIN
+COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(FULL_TARGET)
+else
+COMPILER_UNITTARGETDIR=units/$(FULL_TARGET)
+endif
+endif
+ifndef COMPILER_TARGETDIR
+COMPILER_TARGETDIR=.
+endif
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
@@ -272,28 +288,16 @@ endif
 endif
 ifndef INSTALL_BINDIR
 ifdef UNIXHier
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
-else
 INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-endif
-else
-ifdef CROSSCOMPILE
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-endif
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
+INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(FULL_SOURCE)
 endif
 endif
 endif
 ifndef INSTALL_UNITDIR
-ifdef CROSSCOMPILE
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
-else
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
-endif
+INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(FULL_TARGET)
 ifdef INSTALL_FPCPACKAGE
 ifdef PACKAGE_NAME
 INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
@@ -413,14 +417,14 @@ ifeq ($(CPU_TARGET),i386)
 ifneq ($(findstring x86_64,$(shell uname -a)),)
 ifeq ($(BINUTILSPREFIX),)
 GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-else
-GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
 endif
-else
-GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
 endif
-else
-GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
+endif
+endif
+ifndef GCCLIBDIR
+CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
+ifneq ($(CROSSGCC),)
+GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
 endif
 endif
 ifndef OTHERLIBDIR
@@ -445,21 +449,20 @@ STATICLIBEXT=.a
 SHAREDLIBEXT=.so
 STATICLIBPREFIX=libp
 RSTEXT=.rst
-FPCMADE=fpcmade
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(OS_TARGET),go32v1)
 STATICLIBPREFIX=
-FPCMADE=fpcmade.v1
+FPCMADEEXT=v1
 PACKAGESUFFIX=v1
 endif
 ifeq ($(OS_TARGET),go32v2)
 STATICLIBPREFIX=
-FPCMADE=fpcmade.dos
+FPCMADEEXT=dos
 ZIPSUFFIX=go32
 endif
 ifeq ($(OS_TARGET),watcom)
 STATICLIBPREFIX=
-FPCMADE=fpcmade.wat
+FPCMADEEXT=wat
 ZIPSUFFIX=watc
 OEXT=.obj
 ASMEXT=.asm
@@ -469,33 +472,33 @@ ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
 HASSHAREDLIB=1
-FPCMADE=fpcmade.lnx
+FPCMADEEXT=lnx
 ZIPSUFFIX=linux
 endif
 ifeq ($(OS_TARGET),freebsd)
 BATCHEXT=.sh
 EXEEXT=
 HASSHAREDLIB=1
-FPCMADE=fpcmade.freebsd
+FPCMADEEXT=fbs
 ZIPSUFFIX=freebsd
 endif
 ifeq ($(OS_TARGET),netbsd)
 BATCHEXT=.sh
 EXEEXT=
 HASSHAREDLIB=1
-FPCMADE=fpcmade.netbsd
+FPCMADEEXT=nbs
 ZIPSUFFIX=netbsd
 endif
 ifeq ($(OS_TARGET),openbsd)
 BATCHEXT=.sh
 EXEEXT=
 HASSHAREDLIB=1
-FPCMADE=fpcmade.openbsd
+FPCMADEEXT=obs
 ZIPSUFFIX=openbsd
 endif
 ifeq ($(OS_TARGET),win32)
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+FPCMADEEXT=w32
 ZIPSUFFIX=w32
 endif
 ifeq ($(OS_TARGET),os2)
@@ -503,7 +506,7 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+FPCMADEEXT=os2
 ZIPSUFFIX=os2
 ECHO=echo
 endif
@@ -512,62 +515,73 @@ BATCHEXT=.cmd
 AOUTEXT=.out
 STATICLIBPREFIX=
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.emx
+FPCMADEEXT=emx
 ZIPSUFFIX=emx
 ECHO=echo
 endif
 ifeq ($(OS_TARGET),amiga)
 EXEEXT=
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.amg
+FPCMADEEXT=amg
 endif
 ifeq ($(OS_TARGET),morphos)
 EXEEXT=
 SHAREDLIBEXT=.library
-FPCMADE=fpcmade.mos
+FPCMADEEXT=mos
 endif
 ifeq ($(OS_TARGET),atari)
 EXEEXT=.ttp
-FPCMADE=fpcmade.ata
+FPCMADEEXT=ata
 endif
 ifeq ($(OS_TARGET),beos)
 BATCHEXT=.sh
 EXEEXT=
-FPCMADE=fpcmade.be
+FPCMADEEXT=be
 ZIPSUFFIX=be
 endif
 ifeq ($(OS_TARGET),sunos)
 BATCHEXT=.sh
 EXEEXT=
-FPCMADE=fpcmade.sun
+FPCMADEEXT=sun
 ZIPSUFFIX=sun
 endif
 ifeq ($(OS_TARGET),qnx)
 BATCHEXT=.sh
 EXEEXT=
-FPCMADE=fpcmade.qnx
+FPCMADEEXT=qnx
 ZIPSUFFIX=qnx
 endif
 ifeq ($(OS_TARGET),netware)
 EXEEXT=.nlm
 STATICLIBPREFIX=
-FPCMADE=fpcmade.nw
+FPCMADEEXT=nw
 ZIPSUFFIX=nw
 endif
+ifeq ($(OS_TARGET),netwlibc)
+EXEEXT=.nlm
+STATICLIBPREFIX=
+FPCMADEEXT=nwl
+ZIPSUFFIX=nwl
+endif
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 EXEEXT=
-FPCMADE=fpcmade.macos
+FPCMADEEXT=mac
 ZIPSUFFIX=macos
 DEBUGSYMEXT=.xcoff
 endif
 ifeq ($(OS_TARGET),darwin)
 BATCHEXT=.sh
 EXEEXT=
+FPCMADEEXT=dwn
 HASSHAREDLIB=1
-FPCMADE=fpcmade.darwin
 ZIPSUFFIX=darwin
 endif
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+FPCMADE=fpcmade$(FPCMADEEXT)
+else
+FPCMADE=fpcmade.$(FULL_TARGET)
+endif
 else
 ifeq ($(OS_TARGET),go32v1)
 PPUEXT=.pp1
@@ -706,6 +720,18 @@ FPCMADE=fpcmade.nw
 ZIPSUFFIX=nw
 EXEEXT=.nlm
 endif
+ifeq ($(OS_TARGET),netwlibc)
+STATICLIBPREFIX=
+PPUEXT=.ppu
+OEXT=.o
+ASMEXT=.s
+SMARTEXT=.sl
+STATICLIBEXT=.a
+SHAREDLIBEXT=.nlm
+FPCMADE=fpcmade.nwl
+ZIPSUFFIX=nwl
+EXEEXT=.nlm
+endif
 ifeq ($(OS_TARGET),macos)
 BATCHEXT=
 PPUEXT=.ppu
@@ -723,7 +749,7 @@ ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
-ECHO= __missing_command__
+ECHO= __missing_command_ECHO
 else
 ECHO:=$(firstword $(ECHO))
 endif
@@ -737,7 +763,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
 DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(DATE),)
-DATE= __missing_command__
+DATE= __missing_command_DATE
 else
 DATE:=$(firstword $(DATE))
 endif
@@ -751,7 +777,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
 GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(GINSTALL),)
-GINSTALL= __missing_command__
+GINSTALL= __missing_command_GINSTALL
 else
 GINSTALL:=$(firstword $(GINSTALL))
 endif
@@ -763,7 +789,7 @@ export GINSTALL
 ifndef CPPROG
 CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(CPPROG),)
-CPPROG= __missing_command__
+CPPROG= __missing_command_CPPROG
 else
 CPPROG:=$(firstword $(CPPROG))
 endif
@@ -772,7 +798,7 @@ export CPPROG
 ifndef RMPROG
 RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(RMPROG),)
-RMPROG= __missing_command__
+RMPROG= __missing_command_RMPROG
 else
 RMPROG:=$(firstword $(RMPROG))
 endif
@@ -781,12 +807,26 @@ export RMPROG
 ifndef MVPROG
 MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(MVPROG),)
-MVPROG= __missing_command__
+MVPROG= __missing_command_MVPROG
 else
 MVPROG:=$(firstword $(MVPROG))
 endif
 endif
 export MVPROG
+ifndef MKDIRPROG
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MKDIRPROG),)
+MKDIRPROG= __missing_command_MKDIRPROG
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+else
+MKDIRPROG:=$(firstword $(MKDIRPROG))
+endif
+endif
+export MKDIRPROG
 ifndef ECHOREDIR
 ifndef inUnix
 ECHOREDIR=echo
@@ -798,7 +838,10 @@ ifndef COPY
 COPY:=$(CPPROG) -fp
 endif
 ifndef COPYTREE
-COPYTREE:=$(CPPROG) -rfp
+COPYTREE:=$(CPPROG) -Rfp
+endif
+ifndef MKDIRTREE
+MKDIRTREE:=$(MKDIRPROG) -p
 endif
 ifndef MOVE
 MOVE:=$(MVPROG) -f
@@ -830,7 +873,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
 ifndef PPUMOVE
 PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command__
+PPUMOVE= __missing_command_PPUMOVE
 else
 PPUMOVE:=$(firstword $(PPUMOVE))
 endif
@@ -839,7 +882,7 @@ export PPUMOVE
 ifndef FPCMAKE
 FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command__
+FPCMAKE= __missing_command_FPCMAKE
 else
 FPCMAKE:=$(firstword $(FPCMAKE))
 endif
@@ -848,7 +891,7 @@ export FPCMAKE
 ifndef ZIPPROG
 ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command__
+ZIPPROG= __missing_command_ZIPPROG
 else
 ZIPPROG:=$(firstword $(ZIPPROG))
 endif
@@ -857,7 +900,7 @@ export ZIPPROG
 ifndef TARPROG
 TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(TARPROG),)
-TARPROG= __missing_command__
+TARPROG= __missing_command_TARPROG
 else
 TARPROG:=$(firstword $(TARPROG))
 endif
@@ -1346,11 +1389,21 @@ REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
+ifeq ($(OS_TARGET),netwlibc)
+ifeq ($(CPU_TARGET),i386)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+endif
+endif
 ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
+PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(FULL_TARGET)),)
+UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(FULL_TARGET)
 else
 UNITDIR_RTL=$(PACKAGEDIR_RTL)
 endif
@@ -1375,8 +1428,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASZLIB
 PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(OS_TARGET)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)),)
+UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(FULL_TARGET)
 else
 UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
 endif
@@ -1401,8 +1454,8 @@ endif
 ifdef REQUIRE_PACKAGES_NETDB
 PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/$(OS_TARGET)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)),)
+UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(FULL_TARGET)
 else
 UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
 endif
@@ -1427,8 +1480,8 @@ endif
 ifdef REQUIRE_PACKAGES_LIBASYNC
 PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)),)
+UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(FULL_TARGET)
 else
 UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
 endif
@@ -1453,8 +1506,8 @@ endif
 ifdef REQUIRE_PACKAGES_PTHREADS
 PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/$(OS_TARGET)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)),)
+UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(FULL_TARGET)
 else
 UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
 endif
@@ -1479,8 +1532,8 @@ endif
 ifdef REQUIRE_PACKAGES_FCL
 PACKAGEDIR_FCL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL)/$(OS_TARGET)),)
-UNITDIR_FCL=$(PACKAGEDIR_FCL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_FCL)/units/$(FULL_TARGET)),)
+UNITDIR_FCL=$(PACKAGEDIR_FCL)/units/$(FULL_TARGET)
 else
 UNITDIR_FCL=$(PACKAGEDIR_FCL)
 endif
@@ -1505,8 +1558,8 @@ endif
 ifdef REQUIRE_PACKAGES_PASJPEG
 PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_PASJPEG),)
-ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/$(OS_TARGET)),)
-UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)),)
+UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)/units/$(FULL_TARGET)
 else
 UNITDIR_PASJPEG=$(PACKAGEDIR_PASJPEG)
 endif
@@ -1531,8 +1584,8 @@ endif
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/$(OS_TARGET)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)),)
+UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(FULL_TARGET)
 else
 UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
 endif
@@ -1557,8 +1610,8 @@ endif
 ifdef REQUIRE_PACKAGES_POSTGRES
 PACKAGEDIR_POSTGRES:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /postgres/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_POSTGRES),)
-ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/$(OS_TARGET)),)
-UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)),)
+UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)/units/$(FULL_TARGET)
 else
 UNITDIR_POSTGRES=$(PACKAGEDIR_POSTGRES)
 endif
@@ -1583,8 +1636,8 @@ endif
 ifdef REQUIRE_PACKAGES_MYSQL
 PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/$(OS_TARGET)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)),)
+UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(FULL_TARGET)
 else
 UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
 endif
@@ -1609,8 +1662,8 @@ endif
 ifdef REQUIRE_PACKAGES_SQLITE
 PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/$(OS_TARGET)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/$(OS_TARGET)
+ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)),)
+UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(FULL_TARGET)
 else
 UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
 endif
@@ -1768,6 +1821,7 @@ EXECPPAS:=@$(PPAS)
 endif
 endif
 .PHONY: fpc_exes
+ifndef CROSSINSTALL
 ifneq ($(TARGET_PROGRAMS),)
 override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
 override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
@@ -1781,7 +1835,8 @@ ifeq ($(OS_TARGET),emx)
 override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
 endif
 endif
-fpc_exes: $(EXEFILES)
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1797,13 +1852,17 @@ fpc_debug:
 fpc_release:
 	$(MAKE) all RELEASE=1
 .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
+$(COMPILER_UNITTARGETDIR):
+	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
+$(COMPILER_TARGETDIR):
+	$(MKDIRTREE) $(COMPILER_TARGETDIR)
 %$(PPUEXT): %.pp
 	$(COMPILER) $<
 	$(EXECPPAS)
 %$(PPUEXT): %.pas
 	$(COMPILER) $<
 	$(EXECPPAS)
-%$(EXEEXT): %.pp
+%$(EXEEXT): %.pp 
 	$(COMPILER) $<
 	$(EXECPPAS)
 %$(EXEEXT): %.pas
@@ -1821,6 +1880,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
 ifdef INSTALL_UNITS
@@ -1977,7 +2037,7 @@ endif
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
 endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
@@ -2003,17 +2063,28 @@ ifdef LIB_NAME
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_distclean: clean
-ifdef COMPILER_UNITTARGETDIR
-TARGETDIRCLEAN=fpc_clean
-endif
-fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
+fpc_cleanall: $(CLEANTARGET)
 ifdef CLEANEXEFILES
 	-$(DEL) $(CLEANEXEFILES)
 endif
+ifdef COMPILER_UNITTARGETDIR
+ifdef CLEANPPUFILES
+	-$(DEL) $(CLEANPPUFILES)
+endif
+ifneq ($(CLEANPPULINKFILES),)
+	-$(DEL) $(CLEANPPULINKFILES)
+endif
+ifdef CLEANRSTFILES
+	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
+endif
+endif
+	-$(DELTREE) units
 	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+	-$(DEL) *.o *.ppu *.a
+endif
 	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) *_ppas$(BATCHEXT)
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
@@ -2021,6 +2092,7 @@ endif
 ifdef DEBUGSYMEXT
 	-$(DEL) *$(DEBUGSYMEXT)
 endif
+fpc_distclean: cleanall
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
@@ -2127,6 +2199,7 @@ all: fpc_all
 debug: fpc_debug
 smart: fpc_smart
 release: fpc_release
+units: fpc_units
 examples:
 shared:
 install: fpc_install
@@ -2142,7 +2215,7 @@ distclean: fpc_distclean
 cleanall: fpc_cleanall
 info: fpc_info
 makefiles: fpc_makefiles
-.PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif