package { default_applicable_licenses: ["external_one-true-awk_license"], } // Added automatically by a large-scale-change that took the approach of // 'apply every license found to every target'. While this makes sure we respect // every license restriction, it may not be entirely correct. // // e.g. GPL in an MIT project might only apply to the contrib/ directory. // // Please consider splitting the single license below into multiple licenses, // taking care not to lose any license_kind information, and overriding the // default license using the 'licenses: [...]' property on targets as needed. // // For unused files, consider creating a 'fileGroup' with "//visibility:private" // to attach the license to, and including a comment whether the files may be // used in the current project. // See: http://go/android-license-faq license { name: "external_one-true-awk_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-BSD", "SPDX-license-identifier-MIT", ], license_text: [ "LICENSE", ], } cc_defaults { name: "awk-flags", cflags: [ "-Wall", "-Werror", "-Wextra", // Ignore a few harmless idioms widely used in this code. "-Wno-missing-field-initializers", "-Wno-self-assign", "-Wno-unused-parameter", // A loop to UCHAR_MAX in `b.c`. "-Wno-sign-compare", // And one less harmless used with strtod(3) in `lex.c`. "-Wno-unused-result", // Also ignore harmless macro redefinitions: glibc 2.17 #defines dprintf // in stdio2.h, and this #defines it in awk.h "-Wno-macro-redefined", ], c_std: "gnu11", stl: "none", yacc: { flags: [ "-y", ], }, } genrule { name: "awkgram.tab.c", cmd: "M4=$(location m4) $(location bison) -y --no-lines --output=$(genDir)/awkgram.tab.c $(in)", out: ["awkgram.tab.c"], srcs: ["awkgram.y"], tools: [ "bison", "m4", ], } genrule { name: "awkgram.tab.h", cmd: "M4=$(location m4) $(location bison) -y --no-lines --defines=$(genDir)/awkgram.tab.h --output=$(genDir)/awkgram.tab.c $(in)", out: ["awkgram.tab.h"], srcs: ["awkgram.y"], tools: [ "bison", "m4", ], } genrule { name: "proctab.c", tools: ["awk-maketab"], cmd: "$(location awk-maketab) $(in) > $(genDir)/proctab.c", out: ["proctab.c"], srcs: [":awkgram.tab.h"], } cc_binary_host { name: "awk-maketab", defaults: ["awk-flags"], generated_headers: ["awkgram.tab.h"], srcs: ["maketab.c"], } cc_defaults { name: "awk-defaults", defaults: ["awk-flags"], generated_headers: ["awkgram.tab.h"], srcs: [ "b.c", "lex.c", "lib.c", "main.c", "parse.c", ":proctab.c", "run.c", "tran.c", ":awkgram.tab.c", ], } cc_binary { name: "awk", defaults: ["awk-defaults"], } cc_binary { name: "awk_vendor", defaults: ["awk-defaults"], stem: "awk", vendor: true, } cc_binary_host { name: "one-true-awk", defaults: ["awk-defaults"], }