#*****************************************************************
#**                                                             **
#**             (C) Copyright 1992 the Regents of the           **
#**        University of California.  All Rights Reserved.      **
#**                                                             **
#**        This work was produced under the sponsorship of      **
#**         the U.S. Department of Energy.  The Government      **
#**                retains certain rights therein.              **
#**                                                             **
#**                         Written by                          **
#**         Distributed Programming Environments Project        **
#**           Computer Software and Networking Division,        **
#**                   Livermore Computer Center,                **
#**            Lawrence Livermore National Laboratory           **
#**                                                             **
#*****************************************************************

#	sccsid:	"@(#)Makefile	1.57 12/4/92 13:05:24 LLNL "

#
#    Make ELROS test suite
#

#
# The following macros must be appropriately defined.
#
#	RO_DIR - root directory for ELROS
#	RO_SWITCHES - C and ECC compilation options
#	RO_PLATFORMS - ISODE or PURESOCKETS or ISODE_and_PURESOCKETS
#	RO_TASKING_FLAG - __RO_TASKING or NO__RO_TASKING
#	ECC - Path name to ELROS driver (ecc)
#
# For the communications tests, the following macros must also be defined.
#
#	ISODE_OTHERS - Directory for finding Isode "others" files

include ../Make.Defaults

#
# Local macros
#
ECC=		$(RO_DIR)/driver/ecc
TEST_IP=	$(HOSTNAME)

CONFIG=		$(D)ECC=$(ECC) $(D)TEST_IP=$(TEST_IP) \
		$(D)RO_SWITCHES="$(RO_SWITCHES)"

MAKESTUB=	$(MAKE) -f Makestub $(CONFIG)
MAKEISODE=	$(MAKE) -f Makeisode $(CONFIG)
MAKESOCK=	$(MAKE) -f Makesocket $(CONFIG)

#
# Note: when adding a test to the test suite, you will need to update the
# appropriate macros below.  Update TESTFILES and whichever of STUBTESTS,
# SOCKTESTS, ISODETESTS, etc., are applicable. You may also need to update 
# the EXTRAS, AUXS, OUTS and DATS macros, if the new test uses any of the 
# indicated options on its Make command line.  Finally, you will need to add a 
# target for your new test, with appropriate dependecies and rules.  Don't
# forget to update the README file too!
#

#
#   Files to be created or checked by this Makefile
#
STUBTESTS= \
	T56.2 T56.1 \
	T55.6 T55.5 T55.4 T55.3 T55.2 T55.1 \
	T54.9 T54.8 T54.7 T54.6 T54.5 T54.3 T54.2 T54.1 \
	T53.5 T53.4 T53.3 T53.2 T53.1 \
	T52.4 T52.3 T52.2 T52.1 \
	T51.1 \
	T50.2 T50.1 \
	T49.2 T49.1 \
	T48.3 T48.2 T48.1 \
	T47.1 \
	T46.4 T46.3 T46.2 T46.1 \
	T45.2 T45.1 \
	T43.1 \
	T41.1 \
	T40.2 T40.1 \
	T39.3 T39.2 T39.1 \
	T38.1 \
	T37.2 T37.1 \
	T36.6 T36.5 T36.4 T36.3 T36.2 T36.1 \
	T35.7 T35.6 T35.5 T35.4 T35.3 T35.2 T35.1 \
	T34.1 \
	T33.1 \
	T31.1 \
	T30.3 T30.2 T30.1 \
	T29.2 T29.1 \
	T28.2 T28.1 \
	T27.2 T27.1 \
	T26.4 T26.3 T26.2 T26.1 \
	T25.7 T25.6 T25.5 T25.4 T25.3 T25.2 T25.1 \
	T24.2 T24.1 \
	T23.7 T23.6 T23.5 T23.4 T23.3 T23.2 T23.1 \
	T22.1 \
	T21.2 T21.1 \
	T20.6 T20.5 T20.4 T20.3 T20.2 T20.1 \
	T19.9 T19.8 T19.7 T19.6 T19.5 T19.4 T19.3 T19.2 T19.1 \
	T13.5 T13.4 T13.3 T13.2 T13.1 \
	T12.3 T12.2 T12.1 \
	T11.4 T11.3 T11.2 T11.1 \
	T10.4 T10.3 T10.2 T10.1 \
	T9.2 T9.1 \
	T8.6 T8.5 T8.4 T8.3 T8.2 T8.1 \
	T7.6 T7.5 T7.4 T7.3 T7.2 T7.1 \
	T6.6 T6.5 T6.4 T6.3 T6.2 T6.1 \
	T5.3 T5.2 T5.1 \
	T3.2 \
	T2.1

