mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 23:21:57 +02:00
amicommon: Amiga/m68k RTL now uses the common code
git-svn-id: trunk@28509 -
This commit is contained in:
parent
df2d474c5b
commit
26d53cfa55
9
.gitattributes
vendored
9
.gitattributes
vendored
@ -7822,9 +7822,7 @@ rtl/amicommon/sysosh.inc svneol=native#text/plain
|
||||
rtl/amicommon/sysutils.pp svneol=native#text/plain
|
||||
rtl/amiga/Makefile svneol=native#text/plain
|
||||
rtl/amiga/Makefile.fpc svneol=native#text/plain
|
||||
rtl/amiga/classes.pp svneol=native#text/plain
|
||||
rtl/amiga/crt.pp svneol=native#text/plain
|
||||
rtl/amiga/dos.pp svneol=native#text/plain
|
||||
rtl/amiga/doslibd.inc svneol=native#text/plain
|
||||
rtl/amiga/m68k/doslibf.inc svneol=native#text/plain
|
||||
rtl/amiga/m68k/execd.inc svneol=native#text/plain
|
||||
@ -7840,14 +7838,7 @@ rtl/amiga/powerpc/prt0.as svneol=native#text/plain
|
||||
rtl/amiga/powerpc/utild1.inc svneol=native#text/plain
|
||||
rtl/amiga/powerpc/utild2.inc svneol=native#text/plain
|
||||
rtl/amiga/powerpc/utilf.inc svneol=native#text/plain
|
||||
rtl/amiga/rtldefs.inc svneol=native#text/plain
|
||||
rtl/amiga/sysdir.inc svneol=native#text/plain
|
||||
rtl/amiga/sysfile.inc svneol=native#text/plain
|
||||
rtl/amiga/sysheap.inc svneol=native#text/plain
|
||||
rtl/amiga/sysos.inc svneol=native#text/plain
|
||||
rtl/amiga/sysosh.inc svneol=native#text/plain
|
||||
rtl/amiga/system.pp svneol=native#text/plain
|
||||
rtl/amiga/sysutils.pp svneol=native#text/plain
|
||||
rtl/amiga/timerd.inc svneol=native#text/plain
|
||||
rtl/amiga/tthread.inc svneol=native#text/plain
|
||||
rtl/android/Makefile svneol=native#text/plain
|
||||
|
@ -153,7 +153,7 @@ begin
|
||||
|
||||
if (Handle <> 0) then begin
|
||||
new(tmpFIB);
|
||||
if ExamineFH(Pointer(Handle),tmpFIB) then begin
|
||||
if ExamineFH(BPTR(Handle),tmpFIB) then begin
|
||||
tmpDateTime:=AmigaFileDateToDateTime(tmpFIB^.fib_Date,validFile);
|
||||
end;
|
||||
dispose(tmpFIB);
|
||||
@ -173,7 +173,7 @@ var
|
||||
begin
|
||||
result:=0;
|
||||
if (Handle <> 0) then begin
|
||||
if NameFromFH(Pointer(Handle), @tmpName, 256) then begin
|
||||
if NameFromFH(BPTR(Handle), @tmpName, 256) then begin
|
||||
tmpDateStamp:=DateTimeToAmigaDateStamp(FileDateToDateTime(Age));
|
||||
if not SetFileDate(@tmpName,@tmpDateStamp) then begin
|
||||
IoErr(); // dump the error code for now (TODO)
|
||||
|
@ -1,8 +1,8 @@
|
||||
#
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-08-17 rev 28432]
|
||||
#
|
||||
default: all
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
|
||||
BSDs = freebsd netbsd openbsd darwin
|
||||
UNIXs = linux $(BSDs) solaris qnx haiku aix
|
||||
LIMIT83fs = go32v2 os2 emx watcom msdos
|
||||
@ -333,13 +333,13 @@ RTL=..
|
||||
INC=$(RTL)/inc
|
||||
COMMON=$(RTL)/common
|
||||
PROCINC=$(RTL)/$(CPU_TARGET)
|
||||
AMIINC=$(RTL)/amicommon
|
||||
UNITPREFIX=rtl
|
||||
SYSTEMUNIT=system
|
||||
ifdef RELEASE
|
||||
override FPCOPT+=-Ur
|
||||
endif
|
||||
OBJPASDIR=$(RTL)/objpas
|
||||
GRAPHDIR=$(INC)/graph
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
|
||||
endif
|
||||
@ -409,6 +409,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),i386-android)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-aros)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
|
||||
endif
|
||||
@ -634,6 +637,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),i386-android)
|
||||
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-aros)
|
||||
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
|
||||
endif
|
||||
@ -859,6 +865,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),i386-android)
|
||||
override TARGET_LOADERS+=prt0
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-aros)
|
||||
override TARGET_LOADERS+=prt0
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_LOADERS+=prt0
|
||||
endif
|
||||
@ -1084,6 +1093,9 @@ endif
|
||||
ifeq ($(FULL_TARGET),i386-android)
|
||||
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-aros)
|
||||
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
|
||||
endif
|
||||
@ -1242,454 +1254,460 @@ override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
|
||||
endif
|
||||
override INSTALL_FPCPACKAGE=y
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-haiku)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-nativent)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-iphonesim)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-android)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-aros)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-wii)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-aix)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-netbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-solaris)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-openbsd)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-android)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-aix)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),avr-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mips-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mipsel-linux)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mipsel-embedded)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mipsel-android)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),jvm-java)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),jvm-android)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i8086-msdos)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-haiku)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-nativent)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-iphonesim)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-android)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-aros)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-wii)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-aix)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-netbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-solaris)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-openbsd)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-android)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-aix)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),avr-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),armeb-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mips-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mipsel-linux)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mipsel-embedded)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),mipsel-android)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),jvm-java)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),jvm-android)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i8086-msdos)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
endif
|
||||
ifdef REQUIRE_UNITSDIR
|
||||
override UNITSDIR+=$(REQUIRE_UNITSDIR)
|
||||
@ -1978,6 +1996,11 @@ EXEEXT=
|
||||
SHAREDLIBEXT=.library
|
||||
SHORTSUFFIX=amg
|
||||
endif
|
||||
ifeq ($(OS_TARGET),aros)
|
||||
EXEEXT=
|
||||
SHAREDLIBEXT=.library
|
||||
SHORTSUFFIX=aros
|
||||
endif
|
||||
ifeq ($(OS_TARGET),morphos)
|
||||
EXEEXT=
|
||||
SHAREDLIBEXT=.library
|
||||
@ -2898,10 +2921,10 @@ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
|
||||
$(SYSTEMUNIT)$(PPUEXT)
|
||||
sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
|
||||
objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
|
||||
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
|
||||
sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
|
||||
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
|
||||
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
|
||||
math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
|
||||
|
@ -34,8 +34,8 @@ target=amiga
|
||||
cpu=powerpc
|
||||
|
||||
[compiler]
|
||||
includedir=$(INC) $(PROCINC) $(CPU_TARGET)
|
||||
sourcedir=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
|
||||
includedir=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
|
||||
sourcedir=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
|
||||
|
||||
|
||||
[prerules]
|
||||
@ -43,6 +43,7 @@ RTL=..
|
||||
INC=$(RTL)/inc
|
||||
COMMON=$(RTL)/common
|
||||
PROCINC=$(RTL)/$(CPU_TARGET)
|
||||
AMIINC=$(RTL)/amicommon
|
||||
UNITPREFIX=rtl
|
||||
SYSTEMUNIT=system
|
||||
|
||||
@ -55,7 +56,6 @@ endif
|
||||
|
||||
# Paths
|
||||
OBJPASDIR=$(RTL)/objpas
|
||||
GRAPHDIR=$(INC)/graph
|
||||
|
||||
[rules]
|
||||
.NOTPARALLEL:
|
||||
@ -126,11 +126,11 @@ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
|
||||
|
||||
sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
|
||||
objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
|
||||
|
||||
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
|
||||
sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
|
||||
$(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
|
||||
|
||||
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
|
||||
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
|
||||
|
@ -1,50 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Component Library (FCL)
|
||||
Copyright (c) 1999-2002 by the Free Pascal development team
|
||||
|
||||
Classes unit for AmigaOS
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{$mode objfpc}
|
||||
|
||||
{ determine the type of the resource/form file }
|
||||
{$define Win16Res}
|
||||
|
||||
unit Classes;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
sysutils,
|
||||
rtlconsts,
|
||||
types,
|
||||
{$ifdef FPC_TESTGENERICS}
|
||||
fgl,
|
||||
{$endif}
|
||||
typinfo;
|
||||
|
||||
{$i classesh.inc}
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
{ OS - independent class implementations are in /inc directory. }
|
||||
{$i classes.inc}
|
||||
|
||||
|
||||
initialization
|
||||
CommonInit;
|
||||
|
||||
finalization
|
||||
CommonCleanup;
|
||||
|
||||
end.
|
1016
rtl/amiga/dos.pp
1016
rtl/amiga/dos.pp
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,8 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2014 Free Pascal development team
|
||||
|
||||
dos functions (V50) for MorphOS/PowerPC
|
||||
Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
|
||||
|
||||
Free Pascal conversion
|
||||
Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
|
||||
dos functions (V40) for Amiga/68k
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
@ -51,7 +48,7 @@ function dosDeleteFile(fname: PChar location 'd1'): Boolean;
|
||||
SysCall AOS_DOSBase 72;
|
||||
|
||||
function dosRename(oldName: PChar location 'd1';
|
||||
newName: PChar location 'd2'): Boolean;
|
||||
newName: PChar location 'd2'): LongInt;
|
||||
SysCall AOS_DOSBase 78;
|
||||
|
||||
function Lock(lname : PChar location 'd1';
|
||||
@ -65,7 +62,7 @@ function DupLock(lock: LongInt location 'd1'): LongInt;
|
||||
SysCall AOS_DOSBase 096;
|
||||
|
||||
function Examine(lock : LongInt location 'd1';
|
||||
fileInfoBlock: PFileInfoBlock location 'd2'): Boolean;
|
||||
fileInfoBlock: PFileInfoBlock location 'd2'): LongInt;
|
||||
SysCall AOS_DOSBase 102;
|
||||
|
||||
function ExNext(lock : LongInt location 'd1';
|
||||
@ -73,7 +70,7 @@ function ExNext(lock : LongInt location 'd1';
|
||||
SysCall AOS_DOSBase 108;
|
||||
|
||||
function Info(lock : LongInt location 'd1';
|
||||
parameterBlock: PInfoData location 'd2'): Boolean;
|
||||
parameterBlock: PInfoData location 'd2'): LongInt;
|
||||
SysCall AOS_DOSBase 114;
|
||||
|
||||
function dosCreateDir(dname: PChar location 'd1'): LongInt;
|
||||
@ -108,7 +105,7 @@ function SetComment(name : PChar location 'd1';
|
||||
SysCall AOS_DOSBase 180;
|
||||
|
||||
function SetProtection(name: PChar location 'd1';
|
||||
mask: LongInt location 'd2'): Boolean;
|
||||
mask: LongInt location 'd2'): LongInt;
|
||||
SysCall AOS_DOSBase 186;
|
||||
|
||||
function DateStamp(date: PDateStamp location 'd1'): PDateStamp;
|
||||
@ -285,7 +282,7 @@ SysCall AOS_DOSBase 378;
|
||||
function ParentOfFH(fh: LongInt location 'd1'): LongInt;
|
||||
SysCall AOS_DOSBase 384;
|
||||
|
||||
function ExamineFH(fh : LongInt location 'd1';
|
||||
function ExamineFH(fh : BPTR location 'd1';
|
||||
fib: PFileInfoBlock location 'd2'): Boolean;
|
||||
SysCall AOS_DOSBase 390;
|
||||
|
||||
@ -298,9 +295,9 @@ function NameFromLock(lock : LongInt location 'd1';
|
||||
len : LongInt location 'd3'): Boolean;
|
||||
SysCall AOS_DOSBase 402;
|
||||
|
||||
function NameFromFH(fh : LongInt location 'd1';
|
||||
function NameFromFH(fh : BPTR location 'd1';
|
||||
buffer: PChar location 'd2';
|
||||
len : LongInt location 'd3'): LongInt;
|
||||
len : LongInt location 'd3'): Boolean;
|
||||
SysCall AOS_DOSBase 408;
|
||||
|
||||
function SplitName(name : PChar location 'd1';
|
||||
|
@ -1,24 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2012 by Free Pascal development team
|
||||
|
||||
This file contains platform-specific defines that are used in
|
||||
multiple RTL units.
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{ the single byte OS APIs always use UTF-8 }
|
||||
{ define FPCRTL_FILESYSTEM_UTF8}
|
||||
|
||||
{ The OS supports a single byte file system operations API that we use }
|
||||
{$define FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
|
||||
|
||||
{ The OS supports a two byte file system operations API that we use }
|
||||
{ define FPCRTL_FILESYSTEM_TWO_BYTE_API}
|
@ -1,99 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2014 by Free Pascal development team
|
||||
|
||||
Low level directory functions
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
Directory Handling
|
||||
*****************************************************************************}
|
||||
procedure do_mkdir(const s : rawbytestring);
|
||||
var
|
||||
tmpStr : rawbytestring;
|
||||
tmpLock: LongInt;
|
||||
begin
|
||||
checkCTRLC;
|
||||
tmpStr:=PathConv(s);
|
||||
tmpLock:=dosCreateDir(pchar(tmpStr));
|
||||
if tmpLock=0 then begin
|
||||
dosError2InOut(IoErr);
|
||||
exit;
|
||||
end;
|
||||
UnLock(tmpLock);
|
||||
end;
|
||||
|
||||
procedure do_rmdir(const s : rawbytestring);
|
||||
var
|
||||
tmpStr : rawbytestring;
|
||||
begin
|
||||
checkCTRLC;
|
||||
if (s='.') then
|
||||
begin
|
||||
InOutRes:=16;
|
||||
exit;
|
||||
end;
|
||||
tmpStr:=PathConv(s);
|
||||
if not dosDeleteFile(pchar(tmpStr)) then
|
||||
dosError2InOut(IoErr);
|
||||
end;
|
||||
|
||||
procedure do_ChDir(const s: rawbytestring);
|
||||
var
|
||||
tmpStr : rawbytestring;
|
||||
tmpLock: LongInt;
|
||||
FIB : PFileInfoBlock;
|
||||
begin
|
||||
checkCTRLC;
|
||||
tmpStr:=PathConv(s);
|
||||
tmpLock:=0;
|
||||
|
||||
{ Changing the directory is a pretty complicated affair }
|
||||
{ 1) Obtain a lock on the directory }
|
||||
{ 2) CurrentDir the lock }
|
||||
tmpLock:=Lock(pchar(tmpStr),SHARED_LOCK);
|
||||
if tmpLock=0 then begin
|
||||
dosError2InOut(IoErr);
|
||||
exit;
|
||||
end;
|
||||
|
||||
FIB:=nil;
|
||||
new(FIB);
|
||||
|
||||
if (Examine(tmpLock,FIB)=True) and (FIB^.fib_DirEntryType>0) then begin
|
||||
tmpLock:=CurrentDir(tmpLock);
|
||||
if AOS_OrigDir=0 then begin
|
||||
AOS_OrigDir:=tmpLock;
|
||||
tmpLock:=0;
|
||||
end;
|
||||
end else begin
|
||||
dosError2InOut(ERROR_DIR_NOT_FOUND);
|
||||
end;
|
||||
|
||||
if tmpLock<>0 then Unlock(tmpLock);
|
||||
if assigned(FIB) then dispose(FIB);
|
||||
end;
|
||||
|
||||
procedure do_GetDir (DriveNr: byte; var Dir: RawByteString);
|
||||
var tmpbuf: array[0..255] of char;
|
||||
begin
|
||||
checkCTRLC;
|
||||
Dir:='';
|
||||
|
||||
if not GetCurrentDirName(tmpbuf,256) then
|
||||
dosError2InOut(IoErr)
|
||||
else
|
||||
begin
|
||||
Dir:=tmpbuf;
|
||||
SetCodePage(Dir,DefaultFileSystemCodePage,false);
|
||||
end;
|
||||
end;
|
@ -1,389 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2005 by Free Pascal development team
|
||||
|
||||
Low level file functions
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{ Enable this for file handling debug }
|
||||
{DEFINE MOSFPC_FILEDEBUG}
|
||||
|
||||
{*****************************************************************************
|
||||
MorphOS File-handling Support Functions
|
||||
*****************************************************************************}
|
||||
type
|
||||
{ AmigaOS does not automatically close opened files on exit back to }
|
||||
{ the operating system, therefore as a precuation we close all files }
|
||||
{ manually on exit. }
|
||||
PFileList = ^TFileList;
|
||||
TFileList = record { no packed, must be correctly aligned }
|
||||
handle : LongInt; { Handle to file }
|
||||
next : PFileList; { Next file in list }
|
||||
buffered : boolean; { used buffered I/O? }
|
||||
end;
|
||||
|
||||
var
|
||||
AOS_fileList: PFileList; public name 'AOS_FILELIST'; { List pointer to opened files }
|
||||
|
||||
{ Function to be called at program shutdown, to close all opened files }
|
||||
procedure CloseList(l: PFileList);
|
||||
var
|
||||
tmpNext : PFileList;
|
||||
tmpHandle : LongInt;
|
||||
begin
|
||||
if l=nil then exit;
|
||||
|
||||
{ First, close all tracked files }
|
||||
tmpNext:=l^.next;
|
||||
while tmpNext<>nil do begin
|
||||
tmpHandle:=tmpNext^.handle;
|
||||
if (tmpHandle<>StdInputHandle) and (tmpHandle<>StdOutputHandle)
|
||||
and (tmpHandle<>StdErrorHandle) then begin
|
||||
dosClose(tmpHandle);
|
||||
end;
|
||||
tmpNext:=tmpNext^.next;
|
||||
end;
|
||||
|
||||
{ Next, erase the linked list }
|
||||
while l<>nil do begin
|
||||
tmpNext:=l;
|
||||
l:=l^.next;
|
||||
dispose(tmpNext);
|
||||
end;
|
||||
end;
|
||||
|
||||
{ Function to be called to add a file to the opened file list }
|
||||
procedure AddToList(var l: PFileList; h: LongInt); alias: 'ADDTOLIST'; [public];
|
||||
var
|
||||
p : PFileList;
|
||||
inList: Boolean;
|
||||
begin
|
||||
inList:=False;
|
||||
if l<>nil then begin
|
||||
{ if there is a valid filelist, search for the value }
|
||||
{ in the list to avoid double additions }
|
||||
p:=l;
|
||||
while (p^.next<>nil) and (not inList) do
|
||||
if p^.next^.handle=h then inList:=True
|
||||
else p:=p^.next;
|
||||
p:=nil;
|
||||
end else begin
|
||||
{ if the list is not yet allocated, allocate it. }
|
||||
New(l);
|
||||
l^.next:=nil;
|
||||
end;
|
||||
|
||||
if not inList then begin
|
||||
New(p);
|
||||
p^.handle:=h;
|
||||
p^.buffered:=False;
|
||||
p^.next:=l^.next;
|
||||
l^.next:=p;
|
||||
end
|
||||
{$IFDEF MOSFPC_FILEDEBUG}
|
||||
else
|
||||
RawDoFmt('FPC_FILE_DEBUG: Error! Trying add filehandle a filehandle twice: $%lx !'+#10,@h,pointer(1),nil);
|
||||
{$ENDIF}
|
||||
;
|
||||
end;
|
||||
|
||||
{ Function to be called to remove a file from the list }
|
||||
function RemoveFromList(var l: PFileList; h: LongInt): boolean; alias: 'REMOVEFROMLIST'; [public];
|
||||
var
|
||||
p : PFileList;
|
||||
inList : Boolean;
|
||||
tmpList: PFileList;
|
||||
begin
|
||||
inList:=False;
|
||||
if l=nil then begin
|
||||
RemoveFromList:=inList;
|
||||
exit;
|
||||
end;
|
||||
|
||||
p:=l;
|
||||
while (p^.next<>nil) and (not inList) do
|
||||
if p^.next^.handle=h then inList:=True
|
||||
else p:=p^.next;
|
||||
|
||||
if inList then begin
|
||||
tmpList:=p^.next^.next;
|
||||
dispose(p^.next);
|
||||
p^.next:=tmpList;
|
||||
end
|
||||
{$IFDEF MOSFPC_FILEDEBUG}
|
||||
else
|
||||
RawDoFmt('FPC_FILE_DEBUG: Error! Trying to remove not existing filehandle: $%lx !'+#10,@h,pointer(1),nil);
|
||||
{$ENDIF}
|
||||
;
|
||||
|
||||
RemoveFromList:=inList;
|
||||
end;
|
||||
|
||||
{ Function to check if file is in the list }
|
||||
function CheckInList(var l: PFileList; h: LongInt): pointer; alias: 'CHECKINLIST'; [public];
|
||||
var
|
||||
p : PFileList;
|
||||
inList : Pointer;
|
||||
|
||||
begin
|
||||
inList:=nil;
|
||||
if l=nil then begin
|
||||
CheckInList:=inList;
|
||||
exit;
|
||||
end;
|
||||
|
||||
p:=l;
|
||||
while (p^.next<>nil) and (inList=nil) do
|
||||
if p^.next^.handle=h then inList:=p^.next
|
||||
else p:=p^.next;
|
||||
|
||||
{$IFDEF MOSFPC_FILEDEBUG}
|
||||
if inList=nil then
|
||||
RawDoFmt('FPC_FILE_DEBUG: Warning! Check for not existing filehandle: $%lx !'+#10,@h,pointer(1),nil);
|
||||
{$ENDIF}
|
||||
|
||||
CheckInList:=inList;
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
Low level File Routines
|
||||
All these functions can set InOutRes on errors
|
||||
****************************************************************************}
|
||||
|
||||
{ close a file from the handle value }
|
||||
procedure do_close(handle : longint);
|
||||
begin
|
||||
if RemoveFromList(AOS_fileList,handle) then begin
|
||||
{ Do _NOT_ check CTRL_C on Close, because it will conflict
|
||||
with System_Exit! }
|
||||
if not dosClose(handle) then
|
||||
dosError2InOut(IoErr);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure do_erase(p : pchar; pchangeable: boolean);
|
||||
var
|
||||
tmpStr: array[0..255] of Char;
|
||||
begin
|
||||
tmpStr:=PathConv(strpas(p))+#0;
|
||||
checkCTRLC;
|
||||
if not dosDeleteFile(@tmpStr) then
|
||||
dosError2InOut(IoErr);
|
||||
end;
|
||||
|
||||
procedure do_rename(p1,p2 : pchar; p1changeable, p2changeable: boolean);
|
||||
{ quite stack-effective code, huh? :) damn path conversions... (KB) }
|
||||
var
|
||||
tmpStr1: array[0..255] of Char;
|
||||
tmpStr2: array[0..255] of Char;
|
||||
begin
|
||||
tmpStr1:=PathConv(strpas(p1))+#0;
|
||||
tmpStr2:=PathConv(strpas(p2))+#0;
|
||||
checkCTRLC;
|
||||
if not dosRename(@tmpStr1,@tmpStr2) then
|
||||
dosError2InOut(IoErr);
|
||||
end;
|
||||
|
||||
function do_write(h: longint; addr: pointer; len: longint) : longint;
|
||||
var dosResult: LongInt;
|
||||
begin
|
||||
checkCTRLC;
|
||||
do_write:=0;
|
||||
if (len<=0) or (h<=0) then exit;
|
||||
|
||||
{$IFDEF MOSFPC_FILEDEBUG}
|
||||
if not ((h=StdOutputHandle) or (h=StdInputHandle) or
|
||||
(h=StdErrorHandle)) then CheckInList(AOS_fileList,h);
|
||||
{$ENDIF}
|
||||
|
||||
dosResult:=dosWrite(h,addr,len);
|
||||
if dosResult<0 then begin
|
||||
dosError2InOut(IoErr);
|
||||
end else begin
|
||||
do_write:=dosResult;
|
||||
end;
|
||||
end;
|
||||
|
||||
function do_read(h: longint; addr: pointer; len: longint) : longint;
|
||||
var dosResult: LongInt;
|
||||
begin
|
||||
checkCTRLC;
|
||||
do_read:=0;
|
||||
if (len<=0) or (h<=0) then exit;
|
||||
|
||||
{$IFDEF MOSFPC_FILEDEBUG}
|
||||
if not ((h=StdOutputHandle) or (h=StdInputHandle) or
|
||||
(h=StdErrorHandle)) then CheckInList(AOS_fileList,h);
|
||||
{$ENDIF}
|
||||
|
||||
dosResult:=dosRead(h,addr,len);
|
||||
if dosResult<0 then begin
|
||||
dosError2InOut(IoErr);
|
||||
end else begin
|
||||
do_read:=dosResult;
|
||||
end
|
||||
end;
|
||||
|
||||
function do_filepos(handle: longint) : longint;
|
||||
var dosResult: LongInt;
|
||||
begin
|
||||
checkCTRLC;
|
||||
do_filepos:=-1;
|
||||
if CheckInList(AOS_fileList,handle)<>nil then begin
|
||||
|
||||
{ Seeking zero from OFFSET_CURRENT to find out where we are }
|
||||
dosResult:=dosSeek(handle,0,OFFSET_CURRENT);
|
||||
if dosResult<0 then begin
|
||||
dosError2InOut(IoErr);
|
||||
end else begin
|
||||
do_filepos:=dosResult;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure do_seek(handle, pos: longint);
|
||||
begin
|
||||
checkCTRLC;
|
||||
if CheckInList(AOS_fileList,handle)<>nil then begin
|
||||
|
||||
{ Seeking from OFFSET_BEGINNING }
|
||||
if dosSeek(handle,pos,OFFSET_BEGINNING)<0 then
|
||||
dosError2InOut(IoErr);
|
||||
end;
|
||||
end;
|
||||
|
||||
function do_seekend(handle: longint):longint;
|
||||
var dosResult: LongInt;
|
||||
begin
|
||||
checkCTRLC;
|
||||
do_seekend:=-1;
|
||||
if CheckInList(AOS_fileList,handle)<>nil then begin
|
||||
|
||||
{ Seeking to OFFSET_END }
|
||||
dosResult:=dosSeek(handle,0,OFFSET_END);
|
||||
if dosResult<0 then begin
|
||||
dosError2InOut(IoErr);
|
||||
end else begin
|
||||
do_seekend:=dosResult;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function do_filesize(handle : longint) : longint;
|
||||
var currfilepos: longint;
|
||||
begin
|
||||
checkCTRLC;
|
||||
do_filesize:=-1;
|
||||
if CheckInList(AOS_fileList,handle)<>nil then begin
|
||||
|
||||
currfilepos:=do_filepos(handle);
|
||||
{ We have to do this twice, because seek returns the OLD position }
|
||||
do_filesize:=do_seekend(handle);
|
||||
do_filesize:=do_seekend(handle);
|
||||
do_seek(handle,currfilepos);
|
||||
|
||||
end;
|
||||
end;
|
||||
|
||||
{ truncate at a given position }
|
||||
procedure do_truncate(handle, pos: longint);
|
||||
begin
|
||||
checkCTRLC;
|
||||
if CheckInList(AOS_fileList,handle)<>nil then begin
|
||||
|
||||
{ Seeking from OFFSET_BEGINNING }
|
||||
if SetFileSize(handle,pos,OFFSET_BEGINNING)<0 then
|
||||
dosError2InOut(IoErr);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure do_open(var f;p:pchar;flags:longint; pchangeable: boolean);
|
||||
{
|
||||
filerec and textrec have both handle and mode as the first items so
|
||||
they could use the same routine for opening/creating.
|
||||
when (flags and $10) the file will be append
|
||||
when (flags and $100) the file will be truncate/rewritten
|
||||
when (flags and $1000) there is no check for close (needed for textfiles)
|
||||
}
|
||||
var
|
||||
handle : LongInt;
|
||||
openflags: LongInt;
|
||||
tmpStr : array[0..255] of Char;
|
||||
begin
|
||||
tmpStr:=PathConv(strpas(p))+#0;
|
||||
|
||||
{ close first if opened }
|
||||
if ((flags and $10000)=0) then begin
|
||||
case filerec(f).mode of
|
||||
fminput,fmoutput,fminout : Do_Close(filerec(f).handle);
|
||||
fmclosed : ;
|
||||
else begin
|
||||
inoutres:=102; {not assigned}
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ reset file handle }
|
||||
filerec(f).handle:=UnusedHandle;
|
||||
|
||||
{ convert filemode to filerec modes }
|
||||
{ READ/WRITE on existing file }
|
||||
{ RESET/APPEND }
|
||||
openflags:=MODE_OLDFILE;
|
||||
case (flags and 3) of
|
||||
0 : filerec(f).mode:=fminput;
|
||||
1 : filerec(f).mode:=fmoutput;
|
||||
2 : filerec(f).mode:=fminout;
|
||||
end;
|
||||
|
||||
{ rewrite (create a new file) }
|
||||
if (flags and $1000)<>0 then openflags:=MODE_NEWFILE;
|
||||
|
||||
{ empty name is special }
|
||||
if p[0]=#0 then begin
|
||||
case filerec(f).mode of
|
||||
fminput :
|
||||
filerec(f).handle:=StdInputHandle;
|
||||
fmappend,
|
||||
fmoutput : begin
|
||||
filerec(f).handle:=StdOutputHandle;
|
||||
filerec(f).mode:=fmoutput; {fool fmappend}
|
||||
end;
|
||||
end;
|
||||
exit;
|
||||
end;
|
||||
|
||||
handle:=Open(@tmpStr,openflags);
|
||||
if handle=0 then begin
|
||||
dosError2InOut(IoErr);
|
||||
end else begin
|
||||
AddToList(AOS_fileList,handle);
|
||||
filerec(f).handle:=handle;
|
||||
end;
|
||||
|
||||
{ append mode }
|
||||
if ((Flags and $100)<>0) and
|
||||
(FileRec(F).Handle<>UnusedHandle) then begin
|
||||
do_seekend(filerec(f).handle);
|
||||
filerec(f).mode:=fmoutput; {fool fmappend}
|
||||
end;
|
||||
end;
|
||||
|
||||
function do_isdevice(handle: longint): boolean;
|
||||
begin
|
||||
if (handle=StdOutputHandle) or (handle=StdInputHandle) or
|
||||
(handle=StdErrorHandle) then
|
||||
do_isdevice:=True
|
||||
else
|
||||
do_isdevice:=False;
|
||||
end;
|
@ -1,51 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2005 by Free Pascal development team
|
||||
|
||||
Low level memory functions
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{ Enable this for memory allocation debugging }
|
||||
{DEFINE MOSFPC_MEMDEBUG}
|
||||
|
||||
{*****************************************************************************
|
||||
OS Memory allocation / deallocation
|
||||
****************************************************************************}
|
||||
|
||||
function SysOSAlloc(size: ptruint): pointer;
|
||||
{$IFDEF MOSFPC_MEMDEBUG}
|
||||
var values: array[0..2] of dword;
|
||||
{$ENDIF}
|
||||
begin
|
||||
result:=AllocPooled(AOS_heapPool,size);
|
||||
{$IFDEF MOSFPC_MEMDEBUG}
|
||||
values[0]:=dword(result);
|
||||
values[1]:=dword(size);
|
||||
values[2]:=DWord(Sptr-StackBottom);
|
||||
RawDoFmt('FPC_MEM_DEBUG: $%lx:=SysOSAlloc(%lu), free stack: %ld bytes'+#10,@values,pointer(1),nil);
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
{$define HAS_SYSOSFREE}
|
||||
|
||||
procedure SysOSFree(p: pointer; size: ptruint);
|
||||
{$IFDEF MOSFPC_MEMDEBUG}
|
||||
var values: array[0..2] of dword;
|
||||
{$ENDIF}
|
||||
begin
|
||||
FreePooled(AOS_heapPool,p,size);
|
||||
{$IFDEF MOSFPC_MEMDEBUG}
|
||||
values[0]:=dword(p);
|
||||
values[1]:=dword(size);
|
||||
values[2]:=DWord(Sptr-StackBottom);
|
||||
RawDoFmt('FPC_MEM_DEBUG: SysOSFree($%lx,%lu), free stack: %ld bytes'+#10,@values,pointer(1),nil);
|
||||
{$ENDIF}
|
||||
end;
|
@ -1,178 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2001 by Free Pascal development team
|
||||
|
||||
This file implements all the base types and limits required
|
||||
for a minimal POSIX compliant subset required to port the compiler
|
||||
to a new OS.
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{*****************************************************************************
|
||||
AmigaOS structures
|
||||
*****************************************************************************}
|
||||
|
||||
{$include execd.inc}
|
||||
{$include timerd.inc}
|
||||
{$include doslibd.inc}
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
AmigaOS functions
|
||||
*****************************************************************************}
|
||||
|
||||
{ exec.library functions }
|
||||
|
||||
{$include execf.inc}
|
||||
{$include doslibf.inc}
|
||||
{$IFDEF AMIGAOS4}
|
||||
// Required to allow opening of utility library interface...
|
||||
{$include utilf.inc}
|
||||
{$ENDIF}
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
System Dependent Structures/Consts
|
||||
*****************************************************************************}
|
||||
|
||||
|
||||
const
|
||||
CTRL_C = 20; { Error code on CTRL-C press }
|
||||
|
||||
{ Used for CTRL_C checking in I/O calls }
|
||||
procedure checkCTRLC;
|
||||
begin
|
||||
if BreakOn then begin
|
||||
if (SetSignal(0,0) And SIGBREAKF_CTRL_C)<>0 then begin
|
||||
{ Clear CTRL-C signal }
|
||||
SetSignal(0,SIGBREAKF_CTRL_C);
|
||||
Halt(CTRL_C);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{ Converts a AmigaOS dos.library error code to a TP compatible error code }
|
||||
{ Based on 1.0.x Amiga RTL }
|
||||
procedure dosError2InOut(errno: LongInt);
|
||||
begin
|
||||
case errno of
|
||||
ERROR_BAD_NUMBER,
|
||||
ERROR_ACTION_NOT_KNOWN,
|
||||
ERROR_NOT_IMPLEMENTED : InOutRes := 1;
|
||||
|
||||
ERROR_OBJECT_NOT_FOUND : InOutRes := 2;
|
||||
ERROR_DIR_NOT_FOUND : InOutRes := 3;
|
||||
ERROR_DISK_WRITE_PROTECTED : InOutRes := 150;
|
||||
ERROR_OBJECT_WRONG_TYPE : InOutRes := 151;
|
||||
|
||||
ERROR_OBJECT_EXISTS,
|
||||
ERROR_DELETE_PROTECTED,
|
||||
ERROR_WRITE_PROTECTED,
|
||||
ERROR_READ_PROTECTED,
|
||||
ERROR_OBJECT_IN_USE,
|
||||
ERROR_DIRECTORY_NOT_EMPTY : InOutRes := 5;
|
||||
|
||||
ERROR_NO_MORE_ENTRIES : InOutRes := 18;
|
||||
ERROR_RENAME_ACROSS_DEVICES : InOutRes := 17;
|
||||
ERROR_DISK_FULL : InOutRes := 101;
|
||||
ERROR_INVALID_RESIDENT_LIBRARY : InoutRes := 153;
|
||||
ERROR_BAD_HUNK : InOutRes := 153;
|
||||
ERROR_NOT_A_DOS_DISK : InOutRes := 157;
|
||||
|
||||
ERROR_NO_DISK,
|
||||
ERROR_DISK_NOT_VALIDATED,
|
||||
ERROR_DEVICE_NOT_MOUNTED : InOutRes := 152;
|
||||
|
||||
ERROR_SEEK_ERROR : InOutRes := 156;
|
||||
|
||||
ERROR_LOCK_COLLISION,
|
||||
ERROR_LOCK_TIMEOUT,
|
||||
ERROR_UNLOCK_ERROR,
|
||||
ERROR_INVALID_LOCK,
|
||||
ERROR_INVALID_COMPONENT_NAME,
|
||||
ERROR_BAD_STREAM_NAME,
|
||||
ERROR_FILE_NOT_OBJECT : InOutRes := 6;
|
||||
else
|
||||
InOutRes := errno;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{ Converts an Unix-like path to Amiga-like path }
|
||||
function PathConv(path: string): string; alias: 'PATHCONV'; [public];
|
||||
var tmppos: longint;
|
||||
begin
|
||||
{ check for short paths }
|
||||
if length(path)<=2 then begin
|
||||
if (path='.') or (path='./') then path:='' else
|
||||
if path='..' then path:='/' else
|
||||
if path='*' then path:='#?';
|
||||
end else begin
|
||||
{ convert parent directories }
|
||||
tmppos:=pos('../',path);
|
||||
while tmppos<>0 do begin
|
||||
{ delete .. to have / as parent dir sign }
|
||||
delete(path,tmppos,2);
|
||||
tmppos:=pos('../',path);
|
||||
end;
|
||||
{ convert current directories }
|
||||
tmppos:=pos('./',path);
|
||||
while tmppos<>0 do begin
|
||||
{ delete ./ since we doesn't need to sign current directory }
|
||||
delete(path,tmppos,2);
|
||||
tmppos:=pos('./',path);
|
||||
end;
|
||||
{ convert wildstar to #? }
|
||||
tmppos:=pos('*',path);
|
||||
while tmppos<>0 do begin
|
||||
delete(path,tmppos,1);
|
||||
insert('#?',path,tmppos);
|
||||
tmppos:=pos('*',path);
|
||||
end;
|
||||
end;
|
||||
PathConv:=path;
|
||||
end;
|
||||
|
||||
{ Converts an Unix-like path to Amiga-like path }
|
||||
function PathConv(const path: rawbytestring): rawbytestring; alias: 'PATHCONVRBS'; [public];
|
||||
var tmppos: longint;
|
||||
begin
|
||||
{ check for short paths }
|
||||
if length(path)<=2 then begin
|
||||
if (path='.') or (path='./') then PathConv:='' else
|
||||
if path='..' then PathConv:='/' else
|
||||
if path='*' then PathConv:='#?'
|
||||
else PathConv:=path;
|
||||
end else begin
|
||||
{ convert parent directories }
|
||||
PathConv:=path;
|
||||
tmppos:=pos('../',PathConv);
|
||||
while tmppos<>0 do begin
|
||||
{ delete .. to have / as parent dir sign }
|
||||
delete(PathConv,tmppos,2);
|
||||
tmppos:=pos('../',PathConv);
|
||||
end;
|
||||
{ convert current directories }
|
||||
tmppos:=pos('./',PathConv);
|
||||
while tmppos<>0 do begin
|
||||
{ delete ./ since we doesn't need to sign current directory }
|
||||
delete(PathConv,tmppos,2);
|
||||
tmppos:=pos('./',PathConv);
|
||||
end;
|
||||
{ convert wildstar to #? }
|
||||
tmppos:=pos('*',PathConv);
|
||||
while tmppos<>0 do begin
|
||||
delete(PathConv,tmppos,1);
|
||||
insert('#?',PathConv,tmppos);
|
||||
tmppos:=pos('*',PathConv);
|
||||
end;
|
||||
end;
|
||||
end;
|
@ -1,33 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2001 by Free Pascal development team
|
||||
|
||||
This file implements all the base types and limits required
|
||||
for a minimal POSIX compliant subset required to port the compiler
|
||||
to a new OS.
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{Platform specific information}
|
||||
type
|
||||
{$ifdef CPU64}
|
||||
THandle = Int64;
|
||||
{$else CPU64}
|
||||
THandle = Longint;
|
||||
{$endif CPU64}
|
||||
TThreadID = THandle;
|
||||
|
||||
PRTLCriticalSection = ^TRTLCriticalSection;
|
||||
TRTLCriticalSection = record
|
||||
Locked: boolean
|
||||
end;
|
||||
|
||||
|
||||
|
@ -110,12 +110,17 @@ implementation
|
||||
{$endif cpum68k}
|
||||
|
||||
{$I system.inc}
|
||||
{$IFDEF AMIGAOS4}
|
||||
// Required to allow opening of utility library interface...
|
||||
{$include utilf.inc}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF MOSFPC_FILEDEBUG}
|
||||
|
||||
{$IFDEF ASYS_FPC_FILEDEBUG}
|
||||
{$WARNING Compiling with file debug enabled!}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF MOSFPC_MEMDEBUG}
|
||||
{$IFDEF ASYS_FPC_MEMDEBUG}
|
||||
{$WARNING Compiling with memory debug enabled!}
|
||||
{$ENDIF}
|
||||
|
||||
@ -137,7 +142,7 @@ begin
|
||||
end;
|
||||
|
||||
{ Closing opened files }
|
||||
CloseList(AOS_fileList);
|
||||
CloseList(ASYS_fileList);
|
||||
|
||||
{ Changing back to original directory if changed }
|
||||
if AOS_origDir<>0 then begin
|
||||
@ -389,7 +394,7 @@ begin
|
||||
{ OS specific startup }
|
||||
AOS_wbMsg:=nil;
|
||||
AOS_origDir:=0;
|
||||
AOS_fileList:=nil;
|
||||
ASYS_fileList:=nil;
|
||||
envp:=nil;
|
||||
SysInitAmigaOS;
|
||||
{ Set up signals handlers }
|
||||
|
@ -1,759 +0,0 @@
|
||||
{
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 2004-2013 by Karoly Balogh
|
||||
|
||||
Sysutils unit for AmigaOS & clones
|
||||
|
||||
Based on Amiga 1.x version by Carl Eric Codere, and other
|
||||
parts of the RTL
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
unit sysutils;
|
||||
|
||||
interface
|
||||
|
||||
{$MODE objfpc}
|
||||
{$MODESWITCH OUT}
|
||||
{ force ansistrings }
|
||||
{$H+}
|
||||
|
||||
{$DEFINE OS_FILESETDATEBYNAME}
|
||||
{$DEFINE HAS_SLEEP}
|
||||
{$DEFINE HAS_OSERROR}
|
||||
|
||||
{ used OS file system APIs use ansistring }
|
||||
{$define SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}
|
||||
{ OS has an ansistring/single byte environment variable API }
|
||||
{$define SYSUTILS_HAS_ANSISTR_ENVVAR_IMPL}
|
||||
|
||||
{ Include platform independent interface part }
|
||||
{$i sysutilh.inc}
|
||||
|
||||
{ Platform dependent calls }
|
||||
|
||||
Procedure AddDisk(const path:string);
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
uses dos,sysconst;
|
||||
|
||||
{$DEFINE FPC_FEXPAND_VOLUMES} (* Full paths begin with drive specification *)
|
||||
{$DEFINE FPC_FEXPAND_DRIVESEP_IS_ROOT}
|
||||
{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS}
|
||||
|
||||
{ Include platform independent implementation part }
|
||||
{$i sysutils.inc}
|
||||
|
||||
|
||||
{ * Include MorphOS specific includes * }
|
||||
{$include execd.inc}
|
||||
{$include execf.inc}
|
||||
{$include timerd.inc}
|
||||
{$include doslibd.inc}
|
||||
{$include doslibf.inc}
|
||||
{$include utilf.inc}
|
||||
|
||||
{ * Followings are implemented in the system unit! * }
|
||||
function PathConv(path: shortstring): shortstring; external name 'PATHCONV';
|
||||
function PathConv(path: RawByteString): RawByteString; external name 'PATHCONVRBS';
|
||||
procedure AddToList(var l: Pointer; h: LongInt); external name 'ADDTOLIST';
|
||||
function RemoveFromList(var l: Pointer; h: LongInt): boolean; external name 'REMOVEFROMLIST';
|
||||
function CheckInList(var l: Pointer; h: LongInt): pointer; external name 'CHECKINLIST';
|
||||
|
||||
var
|
||||
MOS_fileList: Pointer; external name 'AOS_FILELIST';
|
||||
|
||||
|
||||
function AmigaFileDateToDateTime(aDate: TDateStamp; out success: boolean): TDateTime;
|
||||
var
|
||||
tmpSecs: DWord;
|
||||
tmpDate: TDateTime;
|
||||
tmpTime: TDateTime;
|
||||
clockData: TClockData;
|
||||
begin
|
||||
with aDate do
|
||||
tmpSecs:=(ds_Days * (24 * 60 * 60)) + (ds_Minute * 60) + (ds_Tick div TICKS_PER_SECOND);
|
||||
|
||||
Amiga2Date(tmpSecs,@clockData);
|
||||
{$HINT TODO: implement msec values, if possible}
|
||||
with clockData do begin
|
||||
success:=TryEncodeDate(year,month,mday,tmpDate) and
|
||||
TryEncodeTime(hour,min,sec,0,tmpTime);
|
||||
end;
|
||||
|
||||
result:=ComposeDateTime(tmpDate,tmpTime);
|
||||
end;
|
||||
|
||||
function DateTimeToAmigaDateStamp(dateTime: TDateTime): TDateStamp;
|
||||
var
|
||||
tmpSecs: DWord;
|
||||
clockData: TClockData;
|
||||
tmpMSec: Word;
|
||||
begin
|
||||
{$HINT TODO: implement msec values, if possible}
|
||||
with clockData do begin
|
||||
DecodeDate(dateTime,year,month,mday);
|
||||
DecodeTime(dateTime,hour,min,sec,tmpMSec);
|
||||
end;
|
||||
|
||||
tmpSecs:=Date2Amiga(@clockData);
|
||||
|
||||
with result do begin
|
||||
ds_Days:= tmpSecs div (24 * 60 * 60);
|
||||
ds_Minute:= (tmpSecs div 60) mod ds_Days;
|
||||
ds_Tick:= (((tmpSecs mod 60) mod ds_Minute) mod ds_Days) * TICKS_PER_SECOND;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
File Functions
|
||||
****************************************************************************}
|
||||
{$I-}{ Required for correct usage of these routines }
|
||||
|
||||
|
||||
(****** non portable routines ******)
|
||||
|
||||
function FileOpen(const FileName: rawbytestring; Mode: Integer): LongInt;
|
||||
var
|
||||
SystemFileName: RawByteString;
|
||||
dosResult: LongInt;
|
||||
begin
|
||||
SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
|
||||
{$WARNING FIX ME! To do: FileOpen Access Modes}
|
||||
dosResult:=Open(PChar(SystemFileName),MODE_OLDFILE);
|
||||
if dosResult=0 then
|
||||
dosResult:=-1
|
||||
else
|
||||
AddToList(MOS_fileList,dosResult);
|
||||
|
||||
FileOpen:=dosResult;
|
||||
end;
|
||||
|
||||
|
||||
function FileGetDate(Handle: LongInt) : LongInt;
|
||||
var
|
||||
tmpFIB : PFileInfoBlock;
|
||||
tmpDateTime: TDateTime;
|
||||
validFile: boolean;
|
||||
begin
|
||||
validFile:=false;
|
||||
|
||||
if (Handle <> 0) then begin
|
||||
new(tmpFIB);
|
||||
if ExamineFH(Handle,tmpFIB) then begin
|
||||
tmpDateTime:=AmigaFileDateToDateTime(tmpFIB^.fib_Date,validFile);
|
||||
end;
|
||||
dispose(tmpFIB);
|
||||
end;
|
||||
|
||||
if validFile then
|
||||
result:=DateTimeToFileDate(tmpDateTime)
|
||||
else
|
||||
result:=-1;
|
||||
end;
|
||||
|
||||
|
||||
function FileSetDate(Handle, Age: LongInt) : LongInt;
|
||||
var
|
||||
tmpDateStamp: TDateStamp;
|
||||
tmpName: array[0..255] of char;
|
||||
begin
|
||||
result:=0;
|
||||
if (Handle <> 0) then begin
|
||||
if (NameFromFH(Handle, @tmpName, 256) = dosTrue) then begin
|
||||
tmpDateStamp:=DateTimeToAmigaDateStamp(FileDateToDateTime(Age));
|
||||
if not SetFileDate(@tmpName,@tmpDateStamp) then begin
|
||||
IoErr(); // dump the error code for now (TODO)
|
||||
result:=-1;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
function FileSetDate(const FileName: RawByteString; Age: LongInt) : LongInt;
|
||||
var
|
||||
tmpDateStamp: TDateStamp;
|
||||
SystemFileName: RawByteString;
|
||||
begin
|
||||
result:=0;
|
||||
SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
|
||||
tmpDateStamp:=DateTimeToAmigaDateStamp(FileDateToDateTime(Age));
|
||||
if not SetFileDate(PChar(SystemFileName),@tmpDateStamp) then begin
|
||||
IoErr(); // dump the error code for now (TODO)
|
||||
result:=-1;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
function FileCreate(const FileName: RawByteString) : LongInt;
|
||||
var
|
||||
SystemFileName: RawByteString;
|
||||
dosResult: LongInt;
|
||||
begin
|
||||
dosResult:=-1;
|
||||
|
||||
{ Open file in MODDE_READWRITE, then truncate it by hand rather than
|
||||
opening it in MODE_NEWFILE, because that returns an exclusive lock
|
||||
so some operations might fail with it (KB) }
|
||||
SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
|
||||
dosResult:=Open(PChar(SystemFileName),MODE_READWRITE);
|
||||
if dosResult = 0 then exit;
|
||||
|
||||
if SetFileSize(dosResult, 0, OFFSET_BEGINNING) = 0 then
|
||||
AddToList(MOS_fileList,dosResult)
|
||||
else begin
|
||||
dosClose(dosResult);
|
||||
dosResult:=-1;
|
||||
end;
|
||||
|
||||
FileCreate:=dosResult;
|
||||
end;
|
||||
|
||||
function FileCreate(const FileName: RawByteString; Rights: integer): LongInt;
|
||||
begin
|
||||
{$WARNING FIX ME! To do: FileCreate Access Modes}
|
||||
FileCreate:=FileCreate(FileName);
|
||||
end;
|
||||
|
||||
function FileCreate(const FileName: RawByteString; ShareMode: integer; Rights : integer): LongInt;
|
||||
begin
|
||||
{$WARNING FIX ME! To do: FileCreate Access Modes}
|
||||
FileCreate:=FileCreate(FileName);
|
||||
end;
|
||||
|
||||
|
||||
function FileRead(Handle: LongInt; out Buffer; Count: LongInt): LongInt;
|
||||
begin
|
||||
FileRead:=-1;
|
||||
if (Count<=0) or (Handle<=0) then exit;
|
||||
|
||||
FileRead:=dosRead(Handle,@Buffer,Count);
|
||||
end;
|
||||
|
||||
|
||||
function FileWrite(Handle: LongInt; const Buffer; Count: LongInt): LongInt;
|
||||
begin
|
||||
FileWrite:=-1;
|
||||
if (Count<=0) or (Handle<=0) then exit;
|
||||
|
||||
FileWrite:=dosWrite(Handle,@Buffer,Count);
|
||||
end;
|
||||
|
||||
|
||||
function FileSeek(Handle, FOffset, Origin: LongInt) : LongInt;
|
||||
var
|
||||
seekMode: LongInt;
|
||||
begin
|
||||
FileSeek:=-1;
|
||||
if (Handle<=0) then exit;
|
||||
|
||||
case Origin of
|
||||
fsFromBeginning: seekMode:=OFFSET_BEGINNING;
|
||||
fsFromCurrent : seekMode:=OFFSET_CURRENT;
|
||||
fsFromEnd : seekMode:=OFFSET_END;
|
||||
end;
|
||||
|
||||
FileSeek:=dosSeek(Handle, FOffset, seekMode);
|
||||
end;
|
||||
|
||||
function FileSeek(Handle: LongInt; FOffset: Int64; Origin: Longint): Int64;
|
||||
begin
|
||||
{$WARNING Need to add 64bit call }
|
||||
FileSeek:=FileSeek(Handle,LongInt(FOffset),LongInt(Origin));
|
||||
end;
|
||||
|
||||
|
||||
procedure FileClose(Handle: LongInt);
|
||||
begin
|
||||
if (Handle<=0) then exit;
|
||||
|
||||
dosClose(Handle);
|
||||
RemoveFromList(MOS_fileList,Handle);
|
||||
end;
|
||||
|
||||
|
||||
function FileTruncate(Handle: THandle; Size: Int64): Boolean;
|
||||
var
|
||||
dosResult: LongInt;
|
||||
begin
|
||||
FileTruncate:=False;
|
||||
|
||||
if Size > high (longint) then exit;
|
||||
{$WARNING Possible support for 64-bit FS to be checked!}
|
||||
|
||||
if (Handle<=0) then exit;
|
||||
|
||||
dosResult:=SetFileSize(Handle, Size, OFFSET_BEGINNING);
|
||||
if (dosResult<0) then exit;
|
||||
|
||||
FileTruncate:=True;
|
||||
end;
|
||||
|
||||
|
||||
function DeleteFile(const FileName: RawByteString) : Boolean;
|
||||
var
|
||||
SystemFileName: RawByteString;
|
||||
begin
|
||||
SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
|
||||
DeleteFile:=dosDeleteFile(PChar(SystemFileName));
|
||||
end;
|
||||
|
||||
|
||||
function RenameFile(const OldName, NewName: RawByteString): Boolean;
|
||||
var
|
||||
OldSystemFileName, NewSystemFileName: RawByteString;
|
||||
begin
|
||||
OldSystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(OldName));
|
||||
NewSystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(NewName));
|
||||
RenameFile:=dosRename(PChar(OldSystemFileName), PChar(NewSystemFileName));
|
||||
end;
|
||||
|
||||
|
||||
(****** end of non portable routines ******)
|
||||
|
||||
|
||||
function FileAge (const FileName : RawByteString): Longint;
|
||||
var
|
||||
tmpLock: Longint;
|
||||
tmpFIB : PFileInfoBlock;
|
||||
tmpDateTime: TDateTime;
|
||||
validFile: boolean;
|
||||
SystemFileName: RawByteString;
|
||||
begin
|
||||
validFile:=false;
|
||||
SystemFileName := PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
|
||||
tmpLock := Lock(PChar(SystemFileName), SHARED_LOCK);
|
||||
|
||||
if (tmpLock <> 0) then begin
|
||||
new(tmpFIB);
|
||||
if Examine(tmpLock,tmpFIB) then begin
|
||||
tmpDateTime:=AmigaFileDateToDateTime(tmpFIB^.fib_Date,validFile);
|
||||
end;
|
||||
Unlock(tmpLock);
|
||||
dispose(tmpFIB);
|
||||
end;
|
||||
|
||||
if validFile then
|
||||
result:=DateTimeToFileDate(tmpDateTime)
|
||||
else
|
||||
result:=-1;
|
||||
end;
|
||||
|
||||
|
||||
function FileExists (const FileName : RawByteString) : Boolean;
|
||||
var
|
||||
tmpLock: LongInt;
|
||||
tmpFIB : PFileInfoBlock;
|
||||
SystemFileName: RawByteString;
|
||||
begin
|
||||
result:=false;
|
||||
SystemFileName := PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
|
||||
tmpLock := Lock(PChar(SystemFileName), SHARED_LOCK);
|
||||
|
||||
if (tmpLock <> 0) then begin
|
||||
new(tmpFIB);
|
||||
if Examine(tmpLock,tmpFIB) and (tmpFIB^.fib_DirEntryType <= 0) then
|
||||
result:=true;
|
||||
Unlock(tmpLock);
|
||||
dispose(tmpFIB);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Function InternalFindFirst (Const Path : RawByteString; Attr : Longint; out Rslt : TAbstractSearchRec; var Name: RawByteString) : Longint;
|
||||
var
|
||||
tmpStr: RawByteString;
|
||||
Anchor: PAnchorPath;
|
||||
tmpDateTime: TDateTime;
|
||||
validDate: boolean;
|
||||
begin
|
||||
result:=-1; { We emulate Linux/Unix behaviour, and return -1 on errors. }
|
||||
|
||||
tmpStr:=PathConv(ToSingleByteFileSystemEncodedFileName(Path));
|
||||
|
||||
{ $1e = faHidden or faSysFile or faVolumeID or faDirectory }
|
||||
Rslt.ExcludeAttr := (not Attr) and ($1e);
|
||||
Rslt.FindHandle := 0;
|
||||
|
||||
new(Anchor);
|
||||
FillChar(Anchor^,sizeof(TAnchorPath),#0);
|
||||
|
||||
if MatchFirst(pchar(tmpStr),Anchor)<>0 then exit;
|
||||
Rslt.FindHandle := longint(Anchor);
|
||||
|
||||
with Anchor^.ap_Info do begin
|
||||
Name := fib_FileName;
|
||||
SetCodePage(Name,DefaultFileSystemCodePage,false);
|
||||
|
||||
Rslt.Size := fib_Size;
|
||||
Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
|
||||
if not validDate then exit;
|
||||
|
||||
{ "128" is Windows "NORMALFILE" attribute. Some buggy code depend on this... :( (KB) }
|
||||
Rslt.Attr := 128;
|
||||
|
||||
if fib_DirEntryType > 0 then Rslt.Attr:=Rslt.Attr or faDirectory;
|
||||
if ((fib_Protection and FIBF_READ) <> 0) and
|
||||
((fib_Protection and FIBF_WRITE) = 0) then Rslt.Attr:=Rslt.Attr or faReadOnly;
|
||||
|
||||
result:=0; { Return zero if everything went OK }
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Function InternalFindNext (var Rslt : TAbstractSearchRec; var Name : RawByteString) : Longint;
|
||||
var
|
||||
Anchor: PAnchorPath;
|
||||
validDate: boolean;
|
||||
begin
|
||||
result:=-1;
|
||||
|
||||
Anchor:=PAnchorPath(Rslt.FindHandle);
|
||||
if not assigned(Anchor) then exit;
|
||||
if MatchNext(Anchor) <> 0 then exit;
|
||||
|
||||
with Anchor^.ap_Info do begin
|
||||
Name := fib_FileName;
|
||||
SetCodePage(Name,DefaultFileSystemCodePage,false);
|
||||
Rslt.Size := fib_Size;
|
||||
Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
|
||||
if not validDate then exit;
|
||||
|
||||
{ "128" is Windows "NORMALFILE" attribute. Some buggy code depend on this... :( (KB) }
|
||||
Rslt.Attr := 128;
|
||||
if fib_DirEntryType > 0 then Rslt.Attr:=Rslt.Attr or faDirectory;
|
||||
if ((fib_Protection and FIBF_READ) <> 0) and
|
||||
((fib_Protection and FIBF_WRITE) = 0) then Rslt.Attr:=Rslt.Attr or faReadOnly;
|
||||
|
||||
result:=0; { Return zero if everything went OK }
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Procedure InternalFindClose(var Handle: THandle);
|
||||
var
|
||||
Anchor: PAnchorPath;
|
||||
begin
|
||||
Anchor:=PAnchorPath(Handle);
|
||||
if not assigned(Anchor) then exit;
|
||||
MatchEnd(Anchor);
|
||||
Dispose(Anchor);
|
||||
Handle:=THandle(nil);
|
||||
end;
|
||||
|
||||
|
||||
(****** end of non portable routines ******)
|
||||
|
||||
Function FileGetAttr (Const FileName : RawByteString) : Longint;
|
||||
var
|
||||
F: file;
|
||||
attr: word;
|
||||
begin
|
||||
Assign(F,FileName);
|
||||
dos.GetFAttr(F,attr);
|
||||
if DosError <> 0 then
|
||||
FileGetAttr := -1
|
||||
else
|
||||
FileGetAttr := Attr;
|
||||
end;
|
||||
|
||||
|
||||
Function FileSetAttr (Const Filename : RawByteString; Attr: longint) : Longint;
|
||||
var
|
||||
F: file;
|
||||
begin
|
||||
Assign(F, FileName);
|
||||
Dos.SetFAttr(F, Attr and $ffff);
|
||||
FileSetAttr := DosError;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
Disk Functions
|
||||
****************************************************************************}
|
||||
|
||||
{
|
||||
The Diskfree and Disksize functions need a file on the specified drive, since this
|
||||
is required for the statfs system call.
|
||||
These filenames are set in drivestr[0..26], and have been preset to :
|
||||
0 - '.' (default drive - hence current dir is ok.)
|
||||
1 - '/fd0/.' (floppy drive 1 - should be adapted to local system )
|
||||
2 - '/fd1/.' (floppy drive 2 - should be adapted to local system )
|
||||
3 - '/' (C: equivalent of dos is the root partition)
|
||||
4..26 (can be set by you're own applications)
|
||||
! Use AddDisk() to Add new drives !
|
||||
They both return -1 when a failure occurs.
|
||||
}
|
||||
Const
|
||||
FixDriveStr : array[0..3] of pchar=(
|
||||
'.',
|
||||
'/fd0/.',
|
||||
'/fd1/.',
|
||||
'/.'
|
||||
);
|
||||
var
|
||||
Drives : byte;
|
||||
DriveStr : array[4..26] of pchar;
|
||||
|
||||
Procedure AddDisk(const path:string);
|
||||
begin
|
||||
if not (DriveStr[Drives]=nil) then
|
||||
FreeMem(DriveStr[Drives],StrLen(DriveStr[Drives])+1);
|
||||
GetMem(DriveStr[Drives],length(Path)+1);
|
||||
StrPCopy(DriveStr[Drives],path);
|
||||
inc(Drives);
|
||||
if Drives>26 then
|
||||
Drives:=4;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function DiskFree(Drive: Byte): int64;
|
||||
Begin
|
||||
DiskFree := dos.diskFree(Drive);
|
||||
End;
|
||||
|
||||
|
||||
Function DiskSize(Drive: Byte): int64;
|
||||
Begin
|
||||
DiskSize := dos.DiskSize(Drive);
|
||||
End;
|
||||
|
||||
function DirectoryExists(const Directory: RawByteString): Boolean;
|
||||
var
|
||||
tmpLock: LongInt;
|
||||
FIB : PFileInfoBlock;
|
||||
SystemDirName: RawByteString;
|
||||
begin
|
||||
result:=false;
|
||||
if (Directory='') or (InOutRes<>0) then exit;
|
||||
|
||||
SystemDirName:=PathConv(ToSingleByteFileSystemEncodedFileName(Directory));
|
||||
tmpLock:=Lock(PChar(SystemDirName),SHARED_LOCK);
|
||||
if tmpLock=0 then exit;
|
||||
|
||||
FIB:=nil; new(FIB);
|
||||
|
||||
if (Examine(tmpLock,FIB)=True) and (FIB^.fib_DirEntryType>0) then
|
||||
result:=True;
|
||||
|
||||
if tmpLock<>0 then Unlock(tmpLock);
|
||||
if assigned(FIB) then dispose(FIB);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
Locale Functions
|
||||
****************************************************************************}
|
||||
|
||||
Procedure GetLocalTime(var SystemTime: TSystemTime);
|
||||
var
|
||||
dayOfWeek: word;
|
||||
begin
|
||||
dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second,SystemTime.Millisecond);
|
||||
dos.GetDate(SystemTime.Year, SystemTime.Month, SystemTime.Day, DayOfWeek);
|
||||
end;
|
||||
|
||||
|
||||
Procedure InitAnsi;
|
||||
Var
|
||||
i : longint;
|
||||
begin
|
||||
{ Fill table entries 0 to 127 }
|
||||
for i := 0 to 96 do
|
||||
UpperCaseTable[i] := chr(i);
|
||||
for i := 97 to 122 do
|
||||
UpperCaseTable[i] := chr(i - 32);
|
||||
for i := 123 to 191 do
|
||||
UpperCaseTable[i] := chr(i);
|
||||
Move (CPISO88591UCT,UpperCaseTable[192],SizeOf(CPISO88591UCT));
|
||||
|
||||
for i := 0 to 64 do
|
||||
LowerCaseTable[i] := chr(i);
|
||||
for i := 65 to 90 do
|
||||
LowerCaseTable[i] := chr(i + 32);
|
||||
for i := 91 to 191 do
|
||||
LowerCaseTable[i] := chr(i);
|
||||
Move (CPISO88591LCT,UpperCaseTable[192],SizeOf(CPISO88591UCT));
|
||||
end;
|
||||
|
||||
|
||||
Procedure InitInternational;
|
||||
begin
|
||||
InitInternationalGeneric;
|
||||
InitAnsi;
|
||||
end;
|
||||
|
||||
function SysErrorMessage(ErrorCode: Integer): String;
|
||||
|
||||
begin
|
||||
{ Result:=StrError(ErrorCode);}
|
||||
end;
|
||||
|
||||
function GetLastOSError: Integer;
|
||||
begin
|
||||
result:=-1;
|
||||
end;
|
||||
|
||||
{****************************************************************************
|
||||
OS utility functions
|
||||
****************************************************************************}
|
||||
|
||||
var
|
||||
StrOfPaths: String;
|
||||
|
||||
function GetPathString: String;
|
||||
var
|
||||
f : text;
|
||||
s : string;
|
||||
tmpBat: string;
|
||||
tmpList: string;
|
||||
begin
|
||||
s := '';
|
||||
result := '';
|
||||
|
||||
tmpBat:='T:'+HexStr(FindTask(nil));
|
||||
tmpList:=tmpBat+'_path.tmp';
|
||||
tmpBat:=tmpBat+'_path.sh';
|
||||
|
||||
assign(f,tmpBat);
|
||||
rewrite(f);
|
||||
writeln(f,'path >'+tmpList);
|
||||
close(f);
|
||||
exec('C:Execute',tmpBat);
|
||||
erase(f);
|
||||
|
||||
assign(f,tmpList);
|
||||
reset(f);
|
||||
{ skip the first line, garbage }
|
||||
if not eof(f) then readln(f,s);
|
||||
while not eof(f) do begin
|
||||
readln(f,s);
|
||||
if result = '' then
|
||||
result := s
|
||||
else
|
||||
result := result + ';' + s;
|
||||
end;
|
||||
close(f);
|
||||
erase(f);
|
||||
end;
|
||||
|
||||
Function GetEnvironmentVariable(Const EnvVar : String) : String;
|
||||
begin
|
||||
if UpCase(envvar) = 'PATH' then begin
|
||||
if StrOfpaths = '' then StrOfPaths := GetPathString;
|
||||
Result:=StrOfPaths;
|
||||
end else
|
||||
Result:=Dos.Getenv(shortstring(EnvVar));
|
||||
end;
|
||||
|
||||
Function GetEnvironmentVariableCount : Integer;
|
||||
|
||||
begin
|
||||
// Result:=FPCCountEnvVar(EnvP);
|
||||
Result:=Dos.envCount;
|
||||
end;
|
||||
|
||||
Function GetEnvironmentString(Index : Integer) : {$ifdef FPC_RTL_UNICODE}UnicodeString{$else}AnsiString{$endif};
|
||||
|
||||
begin
|
||||
// Result:=FPCGetEnvStrFromP(Envp,Index);
|
||||
Result:=Dos.EnvStr(Index);
|
||||
end;
|
||||
|
||||
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]):
|
||||
integer;
|
||||
var
|
||||
tmpPath: AnsiString;
|
||||
convPath: AnsiString;
|
||||
CommandLine: AnsiString;
|
||||
tmpLock: longint;
|
||||
|
||||
E: EOSError;
|
||||
begin
|
||||
DosError:= 0;
|
||||
|
||||
convPath:=PathConv(Path);
|
||||
tmpPath:=convPath+' '+ComLine;
|
||||
|
||||
{ Here we must first check if the command we wish to execute }
|
||||
{ actually exists, because this is NOT handled by the }
|
||||
{ _SystemTagList call (program will abort!!) }
|
||||
|
||||
{ Try to open with shared lock }
|
||||
tmpLock:=Lock(PChar(convPath),SHARED_LOCK);
|
||||
if tmpLock<>0 then
|
||||
begin
|
||||
{ File exists - therefore unlock it }
|
||||
Unlock(tmpLock);
|
||||
result:=SystemTagList(PChar(tmpPath),nil);
|
||||
{ on return of -1 the shell could not be executed }
|
||||
{ probably because there was not enough memory }
|
||||
if result = -1 then
|
||||
DosError:=8;
|
||||
end
|
||||
else
|
||||
DosError:=3;
|
||||
|
||||
if DosError <> 0 then begin
|
||||
if ComLine = '' then
|
||||
CommandLine := Path
|
||||
else
|
||||
CommandLine := Path + ' ' + ComLine;
|
||||
|
||||
E := EOSError.CreateFmt (SExecuteProcessFailed, [CommandLine, DosError]);
|
||||
E.ErrorCode := DosError;
|
||||
raise E;
|
||||
end;
|
||||
end;
|
||||
|
||||
function ExecuteProcess (const Path: AnsiString;
|
||||
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
|
||||
var
|
||||
CommandLine: AnsiString;
|
||||
I: integer;
|
||||
|
||||
begin
|
||||
Commandline := '';
|
||||
for I := 0 to High (ComLine) do
|
||||
if Pos (' ', ComLine [I]) <> 0 then
|
||||
CommandLine := CommandLine + ' ' + '"' + ComLine [I] + '"'
|
||||
else
|
||||
CommandLine := CommandLine + ' ' + Comline [I];
|
||||
ExecuteProcess := ExecuteProcess (Path, CommandLine);
|
||||
end;
|
||||
|
||||
procedure Sleep(Milliseconds: cardinal);
|
||||
begin
|
||||
// Amiga dos.library Delay() has precision of 1/50 seconds
|
||||
Delay(Milliseconds div 20);
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
Initialization code
|
||||
****************************************************************************}
|
||||
|
||||
Initialization
|
||||
InitExceptions;
|
||||
InitInternational; { Initialize internationalization settings }
|
||||
OnBeep:=Nil; { No SysBeep() on Amiga, for now. Figure out if we want
|
||||
to use intuition.library/DisplayBeep() for this (KB) }
|
||||
StrOfPaths:='';
|
||||
|
||||
Finalization
|
||||
DoneExceptions;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user