# Awk script to generate mach-types.h # BEGIN { nr = 0 } /^#/ { next } /^[ ]*$/ { next } NF == 1 { machname[nr] = $1; nr++; } END { for (i = 0; i < nr; i++) if (ENVIRON["MACHINE_"machname[i]] == "yes") buildmach[i]=1 else buildmach[i]=0 printf("/*\n"); printf(" * This was automagically generated from %s!\n", FILENAME); printf(" * Do NOT edit\n"); printf(" */\n\n"); printf("#ifndef __MACH_TYPE_H\n"); printf("#define __MACH_TYPE_H\n\n"); for (i = 0; i < nr; i++) printf("#define MACHINE_%-30s %d\n", machname[i], i+1); printf("\nextern int machine_number;\n\n"); printf("void inline set_machine_number(char *machstring)\n{\n"); for (i = 0; i < nr; i++) if (buildmach[i] == 1) { printf("\tif (strcmp(machstring, \"%s\") == 0) {\n\t\tmachine_number = MACHINE_%s;\n\t\treturn;\n\t}\n", machname[i], machname[i]); } printf("}\n\n"); for (i = 0; i < nr; i++) { if (buildmach[i] == 1) printf("#define machine_is_%s()\t(machine_number == MACHINE_%s)\n", machname[i], machname[i]); else printf("#define machine_is_%s()\t(0)\n", machname[i]); } printf("\n#endif\n"); }