Browse Source

Regenerated Makefile's after change in inc/Makefile.rtl

Pierre Muller 2 years ago
parent
commit
84c8a68492

+ 155 - 22
rtl/aix/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2178,6 +2178,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2662,6 +2668,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/amiga/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2210,6 +2210,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2694,6 +2700,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/android/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2317,6 +2317,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2801,6 +2807,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/aros/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2225,6 +2225,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2709,6 +2715,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/atari/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2180,6 +2180,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2664,6 +2670,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/beos/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2186,6 +2186,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2670,6 +2676,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/darwin/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2306,6 +2306,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2790,6 +2796,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 155 - 22
rtl/dragonfly/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2187,6 +2187,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2671,6 +2677,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/embedded/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2544,6 +2544,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -3028,6 +3034,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 147 - 52
rtl/emx/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -877,7 +877,7 @@ CPUNITS=$(addprefix $(NS_CPUNITS),$(CPUNITSBASE))
 RTL=..
 INC=$(RTL)/inc
 PROCINC=$(RTL)/$(CPU_TARGET)
-OS2INC=$(RTL)/os2
+OS2DIR=$(RTL)/os2
 DOS_DEPS_OS=doscalls$(PPUEXT) 
 SYSUTILS_DEPS_OS=dos$(PPUEXT)
 DYNLIBS_DEPS_OD=doscalls($PPUEXT)
@@ -893,7 +893,7 @@ SYSTEMUNITEXT=pas
 DOSUNITEXT=pas
 PORTSUNITEXT=pas
 ifeq ($(CPU_OS_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(PORTSUNIT) os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock 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) uuchar ctypes objpas macpas $(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) $(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) $(UNICODEDATAUNIT)
@@ -902,7 +902,7 @@ ifeq ($(CPU_OS_TARGET),i386-emx)
 override TARGET_LOADERS+=prt0 prt1
 endif
 ifeq ($(CPU_OS_TARGET),i386-emx)
-override TARGET_RSTS+=$(MATHUNIT) $(TYPINFOUNIT) pmhelp $(CLASSESUNIT) $(SYSCONSTUNIT)
+override TARGET_RSTS+=$(MATHUNIT) $(TYPINFOUNIT) $(PMHELPUNIT) $(CLASSESUNIT) $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-emx)
@@ -2187,6 +2187,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2671,49 +2677,138 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
-.NOTPARALLEL:
-include $(INC)/makefile.inc
-SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
-include $(PROCINC)/makefile.cpu
-SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
-SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
-%$(OEXT) : %.as
-	$(AS) -o $(UNITTARGETDIRPREFIX)$*$(OEXT) $*.as
-doscalls$(PPUEXT) : $(OS2INC)/doscalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
 	$(COMPILER) $<
-viocalls$(PPUEXT) : $(OS2INC)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
 	$(COMPILER) $<
-so32dll$(PPUEXT) : $(OS2INC)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
 	$(COMPILER) $<
-kbdcalls$(PPUEXT) : $(OS2INC)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
 	$(COMPILER) $<
-moucalls$(PPUEXT) : $(OS2INC)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
 	$(COMPILER) $<
-moncalls$(PPUEXT) : $(OS2INC)/moncalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
 	$(COMPILER) $<
-os2def$(PPUEXT) : $(OS2INC)/os2def.pas $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
 	$(COMPILER) $<
-doscall2$(PPUEXT) : $(OS2INC)/doscall2.pas doscalls$(PPUEXT) os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
 	$(COMPILER) $<
-pmwin$(PPUEXT) : $(OS2INC)/pmwin.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
 	$(COMPILER) $<
-pmbitmap$(PPUEXT) : $(OS2INC)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
 	$(COMPILER) $<
-pmgpi$(PPUEXT) : $(OS2INC)/pmgpi.pas pmbitmap$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
 	$(COMPILER) $<
-pmstddlg$(PPUEXT) : $(OS2INC)/pmstddlg.pas os2def$(PPUEXT) doscalls$(PPUEXT) pmwin$(PPUEXT) pmgpi$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
 	$(COMPILER) $<
-pmhelp$(PPUEXT) : $(OS2INC)/pmhelp.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
 	$(COMPILER) $<
-pmdev$(PPUEXT) : $(OS2INC)/pmdev.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
 	$(COMPILER) $<
-pmspl$(PPUEXT) : $(OS2INC)/pmspl.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
 	$(COMPILER) $<
