AS_FOR_TARGET = `\
  if [ -x ../../../gas/as-new ]; then \
    echo ../../../gas/as-new ; \
  else \
    echo $(target_alias)-as ; \
  fi`

LD_FOR_TARGET = `\
  if [ -x ../../../ld/ld-new ]; then \
    echo ../../../ld/ld-new ; \
  else \
    echo $(target_alias)-ld ; \
  fi`

RUN_FOR_TARGET = `\
  if [ -x ../../../sim/v850/run ]; then \
    echo ../../../sim/v850/run ; \
  else \
    echo $(target_alias)-run ; \
  fi`


check: sanity $(TESTS)
sanity:
	@eval echo AS_FOR_TARGET=$(AS_FOR_TARGET)
	@eval echo LD_FOR_TARGET=$(LD_FOR_TARGET)
	@eval echo RUN_FOR_TARGET=$(RUN_FOR_TARGET)

clean:
	rm -f $(TESTS)
	rm -f *.run *.o
	rm -f core *.core

# Rules for running the tests

.SUFFIXES: .ok .run .hi .ko .ti
.run.ok:
	rm -f tmp-$* $*.hi
	ulimit -t 5 ; \
	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $*.run > tmp-$*
	mv tmp-$* $*.ok
.run.hi:
	rm -f tmp-$* $*.hi diff-$*
	ulimit -t 5 ; \
	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $*.run > tmp-$*
	echo 'Hello World!' | diff - tmp-$* > diff-$*
	cat tmp-$* diff-$* > $*.hi
.run.ko:
	rm -f tmp-$* $*.ko
	set +e ; \
	ulimit -t 5 ; \
	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $*.run > tmp-$* ; \
	if [ $$? -eq 47 ] ; then \
	  exit 0 ; \
	else \
	  exit 1 ; \
	fi
	mv tmp-$* $*.ko
.run.ti:
	rm -f tmp-$* $*.ti
	set +e ; \
	ulimit -t 5 ; \
	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $(INTFLAGS_FOR_TARGET) $*.run > tmp-$*
	test `cat tmp-$* | wc -l` -eq 10 < /dev/null
	test `grep Tick tmp-$* | wc -l` -eq 10 < /dev/null
	mv tmp-$* $*.ti


# Rules for building the test
# Preference is for obtaining the executable (.run) from a prebuilt image

.SUFFIXES: .uue .s .S .run
.uue.run:
	head $* | grep $*.run > /dev/null
	uudecode $*.uue
.run.u:
	uuencode < $*.run $*.run > $*.u
.o.run:
	$(LD_FOR_TARGET) $(LDFLAGS_FOR_TARGET) -o $*.run $*.o
.s.o:
	$(AS_FOR_TARGET) $(ASFLAGS_FOR_TARGET) -I$(srcdir) $(srcdir)/$*.s -o $*.o
.S.o:
	$(AS_FOR_TARGET) $(ASFLAGS_FOR_TARGET) -I$(srcdir) $(srcdir)/$*.S -o $*.o


Makefile: Makefile.in config.status
	$(SHELL) ./config.status

config.status: configure
	$(SHELL) ./config.status --recheck
