blob: e7d53ac92e9a737365406c39183979f05962f6b2 [file] [log] [blame]
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"],
}