mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 07:28:26 +02:00
* remote execute updates, see readme.txt
This commit is contained in:
parent
94adf83a8b
commit
514215ea0d
@ -1404,11 +1404,28 @@ endif
|
||||
ifndef TEST_OPT
|
||||
TEST_OPT=
|
||||
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
|
||||
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
|
||||
ifndef TEST_OS_TARGET
|
||||
TEST_OS_TARGET=$(OS_TARGET)
|
||||
TEST_OS_TARGET:=$(word 5,$(TEST_FPC_COMPILERINFO))
|
||||
endif
|
||||
ifndef TEST_CCOMPILER
|
||||
ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET))
|
||||
@ -1420,10 +1437,6 @@ 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
|
||||
export FAILLIST:=faillist
|
||||
endif
|
||||
@ -1465,7 +1478,7 @@ NOCOMSPEC=1
|
||||
endif
|
||||
units:
|
||||
$(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:
|
||||
$(COPY) test/cg/obj/$(TEST_OS_TARGET)/$(TEST_CPU_TARGET)/ctest.o test/cg
|
||||
$(COPY) test/units/system/test*.txt .
|
||||
@ -1480,6 +1493,21 @@ endif
|
||||
ifneq ($(OS_TARGET),$(TEST_OS_TARGET))
|
||||
override DOTESTOPT+=-Y-T$(TEST_OS_TARGET)
|
||||
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
|
||||
override DOTESTOPT+=$(addprefix -Y, $(TEST_OPT))
|
||||
endif
|
||||
|
@ -29,15 +29,31 @@ ifndef TEST_OPT
|
||||
TEST_OPT=
|
||||
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
|
||||
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
|
||||
|
||||
ifndef TEST_OS_TARGET
|
||||
TEST_OS_TARGET=$(OS_TARGET)
|
||||
TEST_OS_TARGET:=$(word 5,$(TEST_FPC_COMPILERINFO))
|
||||
endif
|
||||
|
||||
|
||||
ifndef TEST_CCOMPILER
|
||||
ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET))
|
||||
ifeq ($(OS_TARGET),$(TEST_OS_TARGET))
|
||||
@ -50,14 +66,6 @@ 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
|
||||
#
|
||||
@ -132,7 +140,7 @@ endif
|
||||
|
||||
units:
|
||||
$(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
|
||||
@ -164,6 +172,24 @@ endif
|
||||
ifneq ($(OS_TARGET),$(TEST_OS_TARGET))
|
||||
override DOTESTOPT+=-Y-T$(TEST_OS_TARGET)
|
||||
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
|
||||
# handles several options as well
|
||||
|
@ -85,12 +85,14 @@ This differentiation also enables cross testing.
|
||||
The following test options can be given:
|
||||
|
||||
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_FPC_VERSION defaults to version of TEST_FPC
|
||||
TEST_CCOMPILER defaults to installed gcc compiler, but only
|
||||
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)
|
||||
|
||||
@ -103,11 +105,18 @@ all other directories belongs to the test environment.
|
||||
Remote execution
|
||||
----------------
|
||||
Also remote execution of the testsuite is possible
|
||||
|
||||
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- -Rroot@192.168.44.9 -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
|
||||
|
@ -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
|
||||
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
|
||||
UNIXs = linux $(BSDs) sunos qnx
|
||||
FORCE:
|
||||
@ -942,126 +942,6 @@ ifeq ($(CPU_TARGET),arm)
|
||||
REQUIRE_PACKAGES_RTL=1
|
||||
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
|
||||
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
|
||||
ifneq ($(PACKAGEDIR_RTL),)
|
||||
@ -1430,7 +1310,7 @@ ifdef FCL
|
||||
fcl-stamp: rtl-stamp
|
||||
$(ECHO) Copied > fcl-stamp
|
||||
endif
|
||||
cleanrtlfcl :
|
||||
cleanrtlfcl :
|
||||
-$(DEL) *$(PPUEXT)
|
||||
-$(DEL) *$(OEXT)
|
||||
-$(DEL) *$(ASMEXT)
|
||||
@ -1441,13 +1321,18 @@ rtl : rtl-stamp
|
||||
ifdef FCL
|
||||
fcl : fcl-stamp
|
||||
endif
|
||||
TESTOPT=-n -FE. -Fu. -T$(OS_TARGET) $(OPT)
|
||||
ifneq ($(BINUTILSPREFIX),)
|
||||
override TESTOPT+=-XP$(BINUTILSPREFIX) -Xc
|
||||
endif
|
||||
TESTCOMPILER=$(FPC) $(TESTOPT)
|
||||
erroru$(PPUEXT) : erroru.pp
|
||||
$(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) erroru.pp
|
||||
$(TESTCOMPILER) erroru.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)
|
||||
win32err$(PPUEXT) : win32err.pp
|
||||
$(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) win32err.pp
|
||||
$(TESTCOMPILER) win32err.pp
|
||||
endif
|
||||
ifdef CCOMPILER
|
||||
../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)
|
||||
endif
|
||||
all : rtl $(FCL) extra
|
||||
clean : cleanrtlfcl fpc_clean
|
||||
clean : cleanrtlfcl fpc_clean
|
||||
clean_ctest :
|
||||
-$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o
|
||||
|
@ -65,7 +65,7 @@ fcl-stamp: rtl-stamp
|
||||
$(ECHO) Copied > fcl-stamp
|
||||
endif
|
||||
|
||||
cleanrtlfcl :
|
||||
cleanrtlfcl :
|
||||
-$(DEL) *$(PPUEXT)
|
||||
-$(DEL) *$(OEXT)
|
||||
-$(DEL) *$(ASMEXT)
|
||||
@ -85,15 +85,22 @@ endif
|
||||
# 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
|
||||
$(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) erroru.pp
|
||||
$(TESTCOMPILER) erroru.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)
|
||||
win32err$(PPUEXT) : win32err.pp
|
||||
$(FPC) -n -Fu. -T$(OS_TARGET) $(OPT) win32err.pp
|
||||
$(TESTCOMPILER) win32err.pp
|
||||
endif
|
||||
|
||||
ifdef CCOMPILER
|
||||
@ -107,7 +114,7 @@ extra : erroru$(PPUEXT) ptest$(PPUEXT) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)
|
||||
ifeq ($(OS_TARGET),win32)
|
||||
extra : win32err$(PPUEXT)
|
||||
endif
|
||||
|
||||
|
||||
|
||||
#############################
|
||||
# Main rules
|
||||
@ -115,7 +122,7 @@ endif
|
||||
|
||||
all : rtl $(FCL) extra
|
||||
|
||||
clean : cleanrtlfcl fpc_clean
|
||||
|
||||
clean : cleanrtlfcl fpc_clean
|
||||
|
||||
clean_ctest :
|
||||
-$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o
|
||||
|
@ -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
|
||||
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))
|
||||
ifneq ($(findstring darwin,$(OSTYPE)),)
|
||||
inUnix=1 #darwin
|
||||
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
|
||||
else
|
||||
ifeq ($(findstring ;,$(PATH)),)
|
||||
inUnix=1
|
||||
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
|
||||
else
|
||||
SEARCHPATH:=$(subst ;, ,$(PATH))
|
||||
endif
|
||||
endif
|
||||
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
|
||||
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
|
||||
ifeq ($(PWD),)
|
||||
@ -155,12 +146,6 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
|
||||
$(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
|
||||
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
|
||||
ifdef FPCDIR
|
||||
override FPCDIR:=$(subst \,/,$(FPCDIR))
|
||||
@ -225,12 +210,48 @@ ifdef REQUIRE_PACKAGESDIR
|
||||
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
|
||||
endif
|
||||
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
|
||||
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
|
||||
ifndef INSTALL_PREFIX
|
||||
@ -239,7 +260,7 @@ INSTALL_PREFIX=$(PREFIX)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_PREFIX
|
||||
ifdef UNIXHier
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_PREFIX=/usr/local
|
||||
else
|
||||
ifdef INSTALL_FPCPACKAGE
|
||||
@ -257,8 +278,12 @@ ifndef DIST_DESTDIR
|
||||
DIST_DESTDIR:=$(BASEDIR)
|
||||
endif
|
||||
export DIST_DESTDIR
|
||||
BSDTARGETS=freebsd netbsd openbsd darwin
|
||||
ifneq ($(findstring $(OS_TARGET),$(BSDTARGETS)),)
|
||||
BSDhier=1
|
||||
endif
|
||||
ifndef INSTALL_BASEDIR
|
||||
ifdef UNIXHier
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef INSTALL_FPCPACKAGE
|
||||
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
|
||||
else
|
||||
@ -269,7 +294,7 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_BINDIR
|
||||
ifdef UNIXHier
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef CROSSCOMPILE
|
||||
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
|
||||
else
|
||||
@ -299,23 +324,19 @@ endif
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_LIBDIR
|
||||
ifdef UNIXHier
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
|
||||
else
|
||||
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_SOURCEDIR
|
||||
ifdef UNIXHier
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef BSDhier
|
||||
SRCPREFIXDIR=share/src
|
||||
else
|
||||
ifdef linuxHier
|
||||
SRCPREFIXDIR=share/src
|
||||
else
|
||||
SRCPREFIXDIR=src
|
||||
endif
|
||||
endif
|
||||
ifdef INSTALL_FPCPACKAGE
|
||||
ifdef INSTALL_FPCSUBDIR
|
||||
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
|
||||
@ -338,16 +359,12 @@ endif
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_DOCDIR
|
||||
ifdef UNIXHier
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef BSDhier
|
||||
DOCPREFIXDIR=share/doc
|
||||
else
|
||||
ifdef linuxHier
|
||||
DOCPREFIXDIR=share/doc
|
||||
else
|
||||
DOCPREFIXDIR=doc
|
||||
endif
|
||||
endif
|
||||
ifdef INSTALL_FPCPACKAGE
|
||||
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
|
||||
else
|
||||
@ -362,28 +379,20 @@ endif
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_EXAMPLEDIR
|
||||
ifdef UNIXHier
|
||||
ifdef UNIXINSTALLDIR
|
||||
ifdef INSTALL_FPCPACKAGE
|
||||
ifdef BSDhier
|
||||
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
|
||||
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)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
ifdef BSDhier
|
||||
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
|
||||
else
|
||||
ifdef linuxHier
|
||||
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
|
||||
else
|
||||
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
ifdef INSTALL_FPCPACKAGE
|
||||
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
|
||||
@ -407,19 +416,7 @@ CROSSBINDIR=
|
||||
endif
|
||||
ifeq ($(OS_SOURCE),linux)
|
||||
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
|
||||
ifndef OTHERLIBDIR
|
||||
OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
|
||||
@ -711,6 +708,9 @@ DEBUGSYMEXT=.xcoff
|
||||
FPCMADE=fpcmade.macos
|
||||
endif
|
||||
endif
|
||||
ifdef CROSSCOMPILE
|
||||
override ZIPSUFFIX:=$(CPU_TARGET)$(ZIPSUFFIX)cross
|
||||
endif
|
||||
ifndef ECHO
|
||||
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(ECHO),)
|
||||
@ -977,150 +977,6 @@ REQUIRE_PACKAGES_RTL=1
|
||||
REQUIRE_PACKAGES_MYSQL=1
|
||||
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
|
||||
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
|
||||
ifneq ($(PACKAGEDIR_RTL),)
|
||||
@ -1216,12 +1072,8 @@ ifdef RELEASE
|
||||
ifeq ($(CPU_TARGET),i386)
|
||||
FPCCPUOPT:=-OG2p3
|
||||
else
|
||||
ifeq ($(CPU_TARGET),powerpc)
|
||||
FPCCPUOPT:=-O1
|
||||
else
|
||||
FPCCPUOPT:=
|
||||
endif
|
||||
endif
|
||||
override FPCOPT+=-Xs $(FPCCPUOPT) -n
|
||||
override FPCOPTDEF+=RELEASE
|
||||
endif
|
||||
@ -1434,9 +1286,6 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
|
||||
endif
|
||||
ifdef 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 CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
|
||||
endif
|
||||
@ -1458,9 +1307,11 @@ ifdef CLEAN_FILES
|
||||
endif
|
||||
ifdef LIB_NAME
|
||||
-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
|
||||
endif
|
||||
ifdef DEBUGSYMEXT
|
||||
-$(DEL) *$(DEBUGSYMEXT)
|
||||
endif
|
||||
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
|
||||
-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
|
||||
fpc_distclean: clean
|
||||
ifdef COMPILER_UNITTARGETDIR
|
||||
TARGETDIRCLEAN=fpc_clean
|
||||
@ -1476,9 +1327,6 @@ endif
|
||||
ifdef AOUTEXT
|
||||
-$(DEL) *$(AOUTEXT)
|
||||
endif
|
||||
ifdef DEBUGSYMEXT
|
||||
-$(DEL) *$(DEBUGSYMEXT)
|
||||
endif
|
||||
.PHONY: fpc_baseinfo
|
||||
override INFORULES+=fpc_baseinfo
|
||||
fpc_baseinfo:
|
||||
@ -1606,4 +1454,3 @@ clean: fpc_clean
|
||||
-$(DEL) dbdigest$(EXEEXT)
|
||||
cleanall: fpc_cleanall
|
||||
-$(DEL) dbdigest$(EXEEXT)
|
||||
|
||||
|
@ -26,6 +26,8 @@ type
|
||||
tcompinfo = (compver,comptarget,compcpu);
|
||||
|
||||
const
|
||||
ObjExt='o';
|
||||
PPUExt='ppu';
|
||||
{$ifdef UNIX}
|
||||
ExeExt='';
|
||||
{$else UNIX}
|
||||
@ -54,8 +56,10 @@ const
|
||||
ExtraCompilerOpts : string = '';
|
||||
DelExecutable : boolean = false;
|
||||
RemoteAddr : string = '';
|
||||
RemotePath : string = '';
|
||||
|
||||
RemotePath : string = '/tmp';
|
||||
rshprog : string = 'rsh';
|
||||
rcpprog : string = 'rcp';
|
||||
|
||||
Function FileExists (Const F : String) : Boolean;
|
||||
{
|
||||
Returns True if the file exists, False if not.
|
||||
@ -156,6 +160,17 @@ begin
|
||||
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;
|
||||
{
|
||||
Return a filename which certainly has the extension ext
|
||||
@ -175,6 +190,18 @@ begin
|
||||
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);
|
||||
const
|
||||
bufsize = 16384;
|
||||
@ -490,37 +517,41 @@ end;
|
||||
function RunExecutable:boolean;
|
||||
var
|
||||
outname,
|
||||
TestExe : string;
|
||||
TestRemoteExe,
|
||||
TestExe : string;
|
||||
execres : boolean;
|
||||
|
||||
function ExecuteRemote(const prog,args:string):boolean;
|
||||
begin
|
||||
Verbose(V_Debug,'RemoteExecuting '+Prog+' '+args);
|
||||
ExecuteRemote:=ExecuteRedir(prog,args,'',OutName,'stdout');
|
||||
end;
|
||||
|
||||
begin
|
||||
RunExecutable:=false;
|
||||
execres:=true;
|
||||
TestExe:=ForceExtension(PPFile,ExeExt);
|
||||
OutName:=ForceExtension(PPFile,'elg');
|
||||
Verbose(V_Debug,'Executing '+TestExe);
|
||||
if RemoteAddr<>'' then
|
||||
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
|
||||
else
|
||||
begin
|
||||
Verbose(V_Debug,'Executing '+TestExe);
|
||||
{ don't redirect interactive and graph programs .. }
|
||||
if Config.IsInteractive or Config.UsesGraph then
|
||||
execres:=ExecuteRedir(TestExe,'','','','')
|
||||
else
|
||||
execres:=ExecuteRedir(TestExe,'','',OutName,'');
|
||||
execres:=ExecuteRedir(TestExe,'','',OutName,'stdout');
|
||||
end;
|
||||
Verbose(V_Debug,'Exitcode '+ToStr(ExecuteResult));
|
||||
|
||||
{ Error during execution? }
|
||||
Verbose(V_Debug,'Exitcode '+ToStr(ExecuteResult));
|
||||
if (not execres) and (ExecuteResult=0) then
|
||||
begin
|
||||
AddLog(FailLogFile,TestName);
|
||||
@ -562,6 +593,16 @@ begin
|
||||
AddLog(ResLogFile,successfully_run+PPFileInfo);
|
||||
RunExecutable:=true;
|
||||
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;
|
||||
|
||||
|
||||
@ -584,9 +625,10 @@ var
|
||||
writeln(' -G include graph tests');
|
||||
writeln(' -K include known bug 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(' -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.');
|
||||
halt(1);
|
||||
end;
|
||||
@ -639,7 +681,14 @@ begin
|
||||
|
||||
'R' : RemoteAddr:=Para;
|
||||
|
||||
'T' : DelExecutable:=true;
|
||||
'T' :
|
||||
DelExecutable:=true;
|
||||
|
||||
'S' :
|
||||
begin
|
||||
rshprog:='ssh';
|
||||
rcpprog:='scp';
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
@ -651,6 +700,12 @@ begin
|
||||
end;
|
||||
if (PPFile='') then
|
||||
HelpScreen;
|
||||
{ disable graph,interactive when running remote }
|
||||
if RemoteAddr<>'' then
|
||||
begin
|
||||
DoGraph:=false;
|
||||
DoInteractive:=false;
|
||||
end;
|
||||
SetPPFileInfo;
|
||||
TestName:=Copy(PPFile,1,Pos('.pp',PPFile)-1);
|
||||
Verbose(V_Debug,'Running test '+TestName+', file '+PPFile);
|
||||
@ -857,7 +912,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.33 2004/05/02 09:31:52 peter
|
||||
|
@ -112,6 +112,7 @@ Const
|
||||
|
||||
var
|
||||
FIN,FOUT,FERR : ^File;
|
||||
RedirStdErrToStdOut,
|
||||
RedirChangedOut,
|
||||
RedirChangedIn : Boolean;
|
||||
RedirChangedError : Boolean;
|
||||
@ -417,7 +418,8 @@ function ChangeRedirError(Const Redir : String; AppendToFile : Boolean) : Boolea
|
||||
ChangeRedirError:=False;
|
||||
If Redir = '' then
|
||||
Exit;
|
||||
if Redir='stdout' then
|
||||
RedirStdErrToStdOut:=(Redir='stdout');
|
||||
if RedirStdErrToStdOut then
|
||||
begin
|
||||
PF:=FOut;
|
||||
end
|
||||
@ -635,7 +637,9 @@ end;
|
||||
{$ifdef ver1_0}dup2{$else}fpdup2{$endif}(TempHError,StdErrorHandle);
|
||||
{$endif not win32}
|
||||
{$endif}
|
||||
Close (FERR^);
|
||||
{ don't close when redirected to STDOUT }
|
||||
if not RedirStdErrToStdOut then
|
||||
Close (FERR^);
|
||||
{$ifdef ver1_0}fdclose{$else}fpclose{$endif}(TempHError);
|
||||
RedirChangedError:=false;
|
||||
end;
|
||||
@ -983,7 +987,10 @@ finalization
|
||||
End.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.16 2003/10/14 08:30:37 peter
|
||||
|
Loading…
Reference in New Issue
Block a user