GNAT now comes with a binding generator for C and C++ headers which is intended to do 95% of the tedious work of generating Ada specs from C or C++ header files.
Note that this capability is not intended to generate 100% correct Ada specs, and will is some cases require manual adjustments, although it can often be used out of the box in practice.
Some of the known limitations include:
shm_get
vs SHM_GET
).
The code generated is using the Ada 2005 syntax, which makes it easier to interface with other languages than previous versions of Ada.