OLD | NEW |
(Empty) | |
| 1 # |
| 2 # Makefile for the LCOV example program. |
| 3 # |
| 4 # Make targets: |
| 5 # - example: compile the example program |
| 6 # - output: run test cases on example program and create HTML output |
| 7 # - clean: clean up directory |
| 8 # |
| 9 |
| 10 CC := gcc |
| 11 CFLAGS := -Wall -I. -fprofile-arcs -ftest-coverage |
| 12 |
| 13 LCOV := ../bin/lcov |
| 14 GENHTML := ../bin/genhtml |
| 15 GENDESC := ../bin/gendesc |
| 16 GENPNG := ../bin/genpng |
| 17 |
| 18 # Depending on the presence of the GD.pm perl module, we can use the |
| 19 # special option '--frames' for genhtml |
| 20 USE_GENPNG := $(shell $(GENPNG) --help >/dev/null 2>/dev/null; echo $$?) |
| 21 |
| 22 ifeq ($(USE_GENPNG),0) |
| 23 FRAMES := --frames |
| 24 else |
| 25 FRAMES := |
| 26 endif |
| 27 |
| 28 .PHONY: clean output test_noargs test_2_to_2000 test_overflow |
| 29 |
| 30 all: output |
| 31 |
| 32 example: example.o iterate.o gauss.o |
| 33 $(CC) example.o iterate.o gauss.o -o example -lgcov |
| 34 |
| 35 example.o: example.c iterate.h gauss.h |
| 36 $(CC) $(CFLAGS) -c example.c -o example.o |
| 37 |
| 38 iterate.o: methods/iterate.c iterate.h |
| 39 $(CC) $(CFLAGS) -c methods/iterate.c -o iterate.o |
| 40 |
| 41 gauss.o: methods/gauss.c gauss.h |
| 42 $(CC) $(CFLAGS) -c methods/gauss.c -o gauss.o |
| 43 |
| 44 output: example descriptions test_noargs test_2_to_2000 test_overflow |
| 45 @echo |
| 46 @echo '*' |
| 47 @echo '* Generating HTML output' |
| 48 @echo '*' |
| 49 @echo |
| 50 $(GENHTML) trace_noargs.info trace_args.info trace_overflow.info \ |
| 51 --output-directory output --title "Basic example" \ |
| 52 --show-details --description-file descriptions $(FRAMES) \ |
| 53 --legend |
| 54 @echo |
| 55 @echo '*' |
| 56 @echo '* See '`pwd`/output/index.html |
| 57 @echo '*' |
| 58 @echo |
| 59 |
| 60 descriptions: descriptions.txt |
| 61 $(GENDESC) descriptions.txt -o descriptions |
| 62 |
| 63 all_tests: example test_noargs test_2_to_2000 test_overflow |
| 64 |
| 65 test_noargs: |
| 66 @echo |
| 67 @echo '*' |
| 68 @echo '* Test case 1: running ./example without parameters' |
| 69 @echo '*' |
| 70 @echo |
| 71 $(LCOV) --zerocounters --directory . |
| 72 ./example |
| 73 $(LCOV) --capture --directory . --output-file trace_noargs.info --test-n
ame test_noargs |
| 74 |
| 75 test_2_to_2000: |
| 76 @echo |
| 77 @echo '*' |
| 78 @echo '* Test case 2: running ./example 2 2000' |
| 79 @echo '*' |
| 80 @echo |
| 81 $(LCOV) --zerocounters --directory . |
| 82 ./example 2 2000 |
| 83 $(LCOV) --capture --directory . --output-file trace_args.info --test-nam
e test_2_to_2000 |
| 84 |
| 85 test_overflow: |
| 86 @echo |
| 87 @echo '*' |
| 88 @echo '* Test case 3: running ./example 0 100000 (causes an overflow)' |
| 89 @echo '*' |
| 90 @echo |
| 91 $(LCOV) --zerocounters --directory . |
| 92 ./example 0 100000 || true |
| 93 $(LCOV) --capture --directory . --output-file trace_overflow.info --test
-name "test_overflow" |
| 94 |
| 95 clean: |
| 96 rm -rf *.o *.bb *.bbg *.da *.gcno *.gcda *.info output example \ |
| 97 descriptions |
| 98 |
OLD | NEW |