ISODETASKTESTS= \
	T17.2 T17.1

SOCKTASKTESTS=

ISODETESTS = \
	ISODE15.2 ISODE16.4 \
	T16.8 T16.3 T16.2 T16.1 \
	T15.2 \
	T14.2

SOCKTESTS= \
	T42.1 \
	T32.5 T32.4 T32.3 T32.2 T32.1 \
	T16.7 T16.6 T16.5 T16.4

ANYTESTS= \
	T41.1 \
	T40.2 T40.1 \
	T39.3 T39.2 T39.1 \
	T38.1 \
	T37.2 T37.1 \
	T36.6 T36.5 T36.4 T36.3 T36.2 T36.1 \
	T35.7 T35.6 T35.5 T35.4 T35.3 T35.2 T35.1 \
	T34.1

RECURTESTS= \
	T54.9 T54.8 T54.7 T54.6 T54.5 T54.4 T54.3 T54.2 T54.1 \
	T53.5 T53.4 T53.3 T53.2 T53.1 \
	T52.4 T52.3 T52.2 T52.1 \
	T51.1 \
	T49.2 T49.1 \
	T47.1 \
	T46.4 T46.3 T46.2 T46.1


#
# Files to be distributed
#

MAKES=	Makefile Makestub Makeisode Makesocket

$(D)EXTRAS=	bigsender.i Imatrix.i Tpasswd.i perfsub.c

AUXS=	T11.4.in T10.4.in T8.5.in T8.2.in T6.6.in T6.5.in 

DINS=	T11.4.din T10.4.din T8.5.din T8.2.din T6.6.din T6.5.din

OUTS=	complete.out \
	T54.9.out T54.8.out T54.7.out T54.6.out T54.5.out T54.4.out T54.3.out \
		T54.2.out T54.1.out \
	T53.5.out T53.4.out T53.3.out T53.2.out T53.1.out \
	T52.4.out T52.3.out T52.2.out T52.1.out \
	T51.1.out \
	T50.2.out T50.1.out \
	T49.2.out T49.1.out \
	T47.1.out \
	T46.4.out T46.3.out T46.2.out T46.1.out \
	T33.1.out \
	T13.5.out T13.4.out T13.3.out \
	T8.5.out

DATS=	T19.9.dat T19.8.dat T19.7.dat

LOGS=	T45.2.log T45.1.log

TESTFILES= \
	T56.2.ec T56.1.ec \
	T55.6.ec T55.5.ec T55.4.ec T55.3.ec T55.2.ec T55.1.ec \
	T54.9.ec T54.8.ec T54.7.ec T54.6.ec T54.5.ec T54.4.ec T54.3.ec \
		T54.2.ec T54.1.ec \
	T53.5.ec T53.4.ec T53.3.ec T53.2.ec T53.1.ec \
	T52.4.ec T52.3.ec T52.2.ec T52.1.ec \
	T51.1.ec \
	T50.2.ec T50.1.ec \
	T49.2.ec T49.1.ec \
        T48.3.ec T48.2.ec T48.1.ec \
	T47.1.ec \
	T46.4.ec T46.3.ec T46.2.ec T46.1.ec \
	T45.2.ec T45.1.ec \
	T43.1.ec \
	T42.1.ec \
	T41.1.ec \
	T40.2.ec T40.1.ec \
	T39.3.ec T39.2.ec T39.1.ec \
	T38.1.ec \
	T37.2.ec T37.1.ec \
	T36.6.ec T36.5.ec T36.4.ec T36.3.ec T36.2.ec T36.1.ec \
	T35.7.ec T35.6.ec T35.5.ec T35.4.ec T35.3.ec T35.2.ec T35.1.ec \
	T34.1.ec \
	T33.1.ec \
	T32.5.ec T32.4.ec T32.3.ec T32.2.ec T32.1.ec \
	T31.1.ec \
	T30.3.ec T30.2.ec T30.1.ec \
	T29.2.ec T29.1.ec \
	T28.2.ec T28.1.ec \
	T27.2.ec T27.1.ec \
	T26.4.ec T26.3.ec T26.2.ec T26.1.ec \
	T25.7.ec T25.6.ec T25.5.ec T25.4.ec T25.3.ec T25.2.ec T25.1.ec \
	T24.2.ec T24.1.ec \
	T23.7.ec T23.6.ec T23.5.ec T23.4.ec T23.3.ec T23.2.ec T23.1.ec \
	T22.1.ec \
	T21.2.ec T21.1.ec \
	T20.6.ec T20.5.ec T20.4.ec T20.3.ec T20.2.ec T20.1.ec \
	T19.9.ec T19.8.ec T19.7.ec T19.6.ec T19.5.ec T19.4.ec T19.3.ec \
		T19.2.ec T19.1.ec \
	T17.2.ec T17.1.ec \
	T16.8.ec T16.7.ec T16.6.ec T16.5.ec T16.4.ec T16.3.ec T16.2.ec \
		T16.1.ec \
	T15.2.ec \
	T14.2.ec \
	T13.5.ec T13.4.ec T13.3.ec T13.2.ec T13.1.ec \
	T12.3.ec T12.2.ec T12.1.ec \
	T11.4.ec T11.3.ec T11.2.ec T11.1.ec \
	T10.4.ec T10.3.ec T10.2.ec T10.1.ec \
	T9.2.ec T9.1.ec \
	T8.6.ec T8.5.ec T8.4.ec T8.3.ec T8.2.ec T8.1.ec \
	T7.6.ec T7.5.ec T7.4.ec T7.3.ec T7.2.ec T7.1.ec \
	T6.6.ec T6.5.ec T6.4.ec T6.3.ec T6.2.ec T6.1.ec \
	T5.3.ec T5.2.ec T5.1.ec \
	T3.2.ec \
	T2.1.ec

