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 ]
     13 
     14 cc_defaults {
     15     name: "libselinux_defaults",
     16 
     17     cflags: common_CFLAGS,
     18 
     19     srcs: [
     20         "src/booleans.c",
     21         "src/callbacks.c",
     22         "src/freecon.c",
     23         "src/label_backends_android.c",
     24         "src/label.c",
     25         "src/label_support.c",
     26         "src/matchpathcon.c",
     27         "src/setrans_client.c",
     28         "src/sha1.c",
     29     ],
     30 
     31     target: {
     32         host: {
     33             cflags: [
     34                 "-DBUILD_HOST",
     35             ],
     36         },
     37 
     38         android: {
     39             srcs: [
     40                 "src/android/android.c",
     41                 "src/avc.c",
     42                 "src/avc_internal.c",
     43                 "src/avc_sidtab.c",
     44                 "src/canonicalize_context.c",
     45                 "src/checkAccess.c",
     46                 "src/check_context.c",
     47                 "src/compute_av.c",
     48                 "src/compute_create.c",
     49                 "src/compute_member.c",
     50                 "src/context.c",
     51                 "src/deny_unknown.c",
     52                 "src/disable.c",
     53                 "src/enabled.c",
     54                 "src/fgetfilecon.c",
     55                 "src/fsetfilecon.c",
     56                 "src/getenforce.c",
     57                 "src/getfilecon.c",
     58                 "src/get_initial_context.c",
     59                 "src/getpeercon.c",
     60                 "src/init.c",
     61                 "src/lgetfilecon.c",
     62                 "src/load_policy.c",
     63                 "src/lsetfilecon.c",
     64                 "src/mapping.c",
     65                 "src/policyvers.c",
     66                 "src/procattr.c",
     67                 "src/sestatus.c",
     68                 "src/setenforce.c",
     69                 "src/setfilecon.c",
     70                 "src/stringrep.c",
     71             ],
     72 
     73             shared_libs: [
     74                 "libcrypto",
     75                 "liblog",
     76             ],
     77 
     78             local_include_dirs: [ "src" ],
     79 
     80             // 1003 corresponds to auditd, from system/core/logd/event.logtags
     81             cflags: [
     82                 "-DAUDITD_LOG_TAG=1003",
     83             ],
     84 
     85             // mapping.c has redundant check of array p_in->perms.
     86             clang_cflags: ["-Wno-pointer-bool-conversion"],
     87         }
     88     },
     89 
     90     product_variables: {
     91         treble: {
     92             cflags: ["-DFULL_TREBLE"],
     93         },
     94     },
     95 
     96     local_include_dirs: ["include"],
     97     export_include_dirs: ["include"],
     98 }
     99 
    100 cc_library_shared {
    101     name: "libselinux_vendor",
    102     defaults: ["libselinux_defaults"],
    103     vendor: true,
    104     cflags: ["-DNO_FILE_BACKEND"],
    105 
    106     target: {
    107         android: {
    108             version_script: "exported_vendor.map",
    109         },
    110     },
    111 
    112     srcs: [
    113         "src/android/android_vendor.c",
    114     ],
    115 }
    116 
    117 cc_library {
    118     name: "libselinux",
    119     defaults: ["libselinux_defaults"],
    120     host_supported: true,
    121     cflags: ["-DUSE_PCRE2"],
    122 
    123     srcs: [
    124         "src/label_file.c",
    125         "src/regex.c",
    126     ],
    127 
    128     target: {
    129         linux: {
    130             srcs: [
    131                 "src/android/android_host.c",
    132                 "src/avc.c",
    133                 "src/avc_internal.c",
    134                 "src/avc_sidtab.c",
    135                 "src/compute_av.c",
    136                 "src/compute_create.c",
    137                 "src/compute_member.c",
    138                 "src/context.c",
    139                 "src/enabled.c",
    140                 "src/getenforce.c",
    141                 "src/getfilecon.c",
    142                 "src/get_initial_context.c",
    143                 "src/init.c",
    144                 "src/load_policy.c",
    145                 "src/mapping.c",
    146                 "src/procattr.c",
    147                 "src/setexecfilecon.c",
    148                 "src/stringrep.c",
    149             ],
    150         },
    151         linux_bionic: {
    152             enabled: true,
    153             srcs: [
    154                 "src/android/android_host.c",
    155                 "src/avc.c",
    156                 "src/avc_internal.c",
    157                 "src/avc_sidtab.c",
    158                 "src/compute_av.c",
    159                 "src/compute_create.c",
    160                 "src/compute_member.c",
    161                 "src/context.c",
    162                 "src/enabled.c",
    163                 "src/getenforce.c",
    164                 "src/getfilecon.c",
    165                 "src/get_initial_context.c",
    166                 "src/init.c",
    167                 "src/load_policy.c",
    168                 "src/mapping.c",
    169                 "src/procattr.c",
    170                 "src/setexecfilecon.c",
    171                 "src/stringrep.c",
    172             ],
    173         },
    174 
    175         android: {
    176             srcs: [
    177                 "src/android/android_platform.c",
    178             ],
    179 
    180             static: {
    181                 whole_static_libs: ["libpackagelistparser"],
    182             },
    183 
    184             shared: {
    185                 shared_libs: ["libpackagelistparser"],
    186             },
    187 
    188             version_script: "exported.map",
    189         },
    190     },
    191 
    192     static: {
    193         whole_static_libs: ["libpcre2"],
    194     },
    195     shared: {
    196         shared_libs: ["libpcre2"],
    197     },
    198 }
    199 
    200 cc_binary_host {
    201     name: "sefcontext_compile",
    202     defaults: ["libselinux_defaults"],
    203     cflags: ["-DUSE_PCRE2"],
    204     srcs: ["utils/sefcontext_compile.c"],
    205 
    206     static_libs: [
    207         "libselinux",
    208         "libsepol",
    209     ],
    210     whole_static_libs: ["libpcre2"],
    211 }
    212