better Makefile

- add some flags to compiler options
- outputs are compiled and linked in build directory
properly clean output dir
add output dir to ignore list