blob: 6296db98037fd79b340953698e7fb89fc449a39f [file] [log] [blame]
cc_defaults {
name: "libext_defaults",
defaults: ["iptables_defaults"],
header_libs: ["iptables_config_header"],
cflags: [
"-DNO_SHARED_LIBS=1",
"-DXTABLES_INTERNAL",
"-Wno-format",
"-Wno-missing-field-initializers",
// libxt_recent.c:202:11: error: address of array 'info->name' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion]
"-Wno-pointer-bool-conversion",
"-Wno-tautological-pointer-compare",
],
}
// All of the extension source files have the same function name (_init). Since we don't support
// per-file cflags that upstream uses, instead:
//
// 1. Rewrite the source files with filter_init to have per-file function names. (libext*_srcs)
// 2. Create a new source file that defines a function (init_extensions*) with gen_init that calls
// all of the renamed _init functions (libext*_init)
//
// This all happens three times -- once each for libext, libext4, libext6
genrule {
name: "libext_init",
cmd: "$(location gen_init) '' $(locations libxt_*.c) > $(out)",
srcs: [
"gen_init",
"libxt_*.c",
],
out: ["initext.c"],
exclude_srcs: [
// Exclude some modules that are problematic to compile (types/headers)
"libxt_TCPOPTSTRIP.c",
"libxt_connlabel.c",
"libxt_cgroup.c",
"libxt_dccp.c",
"libxt_ipvs.c",
],
}
gensrcs {
name: "libext_srcs",
tool_files: ["filter_init"],
cmd: "$(location filter_init) $(in) > $(out)",
output_extension: "c",
srcs: ["libxt_*.c"],
exclude_srcs: [
// Exclude some modules that are problematic to compile (types/headers)
"libxt_TCPOPTSTRIP.c",
"libxt_connlabel.c",
"libxt_cgroup.c",
"libxt_dccp.c",
"libxt_ipvs.c",
],
}
cc_library_static {
name: "libext",
defaults: ["libext_defaults"],
srcs: [
":libext_init",
":libext_srcs",
],
}
////////////////////////////////////////////////////////////////////////////////////////////////////
genrule {
name: "libext4_init",
cmd: "$(location gen_init) '4' $(locations libipt_*.c) > $(out)",
srcs: [
"gen_init",
"libipt_*.c",
],
out: ["initext.c"],
}
gensrcs {
name: "libext4_srcs",
tool_files: ["filter_init"],
cmd: "$(location filter_init) $(in) > $(out)",
output_extension: "c",
srcs: ["libipt_*.c"],
}
cc_library_static {
name: "libext4",
defaults: ["libext_defaults"],
srcs: [
":libext4_init",
":libext4_srcs",
],
}
////////////////////////////////////////////////////////////////////////////////////////////////////
genrule {
name: "libext6_init",
cmd: "$(location gen_init) '6' $(locations libip6t_*.c) > $(out)",
srcs: [
"gen_init",
"libip6t_*.c",
],
out: ["initext.c"],
}
gensrcs {
name: "libext6_srcs",
tool_files: ["filter_init"],
cmd: "$(location filter_init) $(in) > $(out)",
output_extension: "c",
srcs: ["libip6t_*.c"],
}
cc_library_static {
name: "libext6",
defaults: ["libext_defaults"],
srcs: [
":libext6_init",
":libext6_srcs",
],
}