-pmshl$(PPUEXT) : $(OS2INC)/pmshl.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
 	$(COMPILER) $<
-pmwp$(PPUEXT) : $(OS2INC)/pmwp.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
 	$(COMPILER) $<
-pmwsock$(PPUEXT) : $(OS2INC)/pmwsock.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
 	$(COMPILER) $<
-pmbidi$(PPUEXT) : $(OS2INC)/pmbidi.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
 	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+.NOTPARALLEL:
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+include $(PROCINC)/makefile.cpu
+SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+%$(OEXT) : %.as
+	$(AS) -o $(UNITTARGETDIRPREFIX)$*$(OEXT) $*.as

+ 155 - 22
rtl/freebsd/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2228,6 +2228,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2712,6 +2718,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/freertos/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2375,6 +2375,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2859,6 +2865,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 155 - 22
rtl/gba/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2179,6 +2179,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2663,6 +2669,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/go32v2/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2185,6 +2185,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2669,6 +2675,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/haiku/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2219,6 +2219,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2703,6 +2709,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/java/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2149,6 +2149,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2633,6 +2639,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 .PHONY: installclasses
 installclasses:

+ 155 - 22
rtl/linux/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2779,6 +2779,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -3263,6 +3269,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 155 - 22
rtl/macos/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2168,6 +2168,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2652,6 +2658,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/morphos/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2152,6 +2152,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2636,6 +2642,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/msdos/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2179,6 +2179,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2663,6 +2669,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 155 - 22
rtl/msxdos/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2149,6 +2149,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2633,6 +2639,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 155 - 22
rtl/nativent/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2156,6 +2156,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2640,6 +2646,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 SYSTEMPPU=$(addsuffix $(PPUEXT),system)
 include $(INC)/makefile.inc

+ 155 - 22
rtl/nds/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2179,6 +2179,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2663,6 +2669,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/netbsd/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2284,6 +2284,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2768,6 +2774,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/netware/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2191,6 +2191,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2675,6 +2681,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
 include $(INC)/makefile.inc

+ 155 - 22
rtl/netwlibc/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2181,6 +2181,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2665,6 +2671,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
 include $(INC)/makefile.inc

+ 155 - 22
rtl/openbsd/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2217,6 +2217,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2701,6 +2707,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 161 - 46
rtl/os2/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -882,7 +882,7 @@ SYSTEMUNITEXT=pas
 DOSUNITEXT=pas
 PORTSUNITEXT=pas
 UNITPREFIX=rtl
-SYSUTILS_DEPS_OS=doscalls$(PPUEXT)
+SYSUTILS_DEPS_OS=$(DOSCALLSUNIT)$(PPUEXT)
 SYSTEMUNIT=system
 RTLCONSTSUNIT=rtlconst
 ifdef RELEASE
@@ -891,7 +891,7 @@ endif
 OBJPASDIR=$(RTL)/objpas
 GRAPHDIR=$(INC)/graph
 ifeq ($(CPU_OS_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) $(PORTSUNIT) os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi $(DOSUNIT) $(SUSITILSUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT) $(TYPINFOUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(CPUNIT) $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) $(DYNLIBSUNIT) $(TYPESUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) so32dll $(FPWIDESTRINGUNIT) $(CHARACTERUNIT) $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SPFU128UNIT)       $(UFLOAT128UNIT)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas $(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) $(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) $(UNICODEDATAUNIT)
@@ -900,7 +900,7 @@ ifeq ($(CPU_OS_TARGET),i386-os2)
 override TARGET_LOADERS+=prt0
 endif
 ifeq ($(CPU_OS_TARGET),i386-os2)
-override TARGET_RSTS+=$(MATHUNIT) $(TYPINFOUNIT) pmhelp $(CLASSESUNIT) $(SYSCONSTUNIT)
+override TARGET_RSTS+=$(MATHUNIT) $(TYPINFOUNIT) $(PMHELPUNIT) $(CLASSESUNIT) $(SYSCONSTUNIT)
 endif
 override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-os2)
@@ -2185,6 +2185,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2669,6 +2675,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
@@ -2677,24 +2810,6 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 %$(OEXT) : %.as
 	$(AS) -o $(UNITTARGETDIRPREFIX)$*$(OEXT) $*.as
