Browse Source

* remote execute updates, see readme.txt

peter 21 years ago
parent
commit
514215ea0d
8 changed files with 265 additions and 398 deletions
  1. 35 7
      tests/Makefile
  2. 39 13
      tests/Makefile.fpc
  3. 18 9
      tests/readme.txt
  4. 12 127
      tests/units/Makefile
  5. 14 7
      tests/units/Makefile.fpc
  6. 60 213
      tests/utils/Makefile
  7. 77 19
      tests/utils/dotest.pp
  8. 10 3
      tests/utils/redir.pp

+ 35 - 7
tests/Makefile

@@ -1404,11 +1404,28 @@ endif
 ifndef TEST_OPT
 ifndef TEST_OPT
 TEST_OPT=
 TEST_OPT=
 endif
 endif
+ifndef TEST_FPC_VERSION
+TEST_FPC_COMPILERINFO:=$(shell $(TEST_FPC) -iVSPTPSOTO)
+TEST_FPC_VERSION:=$(word 1,$(TEST_FPC_COMPILERINFO))
+endif
+export TEST_FPC TEST_FPC_VERSION TEST_FPC_COMPILERINFO
+ifneq ($(words $(TEST_FPC_COMPILERINFO)),5)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSP)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTP)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSO)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTO)
+endif
+ifndef TEST_CPU_SOURCE
+TEST_CPU_SOURCE:=$(word 2,$(TEST_FPC_COMPILERINFO))
+endif
 ifndef TEST_CPU_TARGET
 ifndef TEST_CPU_TARGET
-TEST_CPU_TARGET=$(CPU_TARGET)
+TEST_CPU_TARGET:=$(word 3,$(TEST_FPC_COMPILERINFO))
+endif
+ifndef TEST_OS_SOURCE
+TEST_OS_SOURCE:=$(word 4,$(TEST_FPC_COMPILERINFO))
 endif
 endif
 ifndef TEST_OS_TARGET
 ifndef TEST_OS_TARGET
-TEST_OS_TARGET=$(OS_TARGET)
+TEST_OS_TARGET:=$(word 5,$(TEST_FPC_COMPILERINFO))
 endif
 endif
 ifndef TEST_CCOMPILER
 ifndef TEST_CCOMPILER
 ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET))
 ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET))
@@ -1420,10 +1437,6 @@ endif
 endif
 endif
 endif
 endif
 endif
 endif
-ifndef TEST_FPC_VERSION
-TEST_FPC_COMPILERINFO:=$(shell $(TEST_FPC) -iVSPTPSOTO)
-TEST_FPC_VERSION:=$(word 1,$(TEST_FPC_COMPILERINFO))
-endif
 ifndef FAILLIST
 ifndef FAILLIST
 export FAILLIST:=faillist
 export FAILLIST:=faillist
 endif
 endif
@@ -1465,7 +1478,7 @@ NOCOMSPEC=1
 endif
 endif
 units:
 units:
 	$(MAKE) -C units FPC=$(TEST_FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) \
 	$(MAKE) -C units FPC=$(TEST_FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) \
-			 OPT="$(TEST_OPT)" CCOMPILER=$(TEST_CCOMPILER)
+			 OPT="$(TEST_OPT)" CCOMPILER=$(TEST_CCOMPILER) BINUTILSPREFIX=$(TEST_BINUTILSPREFIX)
 copyfiles:
 copyfiles:
 	$(COPY) test/cg/obj/$(TEST_OS_TARGET)/$(TEST_CPU_TARGET)/ctest.o test/cg
 	$(COPY) test/cg/obj/$(TEST_OS_TARGET)/$(TEST_CPU_TARGET)/ctest.o test/cg
 	$(COPY) test/units/system/test*.txt .
 	$(COPY) test/units/system/test*.txt .
@@ -1480,6 +1493,21 @@ endif
 ifneq ($(OS_TARGET),$(TEST_OS_TARGET)) 
 ifneq ($(OS_TARGET),$(TEST_OS_TARGET)) 
 override DOTESTOPT+=-Y-T$(TEST_OS_TARGET)
 override DOTESTOPT+=-Y-T$(TEST_OS_TARGET)
 endif
 endif
+ifneq ($(OS_TARGET),$(TEST_BINUTILSPREFIX)) 
+override DOTESTOPT+=-Y-XP$(TEST_BINUTILSPREFIX)
+endif
+ifdef TEST_RSH
+override DOTESTOPT+=-R$(TEST_RSH)
+endif
+ifdef TEST_SSH
+override DOTESTOPT+=-R$(TEST_SSH) -S
+endif
+ifdef TEST_REMOTEPATH
+override DOTESTOPT+=-P$(TEST_REMOTEPATH)
+endif
+ifdef TEST_VERBOSE
+override DOTESTOPT+=-V
+endif
 ifdef TEST_OPT
 ifdef TEST_OPT
 override DOTESTOPT+=$(addprefix -Y, $(TEST_OPT))
 override DOTESTOPT+=$(addprefix -Y, $(TEST_OPT))
 endif
 endif

