|
| 1 | +JAVAC ?= javac |
| 2 | +JAVA ?= java |
| 3 | +INPUT_FILE ?= INP |
| 4 | +EXPECTED_OUTPUT_FILE ?= EXPECTED_OUTPUT |
| 5 | +SCORE_FILE ?= score |
| 6 | +score=2 |
| 7 | + |
| 8 | +logtrieerror= (echo 'ERROR '; echo 'EXPECTED_OUTPUT:'; echo "--------------"; cat Trie/$(EXPECTED_OUTPUT_FILE); echo "==============" ;echo "Your OUTPUT"; echo "--------------"; cat Trie/tmp;) |
| 9 | +logrberror = (echo "ERROR"; echo "EXPECTED_OUTPUT:"; echo "--------------"; cat RedBlack/$(EXPECTED_OUTPUT_FILE); echo "==============" ;echo "Your OUTPUT:"; echo "--------------"; cat RedBlack/tmp;) |
| 10 | +logpqerror = (echo 'ERROR '; echo 'EXPECTED_OUTPUT:'; echo "--------------"; cat PriorityQueue/$(EXPECTED_OUTPUT_FILE); echo "=============="; echo "Your OUTPUT:"; echo "--------------"; cat PriorityQueue/tmp; ) |
| 11 | +logpmerror = (echo 'ERROR '; echo 'EXPECTED_OUTPUT:'; echo "--------------"; cat ProjectManagement/$(EXPECTED_OUTPUT_FILE); echo "=============="; echo "Your OUTPUT:"; echo "--------------"; cat ProjectManagement/tmp; ) |
| 12 | + |
| 13 | +all: triebuild triecheck rbtreebuild rbtreecheck pqbuild pqcheck pmbuild pmcheck clean |
| 14 | +testcase: pqtestcase rbtestcase trietestcase pmtestcase |
| 15 | +build: triebuild rbtreebuild pqbuild pmbuild |
| 16 | +check: triecheck pqcheck rbtreecheck pmcheck |
| 17 | +trie: triebuild triecheck trieclean |
| 18 | +rbtree: rbtreebuild rbtreecheck rbtreeclean |
| 19 | +pq: pqbuild pqcheck pqclean |
| 20 | +pm: pmbuild pmcheck pmclean |
| 21 | + |
| 22 | + |
| 23 | +triebuild: |
| 24 | + @echo "**********" |
| 25 | + @echo "Building Trie" |
| 26 | + @echo "**********" |
| 27 | + @$(JAVAC) -encoding ISO-8859-1 Trie/*.java |
| 28 | +triecheck: triebuild |
| 29 | + @echo "**********" |
| 30 | + @echo "Checking Trie" |
| 31 | + @echo "**********" |
| 32 | + @$(JAVA) Trie.TrieDriverCode Trie/$(INPUT_FILE) >Trie/tmp |
| 33 | + @cd Trie && sed -i 's/[^[:print:]]//g' tmp && sed -i 's/[^[:print:]]//g' $(EXPECTED_OUTPUT_FILE) |
| 34 | + @diff -i Trie/tmp Trie/$(EXPECTED_OUTPUT_FILE) && echo 'TRIE SUCCESS' || $(call logtrieerror) |
| 35 | +trieclean: |
| 36 | + -@rm Trie/tmp -f |
| 37 | + -@rm Trie/*.class -f |
| 38 | + |
| 39 | +rbtreebuild: |
| 40 | + @echo "\n**********" |
| 41 | + @echo "Building Red-Black Tree" |
| 42 | + @echo "**********" |
| 43 | + @$(JAVAC) -encoding ISO-8859-1 RedBlack/*.java |
| 44 | +rbtreecheck: rbtreebuild |
| 45 | + @echo "\n**********" |
| 46 | + @echo "Checking Red-Black" |
| 47 | + @echo "**********" |
| 48 | + @$(JAVA) RedBlack.RedBlackDriverCode RedBlack/$(INPUT_FILE) >RedBlack/tmp |
| 49 | + @cd RedBlack && sed -i 's/[^[:print:]]//g' tmp && sed -i 's/[^[:print:]]//g' $(EXPECTED_OUTPUT_FILE) |
| 50 | + @diff -i RedBlack/tmp RedBlack/$(EXPECTED_OUTPUT_FILE) && echo 'RBTREE SUCCESS' || $(call logrberror) |
| 51 | +rbtreeclean: |
| 52 | + -@rm RedBlack/tmp -f |
| 53 | + -@rm RedBlack/*.class -f |
| 54 | + |
| 55 | +pqbuild: |
| 56 | + @echo "\n**********" |
| 57 | + @echo "Building PriorityQueue" |
| 58 | + @echo "**********" |
| 59 | + @$(JAVAC) -encoding ISO-8859-1 PriorityQueue/*.java |
| 60 | +pqcheck: pqbuild |
| 61 | + @echo "\n**********" |
| 62 | + @echo "Checking PriorityQueue" |
| 63 | + @echo "**********" |
| 64 | + @$(JAVA) PriorityQueue.PriorityQueueDriverCode PriorityQueue/$(INPUT_FILE) >PriorityQueue/tmp |
| 65 | + @cd PriorityQueue && sed -i 's/[^[:print:]]//g' tmp && sed -i 's/[^[:print:]]//g' $(EXPECTED_OUTPUT_FILE) |
| 66 | + @diff -i PriorityQueue/tmp PriorityQueue/$(EXPECTED_OUTPUT_FILE) && echo 'PQ SUCCESS' || $(call logpqerror) |
| 67 | +pqclean: |
| 68 | + -@rm PriorityQueue/tmp -f |
| 69 | + -@rm PriorityQueue/*.class -f |
| 70 | + |
| 71 | +pmbuild: |
| 72 | + @echo "\n**********" |
| 73 | + @echo "Building ProjectManagement" |
| 74 | + @echo "**********" |
| 75 | + @$(JAVAC) -encoding ISO-8859-1 ProjectManagement/*.java |
| 76 | +pmcheck: pmbuild |
| 77 | + @echo "\n**********" |
| 78 | + @echo "Checking ProjectManagement" |
| 79 | + @echo "**********" |
| 80 | + @$(JAVA) ProjectManagement.Scheduler_Driver ProjectManagement/$(INPUT_FILE) >ProjectManagement/tmp |
| 81 | + @cd ProjectManagement && sed -i 's/[^[:print:]]//g' tmp && sed -i 's/[^[:print:]]//g' $(EXPECTED_OUTPUT_FILE) |
| 82 | + @diff -i ProjectManagement/tmp ProjectManagement/$(EXPECTED_OUTPUT_FILE) && echo 'PM SUCCESS' || $(call logpmerror) |
| 83 | +pmclean: |
| 84 | + -@rm ProjectManagement/tmp -f |
| 85 | + -@rm ProjectManagement/*.class -f |
| 86 | + |
| 87 | + |
| 88 | +clean: trieclean pqclean rbtreeclean pmclean |
| 89 | + -@rm -f Util/*.class |
| 90 | + @echo "Done" |
| 91 | + |
| 92 | +trietestcase: |
| 93 | + @make triebuild |
| 94 | + @$(JAVA) Trie.TrieDriverCode Trie/$(INPUT_FILE) >Trie/$(EXPECTED_OUTPUT_FILE) |
| 95 | + @make clean |
| 96 | +pqtestcase: |
| 97 | + @make pqbuild |
| 98 | + @$(JAVA) PriorityQueue.PriorityQueueDriverCode PriorityQueue/$(INPUT_FILE) >PriorityQueue/$(EXPECTED_OUTPUT_FILE) |
| 99 | + @make clean |
| 100 | +rbtestcase: |
| 101 | + @make rbtreebuild |
| 102 | + @$(JAVA) RedBlack.RedBlackDriverCode RedBlack/$(INPUT_FILE) >RedBlack/$(EXPECTED_OUTPUT_FILE) |
| 103 | + @make clean |
| 104 | +pmtestcase: |
| 105 | + @make pmbuild |
| 106 | + @$(JAVA) ProjectManagement.Scheduler_Driver ProjectManagement/$(INPUT_FILE) >ProjectManagement/$(EXPECTED_OUTPUT_FILE) |
| 107 | + @make clean |
0 commit comments