makefile now generates executables with a working main as well as .u files for use in the run scripts. benchmark source now sends output to a file, either ampersand output if main is defined or dev null if it is not. run scripts account for this behavior by defining a global variable named output and the null file according to the users os