Переглянути джерело

Regenerate Makefile's after DOTTED conversions

Pierre Muller 1 рік тому
батько
коміт
95886b7e03

+ 45 - 41
rtl/aix/Makefile

@@ -907,10 +907,10 @@ endif
 override FPCOPT+=-dFPC_USE_LIBC
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) baseunix unixutil $(TERMIOUNIT) unix initc $(CMEMUNIT) $(LNFOGDBUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(UNIXCPUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types sysconst rtlconsts cthreads dos cwstring $(FPWIDESTRINGUNIT) $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LNFOGDBUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(UNIXCPUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types $(SYSCONSTUNIT) $(RTLCONSTSUNIT) $(CTHREADSUNIT) dos cwstring $(FPWIDESTRINGUNIT) $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) baseunix unixutil $(TERMIOUNIT) unix initc $(CMEMUNIT) $(LNFOGDBUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(UNIXCPUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types sysconst rtlconsts cthreads dos cwstring $(FPWIDESTRINGUNIT) $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LNFOGDBUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(UNIXCPUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types $(SYSCONSTUNIT) $(RTLCONSTSUNIT) $(CTHREADSUNIT) dos cwstring $(FPWIDESTRINGUNIT) $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=$(CP_UNITS) $(UNICODEDATAUNIT)
@@ -919,10 +919,10 @@ ifeq ($(CPU_OS_TARGET),powerpc64-aix)
 override TARGET_IMPLICITUNITS+=$(CP_UNITS) $(UNICODEDATAUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc-aix)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc64-aix)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),powerpc-aix)
@@ -2180,8 +2180,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2210,6 +2214,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2358,8 +2365,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2403,8 +2413,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2466,13 +2479,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2495,8 +2508,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2628,8 +2644,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2649,7 +2668,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2666,6 +2685,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2715,6 +2739,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2862,37 +2889,20 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
 	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp
-baseunix$(PPUEXT) : unixtype$(PPUEXT) errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
-  signal.inc $(UNIXINC)/bunxh.inc \
-  ostypes.inc osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/baseunix.pp
-unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unixtype.pp
-unix$(PPUEXT) : unixtype$(PPUEXT) baseunix$(PPUEXT) unixutil$(PPUEXT) strings$(PPUEXT) $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 unxconst.inc $(UNIXINC)/timezone.inc \
-		 unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unix.pp
-unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unixutil.pp
-dos$(PPUEXT) : strings$(PPUEXT) unix$(PPUEXT) $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+dos$(PPUEXT) : strings$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
+	       $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(UNIXINC)/dos.pp
 sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) unix$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) sysconst$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
 classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) types$(PPUEXT) \
 		   $(SYSTEMUNIT)$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) sysutils$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 ifeq ($(ARCH),x86_64)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
 	$(COMPILER) $(PROCINC)/cpu.pp
@@ -2900,12 +2910,6 @@ else
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(PROCINC)/cpu.pp
 endif
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp sysutils$(PPUEXT) baseunix$(PPUEXT) unixtype$(PPUEXT) unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/cthreads.pp
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
 	$(COMPILER) $(UNIXINC)/cwstring.pp
-gpm$(PPUEXT): gpm.pp unix$(PPUEXT) baseunix$(PPUEXT) sockets$(PPUEXT)
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT)
-	$(COMPILER) $(INC)/ctypes.pp
-initc$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/initc.pp
+gpm$(PPUEXT): gpm.pp $(UNIXUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) sockets$(PPUEXT)

+ 36 - 9
rtl/amiga/Makefile

@@ -924,10 +924,10 @@ ifeq ($(CPU_OS_TARGET),powerpc-amiga)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 ifeq ($(CPU_OS_TARGET),m68k-amiga)
-override TARGET_RSTS+=$(MATHUNIT) rtlconsts typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) $(RTLCONSTSUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc-amiga)
-override TARGET_RSTS+=$(MATHUNIT) rtlconsts typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) $(RTLCONSTSUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),m68k-amiga)
@@ -2212,8 +2212,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2242,6 +2246,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2390,8 +2397,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2435,8 +2445,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2498,13 +2511,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2527,8 +2540,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2660,8 +2676,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2681,7 +2700,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2698,6 +2717,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2747,6 +2771,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 55 - 50
rtl/android/Makefile

@@ -892,6 +892,10 @@ DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 DYNLIBSINCDIR=$(UNIXINC)
 DL_DEPS_OS=dlandroid.inc
 TERMIODIR=$(LINUXINC)
+PTHREADINCDIR=$(LINUXINC)
+PTYPESINCDIR=$(LINUXINC)
+SYSCALL_DEPS_OS=$(LINUXINC)/$(ARCH)/syscallh.inc $(LINUXINC)/$(ARCH)/sysnr.inc
+SYSUTILS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 UNITPREFIX=rtl
 CPU_UNITS=
 SYSINIT_UNITS=
@@ -908,22 +912,22 @@ override FPCOPT+=-Ur
 endif
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),i386-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) unixtype ctypes baseunix $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) syscall unixutil $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) unix $(LINUXUNIT) initc $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  sysconst cthreads $(SORTBASEUNIT) classes $(FGLUNIT)  rtlconsts dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(BASEUNIXUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(SYSCALLUNIT) $(UNIXUTILUNIT) $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(LINUXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  $(SYSCONSTUNIT) $(CTHREADSUNIT) $(SORTBASEUNIT) classes $(FGLUNIT)  $(RTLCONSTSUNIT) dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) unixtype ctypes baseunix $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) syscall unixutil $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) unix $(LINUXUNIT) initc $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  sysconst cthreads $(SORTBASEUNIT) classes $(FGLUNIT)  rtlconsts dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(BASEUNIXUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(SYSCALLUNIT) $(UNIXUTILUNIT) $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(LINUXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  $(SYSCONSTUNIT) $(CTHREADSUNIT) $(SORTBASEUNIT) classes $(FGLUNIT)  $(RTLCONSTSUNIT) dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) unixtype ctypes baseunix $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) syscall unixutil $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) unix $(LINUXUNIT) initc $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  sysconst cthreads $(SORTBASEUNIT) classes $(FGLUNIT)  rtlconsts dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(BASEUNIXUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(SYSCALLUNIT) $(UNIXUTILUNIT) $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(LINUXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  $(SYSCONSTUNIT) $(CTHREADSUNIT) $(SORTBASEUNIT) classes $(FGLUNIT)  $(RTLCONSTSUNIT) dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) unixtype ctypes baseunix $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) syscall unixutil $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) unix $(LINUXUNIT) initc $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  sysconst cthreads $(SORTBASEUNIT) classes $(FGLUNIT)  rtlconsts dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(BASEUNIXUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(SYSCALLUNIT) $(UNIXUTILUNIT) $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(LINUXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  $(SYSCONSTUNIT) $(CTHREADSUNIT) $(SORTBASEUNIT) classes $(FGLUNIT)  $(RTLCONSTSUNIT) dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) unixtype ctypes baseunix $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) syscall unixutil $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) unix $(LINUXUNIT) initc $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  sysconst cthreads $(SORTBASEUNIT) classes $(FGLUNIT)  rtlconsts dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(BASEUNIXUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(SYSCALLUNIT) $(UNIXUTILUNIT) $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(LINUXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  $(SYSCONSTUNIT) $(CTHREADSUNIT) $(SORTBASEUNIT) classes $(FGLUNIT)  $(RTLCONSTSUNIT) dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) unixtype ctypes baseunix $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) syscall unixutil $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) unix $(LINUXUNIT) initc $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  sysconst cthreads $(SORTBASEUNIT) classes $(FGLUNIT)  rtlconsts dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(BASEUNIXUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(SYSCALLUNIT) $(UNIXUTILUNIT) $(FPINTRESUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(LINUXUNIT) $(INITCUNIT) $(CMEMUNIT) $(LINUXVCSUNIT) sysutils typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types  $(SYSCONSTUNIT) $(CTHREADSUNIT) $(SORTBASEUNIT) classes $(FGLUNIT)  $(RTLCONSTSUNIT) dos cwstring $(FPCYLIXUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-android)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -962,22 +966,22 @@ ifeq ($(CPU_OS_TARGET),aarch64-android)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 ifeq ($(CPU_OS_TARGET),i386-android)
-override TARGET_RSTS+=$(MATHUNIT)  typinfo  sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT)  typinfo  $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-android)
-override TARGET_RSTS+=$(MATHUNIT)  typinfo  sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT)  typinfo  $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),arm-android)
-override TARGET_RSTS+=$(MATHUNIT)  typinfo  sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT)  typinfo  $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),mipsel-android)
-override TARGET_RSTS+=$(MATHUNIT)  typinfo  sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT)  typinfo  $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),jvm-android)
-override TARGET_RSTS+=$(MATHUNIT)  typinfo  sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT)  typinfo  $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-android)
-override TARGET_RSTS+=$(MATHUNIT)  typinfo  sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT)  typinfo  $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-android)
 override CLEAN_UNITS+=$(LINUXUNIT)
@@ -1052,7 +1056,7 @@ endif
 ifeq ($(CPU_OS_TARGET),aarch64-android)
 override COMPILER_TARGETDIR+=.
 endif
