Makefile 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. GCC = gcc
  2. CFLAGS = -g -Wall -Wshadow
  3. OBJS = utility.o pa09.o
  4. HDRS = pa09.h
  5. TARGET = pa09
  6. VALGRIND = valgrind --tool=memcheck --leak-check=full --verbose
  7. .PHONY: test clean environment test_ch01 test_ch02 test_ch03 test_ch04 test_ch05 test_ch06 test_bit01 test_bit02 test_bit03 test_bit04 test_bit05 test_bit06
  8. pa09: $(OBJS) $(HDRS)
  9. $(GCC) $(CFLAGS) $(OBJS) -o $@
  10. test: | test_ch01 test_ch02 test_ch03 test_ch04 test_ch05 test_ch06 test_bit01 test_bit02 test_bit03 test_bit04 test_bit05 test_bit06
  11. test_ch01: $(TARGET) | environment
  12. ./$(TARGET) inputs/ch_header_inputs/testcase1_ch outputs/output_ch01
  13. diff expected/ch_expected/solution1 outputs/output_ch01
  14. $(VALGRIND) --log-file=outputs/memoutput_ch01 ./pa09 inputs/ch_header_inputs/testcase1_ch outputs/output_ch01 >/dev/null
  15. @bin/valgrind-checker.sh outputs/memoutput_ch01
  16. test_ch02: $(TARGET) | environment
  17. ./$(TARGET) inputs/ch_header_inputs/testcase2_ch outputs/output_ch02
  18. diff expected/ch_expected/solution2 outputs/output_ch02
  19. $(VALGRIND) --log-file=outputs/memoutput_ch02 ./pa09 inputs/ch_header_inputs/testcase2_ch outputs/output_ch02 >/dev/null
  20. @bin/valgrind-checker.sh outputs/memoutput_ch02
  21. test_ch03: $(TARGET) | environment
  22. ./$(TARGET) inputs/ch_header_inputs/testcase3_ch outputs/output_ch03
  23. diff expected/ch_expected/solution3 outputs/output_ch03
  24. $(VALGRIND) --log-file=outputs/memoutput_ch03 ./pa09 inputs/ch_header_inputs/testcase3_ch outputs/output_ch03 >/dev/null
  25. @bin/valgrind-checker.sh outputs/memoutput_ch03
  26. test_ch04: $(TARGET) | environment
  27. ./$(TARGET) inputs/ch_header_inputs/testcase4_ch outputs/output_ch04
  28. diff expected/ch_expected/solution4 outputs/output_ch04
  29. $(VALGRIND) --log-file=outputs/memoutput_ch04 ./pa09 inputs/ch_header_inputs/testcase4_ch outputs/output_ch04 >/dev/null
  30. @bin/valgrind-checker.sh outputs/memoutput_ch04
  31. test_ch05: $(TARGET) | environment
  32. ./$(TARGET) inputs/ch_header_inputs/testcase5_ch outputs/output_ch05
  33. diff expected/ch_expected/solution5 outputs/output_ch05
  34. $(VALGRIND) --log-file=outputs/memoutput_ch05 ./pa09 inputs/ch_header_inputs/testcase5_ch outputs/output_ch05 >/dev/null
  35. @bin/valgrind-checker.sh outputs/memoutput_ch05
  36. test_ch06: $(TARGET) | environment
  37. ./$(TARGET) inputs/ch_header_inputs/testcase6_ch outputs/output_ch06
  38. diff expected/ch_expected/solution6 outputs/output_ch06
  39. $(VALGRIND) --log-file=outputs/memoutput_ch06 ./pa09 inputs/ch_header_inputs/testcase6_ch outputs/output_ch06 >/dev/null
  40. @bin/valgrind-checker.sh outputs/memoutput_ch06
  41. test_bit01: $(TARGET) | environment
  42. ./$(TARGET) inputs/bit_header_inputs/description_bit outputs/output_bit01
  43. diff expected/bit_expected/description_sol outputs/output_bit01
  44. $(VALGRIND) --log-file=outputs/memoutput_bit01 ./pa09 inputs/bit_header_inputs/description_bit outputs/output_bit01
  45. @bin/valgrind-checker.sh outputs/memoutput_bit01
  46. test_bit02: $(TARGET) | environment
  47. ./$(TARGET) inputs/bit_header_inputs/gophers_bit outputs/output_bit02
  48. diff expected/bit_expected/gophers_sol outputs/output_bit02
  49. $(VALGRIND) --log-file=outputs/memoutput_bit02 ./pa09 inputs/bit_header_inputs/gophers_bit outputs/output_bit02
  50. @bin/valgrind-checker.sh outputs/memoutput_bit02
  51. test_bit03: $(TARGET) | environment
  52. ./$(TARGET) inputs/bit_header_inputs/poetry1_bit outputs/output_bit03
  53. diff expected/bit_expected/poetry1_sol outputs/output_bit03
  54. $(VALGRIND) --log-file=outputs/memoutput_bit03 ./pa09 inputs/bit_header_inputs/poetry1_bit outputs/output_bit03
  55. @bin/valgrind-checker.sh outputs/memoutput_bit03
  56. test_bit04: $(TARGET) | environment
  57. ./$(TARGET) inputs/bit_header_inputs/poetry2_bit outputs/output_bit04
  58. diff expected/bit_expected/poetry2_sol outputs/output_bit04
  59. $(VALGRIND) --log-file=outputs/memoutput_bit04 ./pa09 inputs/bit_header_inputs/poetry2_bit outputs/output_bit04
  60. @bin/valgrind-checker.sh outputs/memoutput_bit04
  61. test_bit05: $(TARGET) | environment
  62. ./$(TARGET) inputs/bit_header_inputs/prefixcodes_bit outputs/output_bit05
  63. diff expected/bit_expected/prefixcodes_sol outputs/output_bit05
  64. $(VALGRIND) --log-file=outputs/memoutput_bit05 ./pa09 inputs/bit_header_inputs/prefixcodes_bit outputs/output_bit05
  65. @bin/valgrind-checker.sh outputs/memoutput_bit05
  66. test_bit06: $(TARGET) | environment
  67. ./$(TARGET) inputs/bit_header_inputs/stone_bit outputs/output_bit06
  68. diff expected/bit_expected/stone_sol outputs/output_bit06
  69. $(VALGRIND) --log-file=outputs/memoutput_bit06 ./pa09 inputs/bit_header_inputs/stone_bit outputs/output_bit06
  70. @bin/valgrind-checker.sh outputs/memoutput_bit06
  71. test_bit07: $(TARGET) | environment
  72. ./$(TARGET) inputs/bit_header_inputs/woods_bit outputs/output_bit07
  73. diff expected/bit_expected/woods_sol outputs/output_bit07
  74. $(VALGRIND) --log-file=outputs/memoutput_bit07 ./pa09 inputs/bit_header_inputs/woods_bit outputs/output_bit07
  75. @bin/valgrind-checker.sh outputs/memoutput_bit07
  76. environment:
  77. @mkdir -p outputs
  78. .c.o:
  79. $(GCC) $(CFLAGS) -c $*.c
  80. clean:
  81. rm -r $(TARGET) $(OBJS) outputs/*output* outputs/memoutput*