blob: 94395cbd458baf8f33cc849be5d1b9ca8891eba3 [file] [log] [blame]
common_LIBRARIES = ["libpcre2"]
common_CFLAGS = [
"-DUSE_PCRE2",
// Persistently stored patterns (pcre2) are architecture dependent.
// In particular paterns built on amd64 can not run on devices with armv7
// (32bit). Therefore, this feature stays off for now.
"-DNO_PERSISTENTLY_STORED_PATTERNS",
"-DDISABLE_SETRANS",
"-DDISABLE_BOOL",
"-D_GNU_SOURCE",
"-DNO_MEDIA_BACKEND",
"-DNO_X_BACKEND",
"-DNO_DB_BACKEND"
]
cc_defaults {
name: "libselinux_flags",
cflags: common_CFLAGS,
target: {
host: {
cflags: [
"-DBUILD_HOST",
],
},
},
}
cc_library {
name: "libselinux",
defaults: ["libselinux_flags"],
host_supported: true,
srcs: [
"src/booleans.c",
"src/callbacks.c",
"src/freecon.c",
"src/label_backends_android.c",
"src/label.c",
"src/label_file.c",
"src/label_support.c",
"src/matchpathcon.c",
"src/regex.c",
"src/setrans_client.c",
"src/sha1.c",
],
target: {
linux: {
srcs: [
"src/android/android_host.c",
"src/avc.c",
"src/avc_internal.c",
"src/avc_sidtab.c",
"src/compute_av.c",
"src/compute_create.c",
"src/compute_member.c",
"src/context.c",
"src/enabled.c",
"src/getenforce.c",
"src/getfilecon.c",
"src/get_initial_context.c",
"src/init.c",
"src/load_policy.c",
"src/mapping.c",
"src/procattr.c",
"src/setexecfilecon.c",
"src/stringrep.c",
],
},
linux_bionic: {
enabled: true,
},
android: {
srcs: [
"src/android/android.c",
"src/avc.c",
"src/avc_internal.c",
"src/avc_sidtab.c",
"src/canonicalize_context.c",
"src/checkAccess.c",
"src/check_context.c",
"src/compute_av.c",
"src/compute_create.c",
"src/compute_member.c",
"src/context.c",
"src/deny_unknown.c",
"src/disable.c",
"src/enabled.c",
"src/fgetfilecon.c",
"src/fsetfilecon.c",
"src/getenforce.c",
"src/getfilecon.c",
"src/get_initial_context.c",
"src/getpeercon.c",
"src/init.c",
"src/lgetfilecon.c",
"src/load_policy.c",
"src/lsetfilecon.c",
"src/mapping.c",
"src/policyvers.c",
"src/procattr.c",
"src/sestatus.c",
"src/setenforce.c",
"src/setfilecon.c",
"src/stringrep.c",
],
shared_libs: [
"libcrypto",
"liblog",
],
static: {
whole_static_libs: ["libpackagelistparser"],
},
shared: {
shared_libs: ["libpackagelistparser"],
},
local_include_dirs: [ "src" ],
version_script: "exported.map",
// 1003 corresponds to auditd, from system/core/logd/event.logtags
cflags: [
"-DAUDITD_LOG_TAG=1003",
],
// mapping.c has redundant check of array p_in->perms.
clang_cflags: ["-Wno-pointer-bool-conversion"],
},
},
static: {
whole_static_libs: common_LIBRARIES,
},
shared: {
shared_libs: common_LIBRARIES,
},
local_include_dirs: ["include"],
export_include_dirs: ["include"],
}
// If one attempts to comment out the sefcontext_compile target in the
// Android.mk that exists in the directory of this Android.bp file, understand
// that I encountered 2 issues. The first issue was that it could not find
// sepol/sepol.h. This is usually an issue if a dependency between the
// export_includes of another component is not coupled to this component
// properly. Looking at the Makefile from upstream, sefcontext_compile seems
// to have a dependency on libsepol. The second issue occurs when you add the
// libsepol dependency. The build system claims that their is no libsepol
// library declared anywhere. Switching sefcontext_compile to an Android.mk for
// now resolved the issue.
//################################
//cc_binary_host {
// name: "sefcontext_compile",
// defaults: ["libselinux_flags"],
// srcs: ["utils/sefcontext_compile.c"],
//
// static_libs: ["libselinux"],
// whole_static_libs: common_LIBRARIES,
//}