note that calling distclean target should be done first