117 lines
3.1 KiB
Makefile
117 lines
3.1 KiB
Makefile
|
CROSS_COMPILE ?= mips64el-unknown-linux-gnu-
|
||
|
|
||
|
SIM = qemu-system-mips64el
|
||
|
SIMFLAGS = -nographic -cpu mips64dspr2 -kernel
|
||
|
|
||
|
AS = $(CROSS_COMPILE)as
|
||
|
LD = $(CROSS_COMPILE)ld
|
||
|
CC = $(CROSS_COMPILE)gcc
|
||
|
AR = $(CROSS_COMPILE)ar
|
||
|
NM = $(CROSS_COMPILE)nm
|
||
|
STRIP = $(CROSS_COMPILE)strip
|
||
|
RANLIB = $(CROSS_COMPILE)ranlib
|
||
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||
|
OBJDUMP = $(CROSS_COMPILE)objdump
|
||
|
|
||
|
VECTORS_OBJ ?= ./head.o ./printf.o
|
||
|
|
||
|
HEAD_FLAGS ?= -nostdinc -mabi=64 -G 0 -mno-abicalls -fno-pic -pipe \
|
||
|
-msoft-float -march=mips64 -Wa,-mips64 -Wa,--trap \
|
||
|
-msym32 -DKBUILD_64BIT_SYM32 -I./
|
||
|
|
||
|
CFLAGS ?= -nostdinc -mabi=64 -G 0 -mno-abicalls -fno-pic -fno-builtin \
|
||
|
-pipe -march=mips64r2 -mgp64 -mdspr2 -static -Wa,--trap -msym32 \
|
||
|
-DKBUILD_64BIT_SYM32 -I./
|
||
|
|
||
|
LDFLAGS = -T./mips_boot.lds -L./
|
||
|
FLAGS = -nostdlib -mabi=64 -march=mips64r2 -mgp64 -mdspr2
|
||
|
|
||
|
TESTCASES = absq_s_qb.tst
|
||
|
TESTCASES += addqh_ph.tst
|
||
|
TESTCASES += addqh_r_ph.tst
|
||
|
TESTCASES += addqh_r_w.tst
|
||
|
TESTCASES += addqh_w.tst
|
||
|
#TESTCASES += adduh_ob.tst
|
||
|
TESTCASES += adduh_qb.tst
|
||
|
#TESTCASES += adduh_r_ob.tst
|
||
|
TESTCASES += adduh_r_qb.tst
|
||
|
TESTCASES += addu_ph.tst
|
||
|
#TESTCASES += addu_qh.tst
|
||
|
TESTCASES += addu_s_ph.tst
|
||
|
#TESTCASES += addu_s_qh.tst
|
||
|
TESTCASES += append.tst
|
||
|
TESTCASES += balign.tst
|
||
|
#TESTCASES += cmpgdu_eq_ob.tst
|
||
|
TESTCASES += cmpgdu_eq_qb.tst
|
||
|
#TESTCASES += cmpgdu_le_ob.tst
|
||
|
TESTCASES += cmpgdu_le_qb.tst
|
||
|
#TESTCASES += cmpgdu_lt_ob.tst
|
||
|
TESTCASES += cmpgdu_lt_qb.tst
|
||
|
#TESTCASES += dbalign.tst
|
||
|
TESTCASES += dpaqx_sa_w_ph.tst
|
||
|
TESTCASES += dpaqx_s_w_ph.tst
|
||
|
TESTCASES += dpa_w_ph.tst
|
||
|
#TESTCASES += dpa_w_qh.tst
|
||
|
TESTCASES += dpax_w_ph.tst
|
||
|
TESTCASES += dpsqx_sa_w_ph.tst
|
||
|
TESTCASES += dpsqx_s_w_ph.tst
|
||
|
TESTCASES += dps_w_ph.tst
|
||
|
#TESTCASES += dps_w_qh.tst
|
||
|
TESTCASES += dpsx_w_ph.tst
|
||
|
TESTCASES += mul_ph.tst
|
||
|
TESTCASES += mulq_rs_w.tst
|
||
|
TESTCASES += mulq_s_ph.tst
|
||
|
TESTCASES += mulq_s_w.tst
|
||
|
TESTCASES += mulsaq_s_w_ph.tst
|
||
|
TESTCASES += mulsa_w_ph.tst
|
||
|
TESTCASES += mul_s_ph.tst
|
||
|
TESTCASES += precr_qb_ph.tst
|
||
|
TESTCASES += precr_sra_ph_w.tst
|
||
|
TESTCASES += precr_sra_r_ph_w.tst
|
||
|
TESTCASES += prepend.tst
|
||
|
TESTCASES += shra_qb.tst
|
||
|
TESTCASES += shra_r_qb.tst
|
||
|
#TESTCASES += shrav_ob.tst
|
||
|
TESTCASES += shrav_qb.tst
|
||
|
#TESTCASES += shrav_r_ob.tst
|
||
|
TESTCASES += shrav_r_qb.tst
|
||
|
TESTCASES += shrl_ph.tst
|
||
|
TESTCASES += shrlv_ph.tst
|
||
|
TESTCASES += subqh_ph.tst
|
||
|
TESTCASES += subqh_r_ph.tst
|
||
|
TESTCASES += subqh_r_w.tst
|
||
|
TESTCASES += subqh_w.tst
|
||
|
#TESTCASES += subuh_ob.tst
|
||
|
TESTCASES += subuh_qb.tst
|
||
|
#TESTCASES += subuh_r_ob.tst
|
||
|
TESTCASES += subuh_r_qb.tst
|
||
|
TESTCASES += subu_ph.tst
|
||
|
#TESTCASES += subu_qh.tst
|
||
|
TESTCASES += subu_s_ph.tst
|
||
|
#TESTCASES += subu_s_qh.tst
|
||
|
|
||
|
all: build
|
||
|
|
||
|
head.o : head.S
|
||
|
$(Q)$(CC) $(HEAD_FLAGS) -D"STACK_TOP=0xffffffff80200000" -c $< -o $@
|
||
|
|
||
|
%.o : %.S
|
||
|
$(CC) $(CFLAGS) -c $< -o $@
|
||
|
|
||
|
%.o : %.c
|
||
|
$(CC) $(CFLAGS) -c $< -o $@
|
||
|
|
||
|
%.tst: %.o $(VECTORS_OBJ)
|
||
|
$(CC) $(VECTORS_OBJ) $(FLAGS) $(LDFLAGS) $< -o $@
|
||
|
|
||
|
build: $(VECTORS_OBJ) $(MIPSSOC_LIB) $(TESTCASES)
|
||
|
|
||
|
check: $(VECTORS_OBJ) $(MIPSSOC_LIB) $(TESTCASES)
|
||
|
@for case in $(TESTCASES); do \
|
||
|
echo $(SIM) $(SIMFLAGS) ./$$case; \
|
||
|
$(SIM) $(SIMFLAGS) ./$$case & (sleep 1; killall $(SIM)); \
|
||
|
done
|
||
|
|
||
|
clean:
|
||
|
$(Q)rm -f *.o *.tst *.a
|