diff --git a/Makefile b/Makefile index 7360c90a38216f5a1309dc9a83124a338b28746a..c7836a0bff6f9f726e3954cce81ec8c8cf56da9e 100644 --- a/Makefile +++ b/Makefile @@ -61,8 +61,9 @@ SOURCES := $(filter-out $(TESTSOURCES), $(SOURCES)) OBJECTS = $(SOURCES:%.cpp=%.o) # name of the tarball created for submission -PARTIAL_SUBMITFILE = partialsubmit.tar.gz FULL_SUBMITFILE = fullsubmit.tar.gz +PARTIAL_SUBMITFILE = partialsubmit.tar.gz +UNGRADED_SUBMITFILE = ungraded.tar.gz # name of the perf data file, only used by the clean target PERF_FILE = perf.data* @@ -144,31 +145,46 @@ alltests: $(TESTS) # make clean - remove .o files, executables, tarball clean: rm -f $(OBJECTS) $(EXECUTABLE) $(EXECUTABLE)_debug $(EXECUTABLE)_profile \ - $(TESTS) $(PARTIAL_SUBMITFILE) $(FULL_SUBMITFILE) $(PERF_FILE) + $(TESTS) $(PARTIAL_SUBMITFILE) $(FULL_SUBMITFILE) $(PERF_FILE) \ + $(UNGRADED_SUBMITFILE) rm -Rf *.dSYM + +# get a list of all files that might be included in a submit +# different submit types can do additional filtering to remove unwanted files +FULL_SUBMITFILES=$(filter-out $(TESTSOURCES), \ + $(wildcard Makefile *.h *.hpp *.cpp test*.txt)) + +# make fullsubmit.tar.gz - cleans, runs dos2unix, creates tarball +# including test files +$(FULL_SUBMITFILE): $(FULL_SUBMITFILES) + rm -f $(PARTIAL_SUBMITFILE) $(FULL_SUBMITFILE) $(UNGRADED_SUBMITFILE) + COPYFILE_DISABLE=true tar -vczf $(FULL_SUBMITFILE) $(FULL_SUBMITFILES) + @echo !!! Final submission prepared, test files included... READY FOR GRADING !!! + # make partialsubmit.tar.gz - cleans, creates tarball # omitting test files -PARTIAL_SUBMITFILES=$(filter-out $(TESTSOURCES), \ - $(wildcard Makefile *.h *.hpp *.cpp)) +PARTIAL_SUBMITFILES=$(filter-out $(wildcard test*.txt), $(FULL_SUBMITFILES)) $(PARTIAL_SUBMITFILE): $(PARTIAL_SUBMITFILES) - rm -f $(PARTIAL_SUBMITFILE) $(FULL_SUBMITFILE) + rm -f $(PARTIAL_SUBMITFILE) $(FULL_SUBMITFILE) $(UNGRADED_SUBMITFILE) COPYFILE_DISABLE=true tar -vczf $(PARTIAL_SUBMITFILE) \ $(PARTIAL_SUBMITFILES) @echo !!! WARNING: No test files included. Use 'make fullsubmit' to include test files. !!! -# make fullsubmit.tar.gz - cleans, runs dos2unix, creates tarball -# including test files -FULL_SUBMITFILES=$(filter-out $(TESTSOURCES), \ - $(wildcard Makefile *.h *.hpp *.cpp test*.txt)) -$(FULL_SUBMITFILE): $(FULL_SUBMITFILES) - rm -f $(PARTIAL_SUBMITFILE) $(FULL_SUBMITFILE) - COPYFILE_DISABLE=true tar -vczf $(FULL_SUBMITFILE) $(FULL_SUBMITFILES) - @echo !!! Final submission prepared, test files included... READY FOR GRADING !!! +# make ungraded.tar.gz - cleans, creates tarball omitting test files, Makefile +UNGRADED_SUBMITFILES=$(filter-out Makefile, $(PARTIAL_SUBMITFILES)) +$(UNGRADED_SUBMITFILE): $(UNGRADED_SUBMITFILES) + rm -f $(PARTIAL_SUBMITFILE) $(FULL_SUBMITFILE) $(UNGRADED_SUBMITFILE) + @touch __ungraded + COPYFILE_DISABLE=true tar -vczf $(UNGRADED_SUBMITFILE) \ + $(UNGRADED_SUBMITFILES) __ungraded + @rm -f __ungraded + @echo !!! WARNING: This submission will not be graded. !!! # shortcut for make submit tarballs -partialsubmit: identifier $(PARTIAL_SUBMITFILE) fullsubmit: identifier $(FULL_SUBMITFILE) +partialsubmit: identifier $(PARTIAL_SUBMITFILE) +ungraded: identifier $(UNGRADED_SUBMITFILE) # REMOTE_PATH has default definition above sync2caen: @@ -279,6 +295,6 @@ help: # these targets do not create any files .PHONY: all release debug profile static clean alltests partialsubmit \ - fullsubmit sync2caen help identifier + fullsubmit ungraded sync2caen help identifier # disable built-in rules .SUFFIXES: