fix incorrect function prototype in header
remove unnecessary pragma once

It's enabled by default in gcc, and there are #ifdef guards in any case
add makefile