+ 39 - 13
tests/Makefile.fpc

@@ -29,15 +29,31 @@ ifndef TEST_OPT
 TEST_OPT=
 TEST_OPT=
 endif
 endif
 
 
+# Retrieve Test compiler info
+ifndef TEST_FPC_VERSION
+TEST_FPC_COMPILERINFO:=$(shell $(TEST_FPC) -iVSPTPSOTO)
+TEST_FPC_VERSION:=$(word 1,$(TEST_FPC_COMPILERINFO))
+endif
+export TEST_FPC TEST_FPC_VERSION TEST_FPC_COMPILERINFO
+ifneq ($(words $(TEST_FPC_COMPILERINFO)),5)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSP)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTP)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSO)
+TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTO)
+endif
+ifndef TEST_CPU_SOURCE
+TEST_CPU_SOURCE:=$(word 2,$(TEST_FPC_COMPILERINFO))
+endif
 ifndef TEST_CPU_TARGET
 ifndef TEST_CPU_TARGET
-TEST_CPU_TARGET=$(CPU_TARGET)
+TEST_CPU_TARGET:=$(word 3,$(TEST_FPC_COMPILERINFO))
+endif
+ifndef TEST_OS_SOURCE
+TEST_OS_SOURCE:=$(word 4,$(TEST_FPC_COMPILERINFO))
 endif
 endif
-
 ifndef TEST_OS_TARGET
 ifndef TEST_OS_TARGET
-TEST_OS_TARGET=$(OS_TARGET)
+TEST_OS_TARGET:=$(word 5,$(TEST_FPC_COMPILERINFO))
 endif
 endif
 
 
-
 ifndef TEST_CCOMPILER
 ifndef TEST_CCOMPILER
 ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET))
 ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET))
 ifeq ($(OS_TARGET),$(TEST_OS_TARGET))
 ifeq ($(OS_TARGET),$(TEST_OS_TARGET))
@@ -50,14 +66,6 @@ endif
 endif
 endif
 
 
 
 
-# FPC version (code copied from fpcmake.ini)
-ifndef TEST_FPC_VERSION
-# For 1.1 and up we can use a single compiler call to retrieve
-# all needed information
-TEST_FPC_COMPILERINFO:=$(shell $(TEST_FPC) -iVSPTPSOTO)
-TEST_FPC_VERSION:=$(word 1,$(TEST_FPC_COMPILERINFO))
-endif
-
 ################################
 ################################
 # Misc
 # Misc
 #
 #
@@ -132,7 +140,7 @@ endif
 
 
 units:
 units:
         $(MAKE) -C units FPC=$(TEST_FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) \
         $(MAKE) -C units FPC=$(TEST_FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) \
-                         OPT="$(TEST_OPT)" CCOMPILER=$(TEST_CCOMPILER)
+                         OPT="$(TEST_OPT)" CCOMPILER=$(TEST_CCOMPILER) BINUTILSPREFIX=$(TEST_BINUTILSPREFIX)
 
 
 ################################
 ################################
 # Copy test environment dependent files ctest.o to test/cg etc
 # Copy test environment dependent files ctest.o to test/cg etc
@@ -164,6 +172,24 @@ endif
 ifneq ($(OS_TARGET),$(TEST_OS_TARGET)) 
 ifneq ($(OS_TARGET),$(TEST_OS_TARGET)) 
 override DOTESTOPT+=-Y-T$(TEST_OS_TARGET)
 override DOTESTOPT+=-Y-T$(TEST_OS_TARGET)
 endif
 endif
+ifneq ($(OS_TARGET),$(TEST_BINUTILSPREFIX)) 
+override DOTESTOPT+=-Y-XP$(TEST_BINUTILSPREFIX)
+endif
+ifdef TEST_RSH
+override DOTESTOPT+=-R$(TEST_RSH)
+endif
+ifdef TEST_SSH
+override DOTESTOPT+=-R$(TEST_SSH) -S
+endif
+ifdef TEST_REMOTEPATH
+override DOTESTOPT+=-P$(TEST_REMOTEPATH)
+endif
+ifdef TEST_DELTEMP
+override DOTESTOPT+=-T
+endif
+ifdef TEST_VERBOSE
+override DOTESTOPT+=-V
+endif
 
 
 ifdef TEST_OPT
 ifdef TEST_OPT
 #  handles several options as well
 #  handles several options as well

+ 18 - 9
tests/readme.txt

@@ -85,12 +85,14 @@ This differentiation also enables cross testing.
 The following test options can be given:
 The following test options can be given:
 
 
 TEST_FPC               defaults to FPC
 TEST_FPC               defaults to FPC
