# Copyright (C) 2006 OpenWrt.org { line=$0 gsub(/^[ \t]*/, "") gsub(/[ \t]*$/, "") } $1 == "@define" { v[$2] = $3 } $1 == "@ifdef" { if_open = 1 if (v[$2] != "") noprint = 0 else noprint = 1 } $1 == "@ifndef" { if_open = 1 if (v[$2] != "") noprint = 1 else noprint = 0 } $1 == "@else" { if (noprint == 1) noprint = 0 else noprint = 1 } ($1 !~ /^@[a-zA-Z0-9_]/) && (noprint != 1) { n=split(line "@@", a, /@@/) for (i=1; i<=n; i++) { if ((i % 2) == 1) printf "%s" a[i] else printf "%s" v[a[i]] } print "" } $1 == "@endif" { if_open = 0 noprint = 0 }