DISTFILES= README $(MAKES) $(TESTFILES) \
	$(EXTRAS) $(AUXS) $(DINS) $(OUTS) $(DATS) $(LOGS)

DISTDIRS= isode15.2 isode16.4

INSTALLFILES= ISODE15.2 ISODE16.4

#
# Targets
#
all:	showenv $(RO_TASKING_FLAG)_$(RO_PLATFORMS)

showenv:
	@$(ECHOTEXT)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'Running ELROS test suite' 
	@$(ECHOTEXT)
	@$(DATE)
	@$(ECHOTEXT)
	@$(ECHOTEXT) RO_DIR=$(RO_DIR)
	@$(ECHOTEXT) RO_SWITCHES=$(RO_SWITCHES)
	@$(ECHOTEXT) RO_PLATFORMS=$(RO_PLATFORMS)
	@$(ECHOTEXT) RO_TASKING_FLAG=$(RO_TASKING_FLAG)
	@$(ECHOTEXT) RO_TARGET=$(RO_TARGET)
	@$(ECHOTEXT) ECC=$(ECC)
	@$(ECHOTEXT) ISODE_OTHERS=$(ISODE_OTHERS)
	@$(ECHOTEXT) TEST_IP=$(TEST_IP)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT)

__RO_TASKING_ISODE: $(STUBTESTS) $(ISODETESTS) $(ISODETASKTESTS)

__RO_TASKING_PURESOCKETS: $(STUBTESTS) $(SOCKTESTS) $(SOCKTASKTESTS)

__RO_TASKING_ISODE_and_PURESOCKETS: $(STUBTESTS) $(ISODETESTS) $(ISODETASKTESTS) $(SOCKTESTS) $(SOCKTASKTESTS)

NO__RO_TASKING_ISODE: $(STUBTESTS) $(ISODETESTS)

NO__RO_TASKING_PURESOCKETS: $(STUBTESTS) $(SOCKTESTS)

NO__RO_TASKING_ISODE_and_PURESOCKETS: $(STUBTESTS) $(ISODETESTS) $(SOCKTESTS)

stubs: showenv $(STUBTESTS)

sockets: showenv $(SOCKTESTS)

isodes: showenv $(ISODETESTS)

tasks: showenv $(SOCKTASKTESTS) $(ISODETASKTESTS)

anys: showenv $(ANYTESTS)

recurs: showenv $(RECURTESTS)

################################################################################
#
#  TEST SUITE
#
################################################################################
T56.2:	T56.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T56.2 - Recursive Union with DynamicArray as arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T56.2

T56.1:  T56.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T56.1 - Recursive DynamicArray of nested Records as arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T56.1 

T55.6:  T55.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T55.6 - Record with Optional and Freeable and Unfreeable annotations'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T55.6

