As I explained before, it is possible to compile and run at build time a program that generates the necessary macros for the types needed.
The downside is that this won't work when cross-compiling to a different architecture or OS.
I have written a code generator in python for some C project. It fills a linked-list from snippets defined in many files. You could go this route.
There is even a C parser (compiled C) for python if you want.
No, the issue is that the C code must be compiled and run on the
target OS and architecture, not on the
host, to determine the signedness. You cannot determine the signedness of arbitrary types on the target by doing stuff on the host. Having a code generator does not help at all there.
As to the types whose signedness is needed, that is trivial to maintain, and does not need a code generator: consider the practical use cases.