P.S. Another approach to the gl*.h problem would be to copy them from gnulib into the source tree in the standard way, but then have the gnupdf build process copy them to (say) pdf_list.h. Then that could be installed and you wouldn't have to deal with physical inclusion, which granted is pretty weird.
On the other hand, if both pdf_list.h and gl_list.h define the same types, that would mean an application program could not use both. That seems bad again. And I bet renaming all the identifiers would not be fun. As for stddef.h and the like, I think all you can do in your public headers is #include them in the standard way. When gnupdf is built, the gnulib stuff can come into play, but there's no way to run a configure check at #include-time for when an application includes your headers ... k