T55.5:  T55.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T55.5 - Array of mutually recursive Record and Union, and Rofreei'
	@$(ECHOTEXT) '               using Optional and Freeable and Unfreeable annotations'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T55.5

T55.4:  T55.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T55.4 - Array of mutually recursive Record and Union, and Rofreei'
	@$(ECHOTEXT) '               using Freeable and Unfreeable annotations'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T55.4

T55.3:  T55.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T55.3 - Array of mutually recursive Record and Union, and Rofreei'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T55.3

T55.2:	T55.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T55.2 - DynamicArray of { Record, DynamicArray, Union } and'
	@$(ECHOTEXT) '               vice versa, and Rofreei.  NOTE:  should produce'
	@$(ECHOTEXT) '               error messages about free routines that do not exist'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T55.2

T55.1:	T55.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T55.1 - Amalgamated, indefinite length Strings, and Rofreei'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T55.1

T54.9:  T54.9.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.9 - Array of mutually recursive Record <Sequence> and Union with'
	@$(ECHOTEXT) '               Noautotag, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.9 $(D)OUT=T54.9.out

T54.8:  T54.8.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.8 - Array of mutually recursive Record and Union, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.8 $(D)OUT=T54.8.out

T54.7:  T54.7.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.7 - Array of mutually recursive Records, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.7 $(D)OUT=T54.7.out

T54.6:  T54.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.6 - Mutually recursive Union and DynamicArray of Records,'
	@$(ECHOTEXT) '               and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.6 $(D)OUT=T54.6.out

T54.5:  T54.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.5 - Mutually recursive Record and DynamicArray, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.5 $(D)OUT=T54.5.out

T54.4:  T54.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.4 - Mutually recursive Unions, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.4 $(D)OUT=T54.4.out

T54.3:  T54.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.3 - Mutually recursive Union and Record, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.3 $(D)OUT=T54.3.out

T54.2:  T54.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.2 - Mutually recursive Record and Union, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.2 $(D)OUT=T54.2.out

T54.1:  T54.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T54.1 - Mutually recursive Records, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T54.1 $(D)OUT=T54.1.out

T53.5:  T53.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T53.5 - Array of recursive Record <Sequence> with Noautotag,'
	@$(ECHOTEXT) '               and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T53.5 $(D)OUT=T53.5.out

T53.4:  T53.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T53.4 - Array of recursive Record <Sequence>, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T53.4 $(D)OUT=T53.4.out

T53.3:  T53.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T53.3 - Array of recursive DynamicArray of Record, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T53.3 $(D)OUT=T53.3.out

T53.2:  T53.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T53.2 - Array of recursive Union, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T53.2 $(D)OUT=T53.2.out

T53.1:  T53.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T53.1 - Array of recursive Record, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T53.1 $(D)OUT=T53.1.out

T52.4:  T52.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T52.4 - Recursive DynamicArray of Unions, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T52.4 $(D)OUT=T52.4.out

T52.3:  T52.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T52.3 - Recursive DynamicArray of DynamicArray of nested Records,'
	@$(ECHOTEXT) '               and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T52.3 $(D)OUT=T52.3.out

T52.2:  T52.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T52.2 - Recursive DynamicArray of nested Records, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T52.2 $(D)OUT=T52.2.out

T52.1:  T52.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T52.1 - Recursive DynamicArray of Records, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T52.1 $(D)OUT=T52.1.out

T51.1:	T51.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T51.1 - Recursive Record of anonymous types, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T51.1 $(D)OUT=T51.1.out

T50.2:	T50.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T50.2 - Array of anonymous Union and Array of anonymous Array,'
	@$(ECHOTEXT) '               and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T50.2 $(D)OUT=T50.2.out

T50.1:	T50.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T50.1 - Array of anonymous Records, and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T50.1 $(D)OUT=T50.1.out

T49.2:	T49.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T49.2 - Recursive Unions with DynamicArray and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T49.2 $(D)OUT=T49.2.out

T49.1:	T49.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T49.1 - Recursive Records with DynamicArray and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T49.1 $(D)OUT=T49.1.out

T48.3:	T48.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T48.3 - Asn_1_ler rules with DynamicArray'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T48.3

T48.2:	T48.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T48.2 - Asn_1_ler rules with Amalgamated'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T48.2

T48.1:	T48.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T48.1 - Asn_1_ler rules with Integer and Real Arrays'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T48.1

T47.1:	T47.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T47.1 - Recursive Records with Roprinti and Optional'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T47.1 $(D)OUT=T47.1.out