-override SHARED_LIBUNITS=$(SYSTEMUNIT) $(OBJPASUNIT) $(STRINGSUNIT) dos unix baseunix unixtype unixutil sysutils typinfo $(MATHUNIT) $(CPU_UNITS) $(GETOPTSUNIT) $(ERRORSUNIT) sockets $(SORTBASEUNIT) classes $(FGLUNIT) sysconst rtlconsts 
+override SHARED_LIBUNITS=$(SYSTEMUNIT) $(OBJPASUNIT) $(STRINGSUNIT) dos $(UNIXUNIT) $(BASEUNIXUNIT) $(UNIXTYPEUNIT) $(UNIXUTILUNIT) sysutils typinfo $(MATHUNIT) $(CPU_UNITS) $(GETOPTSUNIT) $(ERRORSUNIT) sockets $(SORTBASEUNIT) classes $(FGLUNIT) $(SYSCONSTUNIT) $(RTLCONSTSUNIT) 
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -2323,8 +2327,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2353,6 +2361,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2501,8 +2512,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2546,8 +2560,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2609,13 +2626,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2638,8 +2655,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2771,8 +2791,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2792,7 +2815,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2809,6 +2832,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2858,6 +2886,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -3021,50 +3052,24 @@ dllprt0$(OEXT) : dllprt0.as
 	$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) --defsym CPU$(CPUBITS)=1 dllprt0.as
 $(SYSTEMUNIT)$(PPUEXT) : $(LINUXINC)/$(SYSTEMUNIT).pp $(SYSDEPS)
 	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(LINUXINC)/$(SYSTEMUNIT).pp
-unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) baseunix$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 $(LINUXINC)/unxconst.inc $(UNIXINC)/timezone.inc $(SYSTEMUNIT)$(PPUEXT) \
-		 $(LINUXINC)/unxfunc.inc unixandroid.inc cwstring$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unix.pp
-syscall$(PPUEXT) : $(UNIXINC)/syscall.pp $(LINUXINC)/$(ARCH)/syscallh.inc $(LINUXINC)/$(ARCH)/sysnr.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/syscall.pp
-unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unixutil.pp
-unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp $(LINUXINC)/ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unixtype.pp
-baseunix$(PPUEXT) : $(UNIXINC)/baseunix.pp $(LINUXINC)/errno.inc $(LINUXINC)/ptypes.inc $(UNIXINC)/ctypes.inc \
-  $(UNIXINC)/bunxh.inc \
-  $(LINUXINC)/bunxsysc.inc $(LINUXINC)/$(ARCH)/syscallh.inc $(LINUXINC)/$(ARCH)/sysnr.inc \
-  $(LINUXINC)/ostypes.inc $(LINUXINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/baseunix.pp
-initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/initc.pp
 dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+	       $(UNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(UNIXINC)/dos.pp
 sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) unix$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) sysconst$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
 classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT)
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) sysutils$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 ifneq ($(findstring $(ARCH),x86_64 i386),)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) $(OBJPASUNIT)$(PPUEXT) sysutils$(PPUEXT)
 else
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) $(OBJPASUNIT)$(PPUEXT)
 endif
 	$(COMPILER) $(PROCINC)/cpu.pp
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/cthreads.pp
 cwstring$(PPUEXT) : cwstring.pp $(SYSTEMUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
 	$(COMPILER) cwstring.pp
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(INC)/ctypes.pp

+ 34 - 7
rtl/aros/Makefile

@@ -2227,8 +2227,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2257,6 +2261,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2405,8 +2412,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2450,8 +2460,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2513,13 +2526,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2542,8 +2555,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2675,8 +2691,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2696,7 +2715,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2713,6 +2732,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2762,6 +2786,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/atari/Makefile

@@ -2182,8 +2182,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2212,6 +2216,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2360,8 +2367,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2405,8 +2415,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2468,13 +2481,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2497,8 +2510,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2630,8 +2646,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2651,7 +2670,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2668,6 +2687,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2717,6 +2741,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 35 - 8
rtl/beos/Makefile

@@ -909,7 +909,7 @@ ifeq ($(CPU_OS_TARGET),i386-beos)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
 ifeq ($(CPU_OS_TARGET),i386-beos)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-beos)
@@ -2191,8 +2191,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2221,6 +2225,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2369,8 +2376,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2414,8 +2424,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2477,13 +2490,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2506,8 +2519,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2639,8 +2655,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2660,7 +2679,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2677,6 +2696,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2726,6 +2750,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 45 - 18
rtl/darwin/Makefile

@@ -902,7 +902,7 @@ BASEUNIX_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT)
 DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 DYNLIBSINCDIR=$(UNIXINC)
 CTYPES_DEPS_OS=$(UNIXTYPEUNIT)$(PPUEXT)
-EXEINFO_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT)
+EXEINFO_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT)
 FPEXTRES_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT)
 DOS_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT) $(UNIXUTILUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT)
 SYSTEMUNIT=system
@@ -972,34 +972,34 @@ ifeq ($(CPU_OS_TARGET),aarch64-ios)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-darwin)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-iphonesim)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc-darwin)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-darwin)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),arm-ios)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-darwin)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-ios)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-darwin)
@@ -2305,8 +2305,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2335,6 +2339,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2483,8 +2490,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2528,8 +2538,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2591,13 +2604,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2620,8 +2633,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2753,8 +2769,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2774,7 +2793,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2791,6 +2810,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2840,6 +2864,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 44 - 32
rtl/dragonfly/Makefile

@@ -891,8 +891,11 @@ BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
 UNITPREFIX=rtl
 CPU_UNITS=
+BSD_DEPS_OS=$(SYSCALLUNIT)$(PPUEXT)
 DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 DYNLIBSINCDIR=$(UNIXINC)
+SYSCALL_DEPS_OS=sysnr.inc $(BSDPROCINC)/syscallh.inc
+BASEUNIX_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT)
 SYSTEMUNIT=system
 loaders+=gprt0
 ifeq ($(ARCH),x86_64)
@@ -903,7 +906,7 @@ override FPCOPT+=-Ur
 endif
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd $(CONSOLEUNIT) sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) $(CONSOLEUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -912,7 +915,7 @@ ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y y
 ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
@@ -2191,8 +2194,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2221,6 +2228,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2369,8 +2379,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2414,8 +2427,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2477,13 +2493,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2506,8 +2522,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2639,8 +2658,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2660,7 +2682,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2677,6 +2699,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2726,6 +2753,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2881,39 +2911,21 @@ dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
 	$(AS) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
 $(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp unxconst.inc $(SYSDEPS)
 	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
-unixtype$(PPUEXT): $(UNIXINC)/unixtype.pp $(UNIXINC)/ctypes.inc ptypes.inc $(SYSTEMUNIT)$(PPUEXT)
-baseunix$(PPUEXT) : errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
-  $(CPU_TARGET)/signal.inc $(UNIXINC)/bunxh.inc \
-  $(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
-  $(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc sysctl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 unxconst.inc $(UNIXINC)/timezone.inc \
-		 unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-bsd$(PPUEXT) : $(BSDINC)/bsd.pas initc$(PPUEXT) unix$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+	       $(UNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) unix$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) sysconst$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT)
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) rtlconsts$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
 ifneq ($(findstring $(ARCH),x86_64 i386),)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
 else
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 endif
-sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp unixtype$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT)
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)

+ 35 - 8
rtl/embedded/Makefile

