Makes it easier to reuse this code in other projects.
 /* Generated by CCAN configurator */
 #ifndef CCAN_CONFIG_H
 #define CCAN_CONFIG_H
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE /* Always use GNU extensions. */
+#endif
 #define CCAN_COMPILER "cc"
 #define CCAN_CFLAGS "-g -Wall -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wwrite-strings -DCCAN_STR_DEBUG=1"
 
 
        printf("/* Generated by CCAN configurator */\n"
               "#ifndef CCAN_CONFIG_H\n"
               "#define CCAN_CONFIG_H\n");
+       printf("#ifndef _GNU_SOURCE\n");
        printf("#define _GNU_SOURCE /* Always use GNU extensions. */\n");
+       printf("#endif\n");
        printf("#define CCAN_COMPILER \"%s\"\n", argv[1]);
        printf("#define CCAN_CFLAGS \"%s\"\n\n", cmd + strlen(argv[1]) + 1);
        for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++)