123 lines
4.7 KiB
Makefile
123 lines
4.7 KiB
Makefile
export SHELLOPTS := igncr
|
|
|
|
CPU := -mcpu=e500mc -mbig-endian -msoft-float
|
|
AOPT := -g3 -Wall $(CPU) -Wa,--gdwarf2 -mregnames -xassembler-with-cpp -c
|
|
COPT := -std=c99 -g3 -O0 -fno-jump-tables -ffunction-sections -fdata-sections -Wall $(CPU) -mno-sdata -c
|
|
INCLUDEDIR := . ppc
|
|
LOPT := -g -Wall $(CPU) -Wl,--nmagic -nodefaultlibs
|
|
LIBS := -lgcc -lc
|
|
ECAOPT := -m32
|
|
VPATH := .
|
|
|
|
CCGRP := powerpc-eabi-
|
|
NAME := coverage
|
|
|
|
MIRRORROOT_FULL := instrumented/full/ppc
|
|
MIRRORROOT_TARGETED := instrumented/targeted/ppc
|
|
|
|
.PHONY: all clean
|
|
.PRECIOUS: $(MIRRORROOT_FULL)/%.c $(MIRRORROOT_TARGETED)/mpc55xx/%.c $(MIRRORROOT_TARGETED)/t2080/%.c
|
|
.SECONDARY: $(NAME)_ppc_mpc55xx.json $(NAME)_ppc_t2080.json
|
|
|
|
all: $(NAME)_ppc_mpc55xx.elf $(NAME)_ppc_t2080.elf \
|
|
$(NAME)_ppc_mpc55xx_instr_full.elf $(NAME)_ppc_t2080_instr_full.elf \
|
|
$(NAME)_ppc_mpc55xx_instr_targeted.elf $(NAME)_ppc_t2080_instr_targeted.elf \
|
|
$(NAME).c.eca
|
|
|
|
|
|
$(MIRRORROOT_FULL) $(MIRRORROOT_TARGETED)/mpc55xx $(MIRRORROOT_TARGETED)/t2080:
|
|
mkdir --parents $@
|
|
|
|
|
|
%.c.eca: %.c
|
|
$(ECAGRP)t32cast eca $(ECAOPT) --export-cfg -o $@ $^
|
|
|
|
ppc/t32pp.c:
|
|
$(ECAGRP)/t32cast instrument --mode=mcdc --gen-instr-source-files --probe-dir=ppc
|
|
|
|
%_mpc55xx.json: %_mpc55xx.elf $(NAME).c.eca
|
|
$(ECAGRP)/t32mppc -c ./scripts/config_t32cast.t32 -s ./scripts/detect-obs-gaps.cmm $< $@
|
|
|
|
%_t2080.json: %_t2080.elf $(NAME).c.eca
|
|
$(ECAGRP)/t32mppc64 -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)/mpc55xx/%.c: %.c %_ppc_mpc55xx.json
|
|
$(ECAGRP)/t32cast instrument --mode=mcdc --probe-dir=ppc --filter=$(filter-out $<,$^) $(ECAOPT) -o $@ $<
|
|
|
|
$(MIRRORROOT_TARGETED)/t2080/%.c: %.c %_ppc_t2080.json
|
|
$(ECAGRP)/t32cast instrument --mode=mcdc --probe-dir=ppc --filter=$(filter-out $<,$^) $(ECAOPT) -o $@ $<
|
|
|
|
|
|
%.ppc.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
|
|
|
|
ppc/%.ppc.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
|
|
|
|
%.ppc64.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
|
|
|
|
ppc/%.ppc64.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -o $@ $<
|
|
|
|
%.ppc.o: %.sx $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(AOPT) $(addprefix -D,$(DEFINES)) -o $@ $<
|
|
|
|
%.ppc64.o: %.sx $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(AOPT) $(addprefix -D,$(DEFINES)) -DQORIQ=1 -o $@ $<
|
|
|
|
|
|
$(MIRRORROOT_FULL)/%.ppc.o: $(MIRRORROOT_FULL)/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_FULL)
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
|
|
|
|
$(MIRRORROOT_FULL)/%.ppc64.o: $(MIRRORROOT_FULL)/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_FULL)
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
|
|
|
|
$(MIRRORROOT_TARGETED)/mpc55xx/%.ppc.o: $(MIRRORROOT_TARGETED)/mpc55xx/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_TARGETED)/mpc55xx
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
|
|
|
|
$(MIRRORROOT_TARGETED)/t2080/%.ppc64.o: $(MIRRORROOT_TARGETED)/t2080/%.c $(MAKEFILE_LIST) | $(MIRRORROOT_TARGETED)/t2080
|
|
$(CCGRP)gcc $(COPT) $(addprefix -I ,$(INCLUDEDIR)) -include t32pp.h -o $@ $<
|
|
|
|
|
|
ppc/sram_mpc55xx.ld: ppc/link.lds $(MAKEFILE_LIST)
|
|
$(CCGRP)cpp -P -o $@ $< -D RAM_SIZE=16K
|
|
|
|
ppc/sram_t2080.ld: ppc/link.lds $(MAKEFILE_LIST)
|
|
$(CCGRP)cpp -P -o $@ $< -D RAM_SIZE=16K
|
|
|
|
|
|
$(NAME)_ppc_mpc55xx.elf: $(addprefix ppc/,sram_mpc55xx.ld crt0.ppc.o main.ppc.o $(NAME).ppc.o)
|
|
$(CCGRP)gcc $(LOPT) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
|
|
|
|
$(NAME)_ppc_t2080.elf: $(addprefix ppc/,sram_t2080.ld crt0.ppc64.o main.ppc64.o $(NAME).ppc64.o)
|
|
$(CCGRP)gcc $(LOPT) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
|
|
|
|
|
|
$(NAME)_ppc_mpc55xx_instr_full.elf: $(addprefix ppc/,sram_mpc55xx.ld crt0.ppc.o main.ppc.o t32pp.ppc.o) $(MIRRORROOT_FULL)/$(NAME).ppc.o
|
|
$(CCGRP)gcc $(LOPT) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
|
|
|
|
$(NAME)_ppc_t2080_instr_full.elf: $(addprefix ppc/,sram_t2080.ld crt0.ppc64.o main.ppc64.o t32pp.ppc64.o) $(MIRRORROOT_FULL)/$(NAME).ppc64.o
|
|
$(CCGRP)gcc $(LOPT) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
|
|
|
|
|
|
$(NAME)_ppc_mpc55xx_instr_targeted.elf: $(addprefix ppc/,sram_mpc55xx.ld crt0.ppc.o main.ppc.o t32pp.ppc.o) $(MIRRORROOT_TARGETED)/mpc55xx/$(NAME).ppc.o
|
|
$(CCGRP)gcc $(LOPT) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
|
|
|
|
$(NAME)_ppc_t2080_instr_targeted.elf: $(addprefix ppc/,sram_t2080.ld crt0.ppc64.o main.ppc64.o t32pp.ppc64.o) $(MIRRORROOT_TARGETED)/t2080/$(NAME).ppc64.o
|
|
$(CCGRP)gcc $(LOPT) -o $@ -T $^ -Wl,--start-group $(LIBS) -Wl,--end-group
|
|
|
|
|
|
clean:
|
|
-rm -fv ppc/*.o
|
|
-rm -fv ppc/t32pp.*
|
|
-rm -fv *.elf
|
|
-rm -fv *.eca
|
|
-rm -fv *.json
|
|
-rm -fv $(MIRRORROOT_FULL)/*.*
|
|
-rm -fv $(MIRRORROOT_TARGETED)/mpc55xx/*.*
|
|
-rm -fv $(MIRRORROOT_TARGETED)/t2080/*.*
|