T46.4:	T46.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T46.4 - Recursive Unions with Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T46.4 $(D)OUT=T46.4.out

T46.3:	T46.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T46.3 - Nested recursive Records with Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T46.3 $(D)OUT=T46.3.out

T46.2:	T46.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T46.2 - More recursive Records with Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T46.2 $(D)OUT=T46.2.out

T46.1:	T46.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T46.1 - Recursive Records with Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T46.1 $(D)OUT=T46.1.out

T45.2:	T45.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T45.2 - Amalgamated and log7 routines with indefinite length Strings'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T45.2 log

T45.1:	T45.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T45.1 - Amalgamated and log7 routines'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T45.1 log

T43.1:	T43.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T43.1 - Semantic & syntax error checking and recovery'
	@$(ECHOTEXT) '               NOTE:  test should produce preprocessor error messages!'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T43.1 

T42.1:	T42.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T42.1 - Checking linked ids'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T42.1 

T41.1:	T41.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T41.1 - Invoke with one arg (Array of Anys)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T41.1 

T40.2:	T40.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T40.2 - Invoke with one arg (Union with Any), Noautotag'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T40.2

T40.1:	T40.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T40.1 - Invoke with one arg (Union with Any)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T40.1

T39.3:	T39.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T39.3 - Invoke with two Any args (Record with Any), Noautotag'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T39.3 

T39.2:	T39.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T39.2 - Invoke with two Any args (Record with Any)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T39.2

T39.1:	T39.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T39.1 - Invoke with one Any arg (Record with Any)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T39.1

T38.1:	T38.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T38.1 - Encode Array of Anys (Integers)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T38.1 

T37.2:	T37.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T37.2 - Encode Union with one Any field, Noautotag'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T37.2 

T37.1:	T37.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T37.1 - Encode Union with one Any field'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T37.1 

T36.6:	T36.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T36.6 - Encode Record with one Any field, Optional, Noautotag'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T36.6

T36.5:	T36.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T36.5 - Encode Record with one Any field, Optional'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T36.5

T36.4:	T36.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T36.4 - Encode Record with two Any fields, Noautotag'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T36.4 

T36.3:	T36.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T36.3 - Encode Record with one Any field, Noautotag'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T36.3

T36.2:	T36.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T36.2 - Encode Record with two Any fields'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T36.2 

T36.1:	T36.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T36.1 - Encode Record with one Any field'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T36.1

T35.7:	T35.7.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T35.7 - Invoke with two Any args with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T35.7

T35.6:	T35.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T35.6 - Invoke with one Any arg with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T35.6

T35.5:	T35.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T35.5 - Invoke with two named Any args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T35.5

T35.4:	T35.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T35.4 - Invoke with one named Any arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T35.4

T35.3:	T35.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T35.3 - Invoke with three args (Any, Any, Integer)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T35.3

T35.2:	T35.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T35.2 - Invoke with two args (Any, Integer)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T35.2

T35.1:	T35.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T35.1 - Invoke with one Any arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T35.1

T34.1:	T34.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T34.1 - Encode, Copy, Decode Any with Integer(4)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T34.1

T33.1:	T33.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T33.1 - DynamicArray and Roprinti'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T33.1 $(D)OUT=T33.1.out

T32.5:	T32.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T32.5 - Call with InOut Array {size1, size2} arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T32.5

T32.4:	T32.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T32.4 - Call; two args (named args)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T32.4

T32.3:	T32.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T32.3 - Call; two args (Out,Out), with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T32.3

T32.2:	T32.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T32.2 - Call; two args (InOut,In), with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T32.2

T32.1:	T32.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T32.1 - Call; zero or one arg (In,Out), with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T32.1

T31.1:	T31.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T31.1 - Reject'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T31.1

T30.3:	T30.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T30.3 - Default Result' 
	@$(ECHOTEXT) $(BORDER) 
	-$(MAKESTUB) $(D)TEST=T30.3 

T30.2:	T30.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T30.2 - Result; two args with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T30.2

T30.1:	T30.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T30.1 - Result; zero or one arg with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T30.1

T29.2:	T29.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T29.2 - Error; two args with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T29.2

T29.1:	T29.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T29.1 - Error; zero or one arg with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T29.1

T28.2:	T28.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T28.2 - Invoke; two args with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T28.2

T28.1:	T28.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T28.1 - Invoke; zero or one arg with and without ...'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T28.1

T27.2:	T27.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T27.2 - Invoke; two named Integer args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T27.2

