#!/bin/awk 
 | 
# SPDX-License-Identifier: GPL-2.0 
 | 
# 
 | 
# Awk script to generate include/generated/machtypes.h 
 | 
# Heavily based on arch/arm/tools/gen-mach-types 
 | 
# 
 | 
BEGIN    { nr = 0 } 
 | 
/^#/    { next } 
 | 
/^[     ]*$/ { next } 
 | 
  
 | 
NF == 2 { 
 | 
      mach[nr] = $1; 
 | 
      config[nr] = "CONFIG_"$2; 
 | 
      nr++; 
 | 
    } 
 | 
  
 | 
END    { 
 | 
      printf("/*\n"); 
 | 
      printf(" * Automagically generated, don't touch.\n"); 
 | 
      printf(" */\n"); 
 | 
      printf("#ifndef __ASM_SH_MACHTYPES_H\n"); 
 | 
      printf("#define __ASM_SH_MACHTYPES_H\n"); 
 | 
      printf("\n"); 
 | 
      printf("/*\n"); 
 | 
      printf(" * We'll use the following MACH_xxx defs for placeholders for the time\n"); 
 | 
      printf(" * being .. these will all go away once sh_machtype is assigned per-board.\n"); 
 | 
      printf(" *\n"); 
 | 
      printf(" * For now we leave things the way they are for backwards compatibility.\n"); 
 | 
      printf(" */\n"); 
 | 
      printf("\n"); 
 | 
      printf("/* Mach types */\n"); 
 | 
  
 | 
      for (i = 0; i < nr; i++) { 
 | 
          printf("#ifdef %s\n", config[i]); 
 | 
          printf("  #define MACH_%s\t\t1\n", mach[i]); 
 | 
          printf("#else\n"); 
 | 
          printf("  #define MACH_%s\t\t0\n", mach[i]); 
 | 
          printf("#endif\n"); 
 | 
        } 
 | 
  
 | 
      printf("\n"); 
 | 
      printf("/* Machtype checks */\n"); 
 | 
      for (i = 0; i < nr; i++) 
 | 
          printf("#define mach_is_%s()\t\t\t(MACH_%s)\n", 
 | 
              tolower(mach[i]), mach[i]); 
 | 
      printf("\n"); 
 | 
      printf("#endif /* __ASM_SH_MACHTYPES_H */\n"); 
 | 
    } 
 |