-TEST_OS_TARGET         defaults to OS_TARGET
-TEST_CPU_TARGET        defaults to CPU_TARGET
+TEST_OS_TARGET         defaults to default target of TEST_FPC
+TEST_CPU_TARGET        defaults to default target of TEST_FPC
 TEST_OPT               defaults to ""
 TEST_OPT               defaults to ""
 TEST_FPC_VERSION       defaults to version of TEST_FPC
 TEST_FPC_VERSION       defaults to version of TEST_FPC
 TEST_CCOMPILER         defaults to installed gcc compiler, but only
 TEST_CCOMPILER         defaults to installed gcc compiler, but only
                        if driver and test full-targets are the same.
                        if driver and test full-targets are the same.
+TEST_VERBOSE           let dotest be more verbose, only usefull for debugging
+TEST_DELTEMP           delete temporary executable/object/ppu file, default is off
 
 
   (Please add more test options if needed)
   (Please add more test options if needed)
 
 
@@ -103,11 +105,18 @@ all other directories belongs to the test environment.
 Remote execution
 Remote execution
 ----------------
 ----------------
 Also remote execution of the testsuite is possible
 Also remote execution of the testsuite is possible
+
 Requirements:
 Requirements:
-- current build tree contains a cross compiled rtl/fcl
-- the cross compiler is installed works without passing extra parameters
-- the tests tree is somewhere on the remote machine e.g. /mnt/cf/fpc/tests
-- some dir, e.g. i386-utils contains a dotest executable for the host system
-- ssh must work without keyboard interaction or extra parameters
-then a example make command could be
-make DOTEST=i386-utils/dotest FPC=ppcarm "DOTESTOPT=-Y-XParm-linux- [email protected] -P/mnt/cf/fpc/tests -T"
+- rsh/ssh must work without keyboard interaction or extra parameters
+
+Test options:
+TEST_RSH             set this to the hostname when you want to use rsh/rcp
+                     to execute/copy the test
+TEST_SSH             set this to use ssh/scp to execute the test  
+TEST_REMOTEPATH      set remote path to use, default is /tmp
+TEST_DELTEMP         delete executable after running, so the remote system
+                     doesn't need much free disk space
+Example:
+
+make TEST_FPC=$HOME/fpc/compiler/ppcsparc TEST_BINUTILSPREFIX=sparc-linux- TEST_RSH=sunny TEST_REMOTEPATH=/tmp/tests
+make TEST_FPC=$HOME/fpc/compiler/ppcsparc TEST_BINUTILSPREFIX=sparc-linux- TEST_SSH=fpc@sunny TEST_REMOTEPATH=/tmp/tests

+ 12 - 127
tests/units/Makefile

@@ -1,8 +1,8 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/04/21]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/16]
 #
 #
 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=linux
 BSDs = freebsd netbsd openbsd darwin
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) sunos qnx
 UNIXs = linux $(BSDs) sunos qnx
 FORCE:
 FORCE:
@@ -942,126 +942,6 @@ ifeq ($(CPU_TARGET),arm)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif
 endif
 endif
-ifeq ($(OS_TARGET),go32v2)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),os2)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),freebsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),freebsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),beos)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),sparc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),amiga)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),atari)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),sunos)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),sunos)
-ifeq ($(CPU_TARGET),sparc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),qnx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),netware)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),openbsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),openbsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),wdosx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),palmos)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),macos)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),darwin)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),emx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
-ifeq ($(OS_TARGET),watcom)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-endif
-endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
@@ -1430,7 +1310,7 @@ ifdef FCL
 fcl-stamp: rtl-stamp
 fcl-stamp: rtl-stamp
 	$(ECHO) Copied > fcl-stamp
 	$(ECHO) Copied > fcl-stamp
 endif
 endif
-cleanrtlfcl : 
+cleanrtlfcl :
 	-$(DEL) *$(PPUEXT)
 	-$(DEL) *$(PPUEXT)
 	-$(DEL) *$(OEXT)
 	-$(DEL) *$(OEXT)
 	-$(DEL) *$(ASMEXT)
 	-$(DEL) *$(ASMEXT)
@@ -1441,13 +1321,18 @@ rtl : rtl-stamp
 ifdef FCL
 ifdef FCL
 fcl : fcl-stamp
 fcl : fcl-stamp
 endif
 endif
+TESTOPT=-n -FE. -Fu. -T$(OS_TARGET) $(OPT)
+ifneq ($(BINUTILSPREFIX),)
+override TESTOPT+=-XP$(BINUTILSPREFIX) -Xc
+endif
+TESTCOMPILER=$(FPC) $(TESTOPT)
 erroru$(PPUEXT) : erroru.pp
 erroru$(PPUEXT) : erroru.pp