T27.1:	T27.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T27.1 - Invoke; one named Integer arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T27.1

T26.4:	T26.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T26.4 - Invoke; no args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T26.4

T26.3:	T26.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T26.3 - Invoke; two Integer and one Real arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T26.3

T26.2:	T26.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T26.2 - Invoke; two Integer args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T26.2

T26.1:	T26.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T26.1 - Invoke; one Integer arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T26.1

T25.7:	T25.7.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T25.7 - Noautotag Union with Noautotag on Interface, with indefinite length Strings'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T25.7

T25.6:	T25.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T25.6 - Noautotag Union with Noautotag on Interface'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T25.6

T25.5:	T25.5.ec 
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T25.5 - Noautotag Union with Autotag on Interface'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T25.5

T25.4:	T25.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T25.4 - Noautotag Union with default Autotag on Interface'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T25.4

T25.3:	T25.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T25.3 - Noautotag Record with Noautotag on Interface'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T25.3

T25.2:	T25.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T25.2 - Noautotag Record with Autotag on Interface'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T25.2

T25.1:	T25.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T25.1 - Noautotag Record with default Autotag on Interface'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T25.1

T24.2:	T24.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T24.2 - DynamicArray of { Record, DynamicArray, Union } and vice versa'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T24.2

T24.1:	T24.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T24.1 - DynamicArray'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T24.1

T23.7:	T23.7.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T23.7 - Record with constructed elements with Optional and no value,'
	@$(ECHOTEXT) '               indefinite length Strings'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T23.7

T23.6:	T23.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T23.6 - Record with constructed elements with Optional and no value'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T23.6

T23.5:	T23.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T23.5 - Record with all primitives with Optional and Default'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T23.5

T23.4:	T23.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T23.4 - Record with Real and BitString with Optional and Default'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T23.4

T23.3:	T23.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T23.3 - Record with 2 Integers with Optional and no Optional value'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T23.3

T23.2:	T23.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T23.2 - Record with 2 Integers with Optional and Optional value'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T23.2

T23.1:	T23.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T23.1 - Record with 2 Integers with Default and Optional'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T23.1

T22.1:	T22.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T22.1 - Instance masking instance from outer scope'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T22.1 dat2

T21.2:	T21.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T21.2 - Nested Encodes, Decodes, flushes on one instance'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T21.2

T21.1:	T21.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T21.1 - Nested Encodes and Decodes on one instance'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T21.1

T20.6:	T20.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T20.6 - Array{size} with size = 0, sent and not sent'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T20.6

T20.5:	T20.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T20.5 - Union with all primitives'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T20.5

T20.4:	T20.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T20.4 - Union with two members'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T20.4

T20.3:	T20.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T20.3 - Two Encodes and two Decodes'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T20.3

T20.2:	T20.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T20.2 - Array{size}'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T20.2

T20.1:	T20.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T20.1 - Primitives, Arrays, Unions, Records, Array of Arrays, etc.'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T20.1

T19.9:	T19.9.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.9 - Universal, Application, Private, Context'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.9 dat

T19.8:	T19.8.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.8 - Implicit_tags'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.8 dat

T19.7:	T19.7.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.7 - Explicit_tags'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.7 dat

T19.6:	T19.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.6 - Array of 10 Real(20,5)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.6

T19.5:	T19.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.5 - Array of 10 Integer(2)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.5

T19.4:	T19.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.4 - While loop on Decode'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.4

T19.3:	T19.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.3 - Encode and Decode Record with all primitives'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.3

T19.2:	T19.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.2 - Encode and Decode Record with Integer(2) and Integer(4)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.2

T19.1:	T19.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T19.1 - Encode and Decode with Integer(2)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T19.1

T17.2:	T17.2.ec $(ISODE_OTHERS)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T17.2 - Multi-tasking lookup client'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T17.2 $(D)EXTRAS=Tpasswd.i \
		$(D)SERVER=$(ISODE_OTHERS)/lookup/lookupd $(D)SARGS="" \
		all1t

T17.1:	T17.1.ec ISODE15.2
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T17.1 - Multi-tasking matrixcomp server'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T17.1 $(D)EXTRAS=Imatrix.i \
		$(D)CLIENT=isode15.2/imat \
		$(D)CARGS="$(TEST_IP) act 1 2 3 4" \
		allt

