build: add clean target, improve single file compile on MinGW