-	$(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) erroru.pp
+	$(TESTCOMPILER) erroru.pp
 ptest$(PPUEXT) : ../test/cg/ptest.pp
 ptest$(PPUEXT) : ../test/cg/ptest.pp
-	$(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) -FE. ../test/cg/ptest.pp
+	$(TESTCOMPILER) ../test/cg/ptest.pp
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 win32err$(PPUEXT) : win32err.pp
 win32err$(PPUEXT) : win32err.pp
-	$(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) win32err.pp
+	$(TESTCOMPILER) win32err.pp
 endif
 endif
 ifdef CCOMPILER
 ifdef CCOMPILER
 ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o : ../test/cg/obj/ctest.c
 ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o : ../test/cg/obj/ctest.c
@@ -1458,6 +1343,6 @@ ifeq ($(OS_TARGET),win32)
 extra : win32err$(PPUEXT)
 extra : win32err$(PPUEXT)
 endif
 endif
 all : rtl $(FCL) extra
 all : rtl $(FCL) extra
-clean : cleanrtlfcl fpc_clean				
+clean : cleanrtlfcl fpc_clean
 clean_ctest :
 clean_ctest :
 	-$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o
 	-$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o

+ 14 - 7
tests/units/Makefile.fpc

@@ -65,7 +65,7 @@ fcl-stamp: rtl-stamp
         $(ECHO) Copied > fcl-stamp
         $(ECHO) Copied > fcl-stamp
 endif
 endif
 
 
-cleanrtlfcl : 
+cleanrtlfcl :
         -$(DEL) *$(PPUEXT)
         -$(DEL) *$(PPUEXT)
         -$(DEL) *$(OEXT)
         -$(DEL) *$(OEXT)
         -$(DEL) *$(ASMEXT)
         -$(DEL) *$(ASMEXT)
@@ -85,15 +85,22 @@ endif
 # Extra units
 # Extra units
 #
 #
 
 
+
+TESTOPT=-n -FE. -Fu. -T$(OS_TARGET) $(OPT)
+ifneq ($(BINUTILSPREFIX),)
+override TESTOPT+=-XP$(BINUTILSPREFIX) -Xc
+endif
+TESTCOMPILER=$(FPC) $(TESTOPT)
+
 erroru$(PPUEXT) : erroru.pp
 erroru$(PPUEXT) : erroru.pp
-        $(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) erroru.pp
+        $(TESTCOMPILER) erroru.pp
 
 
 ptest$(PPUEXT) : ../test/cg/ptest.pp
 ptest$(PPUEXT) : ../test/cg/ptest.pp
-        $(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) -FE. ../test/cg/ptest.pp
+        $(TESTCOMPILER) ../test/cg/ptest.pp
 
 
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 win32err$(PPUEXT) : win32err.pp
 win32err$(PPUEXT) : win32err.pp
-        $(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) win32err.pp
+        $(TESTCOMPILER) win32err.pp
 endif
 endif
 
 
 ifdef CCOMPILER
 ifdef CCOMPILER
@@ -107,7 +114,7 @@ extra : erroru$(PPUEXT) ptest$(PPUEXT) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)
 ifeq ($(OS_TARGET),win32)
 ifeq ($(OS_TARGET),win32)
 extra : win32err$(PPUEXT)
 extra : win32err$(PPUEXT)
 endif
 endif
-	
+
 
 
 #############################
 #############################
 # Main rules
 # Main rules
@@ -115,7 +122,7 @@ endif
 
 
 all : rtl $(FCL) extra
 all : rtl $(FCL) extra
 
 
-clean : cleanrtlfcl fpc_clean				
-				
+clean : cleanrtlfcl fpc_clean
+
 clean_ctest :
 clean_ctest :
         -$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o
         -$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o

+ 60 - 213
tests/utils/Makefile

@@ -1,24 +1,15 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/04/21]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/03/29]
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) sunos qnx
-FORCE:
-.PHONY: FORCE
+MAKEFILETARGETS=linux
 override PATH:=$(subst \,/,$(PATH))
 override PATH:=$(subst \,/,$(PATH))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
 ifeq ($(findstring ;,$(PATH)),)
 ifeq ($(findstring ;,$(PATH)),)
 inUnix=1
 inUnix=1
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
 else
 else
 SEARCHPATH:=$(subst ;, ,$(PATH))
 SEARCHPATH:=$(subst ;, ,$(PATH))
 endif
 endif
-endif
 SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
 SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
 ifeq ($(PWD),)
 ifeq ($(PWD),)
@@ -155,12 +146,6 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
 endif
 endif
 endif
 endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
 export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
 export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
 ifdef FPCDIR
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 override FPCDIR:=$(subst \,/,$(FPCDIR))
@@ -225,12 +210,48 @@ ifdef REQUIRE_PACKAGESDIR
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
 endif
 endif
 ifdef ZIPINSTALL
 ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
