X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fart%2Fgen_art_config.c;fp=lib%2Fart%2Fgen_art_config.c;h=8d88815d7ccdc5eb4f582e6145c42b232cfac877;hb=418ef05b5d0b74e6f19200ffa40bcc3afccb5029;hp=0000000000000000000000000000000000000000;hpb=c1f4a906117e98e2f4ba59abc1ce153e8129bc19;p=swftools.git diff --git a/lib/art/gen_art_config.c b/lib/art/gen_art_config.c new file mode 100644 index 0000000..8d88815 --- /dev/null +++ b/lib/art/gen_art_config.c @@ -0,0 +1,52 @@ +#include +#include "config.h" +#include + +/** + * A little utility function to generate header info. + * + * Yes, it would be possible to do this using more "native" autoconf + * features, but I personally find this approach to be cleaner. + * + * The output of this program is generally written to art_config.h, + * which is installed in libart's include dir. + **/ + +static void +die (char *why) +{ + fprintf (stderr, "gen_art_config: %s\n", why); + exit (1); +} + +int +main (int argc, char **argv) +{ + printf ("/* Automatically generated by gen_art_config.c */\n" + "\n" + "#define ART_SIZEOF_CHAR %d\n" + "#define ART_SIZEOF_SHORT %d\n" + "#define ART_SIZEOF_INT %d\n" + "#define ART_SIZEOF_LONG %d\n" + "\n", + (int)sizeof(char), (int)sizeof(short), (int)sizeof(int), (int)sizeof(long)); + + if (sizeof(char) == 1) + printf ("typedef unsigned char art_u8;\n"); + else + die ("sizeof(char) != 1"); + + if (sizeof(short) == 2) + printf ("typedef unsigned short art_u16;\n"); + else + die ("sizeof(short) != 2"); + + if (sizeof(int) == 4) + printf ("typedef unsigned int art_u32;\n"); + else if (sizeof(long) == 4) + printf ("typedef unsigned long art_u32;\n"); + else + die ("sizeof(int) != 4 and sizeof(long) != 4"); + + return 0; +}