-doscalls$(PPUEXT) : doscalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-kbdcalls$(PPUEXT) : kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT)
-moucalls$(PPUEXT) : moucalls.pas $(SYSTEMUNIT)$(PPUEXT)
-moncalls$(PPUEXT) : moncalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-os2def$(PPUEXT) : os2def.pas $(SYSTEMUNIT)$(PPUEXT)
-doscall2$(PPUEXT) : doscalls$(PPUEXT) os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmwin$(PPUEXT) : pmwin.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmbitmap$(PPUEXT) : pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT)
-pmgpi$(PPUEXT) : pmgpi.pas pmbitmap$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmstddlg$(PPUEXT) : pmstddlg.pas os2def$(PPUEXT) doscalls$(PPUEXT) pmwin$(PPUEXT) pmgpi$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmhelp$(PPUEXT) : pmhelp.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmdev$(PPUEXT) : pmdev.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmspl$(PPUEXT) : pmspl.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmshl$(PPUEXT) : pmshl.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmwp$(PPUEXT) : pmwp.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-pmwsock$(PPUEXT) : pmwsock.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-so32dll$(PPUEXT) : so32dll.pas $(SYSTEMUNIT)$(PPUEXT)
-pmbidi$(PPUEXT) : pmbidi.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-dynlibs$(PPUEXT) : $(INC)/dynlibs.pas doscalls$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-dos$(PPUEXT) : dos.pas $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-	       doscalls$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(DOSCALLSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+DOS_OS_DEPS = $(INC)/filerec.inc $(INC)/textrec.inc $(STRINGSUNIT)$(PPUEXT) \
+	       $(DOSCALLSUNIT)$(PPUEXT)

+ 155 - 22
rtl/palmos/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2192,6 +2192,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2676,6 +2682,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 SYSTEMPPU=syspalm.ppu
 include $(INC)/makefile.inc

+ 155 - 22
rtl/sinclairql/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2180,6 +2180,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2664,6 +2670,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/solaris/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2193,6 +2193,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2677,6 +2683,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/symbian/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2170,6 +2170,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2654,6 +2660,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 SYSTEMPPU=$(addsuffix $(PPUEXT),system)
 include $(INC)/makefile.inc

+ 155 - 22
rtl/wasi/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2154,6 +2154,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2638,6 +2644,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 155 - 22
rtl/watcom/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2186,6 +2186,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2670,6 +2676,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/wii/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2148,6 +2148,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2632,6 +2638,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/win16/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2179,6 +2179,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2663,6 +2669,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu

+ 155 - 22
rtl/win32/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2191,6 +2191,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2675,6 +2681,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 SYSTEMPPU=$(addsuffix $(PPUEXT),system)
 include $(INC)/makefile.inc

+ 155 - 22
rtl/win64/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2208,6 +2208,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2692,6 +2698,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 SYSTEMPPU=$(addsuffix $(PPUEXT),system)
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 155 - 22
rtl/wince/Makefile

@@ -442,8 +442,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -458,7 +458,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -478,7 +478,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -507,14 +507,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -525,20 +525,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -553,7 +553,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -582,7 +582,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -598,7 +598,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2171,6 +2171,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2655,6 +2661,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 .NOTPARALLEL:
 SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
 include $(INC)/makefile.inc

+ 155 - 22
rtl/zxspectrum/Makefile

@@ -443,8 +443,8 @@ CWSTRINGUNIT=UnixApi.CWString
 DDKUNIT=NTApi.Ddk
 DLUNIT=UnixApi.Dl
 DOSUNIT=TP.DOS
-DOSCALL2UNIT=OS2Api.Doscall2
-DOSCALLSUNIT=OS2Api.Doscalls
+DOSCALL2UNIT=OS2Api.doscall2
+DOSCALLSUNIT=OS2Api.doscalls
 DPMIEXCPUNIT=DOSApi.Dpmiexcp
 DXELOADUNIT=DOSApi.Dxeload
 DXETYPEUNIT=DOSApi.Dxetype
@@ -459,7 +459,7 @@ ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
 ESPIDF_40100UNIT=System.Espidf_40100
 ESPIDF_40200UNIT=System.Espidf_40200
 ESPIDF_40400UNIT=System.Espidf_40400
-EXEUNIT=OS2Api.Exe
+EXEUNIT=OS2Api.exe
 EXEINFOUNIT=System.Exeinfo
 EXTPASUNIT=extpas
 FE310G000UNIT=EmbeddedApi.Fe310g000
@@ -479,7 +479,7 @@ INITCUNIT=System.InitC
 INTRINSICSUNIT=System.Intrinsics
 ISO7185UNIT=iso7185
 JDK15UNIT=JavaApi.JDK15
-KBDCALLSUNIT=OS2Api.Kbdcalls
+KBDCALLSUNIT=OS2Api.kbdcalls
 LIBCUNIT=NetwareLibCApi.Libc
 LINEINFOUNIT=System.LineInfo
 LINUXUNIT=LinuxApi
@@ -508,14 +508,14 @@ MK22F51212UNIT=EmbeddedApi.Mk22f51212
 MK64F12UNIT=EmbeddedApi.Mk64f12
 MMIOUNIT=EmbeddedApi.Mmio
 MMXUNIT=System.CPU.MMX
-MONCALLSUNIT=OS2Api.Moncalls
-MOUCALLSUNIT=OS2Api.Moucalls
+MONCALLSUNIT=OS2Api.moncalls
+MOUCALLSUNIT=OS2Api.moucalls
 MSMOUSEUNIT=DOSApi.MSMouse
 MULTIBOOTUNIT=EmbeddedApi.Multiboot
 NDKUNIT=NTApi.NDK
 NDKUTILSUNIT=NTApi.NDKUtils
 NETWAREUNIT=NetwareApi.NetWare
-NEWEXEUNIT=OS2Api.Newexe
+NEWEXEUNIT=OS2Api.newexe
 NRF51UNIT=EmbeddedApi.Nrf51
 NRF52UNIT=EmbeddedApi.Nrf52
 NWCALLSUNIT=NetWareApi.Nwcalls
@@ -526,20 +526,20 @@ NWSERVUNIT=NetWareApi.Nwserv
 NWSNUTUNIT=NetWareApi.Nwsnut
 OBJCUNIT=objc
 OBJCBASEUNIT=objcbase
-OS2DEFUNIT=OS2Api.Os2def
+OS2DEFUNIT=OS2Api.os2def
 PAGEMEMUNIT=System.PageMem
 PILOTUNIT=PalmApi.Pilot
-PMBIDIUNIT=OS2Api.Pmbidi
-PMBITMAPUNIT=OS2Api.Pmbitmap
-PMDEVUNIT=OS2Api.Pmdev
-PMGPIUNIT=OS2Api.Pmgpi
-PMHELPUNIT=OS2Api.Pmhelp
-PMSHLUNIT=OS2Api.Pmshl
-PMSPLUNIT=OS2Api.Pmspl
-PMSTDDLGUNIT=OS2Api.Pmstddlg
-PMWINUNIT=OS2Api.Pmwin
-PMWPUNIT=OS2Api.Pmwp
-PMWSOCKUNIT=OS2Api.Pmwsock
+PMBIDIUNIT=OS2Api.pmbidi
+PMBITMAPUNIT=OS2Api.pmbitmap
+PMDEVUNIT=OS2Api.pmdev
+PMGPIUNIT=OS2Api.pmgpi
+PMHELPUNIT=OS2Api.pmhelp
+PMSHLUNIT=OS2Api.pmshl
+PMSPLUNIT=OS2Api.pmspl
+PMSTDDLGUNIT=OS2Api.pmstddlg
+PMWINUNIT=OS2Api.pmwin
+PMWPUNIT=OS2Api.pmwp
+PMWSOCKUNIT=OS2Api.pmwsock
 PORTSUNIT=System.Ports
 POSIXUNIT=QNXApi.Posix
 PROFILEUNIT=DOSApi.Profile
@@ -554,7 +554,7 @@ SFPU128UNIT=System.SoftFpu128
 SFPUX80UNIT=System.SoftFpuX80
 SHAREMEMUNIT=WinApi.ShareMem
 SIGNALSUNIT=WinApi.Signals
-SO32DLLUNIT=OS2Api.So32dll
+SO32DLLUNIT=OS2Api.so32dll
 SOFTFPUUNIT=System.SoftFPU
 SORTBASEUNIT=System.SortBase
 STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
@@ -583,7 +583,7 @@ SYSCALLUNIT=UnixApi.SysCall
 SYSCONSTUNIT=System.SysConst
 SYSCTLUNIT=BsdApi.SysCtl
 SYSEMXUNIT=DOSApi.Sysemx
-SYSOS2UNIT=OS2Api.Sysos2
+SYSOS2UNIT=OS2Api.sysos2
 SYSTRAPSUNIT=PalmApi.Systraps
 SYSUTILSUNIT=System.SysUtils
 TERMIOUNIT=UnixApi.TermIO
@@ -599,7 +599,7 @@ UNIXUNIT=UnixApi.Unix
 UNIXCPUNIT=UnixApi.CP
 UNIXTYPEUNIT=UnixApi.Types
 UNIXUTILUNIT=UnixApi.Utils
-VIOCALLSUNIT=OS2Api.Viocalls
+VIOCALLSUNIT=OS2Api.viocalls
 WASIAPIUNIT=WASIApi.WASIApi
 WASIUTILUNIT=WASIApi.WASIUtil
 WATCOMUNIT=WatcomApi.WatCom
@@ -2146,6 +2146,12 @@ ifndef DOSDIR
 DOSDIR=$(OSDIR)
 NSDOSDIR=$(NSDIR)/$(DOSDIR)
 endif
+ifndef OS2DIR
+OS2DIR=.
+endif
+ifndef NSOS2DIR
+NSOS2DIR=$(NSDIR)/os2
+endif
 ifndef SYSUTILSDIR
 SYSUTILSDIR=$(OSDIR)
 endif
@@ -2630,6 +2636,133 @@ bsd$(PPUEXT): $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
 BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
 	$(COMPILER) $(BSD_OPT) $<
+DOSCALLS_DEPS = $(OS2DIR)/doscalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALLS_DEPS_OS) $(DOSCALLS_DEPS_CPU)
+doscalls$(PPUEXT) : $(DOSCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.doscalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscalls.pas $(DOSCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+VIOCALLS_DEPS = $(OS2DIR)/viocalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(VIOCALLS_DEPS_OS) $(VIOCALLS_DEPS_CPU)
+viocalls$(PPUEXT) : $(VIOCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.viocalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.viocalls.pas $(VIOCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+SO32DLL_DEPS = $(OS2DIR)/so32dll.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(SO32DLL_DEPS_OS) $(SO32DLL_DEPS_CPU)
+so32dll$(PPUEXT) : $(SO32DLL_DEPS)
+	$(COMPILER) $<
+OS2Api.so32dll$(PPUEXT) : $(NSOS2DIR)/OS2Api.so32dll.pas $(SO32DLL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+KBDCALLS_DEPS = $(OS2DIR)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(KBDCALLS_DEPS_OS) $(KBDCALLS_DEPS_CPU)
+kbdcalls$(PPUEXT) : $(KBDCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.kbdcalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.kbdcalls.pas $(KBDCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MOUCALLS_DEPS = $(OS2DIR)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MOUCALLS_DEPS_OS) $(MOUCALLS_DEPS_CPU)
+moucalls$(PPUEXT) : $(MOUCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moucalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moucalls.pas $(MOUCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+MONCALLS_DEPS = $(OS2DIR)/moncalls.pas $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(MONCALLS_DEPS_OS) $(MONCALLS_DEPS_CPU)
+moncalls$(PPUEXT) : $(MONCALLS_DEPS)
+	$(COMPILER) $<
+OS2Api.moncalls$(PPUEXT) : $(NSOS2DIR)/OS2Api.moncall.pas $(MONCALLS_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+OS2DEF_DEPS = $(OS2DIR)/os2def.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OS2DEF_DEPS_OS) $(OS2DEF_DEPS_CPU)
+os2def$(PPUEXT) : $(OS2DEF_DEPS)
+	$(COMPILER) $<
+OS2Api.$(PPUEXT) : $(NSOS2DIR)/OS2Api..pas $(OS2DEF_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+DOSCALL2_DEPS = $(OS2DIR)/doscall2.pas $(DOSCALLSUNIT)$(PPUEXT) $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(DOSCALL2_DEPS_OS) $(DOSCALL2_DEPS_CPU)
+doscall2$(PPUEXT) : $(DOSCALL2_DEPS)
+	$(COMPILER) $<
+OS2Api.doscall2$(PPUEXT) : $(NSOS2DIR)/OS2Api.doscall2.pas $(DOSCALL2_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWIN_DEPS = $(OS2DIR)/pmwin.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWIN_DEPS_OS) $(PMWIN_DEPS_CPU)
+pmwin$(PPUEXT) : $(PMWIN_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmwin$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwin.pas $(PMWIN_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBITMAP_DEPS = $(OS2DIR)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBITMAP_DEPS_OS) $(PMBITMAP_DEPS_CPU)
+pmbitmap$(PPUEXT) : $(PMBITMAP_DEPS) 
+	$(COMPILER) $<
+OS2Api.pmbitmap$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbitmap.pas $(PMBITMAP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMGPI_DEPS = $(OS2DIR)/pmgpi.pas $(PMBITMAPUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMGPI_DEPS_OS) $(PMGPI_DEPS_CPU)
+pmgpi$(PPUEXT) : $(PMGPI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmgpi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmgpi.pas $(PMGPI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSTDDLG_DEPS = $(OS2DIR)/pmstddlg.pas $(OS2DEFUNIT)$(PPUEXT) $(DOSCALLSUNIT)$(PPUEXT) \
+	$(PMWINUNIT)$(PPUEXT) $(PMGPIUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	$(PMSTDDLG_DEPS_OS) $(PMSTDDLG_DEPS_CPU)
+pmstddlg$(PPUEXT) : $(PMSTDDLG_DEPS)
+	$(COMPILER) $<
+OS2Api.pmstddlg$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmstddlg.pas $(PMSTDDLG_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMHELP_DEPS = $(OS2DIR)/pmhelp.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMHELP_DEPS_OS) $(PMHELP_DEPS_CPU)
+pmhelp$(PPUEXT) : $(PMHELP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmhelp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmhelp.pas $(PMHELP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMDEV_DEPS = $(OS2DIR)/pmdev.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMDEV_DEPS_OS) $(PMDEV_DEPS_CPU)
+pmdev$(PPUEXT) : $(PMDEV_DEPS)
+	$(COMPILER) $<
+OS2Api.pmdev$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmdev.pas $(PMDEV_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSPL_DEPS = $(OS2DIR)/pmspl.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSPL_DEPS_OS) $(PMSPL_DEPS_CPU)
+pmspl$(PPUEXT) : $(PMSPL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmspl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmspl.pas $(PMSPL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMSHL_DEPS = $(OS2DIR)/pmshl.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMSHL_DEPS_OS) $(PMSHL_DEPS_CPU)
+pmshl$(PPUEXT) : $(PMSHL_DEPS)
+	$(COMPILER) $<
+OS2Api.pmshl$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmshl.pas $(PMSHL_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWP_DEPS = $(OS2DIR)/pmwp.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWINUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWP_DEPS_OS) $(PMWP_DEPS_CPU)
+pmwp$(PPUEXT) : $(PMWP_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwp$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwp.pas $(PMWP_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMWSOCK_DEPS = $(OS2DIR)/pmwsock.pas $(OS2DEFUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMWSOCK_DEPS_OS) $(PMWSOCK_DEPS_CPU)
+pmwsock$(PPUEXT) : $(PMWSOCK_DEPS)
+	$(COMPILER) $<
+OS2Api.pmwsock$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmwsock.pas $(PMWSOCK_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+PMBIDI_DEPS = $(OS2DIR)/pmbidi.pas $(OS2DEFUNIT)$(PPUEXT) $(PMWIN)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(PMBIDI_DEPS_OS) $(PMBIDI_DEPS_CPU)
+pmbidi$(PPUEXT) : $(PMBIDI_DEPS)
+	$(COMPILER) $<
+OS2Api.pmbidi$(PPUEXT) : $(NSOS2DIR)/OS2Api.pmbidi.pas $(PMBIDI_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+EXE_DEPS = $(OS2DIR)/exe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(EXE_DEPS_OS) $(EXE_DEPS_CPU)
+exe$(PPUEXT) : $(EXE_DEPS)
+	$(COMPILER) $<
+OS2Api.exe$(PPUEXT) : $(NSOS2DIR)/OS2Api.exe.pas $(EXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
+NEWEXE_DEPS = $(OS2DIR)/newexe.pas $(SYSTEMUNIT)$(PPUEXT) \
+	     $(NEWEXE_DEPS_OS) $(NEWEXE_DEPS_CPU)
+newexe$(PPUEXT) : $(NEWEXE_DEPS)
+	$(COMPILER) $<
+OS2Api.newexe$(PPUEXT) : $(NSOS2DIR)/OS2Api.newexe.pas $(NEWEXE_DEPS)
+	$(COMPILER) -Fi$(OS2DIR) $<
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu