diff --git a/rtl/go32v2/Makefile b/rtl/go32v2/Makefile index 694886febd..38bd735d2c 100644 --- a/rtl/go32v2/Makefile +++ b/rtl/go32v2/Makefile @@ -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 -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)) ifeq ($(findstring ;,$(PATH)),) inUnix=1 @@ -10,7 +10,6 @@ SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH))) else SEARCHPATH:=$(subst ;, ,$(PATH)) endif -SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE)))) PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH)))) ifeq ($(PWD),) PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH)))) @@ -311,17 +310,9 @@ endif endif ifndef INSTALL_BINDIR ifdef UNIXINSTALLDIR -ifdef CROSSCOMPILE -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin -else INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin -endif -else -ifdef CROSSCOMPILE -INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin else INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin -endif ifdef INSTALL_FPCPACKAGE INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET) endif @@ -453,14 +444,6 @@ STATICLIBPREFIX= FPCMADE=fpcmade.dos ZIPSUFFIX=go32 endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -FPCMADE=fpcmade.wat -ZIPSUFFIX=watc -OEXT=.obj -ASMEXT=.asm -SHAREDLIBEXT=.dll -endif ifeq ($(OS_TARGET),linux) EXEEXT= HASSHAREDLIB=1 @@ -563,11 +546,6 @@ STATICLIBPREFIX= FPCMADE=fpcmade.dos ZIPSUFFIX=go32 endif -ifeq ($(OS_TARGET),watcom) -STATICLIBPREFIX= -FPCMADE=fpcmade.dos -ZIPSUFFIX=watcom -endif ifeq ($(OS_TARGET),linux) EXEEXT= HASSHAREDLIB=1 @@ -756,11 +734,7 @@ endif endif export MVPROG ifndef ECHOREDIR -ifndef inUnix -ECHOREDIR=echo -else -ECHOREDIR=$(ECHO) -endif +ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO)) endif ifndef COPY COPY:=$(CPPROG) -fp @@ -831,16 +805,14 @@ TARPROG:=$(firstword $(TARPROG)) endif endif 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 LDNAME=ld ARNAME=ar -endif +RCNAME=rc +ifeq ($(OS_TARGET),win32) +ASNAME=asw +LDNAME=ldw +ARNAME=arw endif ifndef ASPROG ifdef CROSSBINDIR @@ -922,14 +894,6 @@ endif ifeq ($(OS_SOURCE),openbsd) override FPCOPT+=-FD$(NEW_BINUTILS_PATH) endif -ifndef CROSSBOOTSTRAP -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc -endif -ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-Xr$(RLINKPATH) -endif -endif ifdef UNITDIR override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) endif @@ -1076,7 +1040,7 @@ fpc_debug: $(MAKE) all DEBUG=1 fpc_release: $(MAKE) all RELEASE=1 -.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res +.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res %$(PPUEXT): %.pp $(COMPILER) $< $(EXECPPAS) @@ -1089,14 +1053,10 @@ fpc_release: %$(EXEEXT): %.pas $(COMPILER) $< $(EXECPPAS) -%$(EXEEXT): %.dpr - $(COMPILER) $< - $(EXECPPAS) %.res: %.rc windres -i $< -o $@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) -vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR) .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall ifdef INSTALL_UNITS @@ -1372,7 +1332,7 @@ sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \ objpas$(PPUEXT) dos$(PPUEXT) go32$(PPUEXT) sysconst$(PPUEXT) $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \ - sysutils$(PPUEXT) typinfo$(PPUEXT) + sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT) $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp diff --git a/rtl/go32v2/Makefile.fpc b/rtl/go32v2/Makefile.fpc index 368ca7230f..44998344c7 100644 --- a/rtl/go32v2/Makefile.fpc +++ b/rtl/go32v2/Makefile.fpc @@ -154,7 +154,7 @@ sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \ $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \ - sysutils$(PPUEXT) typinfo$(PPUEXT) + sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT) $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) diff --git a/rtl/go32v2/sysutils.pp b/rtl/go32v2/sysutils.pp index a848caf640..5d8de1c996 100644 --- a/rtl/go32v2/sysutils.pp +++ b/rtl/go32v2/sysutils.pp @@ -24,6 +24,7 @@ interface uses go32,dos; +{$DEFINE HAS_SLEEP} { Include platform independent interface part } {$i sysutilh.inc} @@ -778,6 +779,70 @@ begin 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 @@ -791,7 +856,10 @@ Finalization end. { $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 Revision 1.19 2003/11/26 20:00:19 florian