+ifeq ($(OS_TARGET),linux)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),freebsd)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),netbsd)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),openbsd)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),darwin)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),sunos)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),qnx)
+UNIXINSTALLDIR=1
 endif
 endif
 else
 else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
+ifeq ($(OS_SOURCE),linux)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_SOURCE),freebsd)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_SOURCE),netbsd)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_SOURCE),openbsd)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_SOURCE),darwin)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),sunos)
+UNIXINSTALLDIR=1
+endif
+ifeq ($(OS_TARGET),qnx)
+UNIXINSTALLDIR=1
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
@@ -239,7 +260,7 @@ INSTALL_PREFIX=$(PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_PREFIX
 ifndef INSTALL_PREFIX
-ifdef UNIXHier
+ifdef UNIXINSTALLDIR
 INSTALL_PREFIX=/usr/local
 INSTALL_PREFIX=/usr/local
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
@@ -257,8 +278,12 @@ ifndef DIST_DESTDIR
 DIST_DESTDIR:=$(BASEDIR)
 DIST_DESTDIR:=$(BASEDIR)
 endif
 endif
 export DIST_DESTDIR
 export DIST_DESTDIR
+BSDTARGETS=freebsd netbsd openbsd darwin
+ifneq ($(findstring $(OS_TARGET),$(BSDTARGETS)),)
+BSDhier=1
+endif
 ifndef INSTALL_BASEDIR
 ifndef INSTALL_BASEDIR
-ifdef UNIXHier
+ifdef UNIXINSTALLDIR
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
 else
 else
@@ -269,7 +294,7 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
 endif
 endif
 endif
 endif
 ifndef INSTALL_BINDIR
 ifndef INSTALL_BINDIR
-ifdef UNIXHier
+ifdef UNIXINSTALLDIR
 ifdef CROSSCOMPILE
 ifdef CROSSCOMPILE
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
 else
 else
@@ -299,23 +324,19 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_LIBDIR
 ifndef INSTALL_LIBDIR
-ifdef UNIXHier
+ifdef UNIXINSTALLDIR
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
 else
 else
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 endif
 endif
 endif
 endif
 ifndef INSTALL_SOURCEDIR
 ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
+ifdef UNIXINSTALLDIR
 ifdef BSDhier
 ifdef BSDhier
 SRCPREFIXDIR=share/src
 SRCPREFIXDIR=share/src
 else
 else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
 SRCPREFIXDIR=src
 SRCPREFIXDIR=src
 endif
 endif
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCSUBDIR
 ifdef INSTALL_FPCSUBDIR
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
 INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@@ -338,16 +359,12 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_DOCDIR
 ifndef INSTALL_DOCDIR
-ifdef UNIXHier
+ifdef UNIXINSTALLDIR
 ifdef BSDhier
 ifdef BSDhier
 DOCPREFIXDIR=share/doc
 DOCPREFIXDIR=share/doc
 else
 else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
 DOCPREFIXDIR=doc
 DOCPREFIXDIR=doc
 endif
 endif
-endif
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
@@ -362,28 +379,20 @@ endif
 endif
 endif
 endif
 endif
 ifndef INSTALL_EXAMPLEDIR
 ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
+ifdef UNIXINSTALLDIR
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
 else
 else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
 endif
 endif
-endif
 else
 else
 ifdef BSDhier
 ifdef BSDhier
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 else
 else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
 endif
 endif
 endif
 endif
-endif
 else
 else
 ifdef INSTALL_FPCPACKAGE
 ifdef INSTALL_FPCPACKAGE
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
 INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@@ -407,19 +416,7 @@ CROSSBINDIR=
 endif
 endif
 ifeq ($(OS_SOURCE),linux)
 ifeq ($(OS_SOURCE),linux)
 ifndef GCCLIBDIR
 ifndef GCCLIBDIR
-ifeq ($(CPU_TARGET),i386)
-ifneq ($(findstring x86_64,$(shell uname -a)),)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-else
-GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
-endif
-else
-GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
-endif
-else
-GCCLIBDIR:=$(shell dirname `$(BINUTILSPREFIX)gcc -print-libgcc-file-name`)
-endif
+GCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
 endif
 endif
 ifndef OTHERLIBDIR
 ifndef OTHERLIBDIR
 OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
 OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
@@ -711,6 +708,9 @@ DEBUGSYMEXT=.xcoff
 FPCMADE=fpcmade.macos
 FPCMADE=fpcmade.macos
 endif
 endif
 endif
 endif
+ifdef CROSSCOMPILE
+override ZIPSUFFIX:=$(CPU_TARGET)$(ZIPSUFFIX)cross
+endif
 ifndef ECHO
 ifndef ECHO
 ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
 ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
 ifeq ($(ECHO),)
 ifeq ($(ECHO),)
@@ -977,150 +977,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_MYSQL=1
 endif
 endif
 endif
 endif
-ifeq ($(OS_TARGET),go32v2)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),os2)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),freebsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),freebsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),beos)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),netbsd)
-ifeq ($(CPU_TARGET),sparc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),amiga)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),atari)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),sunos)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),sunos)
-ifeq ($(CPU_TARGET),sparc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),qnx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),netware)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),openbsd)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),openbsd)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),wdosx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),palmos)
-ifeq ($(CPU_TARGET),m68k)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),macos)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),darwin)
-ifeq ($(CPU_TARGET),powerpc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),emx)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
-ifeq ($(OS_TARGET),watcom)
-ifeq ($(CPU_TARGET),i386)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
 ifneq ($(PACKAGEDIR_RTL),)