@@ -1041,7 +1041,7 @@ $(error No CPUs enabled for given SUBARCH, pass either a SUBARCH or set CPU_UNIT
 endif
 endif
 ifeq ($(ARCH),riscv32)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 ifeq ($(SUBARCH),rv32ec)
 override FPCOPT+=-Cprv32ec
 CPU_UNITS=CH32VxBootstrap
@@ -2561,8 +2561,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2591,6 +2595,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2739,8 +2746,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2784,8 +2794,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2847,13 +2860,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2876,8 +2889,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -3009,8 +3025,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -3030,7 +3049,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -3047,6 +3066,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -3096,6 +3120,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 35 - 8
rtl/emx/Makefile

@@ -903,7 +903,7 @@ SYSTEMUNITEXT=pas
 DOSUNITEXT=pas
 PORTSUNITEXT=pas
 ifeq ($(CPU_OS_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) ctypes objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(PORTSUNIT) $(OS2DEFUNIT) $(DOSCALLSUNIT) $(DOSCALL2UNIT) $(KBDCALLSUNIT) $(MOUCALLSUNIT) $(VIOCALLSUNIT) $(SO32DLLUNIT) $(PMBITMAPUNIT) $(PMWINUNIT) $(PMGPIUNIT) $(PMSTDDLGUNIT) $(PMHELPUNIT) $(PMDEVUNIT) $(PMSPLUNIT) $(PMSHLUNIT) $(PMWPUNIT) $(PMWSOCKUNIT) $(PMBIDI) $(DOSUNIT) $(SUSITILSUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT) $(TYPINFOUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CPUNIT) $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(DYNLIBSUNIT) $(TYPESUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(FPWIDESTRINGUNIT) $(CHARACTERUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SPFU128UNIT)       $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(CTYPESUNIT) objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(PORTSUNIT) $(OS2DEFUNIT) $(DOSCALLSUNIT) $(DOSCALL2UNIT) $(KBDCALLSUNIT) $(MOUCALLSUNIT) $(VIOCALLSUNIT) $(SO32DLLUNIT) $(PMBITMAPUNIT) $(PMWINUNIT) $(PMGPIUNIT) $(PMSTDDLGUNIT) $(PMHELPUNIT) $(PMDEVUNIT) $(PMSPLUNIT) $(PMSHLUNIT) $(PMWPUNIT) $(PMWSOCKUNIT) $(PMBIDI) $(DOSUNIT) $(SUSITILSUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT) $(TYPINFOUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CPUNIT) $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(DYNLIBSUNIT) $(TYPESUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(FPWIDESTRINGUNIT) $(CHARACTERUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SPFU128UNIT)       $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-emx)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -2191,8 +2191,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2221,6 +2225,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2369,8 +2376,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2414,8 +2424,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2477,13 +2490,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2506,8 +2519,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2639,8 +2655,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2660,7 +2679,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2677,6 +2696,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2726,6 +2750,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 48 - 48
rtl/freebsd/Makefile

@@ -892,8 +892,11 @@ BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
 UNITPREFIX=rtl
 CPU_UNITS=
+BASEUNIX_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT)
+BSD_DEPS_OS=$(SYSCALLUNIT)$(PPUEXT)
 DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 DYNLIBSINCDIR=$(UNIXINC)
+SYSCALL_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) sysnr.inc $(BSDPROCINC)/syscallh.inc
 SYSTEMUNIT=system
 loaders+=gprt0
 ifeq ($(ARCH),i386)
@@ -909,13 +912,13 @@ override FPCOPT+=-Ur
 endif
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd freebsd $(CONSOLEUNIT) sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) freebsd $(CONSOLEUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd freebsd $(CONSOLEUNIT) sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) freebsd $(CONSOLEUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd freebsd $(CONSOLEUNIT) sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) freebsd $(CONSOLEUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-freebsd)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -936,13 +939,13 @@ ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
 ifeq ($(CPU_OS_TARGET),i386-freebsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y y
 ifeq ($(CPU_OS_TARGET),i386-freebsd)
@@ -2233,8 +2236,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2263,6 +2270,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2411,8 +2421,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2456,8 +2469,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2519,13 +2535,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2548,8 +2564,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2681,8 +2700,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2702,7 +2724,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2719,6 +2741,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2768,6 +2795,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2923,38 +2953,20 @@ dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
 	$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
 $(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp unxconst.inc $(SYSDEPS)
 	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
-unixtype$(PPUEXT): $(UNIXINC)/unixtype.pp $(UNIXINC)/ctypes.inc ptypes.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-baseunix$(PPUEXT) : $(UNIXINC)/baseunix.pp errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
-  signal.inc $(UNIXINC)/bunxh.inc \
-  $(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
-  $(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc sysctl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 unxconst.inc $(UNIXINC)/timezone.inc \
-		 unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
 dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+	       $(UNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
 sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) unix$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) sysconst$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) $(FGLUNIT)$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(FGLUNIT)$(PPUEXT) \
 		   sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) rtlconsts$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
 ifneq ($(findstring $(ARCH),x86_64 i386),)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
 	$(COMPILER) $<
@@ -2962,17 +2974,5 @@ else
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
 endif
-syscall$(PPUEXT) : $(UNIXINC)/syscall.pp baseunix$(PPUEXT) unixtype$(PPUEXT)
-	$(COMPILER) $<
-sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp unixtype$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT)
-	$(COMPILER) $<
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
-	$(COMPILER) $<
-bsd$(PPUEXT) : $(BSDINC)/bsd.pas initc$(PPUEXT) unix$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
 	$(COMPILER) $<

+ 41 - 14
rtl/freertos/Makefile

@@ -905,7 +905,7 @@ CPU_SPECIFIC_COMMON_UNITS=
 DOSDIR=.
 DOS_DEPS_OS=objpas$(PPUEXT)
 ifeq ($(ARCH),arm)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 ifeq ($(SUBARCH),armv7m)
 CPU_UNITS=stm32f103xe cortexm3 cortexm4 # thumb2_bare
 CPU_UNITS_DEFINED=1
@@ -1005,7 +1005,7 @@ endif
 endif
 endif
 ifeq ($(ARCH),i386)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 CPU_UNITS=multiboot
 CPU_UNITS_DEFINED=1
 ifeq ($(CPU_UNITS_DEFINED),)
@@ -1013,13 +1013,13 @@ $(error No CPUs enabled for given SUBARCH, pass either a SUBARCH or set CPU_UNIT
 endif
 endif
 ifeq ($(ARCH),x86_64)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 endif
 ifeq ($(ARCH),m68k)
 CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT)
 endif
 ifeq ($(ARCH),mipsel)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 ifeq ($(SUBARCH),pic32mx)
 CPU_UNITS=pic32mx1xxfxxxb pic32mx2xxfxxxb pic32mx1xxfxxxc pic32mx2xxfxxxc pic32mx1xxfxxxd pic32mx2xxfxxxd pic32mx7x5fxxxl pic32mx7x5fxxxh
 CPU_UNITS_DEFINED=1
@@ -1029,7 +1029,7 @@ $(error No CPUs enabled for given SUBARCH, pass either a SUBARCH or set CPU_UNIT
 endif
 endif
 ifeq ($(ARCH),riscv32)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 ifeq ($(SUBARCH),rv32imc)
 override FPCOPT+=-Cprv32imc
 CPU_UNITS=esp32c3 esp32c3idf_50000
@@ -1040,7 +1040,7 @@ $(error No CPUs enabled for given SUBARCH, pass either a SUBARCH or set CPU_UNIT
 endif
 endif
 ifeq ($(ARCH),riscv64)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 CPU_UNITS=
 CPU_UNITS_DEFINED=1
 ifeq ($(CPU_UNITS_DEFINED),)
@@ -1048,7 +1048,7 @@ $(error No CPUs enabled for given SUBARCH, pass either a SUBARCH or set CPU_UNIT
 endif
 endif
 ifeq ($(ARCH),xtensa)
-CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types rtlconsts $(GETOPTSUNIT) $(LINEINFOUNIT)
+CPU_SPECIFIC_COMMON_UNITS=sysutils $(MATHUNIT) classes $(FGLUNIT) $(MACPASUNIT) typinfo types $(RTLCONSTSUNIT) $(GETOPTSUNIT) $(LINEINFOUNIT)
 ifeq ($(SUBARCH),lx6)
 CPU_UNITS=esp32 espidf_40100 espidf_40200 espidf_40400
 CPU_UNITS_DEFINED=1
@@ -2378,8 +2378,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2408,6 +2412,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2556,8 +2563,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2601,8 +2611,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2664,13 +2677,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2693,8 +2706,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2826,8 +2842,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2847,7 +2866,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2864,6 +2883,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2913,6 +2937,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/gba/Makefile

@@ -2180,8 +2180,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2210,6 +2214,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2358,8 +2365,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2403,8 +2413,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2466,13 +2479,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2495,8 +2508,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2628,8 +2644,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2649,7 +2668,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2666,6 +2685,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2715,6 +2739,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 43 - 24
rtl/go32v2/Makefile

@@ -888,6 +888,10 @@ COMMON=$(RTL)/common
 PROCINC=../$(CPU_TARGET)
 UNITPREFIX=rtl
 SYSTEMUNIT=system
+ifndef FPC_DOTTEDUNITS
+RTLCONSTSUNIT=rtlconst
+endif
+INITC_DEPS_OS=$(DPMIEXCPUNIT)$(PPUEXT)
 ifdef RELEASE
 override FPCOPT+=-Ur
 endif
@@ -899,7 +903,7 @@ ifdef NO_EXCEPTIONS_IN_SYSTEM
 override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
 endif
 ifeq ($(CPU_OS_TARGET),i386-go32v2)
-override TARGET_UNITS+=system $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) go32 dpmiexcp initc $(PORTSUNIT) profile dxetype dxeload emu387 dos $(CMEMUNIT) $(SORTBASEUNIT) sysutils classes $(MATHUNIT) typinfo cpu $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) ctypes $(FGLUNIT) msmouse $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(FPWIDESTRINGUNIT) $(UNICODEDATAUNIT) types sysconst rtlconst $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=system $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) go32 dpmiexcp $(INITCUNIT) $(PORTSUNIT) profile dxetype dxeload emu387 dos $(CMEMUNIT) $(SORTBASEUNIT) sysutils classes $(MATHUNIT) typinfo cpu $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(CTYPESUNIT) $(FGLUNIT) msmouse $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(FPWIDESTRINGUNIT) $(UNICODEDATAUNIT) types $(SYSCONSTUNIT) $(RTLCONSTSUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-go32v2)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS)
@@ -908,7 +912,7 @@ ifeq ($(CPU_OS_TARGET),i386-go32v2)
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
 ifeq ($(CPU_OS_TARGET),i386-go32v2)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-go32v2)
@@ -2187,8 +2191,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2217,6 +2225,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2365,8 +2376,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2410,8 +2424,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2473,13 +2490,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2502,8 +2519,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2635,8 +2655,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2656,7 +2679,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2673,6 +2696,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2722,6 +2750,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2878,9 +2909,6 @@ go32$(PPUEXT) : go32.pp system$(PPUEXT)
 dpmiexcp$(PPUEXT) : dpmiexcp.pp exceptn$(OEXT) system$(PPUEXT)
 	$(COMPILER) -Sg dpmiexcp.pp
 	$(EXECPPAS)
-initc$(PPUEXT) : initc.pp system$(PPUEXT)
-	$(COMPILER) initc.pp
-	$(EXECPPAS)
 profile$(PPUEXT) : profile.pp dpmiexcp$(PPUEXT) go32$(PPUEXT)
 	$(COMPILER) profile.pp
 	$(EXECPPAS)