T16.8:	T16.8.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.8 - "bigsender" using Asn_1_ler rules (Integers, Reals) over ISODE'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T16.8 $(D)EXTRAS=bigsender.i \
		$(D)CARGS="$(TEST_IP) i 3" \
		$(D)SARGS="$(TEST_IP) r 3"

T16.7:	T16.7.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.7 - "bigsender" using Asn_1_ler rules (Integers, Reals) over sockets'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T16.7 $(D)EXTRAS=bigsender.i \
		$(D)CARGS="$(TEST_IP) i 3" \
		$(D)SARGS="$(TEST_IP) r 3"

T16.6:	T16.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.6 - "bigsender" server and client (Strings), changing'
	@$(ECHOTEXT) '               Array sizes'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T16.6 $(D)EXTRAS=bigsender.i \
		$(D)CARGS="$(TEST_IP) i 1"

T16.5:	T16.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.5 - "bigsender" server and client (Reals), changing'
	@$(ECHOTEXT) '               buffer sizes'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T16.5 $(D)EXTRAS=bigsender.i \
		$(D)CARGS="$(TEST_IP) i 4"

T16.4:	T16.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.4 - "bigsender" server and client (Integers, Reals, Strings)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESOCK) $(D)TEST=T16.4 $(D)EXTRAS=bigsender.i \
		$(D)CARGS="$(TEST_IP) i 7"

T16.3:	T16.3.ec ISODE16.4
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.3 - "bigsender" client, variable size (Integers)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T16.3 $(D)EXTRAS=bigsender.i \
		$(D)SERVER=isode16.4/bigd \
		$(D)SARGS="" \
		$(D)CARGS="$(TEST_IP) i 1" \
		all1

T16.2:	T16.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.2 - "bigsender" one-way server and client (Reals)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T16.2 $(D)EXTRAS=bigsender.i \
		$(D)CARGS="$(TEST_IP) i 2"

T16.1:	T16.1.ec ISODE16.4
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T16.1 - "bigsender" server (Array of Integers)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T16.1 $(D)EXTRAS=bigsender.i \
		$(D)CLIENT=isode16.4/big \
		$(D)CARGS="$(TEST_IP) transmit 4"

T15.2:	T15.2.ec ISODE15.2
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T15.2 - "matrixcomp" server for isode15.2 imat client)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T15.2 $(D)EXTRAS=Imatrix.i \
		$(D)CLIENT=isode15.2/imat \
		$(D)CARGS="$(TEST_IP) act 1 2 3 4" \
		$(D)SARGS="$(TEST_IP)"

T14.2:	T14.2.ec $(ISODE_OTHERS)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T14.2 - Client for "lookup"'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKEISODE) $(D)TEST=T14.2 $(D)EXTRAS=Tpasswd.i \
		$(D)SERVER=$(ISODE_OTHERS)/lookup/lookupd $(D)SARGS="" \
		$(D)CARGS="$(TEST_IP)" \
		all1

T13.5:	T13.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T13.5 - Roprinti of Amalgamated'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T13.5 $(D)OUT=T13.5.out

T13.4:	T13.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T13.4 - Real_const and Roprint of Reals'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T13.4 $(D)OUT=T13.4.out

T13.3:	T13.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T13.3 - Roprint routine stack'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T13.3 $(D)OUT=T13.3.out

T13.2:	T13.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T13.2 - XXX_const routines with endianed types'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T13.2

T13.1:	T13.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T13.1 - XXX_const routines'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T13.1

T12.3:	T12.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T12.3 - Nested Arrays'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T12.3

T12.2:	T12.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T12.2 - Array length specifiers'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T12.2

T12.1:	T12.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T12.1 - Encode and Decode of non-native Reals'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T12.1

T11.4:	T11.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T11.4 - Receive constructed OctetStrings with omitted args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T11.4 $(D)AUX=T11.4.in

T11.3:	T11.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T11.3 - Send and receive char Strings with omitted receive args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T11.3

T11.2:	T11.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T11.2 - Send and receive Integers with omitted receive args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T11.2

T11.1:	T11.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T11.1 - Send and receive Booleans with omitted receive args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T11.1

T10.4:	T10.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T10.4 - Receive constructed OctetStrings'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T10.4 $(D)AUX=T10.4.in

T10.3:	T10.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T10.3 - Send and receive char Strings'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T10.3

T10.2:	T10.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T10.2 - Send and receive Integer types'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T10.2

T10.1:	T10.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T10.1 - Send and receive Boolean types'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T10.1

