Files
Gen4_R-Car_Trace32/2_Trunk/demo/coverage/mcdc/mips/makefile
2025-10-14 09:52:32 +09:00

124 lines
5.1 KiB
Makefile

export SHELLOPTS := igncr
CPU := -march=m14k -mhard-float -mfp64 -mel
CPUMICRO := $(CPU) -mmicromips
AOPT := -g3 -Wall -Wa,--gdwarf2 -xassembler-with-cpp -c
COPT := -std=c99 -g3 -O0 -fno-jump-tables -ffunction-sections -fdata-sections -Wall -c
INCLUDEDIR := . mips
LOPT := -g3 -Wall -Wl,--nmagic -nodefaultlibs -nostartfiles -Wl,--gc-sections -Wl,--entry=_start
LIBS := -lgcc -lc
ECAOPT := -m32
VPATH := .
CCGRP := mips-mti-elf-
NAME := coverage
MIRRORROOT_FULL := instrumented/full/mips
MIRRORROOT_TARGETED := instrumented/targeted/mips
.PHONY: all clean
.PRECIOUS: $(MIRRORROOT_FULL)/%.c $(MIRRORROOT_TARGETED)/m14k/mips32/%.c $(MIRRORROOT_TARGETED)/m14k/micro/%.c
.SECONDARY: $(NAME)_mips_m14k_mips32.json $(NAME)_mips_m14k_micro.json
all: $(NAME)_mips_m14k_mips32.elf $(NAME)_mips_m14k_micro.elf \
$(NAME)_mips_m14k_mips32_instr_full.elf $(NAME)_mips_m14k_micro_instr_full.elf \
$(NAME)_mips_m14k_mips32_instr_targeted.elf $(NAME)_mips_m14k_micro_instr_targeted.elf \
$(NAME).c.eca
$(MIRRORROOT_FULL) $(MIRRORROOT_TARGETED)/m14k/mips32 $(MIRRORROOT_TARGETED)/m14k/micro:
mkdir --parents $@
%.c.eca: %.c
$(ECAGRP)/t32cast eca $(ECAOPT) --export-cfg -o $@ $^
mips/t32pp.c:
$(ECAGRP)/t32cast instrument --mode=mcdc --gen-instr-source-files --probe-dir=mips
%.json: %.elf $(NAME).c.eca
$(ECAGRP)/t32mips -c ./scripts/config_t32cast.t32 -s ./scripts/detect-obs-gaps.cmm $< $@
$(MIRRORROOT_FULL)/%.c: %.c
$(ECAGRP)/t32cast instrument --mode=mcdc $(ECAOPT) -o $(MIRRORROOT_FULL)/$^ $^
$(MIRRORROOT_TARGETED)/m14k/mips32/%.c: %.c %_mips_m14k_mips32.json | $(MIRRORROOT_TARGETED)/m14k/mips32
$(ECAGRP)/t32cast instrument --mode=mcdc --probe-dir=mips --filter=$(filter-out $<,$^) $(ECAOPT) -o $@ $<
$(MIRRORROOT_TARGETED)/m14k/micro/%.c: %.c %_mips_m14k_micro.json | $(MIRRORROOT_TARGETED)/m14k/micro
$(ECAGRP)/t32cast instrument --mode=mcdc --probe-dir=mips --filter=$(filter-out $<,$^) $(ECAOPT) -o $@ $<
%.mips32.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPU) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
%.micro.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPUMICRO) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
mips/%.mips32.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPU) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
mips/%.micro.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPUMICRO) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
%.mips32.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPU) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
%.micro.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUMICRO) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
$(MIRRORROOT_FULL)/%.mips32.o: $(MIRRORROOT_FULL)/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_FULL)
$(CCGRP)gcc $(COPT) $(CPU) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
$(MIRRORROOT_FULL)/%.micro.o: $(MIRRORROOT_FULL)/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_FULL)
$(CCGRP)gcc $(COPT) $(CPUMICRO) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
$(MIRRORROOT_FULL)/%.mips32.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPU) -o $@ $<
$(MIRRORROOT_FULL)/%.micro.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUMICRO) -o $@ $<
$(MIRRORROOT_TARGETED)/m14k/mips32/%.mips32.o: $(MIRRORROOT_TARGETED)/m14k/mips32/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_TARGETED)/m14k/mips32
$(CCGRP)gcc $(COPT) $(CPU) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
$(MIRRORROOT_TARGETED)/m14k/micro/%.micro.o: $(MIRRORROOT_TARGETED)/m14k/micro/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_TARGETED)/m14k/micro
$(CCGRP)gcc $(COPT) $(CPUMICRO) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
mips/sram.ld: mips/link.lds $(MAKEFILE_LIST)
$(CCGRP)cpp -P -o $@ $<
$(NAME)_mips_m14k_mips32.elf: $(addprefix mips/,sram.ld crt0.mips32.o main.mips32.o $(NAME).mips32.o)
$(CCGRP)gcc $(LOPT) $(CPU) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_mips_m14k_micro.elf: $(addprefix mips/,sram.ld crt0.micro.o main.micro.o $(NAME).micro.o)
$(CCGRP)gcc $(LOPT) $(CPUMICRO) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_mips_m14k_mips32_instr_full.elf: $(addprefix mips/,sram.ld crt0.mips32.o main.mips32.o t32pp.mips32.o) $(MIRRORROOT_FULL)/$(NAME).mips32.o
$(CCGRP)gcc $(LOPT) $(CPU) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_mips_m14k_micro_instr_full.elf: $(addprefix mips/,sram.ld crt0.micro.o main.micro.o t32pp.micro.o) $(MIRRORROOT_FULL)/$(NAME).micro.o
$(CCGRP)gcc $(LOPT) $(CPUMICRO) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_mips_m14k_mips32_instr_targeted.elf: $(addprefix mips/,sram.ld crt0.mips32.o main.mips32.o t32pp.mips32.o) $(MIRRORROOT_TARGETED)/m14k/mips32/$(NAME).mips32.o
$(CCGRP)gcc $(LOPT) $(CPU) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_mips_m14k_micro_instr_targeted.elf: $(addprefix mips/,sram.ld crt0.micro.o main.micro.o t32pp.micro.o) $(MIRRORROOT_TARGETED)/m14k/micro/$(NAME).micro.o
$(CCGRP)gcc $(LOPT) $(CPUMICRO) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
clean:
-rm -fv mips/*.o
-rm -fv mips/t32pp.*
-rm -fv *.elf
-rm -fv *.eca
-rm -fv *.json
-rm -fv $(MIRRORROOT_FULL)/*.*
-rm -fv $(MIRRORROOT_TARGETED)/m14k/mips32/*.*
-rm -fv $(MIRRORROOT_TARGETED)/m14k/micro/*.*