@@ -2899,25 +2927,19 @@ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc \
 	$(COMPILER) dos.pp
 	$(EXECPPAS)
 sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT) sysconst$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
 	$(EXECPPAS)
 classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT) types$(PPUEXT) $(FGLUNIT)$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) types$(PPUEXT) $(FGLUNIT)$(PPUEXT) \
 		   sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) rtlconst$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT)
 	$(COMPILER) -Sg -Fi$(OBJPASDIR) $(OBJPASDIR)/typinfo.pp
 	$(EXECPPAS)
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
 	$(EXECPPAS)
-rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp
-	$(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/rtlconst.pp
-	$(EXECPPAS)
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-	$(EXECPPAS)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
 	$(COMPILER) $(PROCINC)/cpu.pp
 	$(EXECPPAS)
@@ -2930,6 +2952,3 @@ ucomplex$(PPUEXT) : $(INC)/ucomplex.pp $(MATHUNIT)$(PPUEXT) system$(PPUEXT)
 msmouse$(PPUEXT) : msmouse.pp system$(PPUEXT)
 	$(COMPILER) msmouse.pp
 	$(EXECPPAS)
-ctypes$(PPUEXT) : $(INC)/ctypes.pp system$(PPUEXT)
-	$(COMPILER) $(INC)/ctypes.pp
-	$(EXECPPAS)

+ 34 - 7
rtl/haiku/Makefile

@@ -2222,8 +2222,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2252,6 +2256,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2400,8 +2407,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2445,8 +2455,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2508,13 +2521,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2537,8 +2550,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2670,8 +2686,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2691,7 +2710,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2708,6 +2727,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2757,6 +2781,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/java/Makefile

@@ -2150,8 +2150,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2180,6 +2184,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2328,8 +2335,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2373,8 +2383,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2436,13 +2449,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2465,8 +2478,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2598,8 +2614,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2619,7 +2638,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2636,6 +2655,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2685,6 +2709,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 61 - 25
rtl/linux/Makefile

@@ -896,6 +896,15 @@ DOS_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT) $(UNIXUTILUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEX
 DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 DYNLIBSINCDIR=$(UNIXINC)
 CTHREADS_DEPS_OS=$(LINUXUNIT)$(PPUEXT)
+ifeq ($(CPU_TARGET),sparc)
+SYSCALL_DEPS_OS=$(ARCH)/syscallh.inc $(RTL)/sparcgen/sysnr.inc
+else
+ifeq ($(CPU_TARGET),sparc64)
+SYSCALL_DEPS_OS=$(ARCH)/syscallh.inc $(RTL)/sparcgen/sysnr.inc
+else
+SYSCALL_DEPS_OS=$(ARCH)/syscallh.inc $(ARCH)/sysnr.inc
+endif
+endif
 UNIX_DEPS_OS=$(SYSCALLUNIT)$(PPUEXT)
 CPU_UNITS=
 SYSINIT_UNITS=
@@ -1123,58 +1132,58 @@ ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 ifeq ($(CPU_OS_TARGET),i386-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),m68k-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),sparc-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),arm-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc64-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),armeb-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),mips-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),mipsel-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),mips64-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),mips64el-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),sparc64-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),riscv32-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),riscv64-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),xtensa-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
-override TARGET_RSTS+=$(MATHUNIT) typinfo sysconst rtlconsts
+override TARGET_RSTS+=$(MATHUNIT) typinfo $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-linux)
 override CLEAN_UNITS+=$(LINUXUNIT)
@@ -2782,8 +2791,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2812,6 +2825,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2960,8 +2976,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -3005,8 +3024,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -3068,13 +3090,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -3097,8 +3119,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -3230,8 +3255,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -3251,7 +3279,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -3268,6 +3296,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -3317,6 +3350,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/macos/Makefile

@@ -2171,8 +2171,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2201,6 +2205,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2349,8 +2356,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2394,8 +2404,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2457,13 +2470,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2486,8 +2499,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2619,8 +2635,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2640,7 +2659,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2657,6 +2676,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2706,6 +2730,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/morphos/Makefile

@@ -2154,8 +2154,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2184,6 +2188,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2332,8 +2339,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2377,8 +2387,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2440,13 +2453,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2469,8 +2482,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2602,8 +2618,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2623,7 +2642,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2640,6 +2659,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2689,6 +2713,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/msdos/Makefile

@@ -2182,8 +2182,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2212,6 +2216,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2360,8 +2367,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2405,8 +2415,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2468,13 +2481,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2497,8 +2510,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2630,8 +2646,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2651,7 +2670,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2668,6 +2687,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2717,6 +2741,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 37 - 19
rtl/msxdos/Makefile

@@ -2151,8 +2151,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2181,6 +2185,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2329,8 +2336,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2374,8 +2384,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2437,13 +2450,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2466,8 +2479,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2599,8 +2615,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2620,7 +2639,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2637,6 +2656,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2686,6 +2710,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2842,35 +2869,26 @@ dos$(PPUEXT) : dos.pp registers.inc \
 	$(COMPILER) dos.pp
 	$(EXECPPAS)
 sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT) system$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
 	$(EXECPPAS)
 classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
 		   types$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT) \
 		   $(OBJPASUNIT)$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
 	$(EXECPPAS)
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp sysutils$(PPUEXT) $(OBJPASUNIT)$(PPUEXT) rtlconsts$(PPUEXT) system$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp sysutils$(PPUEXT) $(OBJPASUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) -Sg -Fi$(OBJPASDIR) $(OBJPASDIR)/typinfo.pp
 	$(EXECPPAS)
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
 	$(EXECPPAS)
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc $(OBJPASUNIT)$(PPUEXT) system$(PPUEXT)
-	$(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/rtlconsts.pp
-	$(EXECPPAS)
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) system$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-	$(EXECPPAS)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp sysutils$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) $(PROCINC)/cpu.pp
 	$(EXECPPAS)
 msmouse$(PPUEXT) : msmouse.pp system$(PPUEXT)
 	$(COMPILER) msmouse.pp $(REDIR)
 	$(EXECPPAS)
-ctypes$(PPUEXT) : $(INC)/ctypes.pp system$(PPUEXT)
-	$(COMPILER) $(INC)/ctypes.pp $(REDIR)
-	$(EXECPPAS)
 si_prc$(PPUEXT) : system$(PPUEXT)
 	$(COMPILER) si_prc.pp

+ 36 - 9
rtl/nativent/Makefile

@@ -903,10 +903,10 @@ ifeq ($(CPU_OS_TARGET),i386-nativent)
 override TARGET_UNITS+=system $(UUCHARUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(CPALLUNIT) buildrtl
 endif
 ifeq ($(CPU_OS_TARGET),i386-nativent)
-override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes $(STRINGSUNIT) dos rtlconsts sysconst sysutils $(MATHUNIT) types typinfo $(FGLUNIT) classes $(CPU_UNITS) $(CHARSETUNIT) $(GETOPTSUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT) $(CP_UNITS)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk $(CTYPESUNIT) $(STRINGSUNIT) dos $(RTLCONSTSUNIT) $(SYSCONSTUNIT) sysutils $(MATHUNIT) types typinfo $(FGLUNIT) classes $(CPU_UNITS) $(CHARSETUNIT) $(GETOPTSUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT) $(CP_UNITS)
 endif
 ifeq ($(CPU_OS_TARGET),i386-nativent)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-nativent)
@@ -2158,8 +2158,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2188,6 +2192,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2336,8 +2343,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2381,8 +2391,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2444,13 +2457,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2473,8 +2486,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2606,8 +2622,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2627,7 +2646,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2644,6 +2663,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2693,6 +2717,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/nds/Makefile

@@ -2180,8 +2180,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2210,6 +2214,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2358,8 +2365,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2403,8 +2413,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2466,13 +2479,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2495,8 +2508,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2628,8 +2644,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2649,7 +2668,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2666,6 +2685,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2715,6 +2739,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 54 - 54
rtl/netbsd/Makefile

@@ -891,8 +891,11 @@ BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
 UNITPREFIX=rtl
 TARGETPROCINC=$(RTL)/netbsd/$(CPU_TARGET)
+BASEUNIX_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT)
+BSD_DEPS_OS=$(SYSCALLUNIT)$(PPUEXT)
 DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 DYNLIBSINCDIR=$(UNIXINC)
+SYSCALL_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) sysnr.inc $(BSDPROCINC)/syscallh.inc
 SYSTEMUNIT=system
 LINUXUNIT=
 PRT0=prt0
@@ -907,22 +910,22 @@ ifeq ($(ARCH),i386)
 CPU_UNITS=$(X86UNIT) $(PORTSUNIT) cpu $(MMXUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl  baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT)  $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl  baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT)  $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl  baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT)  $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl  baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT)  $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl  baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT)  $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),arm-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall sysctl  baseunix unixutil $(CHARACTERUNIT) unix rtlconsts initc $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) bsd sysconst cthreads dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(SYSCTLUNIT)  $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(CHARACTERUNIT) $(UNIXUNIT) $(RTLCONSTSUNIT) $(INITCUNIT) $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) sysutils $(MATHUNIT) typinfo types $(SORTBASEUNIT) classes $(FGLUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LNFODWRFUNIT) $(LINEINFOUNIT) $(ERRORSUNIT) $(BSDUNIT) $(SYSCONSTUNIT) $(CTHREADSUNIT) dos cwstring $(FPINTRESUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-netbsd)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -961,22 +964,22 @@ ifeq ($(CPU_OS_TARGET),arm-netbsd)
 override TARGET_LOADERS+=prt0 cprt0 dllprt0
 endif
 ifeq ($(CPU_OS_TARGET),i386-netbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),m68k-netbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),sparc-netbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),arm-netbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y y
 ifeq ($(CPU_OS_TARGET),i386-netbsd)
