support passing variables from command line
fix some bugs
gmake: optimize printing