'Writes the C header file.
This file contains all the function declarations.
Parameters
routines : list
A list of Routine instances.
f : file-like
Where to write the file.
prefix : string
The filename prefix, used to construct the include guards.
Only the basename of the prefix is used.
header : bool, optional
When True, a header comment is included on top of each source
file.  [default : True]
empty : bool, optional
When True, empty lines are included to structure the source
files.  [default : True]'

def dump_h(self, routines, f, prefix, header=True, empty=True):

    if header:
        print(''.join(self._get_header()), file=f)
    guard_name = ('%s__%s__H' % (self.project.replace('    ', '_').upper(), prefix.replace('/', '_').upper()))
    if empty:
        print(file=f)
    print(('#ifndef    %s' % guard_name), file=f)
    print(('#define    %s' % guard_name), file=f)
    if empty:
        print(file=f)
    for routine in routines:
        prototype = self.get_prototype(routine)
        print(('%s;' % prototype), file=f)
    if empty:
        print(file=f)
    print('#endif', file=f)
    if empty:
        print(file=f)