@@ -2285,8 +2288,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2315,6 +2322,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2463,8 +2473,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2508,8 +2521,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2571,13 +2587,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2600,8 +2616,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2733,8 +2752,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2754,7 +2776,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2771,6 +2793,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2820,6 +2847,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2973,28 +3003,14 @@ dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
 	$(AS) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
 $(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp sysconst.inc systypes.inc syscalls.inc $(SYSDEPS)
 	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
-baseunix$(PPUEXT) :  $(UNIXINC)/baseunix.pp errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
-  signal.inc $(UNIXINC)/bunxh.inc sysctl$(PPUEXT) \
-  $(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
-  $(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-unixtype$(PPUEXT): $(UNIXINC)/unixtype.pp $(UNIXINC)/ctypes.inc ptypes.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) sysctl$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 syscalls.inc systypes.inc sysconst.inc $(UNIXINC)/timezone.inc \
-		 unxsysc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
 dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+	       $(UNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
 sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		objpas$(PPUEXT) unix$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) sysconst$(PPUEXT)
+		objpas$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) $(FGLUNIT)$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(FGLUNIT)$(PPUEXT) \
 		   sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
 typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT)
@@ -3009,23 +3025,7 @@ endif
 	$(COMPILER) $<
 fpmkunit$(PPUEXT) : $(COMMON)/fpmkunit.pp classes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
-syscall$(PPUEXT) : $(UNIXINC)/syscall.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unixutil.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp unixtype$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-variants$(PPUEXT) : $(INC)/variants.pp sysutils$(PPUEXT) sysconst$(PPUEXT) varutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) $(MATHUNIT)$(PPUEXT)
+variants$(PPUEXT) : $(INC)/variants.pp sysutils$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) varutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(INC) $(INC)/variants.pp
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
-	$(COMPILER) $<
-bsd$(PPUEXT) : $(BSDINC)/bsd.pas initc$(PPUEXT) unix$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
 	$(COMPILER) $<

+ 35 - 8
rtl/netware/Makefile

@@ -893,6 +893,7 @@ RTLCONSTSUNIT=rtlconst
 endif
 DOS_DEPS_OS=$(STRINGSUNIT)$(PPUEXT)
 SYSUTILS_DEPS_OS=$(DOSUNIT)$(PPUEXT)
+INITC_DEPS_OS=$(OSDIR)/nwsys.inc
 override FPCOPT+=-Ur
 override FPCOPT+=-dMT
 CREATESMART=1
@@ -2195,8 +2196,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2225,6 +2230,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2373,8 +2381,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2418,8 +2429,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2481,13 +2495,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2510,8 +2524,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2643,8 +2660,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2664,7 +2684,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2681,6 +2701,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2730,6 +2755,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2880,7 +2908,6 @@ copyimpfiles:
 	$(COPY) $(IMPFILES) $(COMPILER_UNITTARGETDIR)
 nwpre$(PPUEXT) : nwpre.pp $(SYSTEMUNIT)$(PPUEXT)
 netware$(PPUEXT) : netware.pp $(SYSTEMUNIT)$(PPUEXT)
-initc$(PPUEXT) : initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 aio$(PPUEXT) : aio.pp $(SYSTEMUNIT)$(PPUEXT)
 nwsnut$(PPUEXT) : nwsnut.pp nwserv$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 nwserv$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT)

+ 39 - 18
rtl/netwlibc/Makefile

@@ -895,7 +895,7 @@ CREATESMART=1
 OBJPASDIR=$(RTL)/objpas
 override BINUTILSPREFIX=$(CPU_TARGET)-netware-
 ifeq ($(CPU_OS_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT)  $(HEAPTRCUNIT) nwsnut libc dos sysconst initc sysutils types typinfo $(SORTBASEUNIT) $(FGLUNIT) classes cpu $(MMXUNIT) $(GETOPTSUNIT) $(CHARSETUNIT) $(CPALLUNIT) rtlconsts $(MATHUNIT) $(DYNLIBSUNIT) $(CMEMUNIT) ctypes $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT)  $(HEAPTRCUNIT) nwsnut libc dos $(SYSCONSTUNIT) $(INITCUNIT) sysutils types typinfo $(SORTBASEUNIT) $(FGLUNIT) classes cpu $(MMXUNIT) $(GETOPTSUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(RTLCONSTSUNIT) $(MATHUNIT) $(DYNLIBSUNIT) $(CMEMUNIT) $(CTYPESUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-netwlibc)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS)
@@ -904,7 +904,7 @@ ifeq ($(CPU_OS_TARGET),i386-netwlibc)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
 ifeq ($(CPU_OS_TARGET),i386-netwlibc)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconsts system
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT) system
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-netwlibc)
@@ -2183,8 +2183,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2213,6 +2217,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2361,8 +2368,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2406,8 +2416,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2469,13 +2482,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2498,8 +2511,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2631,8 +2647,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2652,7 +2671,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2669,6 +2688,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2718,6 +2742,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2878,26 +2905,20 @@ $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp libc.pp $(SYSDEPS)
 netware$(PPUEXT) : netware.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -I$(WININC) netware.pp
 nwsnut$(PPUEXT) : nwsnut.pp ../netware/nwsnut.pp libc$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-initc$(PPUEXT) : initc.pp ctypes$(PPUEXT) libc$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 dos$(PPUEXT) : dos.pp libc.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) libc.pp sysconst$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) libc.pp $(SYSCONSTUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
 classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) \
-		   sysconst$(PPUEXT) types$(PPUEXT) sortbase$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+		   $(SYSCONSTUNIT)$(PPUEXT) types$(PPUEXT) sortbase$(PPUEXT) \
 		   tthread.inc $(FGLUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
 typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
 aio$(PPUEXT) : aio.pp $(SYSTEMUNIT)$(PPUEXT)
 override INSTALLPPUFILES+=$(IMPFILES)
 override CLEANPPUFILES+=$(addprefix $(COMPILER_UNITTARGETDIR)/,$(IMPFILES))

+ 44 - 46
rtl/openbsd/Makefile

@@ -890,8 +890,11 @@ BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
 UNITPREFIX=rtl
 TARGETPROCINC=$(RTL)/openbsd/$(CPU_TARGET)
+BASEUNIX_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT)
+BSD_DEPS_OS=$(SYSCALLUNIT)$(PPUEXT)
 DYNLIBS_DEPS_OS=$(DLUNIT)$(PPUEXT)
 DYNLIBSINCDIR=$(UNIXINC)
+SYSCALL_DEPS_OS=$(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) sysnr.inc setsysnr.inc $(BSDPROCINC)/syscallh.inc
 SYSTEMUNIT=system
 LINUXUNIT=
 PRT0=prt0
