+ Added rtlconst dependency to classes.ppu and implemented sysutils.sleep

This commit is contained in:
michael 2004-01-10 20:25:14 +00:00
parent 32702205a0
commit 5a1477ef6f
3 changed files with 80 additions and 52 deletions

View File

@ -1,8 +1,8 @@
# #
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/01/05] # Don't edit, this file is generated by FPCMake Version 1.1 [2003/09/24]
# #
default: all default: all
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom MAKEFILETARGETS=go32v2
override PATH:=$(subst \,/,$(PATH)) override PATH:=$(subst \,/,$(PATH))
ifeq ($(findstring ;,$(PATH)),) ifeq ($(findstring ;,$(PATH)),)
inUnix=1 inUnix=1
@ -10,7 +10,6 @@ SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else else
SEARCHPATH:=$(subst ;, ,$(PATH)) SEARCHPATH:=$(subst ;, ,$(PATH))
endif endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
ifeq ($(PWD),) ifeq ($(PWD),)
PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
@ -311,17 +310,9 @@ endif
endif endif
ifndef INSTALL_BINDIR ifndef INSTALL_BINDIR
ifdef UNIXINSTALLDIR ifdef UNIXINSTALLDIR
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else
INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
endif
else
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else else
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
endif
ifdef INSTALL_FPCPACKAGE ifdef INSTALL_FPCPACKAGE
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET) INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
endif endif
@ -453,14 +444,6 @@ STATICLIBPREFIX=
FPCMADE=fpcmade.dos FPCMADE=fpcmade.dos
ZIPSUFFIX=go32 ZIPSUFFIX=go32
endif endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
FPCMADE=fpcmade.wat
ZIPSUFFIX=watc
OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
endif
ifeq ($(OS_TARGET),linux) ifeq ($(OS_TARGET),linux)
EXEEXT= EXEEXT=
HASSHAREDLIB=1 HASSHAREDLIB=1
@ -563,11 +546,6 @@ STATICLIBPREFIX=
FPCMADE=fpcmade.dos FPCMADE=fpcmade.dos
ZIPSUFFIX=go32 ZIPSUFFIX=go32
endif endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=watcom
endif
ifeq ($(OS_TARGET),linux) ifeq ($(OS_TARGET),linux)
EXEEXT= EXEEXT=
HASSHAREDLIB=1 HASSHAREDLIB=1
@ -756,11 +734,7 @@ endif
endif endif
export MVPROG export MVPROG
ifndef ECHOREDIR ifndef ECHOREDIR
ifndef inUnix ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
ECHOREDIR=echo
else
ECHOREDIR=$(ECHO)
endif
endif endif
ifndef COPY ifndef COPY
COPY:=$(CPPROG) -fp COPY:=$(CPPROG) -fp
@ -831,16 +805,14 @@ TARPROG:=$(firstword $(TARPROG))
endif endif
endif endif
export TARPROG export TARPROG
ASNAME=$(BINUTILSPREFIX)as
LDNAME=$(BINUTILSPREFIX)ld
ARNAME=$(BINUTILSPREFIX)ar
RCNAME=$(BINUTILSPREFIX)rc
ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
ifeq ($(OS_TARGET),win32)
ASNAME=as ASNAME=as
LDNAME=ld LDNAME=ld
ARNAME=ar ARNAME=ar
endif RCNAME=rc
ifeq ($(OS_TARGET),win32)
ASNAME=asw
LDNAME=ldw
ARNAME=arw
endif endif
ifndef ASPROG ifndef ASPROG
ifdef CROSSBINDIR ifdef CROSSBINDIR
@ -922,14 +894,6 @@ endif
ifeq ($(OS_SOURCE),openbsd) ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH) override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
endif endif
ifndef CROSSBOOTSTRAP
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
endif
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-Xr$(RLINKPATH)
endif
endif
ifdef UNITDIR ifdef UNITDIR
override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
endif endif
@ -1076,7 +1040,7 @@ fpc_debug:
$(MAKE) all DEBUG=1 $(MAKE) all DEBUG=1
fpc_release: fpc_release:
$(MAKE) all RELEASE=1 $(MAKE) all RELEASE=1
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
%$(PPUEXT): %.pp %$(PPUEXT): %.pp
$(COMPILER) $< $(COMPILER) $<
$(EXECPPAS) $(EXECPPAS)
@ -1089,14 +1053,10 @@ fpc_release:
%$(EXEEXT): %.pas %$(EXEEXT): %.pas
$(COMPILER) $< $(COMPILER) $<
$(EXECPPAS) $(EXECPPAS)
%$(EXEEXT): %.dpr
$(COMPILER) $<
$(EXECPPAS)
%.res: %.rc %.res: %.rc
windres -i $< -o $@ windres -i $< -o $@
vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR) vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
ifdef INSTALL_UNITS ifdef INSTALL_UNITS
@ -1372,7 +1332,7 @@ sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
objpas$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT) sysconst$(PPUEXT) objpas$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT) sysconst$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \ classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
sysutils$(PPUEXT) typinfo$(PPUEXT) sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp

View File

@ -154,7 +154,7 @@ sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \ classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
sysutils$(PPUEXT) typinfo$(PPUEXT) sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)

View File

@ -24,6 +24,7 @@ interface
uses uses
go32,dos; go32,dos;
{$DEFINE HAS_SLEEP}
{ Include platform independent interface part } { Include platform independent interface part }
{$i sysutilh.inc} {$i sysutilh.inc}
@ -778,6 +779,70 @@ begin
end; end;
end; end;
{*************************************************************************
Sleep (copied from crt.Delay)
*************************************************************************}
var
DelayCnt : Longint;
procedure Delayloop;assembler;
asm
.LDelayLoop1:
subl $1,%eax
jc .LDelayLoop2
cmpl %fs:(%edi),%ebx
je .LDelayLoop1
.LDelayLoop2:
end;
procedure initdelay;assembler;
asm
pushl %ebx
pushl %edi
{ for some reason, using int $31/ax=$901 doesn't work here }
{ and interrupts are always disabled at this point when }
{ running a program inside gdb(pas). Web bug 1345 (JM) }
sti
movl $0x46c,%edi
movl $-28,%edx
movl %fs:(%edi),%ebx
.LInitDel1:
cmpl %fs:(%edi),%ebx
je .LInitDel1
movl %fs:(%edi),%ebx
movl %edx,%eax
call DelayLoop
notl %eax
xorl %edx,%edx
movl $55,%ecx
divl %ecx
movl %eax,DelayCnt
popl %edi
popl %ebx
end;
procedure Sleep(MilliSeconds: Cardinal);assembler;
asm
pushl %ebx
pushl %edi
movl MilliSeconds,%ecx
jecxz .LDelay2
movl $0x400,%edi
movl DelayCnt,%edx
movl %fs:(%edi),%ebx
.LDelay1:
movl %edx,%eax
call DelayLoop
loop .LDelay1
.LDelay2:
popl %edi
popl %ebx
end;
{**************************************************************************** {****************************************************************************
Initialization code Initialization code
@ -791,7 +856,10 @@ Finalization
end. end.
{ {
$Log$ $Log$
Revision 1.20 2004-01-10 10:49:24 jonas Revision 1.21 2004-01-10 20:25:14 michael
+ Added rtlconst dependency to classes.ppu and implemented sysutils.sleep
Revision 1.20 2004/01/10 10:49:24 jonas
* fixed compilation * fixed compilation
Revision 1.19 2003/11/26 20:00:19 florian Revision 1.19 2003/11/26 20:00:19 florian