makefile: declare phony targets in situ
makefile: replace hard-coded list of files
makefile: silence echo commands only
makefile: preserve dependencies when cleaning
makefile: determine release version via semver
makefile: simplify JavaScript file generation