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

144 lines
6.0 KiB
Makefile

export SHELLOPTS := igncr
CPUR := -march=armv7-r -marm -mlittle-endian -mfloat-abi=soft
CPUM := -march=armv7-m -mthumb -mfix-cortex-m3-ldrd -mlittle-endian -mrestrict-it
AOPT := -g3 -Wall -Wa,--gdwarf2 -xassembler-with-cpp -c
COPT := -std=c99 -g3 -O0 -fno-jump-tables -ffunction-sections -fdata-sections -Wall -c
INCLUDEDIR := . arm
LOPT := -g -Wall -Wl,--nmagic -nodefaultlibs -nostartfiles -Wl,--gc-sections -Wl,--entry=_start
LIBS := -lgcc -lc
ECAOPT := -m32
VPATH := .
CCGRP := arm-none-eabi-
NAME := coverage
MIRRORROOT_FULL := instrumented/full/arm
MIRRORROOT_TARGETED := instrumented/targeted/arm
.PHONY: all clean
.PRECIOUS: $(MIRRORROOT_FULL)/%.c $(MIRRORROOT_TARGETED)/cr/%.c $(MIRRORROOT_TARGETED)/cm/%.c
.SECONDARY: $(NAME)_arm_cr.json $(NAME)_arm_cm.json
all: $(NAME)_arm_cr.elf $(NAME)_arm_cr_flash.elf $(NAME)_arm_cm.elf \
$(NAME)_arm_cr_instr_full.elf $(NAME)_arm_cr_flash_instr_full.elf $(NAME)_arm_cm_instr_full.elf \
$(NAME)_arm_cr_instr_targeted.elf $(NAME)_arm_cr_flash_instr_targeted.elf $(NAME)_arm_cm_instr_targeted.elf \
$(NAME).c.eca
$(MIRRORROOT_FULL) $(MIRRORROOT_TARGETED)/cr $(MIRRORROOT_TARGETED)/cm:
mkdir --parents $@
%.c.eca: %.c
$(ECAGRP)/t32cast eca $(ECAOPT) --export-cfg -o $@ $^
arm/t32pp.c:
$(ECAGRP)/t32cast instrument --mode=mcdc --gen-instr-source-files --probe-dir=arm
%.json: %.elf $(NAME).c.eca
$(ECAGRP)/t32marm -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)/cr/%.c: %.c %_arm_cr.json
$(ECAGRP)/t32cast instrument --mode=mcdc --probe-dir=arm --filter=$(filter-out $<,$^) $(ECAOPT) -o $@ $<
$(MIRRORROOT_TARGETED)/cm/%.c: %.c %_arm_cm.json
$(ECAGRP)/t32cast instrument --mode=mcdc --probe-dir=arm --filter=$(filter-out $<,$^) $(ECAOPT) -o $@ $<
%.armv7r.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPUR) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
arm/%.armv7r.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPUR) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
%.thumb2.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPUM) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
arm/%.thumb2.o: %.c $(MAKEFILE_LIST)
$(CCGRP)gcc $(COPT) $(CPUM) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
%.armv7r.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUR) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
%.thumb2.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUM) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
%.armv7r.flash.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUR) -D FLASHSTART -o $@ $<
$(MIRRORROOT_FULL)/%.armv7r.o: $(MIRRORROOT_FULL)/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_FULL)
$(CCGRP)gcc $(COPT) $(CPUR) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
$(MIRRORROOT_FULL)/%.thumb2.o: $(MIRRORROOT_FULL)/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_FULL)
$(CCGRP)gcc $(COPT) $(CPUM) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
$(MIRRORROOT_FULL)/%.armv7r.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUR) -o $@ $<
$(MIRRORROOT_FULL)/%.thumb2.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUM) -o $@ $<
$(MIRRORROOT_FULL)/%.armv7r.flash.o: %.sx $(MAKEFILE_LIST)
$(CCGRP)gcc $(AOPT) $(CPUR) -D FLASHSTART -o $@ $<
$(MIRRORROOT_TARGETED)/cr/%.armv7r.o: $(MIRRORROOT_TARGETED)/cr/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_TARGETED)/cr
$(CCGRP)gcc $(COPT) $(CPUR) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
$(MIRRORROOT_TARGETED)/cm/%.thumb2.o: $(MIRRORROOT_TARGETED)/cm/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_TARGETED)/cm
$(CCGRP)gcc $(COPT) $(CPUM) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
arm/flash.ld: arm/link.lds $(MAKEFILE_LIST)
$(CCGRP)cpp -P -o $@ $< -D FLASHSTART -D RAMSTART=0x08000000 -D RAMSIZE=32K -D FLASHSIZE=128K
arm/sram.ld: arm/link.lds $(MAKEFILE_LIST)
$(CCGRP)cpp -P -o $@ $< -D RAMSTART=0x08000000 -D RAMSIZE=32K
arm/sram_cm.ld: arm/link.lds $(MAKEFILE_LIST)
$(CCGRP)cpp -P -o $@ $< -D RAMSTART=0x20000000 -D RAMSIZE=32K
$(NAME)_arm_cr_flash.elf: $(addprefix arm/,flash.ld crt0.armv7r.flash.o main.armv7r.o $(NAME).armv7r.o)
$(CCGRP)gcc $(LOPT) $(CPUR) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cr.elf: $(addprefix arm/,sram.ld crt0.armv7r.o main.armv7r.o $(NAME).armv7r.o)
$(CCGRP)gcc $(LOPT) $(CPUR) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cm.elf: $(addprefix arm/,sram_cm.ld crt0.thumb2.o main.thumb2.o $(NAME).thumb2.o)
$(CCGRP)gcc $(LOPT) $(CPUM) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cr_flash_instr_full.elf: $(addprefix arm/,flash.ld crt0.armv7r.flash.o main.armv7r.o t32pp.armv7r.o) $(MIRRORROOT_FULL)/$(NAME).armv7r.o
$(CCGRP)gcc $(LOPT) $(CPUR) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cr_instr_full.elf: $(addprefix arm/,sram.ld crt0.armv7r.o main.armv7r.o t32pp.armv7r.o) $(MIRRORROOT_FULL)/$(NAME).armv7r.o
$(CCGRP)gcc $(LOPT) $(CPUR) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cm_instr_full.elf: $(addprefix arm/,sram_cm.ld crt0.thumb2.o main.thumb2.o t32pp.thumb2.o) $(MIRRORROOT_FULL)/$(NAME).thumb2.o
$(CCGRP)gcc $(LOPT) $(CPUM) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cr_flash_instr_targeted.elf: $(addprefix arm/,flash.ld crt0.armv7r.flash.o main.armv7r.o t32pp.armv7r.o) $(MIRRORROOT_TARGETED)/cr/$(NAME).armv7r.o
$(CCGRP)gcc $(LOPT) $(CPUR) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cr_instr_targeted.elf: $(addprefix arm/,sram.ld crt0.armv7r.o main.armv7r.o t32pp.armv7r.o) $(MIRRORROOT_TARGETED)/cr/$(NAME).armv7r.o
$(CCGRP)gcc $(LOPT) $(CPUR) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(NAME)_arm_cm_instr_targeted.elf: $(addprefix arm/,sram_cm.ld crt0.thumb2.o main.thumb2.o t32pp.thumb2.o) $(MIRRORROOT_TARGETED)/cm/$(NAME).thumb2.o
$(CCGRP)gcc $(LOPT) $(CPUM) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
clean:
-rm -fv arm/*.o
-rm -fv arm/t32pp.*
-rm -fv *.elf
-rm -fv *.eca
-rm -fv *.json
-rm -fv $(MIRRORROOT_FULL)/*.*
-rm -fv $(MIRRORROOT_TARGETED)/cm/*.*
-rm -fv $(MIRRORROOT_TARGETED)/cr/*.*