Files
heimdal/lib/roken/roken.awk
Luke Howard 04b3c124ca roken: ROKEN_xxx_ATTRIBUTE macros
Add ROKEN_xxx_ATTRIBUTE macros, derived from krb5-types.h, to aid compiling
with compilers that don't have __attribute__ defined.
2023-01-09 14:09:13 -05:00

55 lines
1.3 KiB
Awk

# $Id$
BEGIN {
print "#include <config.h>"
print "#include <stdio.h>"
print "#ifdef HAVE_SYS_TYPES_H"
print "#include <sys/types.h>"
print "#endif"
print "#ifdef HAVE_SYS_SOCKET_H"
print "#include <sys/socket.h>"
print "#endif"
print "#ifdef HAVE_ERRNO_H"
print "#include <errno.h>"
print "#endif"
print "#if !defined(__has_extension)"
print "#define __has_extension(x) 0"
print "#endif"
print "#ifndef ROKEN_REQUIRE_GNUC"
print "#define ROKEN_REQUIRE_GNUC(m,n,p) \\"
print " (((__GNUC__ * 10000) + (__GNUC_MINOR__ * 100) + __GNUC_PATCHLEVEL__) >= \\"
print " (((m) * 10000) + ((n) * 100) + (p)))"
print "#endif"
print ""
print "int main(int argc, char **argv)"
print "{"
print "puts(\"/* This is an OS dependent, generated file */\");"
print "puts(\"\\n\");"
print "puts(\"#ifndef __ROKEN_H__\");"
print "puts(\"#define __ROKEN_H__\");"
print "puts(\"\");"
}
$1 == "#ifdef" || $1 == "#ifndef" || $1 == "#if" || $1 == "#else" || $1 == "#elif" || $1 == "#endif" {
print $0;
next
}
{
s = ""
for(i = 1; i <= length; i++){
x = substr($0, i, 1)
if(x == "\"" || x == "\\")
s = s "\\";
s = s x;
}
print "puts(\"" s "\");"
}
END {
print "puts(\"\");"
print "puts(\"#endif /* __ROKEN_H__ */\");"
print "return 0;"
print "}"
}