@@ -912,10 +915,10 @@ CPU_UNITS=$(X86UNIT) $(PORTSUNIT) cpu $(MMXUNIT)
 endif
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils $(SORTBASEUNIT) $(FGLUNIT) classes typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(ERRORSUNIT) types sysctl sysconst $(FPINTRESUNIT) $(DYNLIBSUNIT) cwstring $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) cthreads $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(INITCUNIT) $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(BASEUNIXUNIT) $(LINUXUNIT) $(UNIXTYPEUNIT) $(UNIXUTILUNIT) $(UNIXUNIT) $(CTYPESUNIT) $(BSDUNIT) $(CPU_UNITS) dos $(RTLCONSTSUNIT) sysutils $(SORTBASEUNIT) $(FGLUNIT) classes typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(ERRORSUNIT) types $(SYSCTLUNIT) $(SYSCONSTUNIT) $(FPINTRESUNIT) $(DYNLIBSUNIT) cwstring $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) $(CTHREADSUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils $(SORTBASEUNIT) $(FGLUNIT) classes typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(ERRORSUNIT) types sysctl sysconst $(FPINTRESUNIT) $(DYNLIBSUNIT) cwstring $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) cthreads $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(INITCUNIT) $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(SYSCALLUNIT) $(BASEUNIXUNIT) $(LINUXUNIT) $(UNIXTYPEUNIT) $(UNIXUTILUNIT) $(UNIXUNIT) $(CTYPESUNIT) $(BSDUNIT) $(CPU_UNITS) dos $(RTLCONSTSUNIT) sysutils $(SORTBASEUNIT) $(FGLUNIT) classes typinfo $(MATHUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(ERRORSUNIT) types $(SYSCTLUNIT) $(SYSCONSTUNIT) $(FPINTRESUNIT) $(DYNLIBSUNIT) cwstring $(CMEMUNIT) $(DLUNIT) $(TERMIOUNIT) $(CTHREADSUNIT) $(UNIXCPUNIT) $(FPWIDESTRINGUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-openbsd)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -930,10 +933,10 @@ ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 ifeq ($(CPU_OS_TARGET),i386-openbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y y
 ifeq ($(CPU_OS_TARGET),i386-openbsd)
@@ -2218,8 +2221,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2248,6 +2255,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2396,8 +2406,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2441,8 +2454,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2504,13 +2520,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2533,8 +2549,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2666,8 +2685,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2687,7 +2709,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2704,6 +2726,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2753,6 +2780,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2910,38 +2940,20 @@ si_g$(PPUEXT) : si_g.pp si_intf.inc si_impl.inc $(ARCH)/openbsd_ident.inc $(ARCH
 	$(COMPILER) $<
 $(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp sysconst.inc systypes.inc syscalls.inc $(SYSDEPS)
 	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
-unixtype$(PPUEXT): $(UNIXINC)/unixtype.pp $(UNIXINC)/ctypes.inc ptypes.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-baseunix$(PPUEXT) : errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
-  signal.inc $(UNIXINC)/bunxh.inc \
-  $(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
-  $(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) -Fu../unix -Fu../bsd ../unix/baseunix.pp
-unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 unxconst.inc $(UNIXINC)/timezone.inc \
-		 unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
 dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+	       $(UNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(UNIXINC)/dos.pp
 sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) unix$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) sysconst$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
 classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
 		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp unixtype$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
 	$(COMPILER) $<
 ifneq ($(findstring $(ARCH),x86_64 i386),)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
@@ -2950,17 +2962,3 @@ else
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
 endif
-bsd$(PPUEXT) : $(BSDINC)/bsd.pas initc$(PPUEXT) unix$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-syscall$(PPUEXT) : $(UNIXINC)/syscall.pp baseunix$(PPUEXT)
-	$(COMPILER) $<
-sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT) unixtype$(PPUEXT)
-	$(COMPILER) -Fu$(UNIXINC) -Fu$(BSDINC) $(BSDINC)/sysctl.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp
-	$(COMPILER) $<
-rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp
-	$(COMPILER) $(OBJPASDIR)/rtlconst.pp

+ 35 - 8
rtl/os2/Makefile

@@ -902,7 +902,7 @@ override FPCOPT+=-Ur
 endif
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) ctypes objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(PORTSUNIT) $(OS2DEFUNIT) $(DOSCALLSUNIT) $(DOSCALL2UNIT) $(KBDCALLSUNIT) $(MOUCALLSUNIT) $(VIOCALLSUNIT) $(SO32DLLUNIT) $(PMBITMAPUNIT) $(PMWINUNIT) $(PMGPIUNIT) $(PMSTDDLGUNIT) $(PMHELPUNIT) $(PMDEVUNIT) $(PMSPLUNIT) $(PMSHLUNIT) $(PMWPUNIT) $(PMWSOCKUNIT) $(PMBIDI) $(DOSUNIT) $(SUSITILSUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT) $(TYPINFOUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CPUNIT) $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(DYNLIBSUNIT) $(TYPESUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(FPWIDESTRINGUNIT) $(CHARACTERUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SPFU128UNIT)       $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(CTYPESUNIT) objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(PORTSUNIT) $(OS2DEFUNIT) $(DOSCALLSUNIT) $(DOSCALL2UNIT) $(KBDCALLSUNIT) $(MOUCALLSUNIT) $(VIOCALLSUNIT) $(SO32DLLUNIT) $(PMBITMAPUNIT) $(PMWINUNIT) $(PMGPIUNIT) $(PMSTDDLGUNIT) $(PMHELPUNIT) $(PMDEVUNIT) $(PMSPLUNIT) $(PMSHLUNIT) $(PMWPUNIT) $(PMWSOCKUNIT) $(PMBIDI) $(DOSUNIT) $(SUSITILSUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT) $(TYPINFOUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CPUNIT) $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(DYNLIBSUNIT) $(TYPESUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(FPWIDESTRINGUNIT) $(CHARACTERUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SPFU128UNIT)       $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-os2)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -2190,8 +2190,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2220,6 +2224,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2368,8 +2375,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2413,8 +2423,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2476,13 +2489,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2505,8 +2518,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2638,8 +2654,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2659,7 +2678,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2676,6 +2695,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2725,6 +2749,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 36 - 13
rtl/palmos/Makefile

@@ -893,10 +893,10 @@ override FPCOPT+=-Ur
 endif
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) si_prc $(UUCHARUNIT) objpas $(ISO7185UNIT) $(STRINGSUNIT) ctypes $(CHARSETUNIT) $(CPALLUNIT) sysconst systraps pilot
+override TARGET_UNITS+=$(SYSTEMUNIT) si_prc $(UUCHARUNIT) objpas $(ISO7185UNIT) $(STRINGSUNIT) $(CTYPESUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(SYSCONSTUNIT) systraps pilot
 endif
 ifeq ($(CPU_OS_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) si_prc $(UUCHARUNIT) objpas $(ISO7185UNIT) $(STRINGSUNIT) ctypes $(CHARSETUNIT) $(CPALLUNIT) sysconst systraps pilot
+override TARGET_UNITS+=$(SYSTEMUNIT) si_prc $(UUCHARUNIT) objpas $(ISO7185UNIT) $(STRINGSUNIT) $(CTYPESUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(SYSCONSTUNIT) systraps pilot
 endif
 ifeq ($(CPU_OS_TARGET),m68k-palmos)
 override TARGET_IMPLICITUNITS+=$(CP_UNITS)
@@ -2193,8 +2193,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2223,6 +2227,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2371,8 +2378,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2416,8 +2426,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2479,13 +2492,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2508,8 +2521,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2641,8 +2657,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2662,7 +2681,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2679,6 +2698,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2728,6 +2752,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2881,10 +2908,6 @@ $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
 si_prc$(PPUEXT): si_prc.pp palmos.inc $(SYSTEMUNIT)$(PPUEXT)
 types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
 systraps$(PPUEXT) : systraps.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) systraps.pp
 pilot$(PPUEXT) : pilot.pp $(SYSTEMUNIT)$(PPUEXT) systraps$(PPUEXT)

+ 36 - 9
rtl/sinclairql/Makefile

@@ -897,13 +897,13 @@ ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(OBJPASUNIT) $(ISO7185UNIT) buildrtl $(CPALLUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
-override TARGET_IMPLICITUNITS+=si_prc ctypes rtlconsts $(STRINGSUNIT) $(SORTBASEUNIT) $(CHARSETUNIT) $(FPWIDESTRINGUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
+override TARGET_IMPLICITUNITS+=si_prc $(CTYPESUNIT) $(RTLCONSTSUNIT) $(STRINGSUNIT) $(SORTBASEUNIT) $(CHARSETUNIT) $(FPWIDESTRINGUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
-override TARGET_RSTS+=$(MATHUNIT) rtlconsts typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) $(RTLCONSTSUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
@@ -2182,8 +2182,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2212,6 +2216,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2360,8 +2367,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2405,8 +2415,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2468,13 +2481,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2497,8 +2510,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2630,8 +2646,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2651,7 +2670,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2668,6 +2687,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2717,6 +2741,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 46 - 41
rtl/solaris/Makefile

@@ -906,13 +906,13 @@ endif
 override FPCOPT+=-dFPC_USE_LIBC
 OBJPASDIR=$(RTL)/objpas
 ifeq ($(CPU_OS_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) baseunix unixutil $(UNIXCPUNIT) $(TERMIOUNIT) unix initc $(CMEMUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types sysconst $(CHARACTERUNIT) rtlconsts cthreads dos $(FPWIDESTRINGUNIT) cwstring $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(UNIXCPUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(INITCUNIT) $(CMEMUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types $(SYSCONSTUNIT) $(CHARACTERUNIT) $(RTLCONSTSUNIT) $(CTHREADSUNIT) dos $(FPWIDESTRINGUNIT) cwstring $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) baseunix unixutil $(UNIXCPUNIT) $(TERMIOUNIT) unix initc $(CMEMUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types sysconst $(CHARACTERUNIT) rtlconsts cthreads dos $(FPWIDESTRINGUNIT) cwstring $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(UNIXCPUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(INITCUNIT) $(CMEMUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types $(SYSCONSTUNIT) $(CHARACTERUNIT) $(RTLCONSTSUNIT) $(CTHREADSUNIT) dos $(FPWIDESTRINGUNIT) cwstring $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) unixtype ctypes $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) baseunix unixutil $(UNIXCPUNIT) $(TERMIOUNIT) unix initc $(CMEMUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types sysconst $(CHARACTERUNIT) rtlconsts cthreads dos $(FPWIDESTRINGUNIT) cwstring $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) $(STRINGSUNIT) $(OBJPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(MACPASUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) $(UNIXCPUNIT) $(TERMIOUNIT) $(UNIXUNIT) $(INITCUNIT) $(CMEMUNIT) sysutils typinfo $(MATHUNIT) $(SORTBASEUNIT) $(FGLUNIT) classes $(CHARSETUNIT) $(CPALLUNIT) $(GETOPTSUNIT) $(ERRORSUNIT) $(DLUNIT) $(DYNLIBSUNIT) types $(SYSCONSTUNIT) $(CHARACTERUNIT) $(RTLCONSTSUNIT) $(CTHREADSUNIT) dos $(FPWIDESTRINGUNIT) cwstring $(FPINTRESUNIT) $(CPU_UNITS) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-solaris)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -924,13 +924,13 @@ ifeq ($(CPU_OS_TARGET),x86_64-solaris)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-solaris)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),sparc-solaris)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-solaris)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst rtlconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT) $(RTLCONSTSUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-solaris)
@@ -2194,8 +2194,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2224,6 +2228,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2372,8 +2379,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2417,8 +2427,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2480,13 +2493,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2509,8 +2522,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2642,8 +2658,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2663,7 +2682,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2680,6 +2699,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2729,6 +2753,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2876,37 +2903,20 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
 	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp
-baseunix$(PPUEXT) : unixtype$(PPUEXT) errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
-  signal.inc $(UNIXINC)/bunxh.inc \
-  ostypes.inc osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/baseunix.pp
-unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unixtype.pp
-unix$(PPUEXT) : unixtype$(PPUEXT) baseunix$(PPUEXT) unixutil$(PPUEXT) strings$(PPUEXT) $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-		 unxconst.inc $(UNIXINC)/timezone.inc \
-		 unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unix.pp
-unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/unixutil.pp
-dos$(PPUEXT) : strings$(PPUEXT) unix$(PPUEXT) $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+dos$(PPUEXT) : strings$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
+	       $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(UNIXINC)/dos.pp
 sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) unix$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) sysconst$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+		    $(OBJPASUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
 classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) types$(PPUEXT) \
 		   $(SYSTEMUNIT)$(PPUEXT) $(FGLUNIT)$(PPUEXT) sortbase$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp $(OBJPASUNIT)$(PPUEXT) sysutils$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(OBJPASUNIT)$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(OBJPASUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
 ifneq ($(findstring $(ARCH),x86_64 i386),)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) $(OBJPASUNIT)$(PPUEXT)
 	$(COMPILER) $(PROCINC)/cpu.pp
@@ -2914,10 +2924,5 @@ else
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) $(OBJPASUNIT)$(PPUEXT)
 	$(COMPILER) $(PROCINC)/cpu.pp
 endif
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp sysutils$(PPUEXT) baseunix$(PPUEXT) unixtype$(PPUEXT) unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/cthreads.pp
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT)
 	$(COMPILER) $(UNIXINC)/cwstring.pp
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT)
-	$(COMPILER) $(INC)/ctypes.pp
-initc$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT)

