Home | History | Annotate | Download | only in libselinux
      1 common_CFLAGS = [
      2     // Persistently stored patterns (pcre2) are architecture dependent.
      3     // In particular paterns built on amd64 can not run on devices with armv7
      4     // (32bit). Therefore, this feature stays off for now.
      5     "-DNO_PERSISTENTLY_STORED_PATTERNS",
      6     "-DDISABLE_SETRANS",
      7     "-DDISABLE_BOOL",
      8     "-D_GNU_SOURCE",
      9     "-DNO_MEDIA_BACKEND",
     10     "-DNO_X_BACKEND",
     11     "-DNO_DB_BACKEND",
     12     "-Wall",
     13     "-Werror",
     14     "-Wno-error=missing-noreturn",
     15     "-Wno-error=unused-function",
     16     "-Wno-error=unused-variable",
     17 ]
     18 
     19 cc_defaults {
     20     name: "libselinux_defaults",
     21 
     22     cflags: common_CFLAGS,
     23 
     24     srcs: [
     25         "src/booleans.c",
     26         "src/callbacks.c",
     27         "src/freecon.c",
     28         "src/label_backends_android.c",
     29         "src/label.c",
     30         "src/label_support.c",
     31         "src/matchpathcon.c",
     32         "src/setrans_client.c",
     33         "src/sha1.c",
     34     ],
     35 
     36     target: {
     37         host: {
     38             cflags: [
     39                 "-DBUILD_HOST",
     40             ],
     41         },
     42 
     43         android: {
     44             srcs: [
     45                 "src/android/android.c",
     46                 "src/avc.c",
     47                 "src/avc_internal.c",
     48                 "src/avc_sidtab.c",
     49                 "src/canonicalize_context.c",
     50                 "src/checkAccess.c",
     51                 "src/check_context.c",
     52                 "src/compute_av.c",
     53                 "src/compute_create.c",
     54                 "src/compute_member.c",
     55                 "src/context.c",
     56                 "src/deny_unknown.c",
     57                 "src/disable.c",
     58                 "src/enabled.c",
     59                 "src/fgetfilecon.c",
     60                 "src/fsetfilecon.c",
     61                 "src/getenforce.c",
     62                 "src/getfilecon.c",
     63                 "src/get_initial_context.c",
     64                 "src/getpeercon.c",
     65                 "src/init.c",
     66                 "src/lgetfilecon.c",
     67                 "src/load_policy.c",
     68                 "src/lsetfilecon.c",
     69                 "src/mapping.c",
     70                 "src/policyvers.c",
     71                 "src/procattr.c",
     72                 "src/reject_unknown.c",
     73                 "src/sestatus.c",
     74                 "src/setenforce.c",
     75                 "src/setfilecon.c",
     76                 "src/stringrep.c",
     77             ],
     78 
     79             shared_libs: [
     80                 "libcrypto",
     81                 "liblog",
     82             ],
     83 
     84             local_include_dirs: [ "src" ],
     85 
     86             // 1003 corresponds to auditd, from system/core/logd/event.logtags
     87             cflags: [
     88                 "-DAUDITD_LOG_TAG=1003",
     89             ],
     90         }
     91     },
     92 
     93     local_include_dirs: ["include"],
     94     export_include_dirs: ["include"],
     95 }
     96 
     97 cc_library {
     98     name: "libselinux",
     99     defaults: ["libselinux_defaults"],
    100 
    101     vendor_available: true,
    102     vndk: {
    103         enabled: true,
    104     },
    105     double_loadable: true,
    106     recovery_available: true,
    107 
    108     host_supported: true,
    109     cflags: ["-DUSE_PCRE2"],
    110 
    111     srcs: [
    112         "src/label_file.c",
    113         "src/regex.c",
    114     ],
    115 
    116     target: {
    117         linux_glibc: {
    118             srcs: [
    119                 "src/android/android_host.c",
    120                 "src/avc.c",
    121                 "src/avc_internal.c",
    122                 "src/avc_sidtab.c",
    123                 "src/compute_av.c",
    124                 "src/compute_create.c",
    125                 "src/compute_member.c",
    126                 "src/context.c",
    127                 "src/deny_unknown.c",
    128                 "src/enabled.c",
    129                 "src/fgetfilecon.c",
    130                 "src/getenforce.c",
    131                 "src/getfilecon.c",
    132                 "src/get_initial_context.c",
    133                 "src/init.c",
    134                 "src/lgetfilecon.c",
    135                 "src/load_policy.c",
    136                 "src/lsetfilecon.c",
    137                 "src/mapping.c",
    138                 "src/procattr.c",
    139                 "src/reject_unknown.c",
    140                 "src/setenforce.c",
    141                 "src/setexecfilecon.c",
    142                 "src/setfilecon.c",
    143                 "src/stringrep.c",
    144             ],
    145         },
    146         linux_bionic: {
    147             enabled: true,
    148             srcs: [
    149                 "src/android/android_host.c",
    150                 "src/avc.c",
    151                 "src/avc_internal.c",
    152                 "src/avc_sidtab.c",
    153                 "src/compute_av.c",
    154                 "src/compute_create.c",
    155                 "src/compute_member.c",
    156                 "src/context.c",
    157                 "src/deny_unknown.c",
    158                 "src/enabled.c",
    159                 "src/getenforce.c",
    160                 "src/getfilecon.c",
    161                 "src/get_initial_context.c",
    162                 "src/init.c",
    163                 "src/load_policy.c",
    164                 "src/mapping.c",
    165                 "src/procattr.c",
    166                 "src/reject_unknown.c",
    167                 "src/setexecfilecon.c",
    168                 "src/stringrep.c",
    169             ],
    170         },
    171 
    172         android: {
    173             srcs: [
    174                 "src/android/android_platform.c",
    175             ],
    176 
    177             static: {
    178                 whole_static_libs: ["libpackagelistparser"],
    179             },
    180 
    181             shared: {
    182                 shared_libs: ["libpackagelistparser"],
    183             },
    184 
    185             version_script: "exported.map",
    186         },
    187 
    188         vendor: {
    189             exclude_srcs: [
    190                 "src/android/android_platform.c",
    191             ],
    192             srcs: [
    193                 "src/android/android_vendor.c",
    194             ],
    195             cflags: ["-DNO_FILE_BACKEND"],
    196             exclude_shared_libs: ["libpackagelistparser"],
    197             exclude_static_libs: ["libpackagelistparser"],
    198             version_script: "exported_vendor.map",
    199         },
    200     },
    201 
    202     static: {
    203         whole_static_libs: ["libpcre2"],
    204     },
    205     shared: {
    206         shared_libs: ["libpcre2"],
    207     },
    208 }
    209 
    210 cc_binary_host {
    211     name: "sefcontext_compile",
    212     defaults: ["libselinux_defaults"],
    213     cflags: ["-DUSE_PCRE2"],
    214     srcs: ["utils/sefcontext_compile.c"],
    215 
    216     static_libs: [
    217         "libselinux",
    218         "libsepol",
    219     ],
    220     whole_static_libs: ["libpcre2"],
    221 }
    222