added to memoize return values of functions
added some utility functions to get user name and hostname at build time
made it not runnable as root
added some special parameters to carry build time information, etc.
made some build time information embedded in generated Makefile for setup