+ 34 - 7
rtl/symbian/Makefile

@@ -2173,8 +2173,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2203,6 +2207,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2351,8 +2358,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2396,8 +2406,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2459,13 +2472,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2488,8 +2501,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2621,8 +2637,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2642,7 +2661,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2659,6 +2678,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2708,6 +2732,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/wasi/Makefile

@@ -2156,8 +2156,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2186,6 +2190,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2334,8 +2341,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2379,8 +2389,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2442,13 +2455,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2471,8 +2484,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2604,8 +2620,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2625,7 +2644,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2642,6 +2661,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2691,6 +2715,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 35 - 9
rtl/watcom/Makefile

@@ -910,7 +910,7 @@ ifeq ($(CPU_OS_TARGET),i386-watcom)
 override TARGET_LOADERS+=prt0
 endif
 ifeq ($(CPU_OS_TARGET),i386-watcom)
-override TARGET_RSTS+=$(MATHUNIT) $(TYPINFOUNIT) pmhelp $(CLASSESUNIT) $(SYSCONSTUNIT) $(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) $(TYPINFOUNIT) pmhelp $(CLASSESUNIT) $(SYSCONSTUNIT) $(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-watcom)
@@ -2189,8 +2189,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2219,6 +2223,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2367,8 +2374,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2412,8 +2422,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2475,13 +2488,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2504,8 +2517,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2637,8 +2653,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2658,7 +2677,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2675,6 +2694,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2724,6 +2748,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2875,7 +2902,6 @@ prt0$(OEXT) : prt0.as
 watcom$(PPUEXT) : watcom.pp system$(PPUEXT)
 dpmiexcp$(PPUEXT) : dpmiexcp.pp exceptn$(OEXT) system$(PPUEXT)
 	$(COMPILER) -Sg dpmiexcp.pp
-initc$(PPUEXT) : initc.pp system$(PPUEXT)
 profile$(PPUEXT) : profile.pp dpmiexcp$(PPUEXT) watcom$(PPUEXT)
 dxeload$(PPUEXT) : dxeload.pp system$(PPUEXT)
 emu387$(PPUEXT) : emu387.pp fpu$(OEXT) strings$(PPUEXT) dxeload$(PPUEXT) \

+ 34 - 7
rtl/wii/Makefile

@@ -2149,8 +2149,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2179,6 +2183,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2327,8 +2334,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2372,8 +2382,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2435,13 +2448,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2464,8 +2477,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2597,8 +2613,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2618,7 +2637,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2635,6 +2654,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2684,6 +2708,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 38 - 20
rtl/win16/Makefile

@@ -896,7 +896,7 @@ ifdef NO_EXCEPTIONS_IN_SYSTEM
 override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
 endif
 ifeq ($(CPU_OS_TARGET),i8086-win16)
-override TARGET_UNITS+=system $(UUCHARUNIT) $(OBJPASUNIT) $(STRINGSUNIT) $(ISO7185UNIT) $(EXTPASUNIT) dos wintypes winprocs win31 $(PORTSUNIT) $(DYNLIBSUNIT) $(SORTBASEUNIT) sysconst rtlconsts sysutils $(MATHUNIT) types typinfo $(FGLUNIT) classes $(CHARSETUNIT) cpu $(GETOPTSUNIT) $(CPALLUNIT) $(UNICODEDATAUNIT) $(CHARACTERUNIT) ctypes
+override TARGET_UNITS+=system $(UUCHARUNIT) $(OBJPASUNIT) $(STRINGSUNIT) $(ISO7185UNIT) $(EXTPASUNIT) dos wintypes winprocs win31 $(PORTSUNIT) $(DYNLIBSUNIT) $(SORTBASEUNIT) $(SYSCONSTUNIT) $(RTLCONSTSUNIT) sysutils $(MATHUNIT) types typinfo $(FGLUNIT) classes $(CHARSETUNIT) cpu $(GETOPTSUNIT) $(CPALLUNIT) $(UNICODEDATAUNIT) $(CHARACTERUNIT) $(CTYPESUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i8086-win16)
 override TARGET_IMPLICITUNITS+=$(CP_UNITS)
@@ -2181,8 +2181,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2211,6 +2215,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2359,8 +2366,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2404,8 +2414,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2467,13 +2480,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2496,8 +2509,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2629,8 +2645,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2650,7 +2669,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2667,6 +2686,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2716,6 +2740,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)
@@ -2895,31 +2922,22 @@ dos$(PPUEXT) : dos.pp registers.inc \
 	$(COMPILER) dos.pp
 	$(EXECPPAS)
 sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT) \
+		    $(OBJPASUNIT)$(PPUEXT) dos$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 		    wintypes$(PPUEXT) winprocs$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
 	$(EXECPPAS)
 classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) \