@@ -1216,12 +1072,8 @@ ifdef RELEASE
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
 FPCCPUOPT:=-OG2p3
 FPCCPUOPT:=-OG2p3
 else
 else
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1
-else
 FPCCPUOPT:=
 FPCCPUOPT:=
 endif
 endif
-endif
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPT+=-Xs $(FPCCPUOPT) -n
 override FPCOPTDEF+=RELEASE
 override FPCOPTDEF+=RELEASE
 endif
 endif
@@ -1434,9 +1286,6 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
 endif
 endif
 ifdef CLEANPPUFILES
 ifdef CLEANPPUFILES
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
 override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 
-endif
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
 endif
 endif
@@ -1458,9 +1307,11 @@ ifdef CLEAN_FILES
 endif
 endif
 ifdef LIB_NAME
 ifdef LIB_NAME
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
 	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
+endif
+ifdef DEBUGSYMEXT
+	-$(DEL) *$(DEBUGSYMEXT)
 endif
 endif
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
 	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
 fpc_distclean: clean
 fpc_distclean: clean
 ifdef COMPILER_UNITTARGETDIR
 ifdef COMPILER_UNITTARGETDIR
 TARGETDIRCLEAN=fpc_clean
 TARGETDIRCLEAN=fpc_clean
@@ -1476,9 +1327,6 @@ endif
 ifdef AOUTEXT
 ifdef AOUTEXT
 	-$(DEL) *$(AOUTEXT)
 	-$(DEL) *$(AOUTEXT)
 endif
 endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
 .PHONY: fpc_baseinfo
 .PHONY: fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 override INFORULES+=fpc_baseinfo
 fpc_baseinfo:
 fpc_baseinfo:
@@ -1606,4 +1454,3 @@ clean: fpc_clean
 	-$(DEL) dbdigest$(EXEEXT)
 	-$(DEL) dbdigest$(EXEEXT)
 cleanall: fpc_cleanall
 cleanall: fpc_cleanall
 	-$(DEL) dbdigest$(EXEEXT)
 	-$(DEL) dbdigest$(EXEEXT)
-

+ 77 - 19
tests/utils/dotest.pp

@@ -26,6 +26,8 @@ type
   tcompinfo = (compver,comptarget,compcpu);
   tcompinfo = (compver,comptarget,compcpu);
 
 
 const
 const
+  ObjExt='o';
+  PPUExt='ppu';
 {$ifdef UNIX}
 {$ifdef UNIX}
   ExeExt='';
   ExeExt='';
 {$else UNIX}
 {$else UNIX}
@@ -54,8 +56,10 @@ const
   ExtraCompilerOpts : string = '';
   ExtraCompilerOpts : string = '';
   DelExecutable : boolean = false;
   DelExecutable : boolean = false;
   RemoteAddr : string = '';
   RemoteAddr : string = '';
