Portable program_name
the libgnu.la portable library has an extern declaration of program_name, but no implementation. On mingw, this leads to an undefined symbol.
Anyway, in the library, program_name should be set to "libtarot", so that the assert failure report their program to "libtarot". But if we do that, then we'll have duplicate program_name when linking to the program (that defines its own program_name, as it should be). So the "program_name" symbol in libtarot should be renamed to "tarot_libtarot_progra_name".