59 lines
1.7 KiB
Makefile
59 lines
1.7 KiB
Makefile
# -*- Mode: makefile -*-
|
|
#
|
|
# Cris tests
|
|
#
|
|
# Currently we can only build the "bare" tests with the docker
|
|
# supplied cross-compiler.
|
|
#
|
|
|
|
CRIS_SRC = $(SRC_PATH)/tests/tcg/cris/bare
|
|
CRIS_ALL = $(wildcard $(CRIS_SRC)/*.s)
|
|
CRIS_TESTS = $(patsubst $(CRIS_SRC)/%.s, %, $(CRIS_ALL))
|
|
# Filter out common blobs and broken tests
|
|
CRIS_BROKEN_TESTS = crt check_jsr
|
|
# upstream GCC doesn't support v32
|
|
CRIS_BROKEN_TESTS += check_mcp check_mulv32 check_addiv32 check_movpmv32
|
|
CRIS_BROKEN_TESTS += check_movprv32 check_clearfv32 check_movemrv32 check_bas
|
|
CRIS_BROKEN_TESTS += check_lapc check_movei
|
|
# no sure why
|
|
CRIS_BROKEN_TESTS += check_scc check_xarith
|
|
|
|
CRIS_USABLE_TESTS = $(filter-out $(CRIS_BROKEN_TESTS), $(CRIS_TESTS))
|
|
CRIS_RUNS = $(patsubst %, run-%, $(CRIS_USABLE_TESTS))
|
|
|
|
# override the list of tests, as we can't build the multiarch tests
|
|
TESTS = $(CRIS_USABLE_TESTS)
|
|
EXTRA_RUNS =
|
|
VPATH = $(CRIS_SRC)
|
|
|
|
AS = $(CC) -x assembler-with-cpp
|
|
LD = $(CC)
|
|
|
|
# we rely on GCC inline:ing the stuff we tell it to in many places here.
|
|
CFLAGS = -Winline -Wall -g -O2 -static
|
|
NOSTDFLAGS = -nostartfiles -nostdlib
|
|
ASFLAGS += -mcpu=v10 -g -Wa,-I,$(SRC_PATH)/tests/tcg/cris/bare
|
|
CRT_FILES = crt.o sys.o
|
|
|
|
# stop make deleting crt files if build fails
|
|
.PRECIOUS: $(CRT_FILES)
|
|
|
|
%.o: %.c
|
|
$(CC) -c $< -o $@
|
|
|
|
%.o: %.s
|
|
$(AS) $(ASFLAGS) -c $< -o $@
|
|
|
|
%: %.s $(CRT_FILES)
|
|
$(CC) $(ASFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT_FILES)
|
|
|
|
# The default CPU breaks (possibly as it's max?) so force crisv17
|
|
QEMU_OPTS=-cpu crisv17
|
|
|
|
# Additional runners to run under GNU SIM
|
|
CRIS_RUNS_ON_SIM=$(patsubst %, %-on-sim, $(CRIS_RUNS))
|
|
SIMG:=cris-axis-linux-gnu-run
|
|
|
|
# e.g.: make -f ../../tests/tcg/Makefile run-check_orm-on-sim
|
|
run-%-on-sim:
|
|
$(call run-test, $<, $(SIMG) $<, "$< on $(TARGET_NAME) with SIM")
|