+		   sysutils$(PPUEXT) typinfo$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
 		   types$(PPUEXT) $(FGLUNIT)$(PPUEXT) $(OBJPASUNIT)$(PPUEXT) \
 		   winprocs$(PPUEXT) wintypes$(PPUEXT) sortbase$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
 	$(EXECPPAS)
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp sysutils$(PPUEXT) $(OBJPASUNIT)$(PPUEXT) rtlconsts$(PPUEXT) system$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp sysutils$(PPUEXT) $(OBJPASUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) -Sg -Fi$(OBJPASDIR) $(OBJPASDIR)/typinfo.pp
 	$(EXECPPAS)
 types$(PPUEXT) : $(OBJPASDIR)/types.pp $(MATHUNIT)$(PPUEXT) wintypes$(PPUEXT) $(OBJPASUNIT)$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) $(OBJPASDIR)/types.pp
 	$(EXECPPAS)
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp $(OBJPASUNIT)$(PPUEXT) system$(PPUEXT)
-	$(COMPILER) $(OBJPASDIR)/sysconst.pp
-	$(EXECPPAS)
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc $(OBJPASUNIT)$(PPUEXT) system$(PPUEXT)
-	$(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/rtlconsts.pp
-	$(EXECPPAS)
 cpu$(PPUEXT) : $(PROCINC)/cpu.pp sysutils$(PPUEXT) system$(PPUEXT)
 	$(COMPILER) $(PROCINC)/cpu.pp
 	$(EXECPPAS)
-ctypes$(PPUEXT) : $(INC)/ctypes.pp system$(PPUEXT)
-	$(COMPILER) $(INC)/ctypes.pp $(REDIR)
-	$(EXECPPAS)

+ 36 - 9
rtl/win32/Makefile

@@ -909,13 +909,13 @@ ifeq ($(CPU_OS_TARGET),i386-win32)
 override TARGET_UNITS+=system $(UUCHARUNIT) $(OBJPASUNIT) $(MACPASUNIT) $(ISO7185UNIT) $(WINDOWSUNIT) $(SYSUTILSUNIT) buildrtl $(CHARSETUNIT) $(CPALLUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-win32)
-override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof initc $(EXTPASUNIT) $(HEAPTRCUNIT) $(WINSYSUTUNIT) $(CTYPESUNIT) $(STRINGSUNIT) $(DOSUNIT) $(MESSAGESUNIT) $(CMEMUNIT) $(DYNLIBSUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(MATHUNIT) $(TYPESUNIT) $(TYPINFOUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(GETOPTSUNIT) $(CHARACTERUNIT) $(FPWIDESTRINGUNIT) $(SHAREMEMUNIT) $(EXEINFOUNIT) $(FPINTRESUNIT) $(WINDIRSUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT) $(CP_UNITS) $(UNICODEDATAUNIT) $(CPU_UNITS)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof $(INITCUNIT) $(EXTPASUNIT) $(HEAPTRCUNIT) $(WINSYSUTUNIT) $(CTYPESUNIT) $(STRINGSUNIT) $(DOSUNIT) $(MESSAGESUNIT) $(CMEMUNIT) $(DYNLIBSUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(MATHUNIT) $(TYPESUNIT) $(TYPINFOUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(GETOPTSUNIT) $(CHARACTERUNIT) $(FPWIDESTRINGUNIT) $(SHAREMEMUNIT) $(EXEINFOUNIT) $(FPINTRESUNIT) $(WINDIRSUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT) $(CP_UNITS) $(UNICODEDATAUNIT) $(CPU_UNITS)
 endif
 ifeq ($(CPU_OS_TARGET),i386-win32)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 ifeq ($(CPU_OS_TARGET),i386-win32)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_BUILDUNIT=buildrtl
 override INSTALL_FPCPACKAGE=y y
@@ -2195,8 +2195,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2225,6 +2229,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2373,8 +2380,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2418,8 +2428,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2481,13 +2494,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2510,8 +2523,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2643,8 +2659,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2664,7 +2683,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2681,6 +2700,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2730,6 +2754,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 36 - 9
rtl/win64/Makefile

@@ -927,10 +927,10 @@ ifeq ($(CPU_OS_TARGET),aarch64-win64)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 ifeq ($(CPU_OS_TARGET),x86_64-win64)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 ifeq ($(CPU_OS_TARGET),aarch64-win64)
-override TARGET_RSTS+=$(MATHUNIT) typinfo classes sysconst
+override TARGET_RSTS+=$(MATHUNIT) typinfo classes $(SYSCONSTUNIT)
 endif
 override INSTALL_BUILDUNIT=buildrtl
 override INSTALL_FPCPACKAGE=y y
@@ -2216,8 +2216,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2246,6 +2250,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2394,8 +2401,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2439,8 +2449,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2502,13 +2515,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2531,8 +2544,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2664,8 +2680,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2685,7 +2704,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2702,6 +2721,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2751,6 +2775,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 36 - 9
rtl/wince/Makefile

@@ -909,10 +909,10 @@ SYSUTILS_OPT=-Fi../win
 SYSUTILS_DEPS_OS=$(WINDOWSUNIT)$(PPUEXT) 
 FPWIDESTRING_DEPS_OS=$(WINDOWSUNIT)$(PPUEXT)
 ifeq ($(CPU_OS_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(FPINTRESUNIT) ctypes objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(CPU_UNITS)  $(HEAPTRCUNIT) $(LINEINFOUNIT) $(WINDOWSUNIT) $(MESSAGESUNIT) $(DYNLIBSUNIT) $(DOSUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(SYSUTILSUNIT) $(TYPINFOUNIT) $(TYPESUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT)   $(FPWIDESTRINGUNIT)  $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(CMEMUNIT)  $(SHARMEMUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(FPINTRESUNIT) $(CTYPESUNIT) objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(CPU_UNITS)  $(HEAPTRCUNIT) $(LINEINFOUNIT) $(WINDOWSUNIT) $(MESSAGESUNIT) $(DYNLIBSUNIT) $(DOSUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(SYSUTILSUNIT) $(TYPINFOUNIT) $(TYPESUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT)   $(FPWIDESTRINGUNIT)  $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(CMEMUNIT)  $(SHARMEMUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(FPINTRESUNIT) ctypes objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(CPU_UNITS)  $(HEAPTRCUNIT) $(LINEINFOUNIT) $(WINDOWSUNIT) $(MESSAGESUNIT) $(DYNLIBSUNIT) $(DOSUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(SYSUTILSUNIT) $(TYPINFOUNIT) $(TYPESUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT)   $(FPWIDESTRINGUNIT)  $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(CMEMUNIT)  $(SHARMEMUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(UUCHARUNIT) $(FPINTRESUNIT) $(CTYPESUNIT) objpas $(MACPASUNIT) $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(CPU_UNITS)  $(HEAPTRCUNIT) $(LINEINFOUNIT) $(WINDOWSUNIT) $(MESSAGESUNIT) $(DYNLIBSUNIT) $(DOSUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(SYSUTILSUNIT) $(TYPINFOUNIT) $(TYPESUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT)   $(FPWIDESTRINGUNIT)  $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(CMEMUNIT)  $(SHARMEMUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
 endif
 ifeq ($(CPU_OS_TARGET),i386-wince)
 override TARGET_IMPLICITUNITS+=$(EXEINFOUNIT) $(CP_UNITS) $(UNICODEDATAUNIT)
@@ -2176,8 +2176,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2206,6 +2210,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2354,8 +2361,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2399,8 +2409,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2462,13 +2475,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2491,8 +2504,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2624,8 +2640,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2645,7 +2664,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2662,6 +2681,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2711,6 +2735,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)

+ 34 - 7
rtl/zxspectrum/Makefile

@@ -2148,8 +2148,12 @@ ifndef DYNLIBSINCDIR
 DYNLIBSINCDIR=$(OSDIR)
 endif
 ifndef INITCDIR
+ifdef UNIXINC
+INITCDIR=$(UNIXINC)
+else
 INITCDIR=$(OSDIR)
 endif
+endif
 ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
@@ -2178,6 +2182,9 @@ endif
 ifndef TERMIODIR
 TERMIODIR=$(OSDIR)
 endif
+ifndef PTHREADINCDIR
+PTHREADINCDIR=$(OSDIR)
+endif
 ifndef NSWINDOWSDIR
 NSWINDOWSDIR=$(NSDIR)/windows
 endif
@@ -2326,8 +2333,11 @@ unixcp$(PPUEXT) : $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
 UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
 	$(COMPILER) $(UNIXCP_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  LINUX_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 LINUX_DEPS=$(OSDIR)/linux.pp \
-	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
 linux$(PPUEXT): $(LINUX_DEPS)
 	$(COMPILER) $<
@@ -2371,8 +2381,11 @@ msmouse$(PPUEXT) : $(MSMOUSE_DEPS)
 DOSApi.MSMouse$(PPUEXT) : $(NSOSDIR)/DOSApi.MSMouse.pp $(MSMOUSE_DEPS)
 	$(COMPILER) $(MSMOUSE_OPTS) $<
 SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
-		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSUTILS_UNIX_DEPS+= $(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
 	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
@@ -2434,13 +2447,13 @@ sysconst$(PPUEXT) : $(SYSCONST_DEPS)
 System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
 ifdef FPC_DOTTEDUNITS
-RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
 	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
 else
-RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp \
+RTLCONSTS_DEPS=$(OBJPASDIR)/$(RTLCONSTSUNIT).pp $(OBJPASDIR)/rtlconst.inc \
 	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	      $(RTLCONSTS_DEPS_OS) $(RTLCONSTS_DEPS_CPU)
 $(RTLCONSTSUNIT)$(PPUEXT) : $(RTLCONSTS_DEPS)
@@ -2463,8 +2476,11 @@ mmx$(PPUEXT) : $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
 System.CPU.MMX$(PPUEXT) : $(NSINC)/System.CPU.MMX.pp $(MMX_DEPS)
 	$(COMPILER) $(MMX_OPT) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  X86_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 X86_DEPS = $(UNIXINC)/x86.pp \
-	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
 	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
 x86$(PPUEXT) : $(X86_DEPS)
 	$(COMPILER) $(X86_OPT)  $<
@@ -2596,8 +2612,11 @@ unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
 	$(COMPILER) $(UNIXUTIL_OPT) $<
 UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
 	$(COMPILER) $(UNIXUTIL_OPT) $<
+ifndef PTYPESINCDIR
+  PTYPESINCDIR=$(OSDIR)
+endif
 UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
-	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(SYSTEMUNIT)$(PPUEXT) $(PTYPESINCDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
 	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
 unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
 	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
@@ -2617,7 +2636,7 @@ errors$(PPUEXT) : $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
 UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
 	$(COMPILER) $(ERRORS_OPT) $<
-CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp $(PTHREADINCDIR)/pthread.inc \
 	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
 	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
 	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
@@ -2634,6 +2653,11 @@ cwstring$(PPUEXT) : $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
 UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
 	$(COMPILER) $(CWSTRING_OPT) $<
+ifneq ($(UNIXINC),)
+ifneq ($(OS_TARGET),macosclassic)
+  CTYPES_DEPS_OS+=$(UNIXTYPEUNIT)$(PPUEXT)
+endif
+endif
 CTYPES_DEPS=$(INC)/ctypes.pp \
 	    $(SYSTEMUNIT)$(PPUEXT) \
 	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
@@ -2683,6 +2707,9 @@ messages$(PPUEXT): $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) $<
 WinApi.Messages$(PPUEXT): $(NSWINDOWSDIR)/WinApi.Messages.pp $(MESSAGES_DEPS)
 	$(COMPILER) -Fi$(WINMESSAGESINCDIR) -Fi$(WINMMESSAGESDIR) $<
+ifeq ($(filter -dFPC_USE_LIBC,$(FPCOPT)),)
+  SYSCTL_DEPS_OS+=$(SYSCALLUNIT)$(PPUEXT)
+endif
 SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
 	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
 sysctl$(PPUEXT) : $(SYSCTL_DEPS)