following the GNU makefile conventions