Add a header inclusion guard
Make C files depend on header file

Mkae C files depend on header file so make works correctly if the header
file is changed.
Use a fixed size structure for interoperability