-  RemotePath : string = '';
-
+  RemotePath : string = '/tmp';
+  rshprog : string = 'rsh';
+  rcpprog : string = 'rcp';
+  
 Function FileExists (Const F : String) : Boolean;
 Function FileExists (Const F : String) : Boolean;
 {
 {
   Returns True if the file exists, False if not.
   Returns True if the file exists, False if not.
@@ -156,6 +160,17 @@ begin
 end;
 end;
 
 
 
 
+Function SplitFileName(const s:string):string;
+var
+  p : dirstr;
+  n : namestr;
+  e : extstr;
+begin
+  FSplit(s,p,n,e);
+  SplitFileName:=n+e;
+end;
+
+
 function ForceExtension(Const HStr,ext:String):String;
 function ForceExtension(Const HStr,ext:String):String;
 {
 {
   Return a filename which certainly has the extension ext
   Return a filename which certainly has the extension ext
@@ -175,6 +190,18 @@ begin
 end;
 end;
 
 
 
 
+    Function RemoveFile(const f:string):boolean;
+      var
+        g : file;
+      begin
+        assign(g,f);
+        {$I-}
+         erase(g);
+        {$I+}
+        RemoveFile:=(ioresult=0);
+      end;
+
+
 procedure Copyfile(const fn1,fn2:string;append:boolean);
 procedure Copyfile(const fn1,fn2:string;append:boolean);
 const
 const
   bufsize = 16384;
   bufsize = 16384;
@@ -490,37 +517,41 @@ end;
 function RunExecutable:boolean;
 function RunExecutable:boolean;
 var
 var
   outname,
   outname,
-  TestExe : string;
+  TestRemoteExe,
+  TestExe  : string;
   execres  : boolean;
   execres  : boolean;
+  
+  function ExecuteRemote(const prog,args:string):boolean;
+  begin
+    Verbose(V_Debug,'RemoteExecuting '+Prog+' '+args);
+    ExecuteRemote:=ExecuteRedir(prog,args,'',OutName,'stdout');
+  end;
+  
 begin
 begin
   RunExecutable:=false;
   RunExecutable:=false;
   execres:=true;
   execres:=true;
   TestExe:=ForceExtension(PPFile,ExeExt);
   TestExe:=ForceExtension(PPFile,ExeExt);
   OutName:=ForceExtension(PPFile,'elg');
   OutName:=ForceExtension(PPFile,'elg');
-  Verbose(V_Debug,'Executing '+TestExe);
   if RemoteAddr<>'' then
   if RemoteAddr<>'' then
     begin
     begin
-      ExecuteRedir('ssh',RemoteAddr+' rm -f '+RemotePath+'/'+TestExe,'',OutName,'');
-      ExecuteRedir('scp',TestExe+' '+RemoteAddr+':'+RemotePath+'/'+TestExe,'',OutName,'');
-      { don't redirect interactive and graph programs .. }
-      if Config.IsInteractive or Config.UsesGraph then
-        ExecuteRedir(TestExe,'','','','')
-      else
-        ExecuteRedir('ssh',RemoteAddr+' '+RemotePath+'/'+TestExe,'',OutName,'');
-      if DelExecutable then
-        ExecuteRedir('ssh',RemoteAddr+' rm -f '+RemotePath+'/'+TestExe,'',OutName,'');
+      { We don't want to create subdirs, remove paths from the test }
+      TestRemoteExe:=RemotePath+'/'+SplitFileName(TestExe);
+      ExecuteRemote(rshprog,RemoteAddr+' rm -f '+TestRemoteExe);
+      ExecuteRemote(rcpprog,TestExe+' '+RemoteAddr+':'+TestRemoteExe);
+      execres:=ExecuteRemote(rshprog,RemoteAddr+' '+TestRemoteExe);
     end
     end
   else
   else
     begin
     begin
+      Verbose(V_Debug,'Executing '+TestExe);
       { don't redirect interactive and graph programs .. }
       { don't redirect interactive and graph programs .. }
       if Config.IsInteractive or Config.UsesGraph then
       if Config.IsInteractive or Config.UsesGraph then
         execres:=ExecuteRedir(TestExe,'','','','')
         execres:=ExecuteRedir(TestExe,'','','','')
       else
       else
-        execres:=ExecuteRedir(TestExe,'','',OutName,'');
+        execres:=ExecuteRedir(TestExe,'','',OutName,'stdout');
     end;
     end;
-  Verbose(V_Debug,'Exitcode '+ToStr(ExecuteResult));
 
 
   { Error during execution? }
   { Error during execution? }
+  Verbose(V_Debug,'Exitcode '+ToStr(ExecuteResult));
   if (not execres) and (ExecuteResult=0) then
   if (not execres) and (ExecuteResult=0) then
     begin
     begin
       AddLog(FailLogFile,TestName);
       AddLog(FailLogFile,TestName);
@@ -562,6 +593,16 @@ begin
      AddLog(ResLogFile,successfully_run+PPFileInfo);
      AddLog(ResLogFile,successfully_run+PPFileInfo);
      RunExecutable:=true;
      RunExecutable:=true;
    end;
    end;
+   
+  if DelExecutable then
+    begin
+      Verbose(V_Debug,'Deleting executable '+TestExe);
+      if RemoteAddr<>'' then
+        ExecuteRemote(rshprog,RemoteAddr+' rm -f '+TestRemoteExe);
+      RemoveFile(TestExe);
+      RemoveFile(ForceExtension(TestExe,ObjExt));
+      RemoveFile(ForceExtension(TestExe,PPUExt));
+    end;  	
 end;
 end;
 
 
 
 
@@ -584,9 +625,10 @@ var
     writeln('  -G            include graph tests');
     writeln('  -G            include graph tests');
     writeln('  -K            include known bug tests');
     writeln('  -K            include known bug tests');
     writeln('  -I            include interactive tests');
     writeln('  -I            include interactive tests');
-    writeln('  -R<remote>    run the tests remotely with the given ssh address');
+    writeln('  -R<remote>    run the tests remotely with the given rsh/ssh address');
+    writeln('  -S            use ssh instead of rsh');
     writeln('  -P<path>      path to the tests tree on the remote machine');
     writeln('  -P<path>      path to the tests tree on the remote machine');
-    writeln('  -T            remove executables after execution (applies only for remote tests)');
+    writeln('  -T            leave temporary files (executable,ppu,o)');
     writeln('  -Y<opts>      extra options passed to the compiler. Several -Y<opt> can be given.');
     writeln('  -Y<opts>      extra options passed to the compiler. Several -Y<opt> can be given.');
     halt(1);
     halt(1);
   end;
   end;
@@ -639,7 +681,14 @@ begin
 
 
          'R' : RemoteAddr:=Para;
          'R' : RemoteAddr:=Para;
 
 
-         'T' : DelExecutable:=true;
+         'T' :
+	   DelExecutable:=true;
+	   
+	 'S' : 
+	   begin
+	     rshprog:='ssh';
+	     rcpprog:='scp';
+	   end;
         end;
         end;
      end
      end
     else
     else
@@ -651,6 +700,12 @@ begin
     end;
     end;
   if (PPFile='') then
   if (PPFile='') then
    HelpScreen;
    HelpScreen;
+  { disable graph,interactive when running remote } 
+  if RemoteAddr<>'' then
+    begin
+      DoGraph:=false;
+      DoInteractive:=false;
+    end;
   SetPPFileInfo;
   SetPPFileInfo;
   TestName:=Copy(PPFile,1,Pos('.pp',PPFile)-1);
   TestName:=Copy(PPFile,1,Pos('.pp',PPFile)-1);
   Verbose(V_Debug,'Running test '+TestName+', file '+PPFile);
   Verbose(V_Debug,'Running test '+TestName+', file '+PPFile);
@@ -857,7 +912,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.34  2004-05-03 14:48:51  peter
+  Revision 1.35  2004-05-16 20:13:04  peter
+    * remote execute updates, see readme.txt
+
+  Revision 1.34  2004/05/03 14:48:51  peter
     * support redir from stderr to stdout so the same file can be used
     * support redir from stderr to stdout so the same file can be used
 
 
   Revision 1.33  2004/05/02 09:31:52  peter
   Revision 1.33  2004/05/02 09:31:52  peter

+ 10 - 3
tests/utils/redir.pp

@@ -112,6 +112,7 @@ Const
 
 
 var
 var
   FIN,FOUT,FERR     : ^File;
   FIN,FOUT,FERR     : ^File;
+  RedirStdErrToStdOut,
   RedirChangedOut,
   RedirChangedOut,
   RedirChangedIn    : Boolean;
   RedirChangedIn    : Boolean;
   RedirChangedError : Boolean;
   RedirChangedError : Boolean;
@@ -417,7 +418,8 @@ function ChangeRedirError(Const Redir : String; AppendToFile : Boolean) : Boolea
     ChangeRedirError:=False;
     ChangeRedirError:=False;
     If Redir = '' then
     If Redir = '' then
       Exit;
       Exit;
-    if Redir='stdout' then
+    RedirStdErrToStdOut:=(Redir='stdout');
+    if RedirStdErrToStdOut then
       begin
       begin
         PF:=FOut;
         PF:=FOut;
       end
       end
@@ -635,7 +637,9 @@ end;
     {$ifdef ver1_0}dup2{$else}fpdup2{$endif}(TempHError,StdErrorHandle);
     {$ifdef ver1_0}dup2{$else}fpdup2{$endif}(TempHError,StdErrorHandle);
 {$endif not win32}
 {$endif not win32}
 {$endif}
 {$endif}
-    Close (FERR^);
+    { don't close when redirected to STDOUT }
+    if not RedirStdErrToStdOut then
+      Close (FERR^);
     {$ifdef ver1_0}fdclose{$else}fpclose{$endif}(TempHError);
     {$ifdef ver1_0}fdclose{$else}fpclose{$endif}(TempHError);
     RedirChangedError:=false;
     RedirChangedError:=false;
   end;
   end;
@@ -983,7 +987,10 @@ finalization
 End.
 End.
 {
 {
   $Log$
   $Log$
-  Revision 1.17  2004-05-03 14:48:51  peter
+  Revision 1.18  2004-05-16 20:13:04  peter
+    * remote execute updates, see readme.txt
+
+  Revision 1.17  2004/05/03 14:48:51  peter
     * support redir from stderr to stdout so the same file can be used
     * support redir from stderr to stdout so the same file can be used
 
 
   Revision 1.16  2003/10/14 08:30:37  peter
   Revision 1.16  2003/10/14 08:30:37  peter