T9.2:	T9.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T9.2 - Amalgamated data and NULL getPs, with indefinite length Strings'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T9.2

T9.1:	T9.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T9.1 - Amalgamated data and NULL getPs'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T9.1

T8.6:	T8.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T8.6 - Send and receive definite and indefinite length Strings'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T8.6

T8.5:	T8.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T8.5 - Receive 1 Real'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T8.5 $(D)AUX=T8.5.in $(D)OUT=T8.5.out

T8.4:	T8.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T8.4 - Send and receive ASN.1 Real types'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T8.4

T8.3:	T8.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T8.3 - Send and receive miscellaneous ASN.1 types'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T8.3

T8.2:	T8.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T8.2 - Receive BitString for constructed values'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T8.2 $(D)AUX=T8.2.in

T8.1:	T8.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T8.1 - BitString with different BYTES:BITS values'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T8.1

T7.6:	T7.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T7.6 - More OID operations'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T7.6

T7.5:	T7.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T7.5 - PPDU and PDV batching with nested Gives'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T7.5

T7.4:	T7.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T7.4 - PPDU and PDV batching and Flush_inst'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T7.4

T7.3:	T7.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T7.3 - Send and receive Reject, with and without invokeID'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T7.3

T7.2:	T7.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T7.2 - Send, receive, get, set invokeIDs, and linkedIDs'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T7.2

T7.1:	T7.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T7.1 - Operations on OIDs (Invokes, Results, Errors)'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T7.1

T6.6:	T6.6.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T6.6 - Missing_op when no such op, receive on unknown op'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T6.6 $(D)AUX=T6.6.in

T6.5:	T6.5.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T6.5 - Missing_arg when no such arg'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T6.5 $(D)AUX=T6.5.in

T6.4:	T6.4.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T6.4 - Done exception, uses Enumerated'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T6.4

T6.3:	T6.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T6.3 - Done exception'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T6.3

T6.2:	T6.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T6.2 - Missing_op exception'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T6.2

T6.1:	T6.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T6.1 - Missing_arg exception'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T6.1

T5.3:	T5.3.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T5.3 - Send, receive, Encode, Decode operations with OIDs'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T5.3

T5.2:	T5.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T5.2 - Send and receive named args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T5.2

T5.1:	T5.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T5.1 - Send and receive positional args'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T5.1

T3.2:	T3.2.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T3.2 - InvokeIDs and linkedIDs'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T3.2

T2.1:	T2.1.ec
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'TEST = T2.1 - Send oversize Integer types'
	@$(ECHOTEXT) $(BORDER)
	-$(MAKESTUB) $(D)TEST=T2.1

#
# Rebuild the ISODE versions of bigsender and matrixcomp tests
#
ISODE16.4:
	$(CD) isode16.4; $(MAKE)
	$(TOUCH) $@

ISODE15.2:
	$(CD) isode15.2; $(MAKE)
	$(TOUCH) $@

#
# Housekeeping targets
#
new:	clean
	$(RM) $(INSTALLFILES)
	$(FOR) i in $(DISTDIRS); $(DO) ( \
		$(CD) $$i; $(MAKE) new; \
	); $(DONE)

clean:
	$(RM) T*.ec.* T*.ex T*.DAT* T*.OUT* T*.*LOG core
	$(RM) T*.1 T*.2 T*.3 T*.4 T*.5 T*.6 T*.7 T*.8 T*.9

#
# For the "package" target, the following macro must be defined as a
# command line argument.
#
#    RO_DIST_DIR - directory where distribution files are to be copied
#
package: $(DISTFILES)
	$(CP) -p $(DISTFILES) $(RO_DIST_DIR)

#
# For the "install" target, the following macro must be appropriately
# defined.
#
#   RO_INSTALL_DIR - directory where installed files should be copied
#
MY_INSTALL_DIR=	$(RO_INSTALL_DIR)/tests

install:  $(DISTFILES) $(INSTALLFILES) $(MY_INSTALL_DIR)
	$(RM) $(MY_INSTALL_DIR)/*
	$(FOR) i in $(DISTFILES); $(DO) ( \
		$(CP) -p $$i $(MY_INSTALL_DIR); \
		$(CHMOD) 444 $(MY_INSTALL_DIR)/$$i; \
	); $(DONE)
	$(CP) $(INSTALLFILES) $(MY_INSTALL_DIR)
	$(FOR) i in $(DISTDIRS); $(DO) ( \
		$(CD) $$i; $(MAKE) install; \
	); $(DONE)

