contrib/gcc-test-suite/Makefile
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Thu Aug 18 16:05:48 2011 +0200 (2011-08-18)
changeset 2612 a52574521bea
parent 2170 4f8aa694f9c0
permissions -rw-r--r--
debug/gdb: update GDB revisions

Update GDB with the latest available revisions.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
     1 # Helper makefile which downloads (if required) and runs the GCC test suite (DejaGnu)
     2 #
     3 # Note: Before run please make sure to have your toolchain available in your path.
     4 #
     5 # Copyright 2010 DoréDevelopment
     6 # 
     7 # Author: Martin Lund <mgl@doredevelopment.dk>
     8 #
     9 # This program is free software; you can redistribute  it and/or modify it
    10 # under  the terms of  the GNU General  Public License as published by the
    11 # Free Software Foundation;  either version 2 of the  License, or (at your
    12 # option) any later version.
    13 #
    14 
    15 # Internal configuration
    16 TARGET:=@@DG_TARGET@@
    17 TOPDIR:=$(shell pwd)
    18 LOGDIR:=$(TOPDIR)/tmp
    19 
    20 # Include default configuration
    21 include default.cfg
    22 
    23 # Add toolchain to path
    24 PATH:=$(shell cd ../../bin && pwd):$(PATH)
    25 
    26 # Select test set
    27 ifeq ($(DG_TOOLNAME),gcc)
    28 	DG_TESTS:=$(DG_C_TESTS)
    29 endif
    30 ifeq ($(DG_TOOLNAME),g++)
    31 	DG_TESTS:=$(DG_CPP_TESTS)
    32 endif
    33 
    34 # Check that we have 'runtest' installed
    35 RUNTEST=$(shell which runtest)
    36 ifeq ($(RUNTEST),)
    37         $(error "DejaGnu 'runtest' not found - please install (eg. apt-get install dejagnu)")
    38 endif
    39 
    40 # Targets 
    41 all: test
    42 
    43 $(LOGDIR):
    44 	@mkdir -p $@
    45 
    46 $(LOGDIR)/site.exp: $(TOPDIR)/default.cfg $(LOGDIR)
    47 	@{ echo 'lappend boards_dir "$(LOGDIR)"'; \
    48 	   echo 'set target_alias $(TARGET)';     } > $@
    49 
    50 $(LOGDIR)/board.exp: $(TOPDIR)/default.cfg $(LOGDIR)
    51 	@{ echo 'load_generic_config "unix"';                    \
    52 	   echo 'process_multilib_options ""';                   \
    53 	   echo 'set_board_info bmk,use_alarm 1';                \
    54 	   echo 'set_board_info rsh_prog ssh';                   \
    55 	   echo 'set_board_info rcp_prog scp';                   \
    56 	   echo 'set_board_info hostname $(DG_TARGET_HOSTNAME)'; \
    57 	   echo 'set_board_info username $(DG_TARGET_USERNAME)'; } > $@
    58 
    59 # As Martin puts it:
    60 #  > The thing is that when you run 50k+ test cases the odds are that at
    61 #  > least one will fail and thus runtest basically always return an error
    62 #  > despite the fact that the test session has executed successfully.
    63 # So just ignore any error reported by runtest
    64 test: $(LOGDIR)/board.exp $(LOGDIR)/site.exp $(LOGDIR)
    65 	@runtest --tool $(DG_TOOLNAME)          \
    66 	         --srcdir $(TOPDIR)/testsuite   \
    67 	         --objdir $(LOGDIR)             \
    68 	         --outdir $(LOGDIR)             \
    69 	         --all                          \
    70 	         --target $(TARGET)             \
    71 	         --target_board board           \
    72 	         $(DG_TESTS)                    \
    73 	         GXX_UNDER_TEST=$(TARGET)-g++   || true
    74 	@printf "Result files available in '%s'\n" "$(LOGDIR)"
    75 
    76 clean:
    77 	rm -rf $(LOGDIR)
    78 
    79 .PHONY: config test clean