1import("musl_template.gni") 2 3musl_abi_target = "soft" 4 5group("musl_all") { 6 deps = [ 7 ":a7_hard_neon_libs", 8 ":a7_soft_libs", 9 ":a7_softfp_neon_libs", 10 ":musl_headers", 11 ":soft_libs", 12 ] 13} 14 15group("musl_libs") { 16 deps = [ 17 ":${musl_abi_target}_libs", 18 ":musl_headers", 19 ] 20} 21 22musl_libs("soft_libs") { 23 target_abi = "soft" 24} 25 26musl_libs("a7_soft_libs") { 27 target_abi = "a7_soft" 28} 29 30musl_libs("a7_softfp_neon_libs") { 31 target_abi = "a7_softfp_neon-vfpv4" 32} 33 34musl_libs("a7_hard_neon_libs") { 35 target_abi = "a7_hard_neon-vfpv4" 36} 37 38group("musl_headers") { 39 deps = [ 40 ":copy_uapi", 41 ":create_alltypes_h", 42 ":create_syscall_h", 43 ":create_version_h", 44 ":musl_copy_inc_arpa", 45 ":musl_copy_inc_bits", 46 ":musl_copy_inc_hook", 47 ":musl_copy_inc_net", 48 ":musl_copy_inc_netinet", 49 ":musl_copy_inc_netpacket", 50 ":musl_copy_inc_root", 51 ":musl_copy_inc_scsi", 52 ":musl_copy_inc_sys", 53 ] 54} 55 56action("create_porting_src") { 57 script = "scripts/porting.sh" 58 59 sources = [ "//third_party/musl" ] 60 61 outdir = [ "${target_out_dir}/${musl_ported_dir}" ] 62 63 src_files = musl_src_arch_file 64 src_files += musl_src_file 65 src_files += musl_src_ldso 66 src_files += musl_inc_bits_files 67 src_files += musl_inc_arpa_files 68 src_files += musl_inc_net_files 69 src_files += musl_inc_netinet_files 70 src_files += musl_inc_netpacket_files 71 src_files += musl_inc_scsi_files 72 src_files += musl_inc_sys_files 73 src_files += musl_inc_root_files 74 src_files += [ 75 "crt/${musl_arch}/crti.s", 76 "crt/${musl_arch}/crtn.s", 77 "crt/Scrt1.c", 78 "crt/crt1.c", 79 "crt/rcrt1.c", 80 "tools/mkalltypes.sed", 81 "arch/${musl_arch}/bits/alltypes.h.in", 82 "arch/${musl_arch}/bits/syscall.h.in", 83 "include/alltypes.h.in", 84 "VERSION", 85 "tools/version.sh", 86 "tools/install.sh", 87 "scripts/install.py", 88 "scripts/create_alltypes.sh", 89 "scripts/create_vesion.sh", 90 "scripts/create_syscall.sh", 91 ] 92 93 outputs = [] 94 foreach(s, src_files) { 95 outputs += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 96 } 97 98 args = [ "-i" ] + rebase_path(sources) 99 args += [ "-o" ] + rebase_path(outdir) 100 args += [ "-p" ] + [ "${musl_target_os}" ] 101 102 foreach(i, src_files) { 103 foreach(s, musl_src_porting_file) { 104 if (i == s) { 105 src_files -= [ "${s}" ] 106 } 107 } 108 } 109 110 inputs = [] 111 foreach(s, src_files) { 112 inputs += [ "${musl_dir}/${s}" ] 113 } 114 115 foreach(s, musl_src_porting_file) { 116 inputs += [ "${musl_porting_dir}/${s}" ] 117 } 118} 119 120action("create_alltypes_h") { 121 script = "${target_out_dir}/${musl_ported_dir}/scripts/create_alltypes.sh" 122 123 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/alltypes.h" ] 124 125 sources = [ "${target_out_dir}/${musl_ported_dir}/tools/mkalltypes.sed" ] 126 sources += [ 127 "${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/alltypes.h.in", 128 "${target_out_dir}/${musl_ported_dir}/include/alltypes.h.in", 129 ] 130 131 args = [ "-o" ] + rebase_path(outputs, root_build_dir) 132 args += rebase_path(sources, root_build_dir) 133 134 deps = [ ":create_porting_src" ] 135} 136 137action("create_version_h") { 138 script = "${target_out_dir}/${musl_ported_dir}/scripts/create_vesion.sh" 139 140 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/version.h" ] 141 142 sources = [ 143 "${target_out_dir}/${musl_ported_dir}/VERSION", 144 "${target_out_dir}/${musl_ported_dir}/tools/version.sh", 145 ] 146 147 args = rebase_path(sources, root_build_dir) 148 args += 149 [ rebase_path("${target_out_dir}/${musl_inc_out_dir}", root_build_dir) ] 150 151 deps = [ ":create_porting_src" ] 152} 153 154action("create_syscall_h") { 155 script = "${target_out_dir}/${musl_ported_dir}/scripts/create_syscall.sh" 156 157 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/bits/syscall.h" ] 158 159 sources = [ 160 "${target_out_dir}/${musl_ported_dir}/arch/${musl_arch}/bits/syscall.h.in", 161 ] 162 163 args = rebase_path(sources, root_build_dir) 164 args += rebase_path(outputs, root_build_dir) 165 166 deps = [ ":create_porting_src" ] 167} 168 169action("copy_uapi") { 170 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/linux" ] 171 script = "scripts/copy_uapi.sh" 172 args = [ "-i" ] + [ rebase_path("${uapi_dir}") ] 173 args += [ "-o" ] + [ rebase_path("${target_out_dir}/${musl_inc_out_dir}") ] 174 args += [ "-t" ] + [ "${musl_arch}" ] 175} 176 177copy("musl_copy_inc_bits") { 178 sources = [] 179 sources_orig = musl_inc_bits_files 180 foreach(s, sources_orig) { 181 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 182 } 183 outputs = 184 [ "${target_out_dir}/${musl_inc_out_dir}/bits/{{source_file_part}}" ] 185 deps = [ ":create_porting_src" ] 186} 187 188copy("musl_copy_inc_arpa") { 189 sources = [] 190 sources_orig = musl_inc_arpa_files 191 foreach(s, sources_orig) { 192 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 193 } 194 outputs = 195 [ "${target_out_dir}/${musl_inc_out_dir}/arpa/{{source_file_part}}" ] 196 deps = [ ":create_porting_src" ] 197} 198 199copy("musl_copy_inc_net") { 200 sources = [] 201 sources_orig = musl_inc_net_files 202 foreach(s, sources_orig) { 203 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 204 } 205 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/net/{{source_file_part}}" ] 206 deps = [ ":create_porting_src" ] 207} 208 209copy("musl_copy_inc_netinet") { 210 sources = [] 211 sources_orig = musl_inc_netinet_files 212 foreach(s, sources_orig) { 213 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 214 } 215 outputs = 216 [ "${target_out_dir}/${musl_inc_out_dir}/netinet/{{source_file_part}}" ] 217 deps = [ ":create_porting_src" ] 218} 219 220copy("musl_copy_inc_netpacket") { 221 sources = [] 222 sources_orig = musl_inc_netpacket_files 223 foreach(s, sources_orig) { 224 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 225 } 226 outputs = 227 [ "${target_out_dir}/${musl_inc_out_dir}/netpacket/{{source_file_part}}" ] 228 deps = [ ":create_porting_src" ] 229} 230 231copy("musl_copy_inc_scsi") { 232 sources = [] 233 sources_orig = musl_inc_scsi_files 234 foreach(s, sources_orig) { 235 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 236 } 237 outputs = 238 [ "${target_out_dir}/${musl_inc_out_dir}/scsi/{{source_file_part}}" ] 239 deps = [ ":create_porting_src" ] 240} 241 242copy("musl_copy_inc_sys") { 243 sources = [] 244 sources_orig = musl_inc_sys_files 245 foreach(s, sources_orig) { 246 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 247 } 248 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/sys/{{source_file_part}}" ] 249 deps = [ ":create_porting_src" ] 250} 251 252copy("musl_copy_inc_root") { 253 sources = [] 254 sources_orig = musl_inc_root_files 255 foreach(s, sources_orig) { 256 sources += [ "${target_out_dir}/${musl_ported_dir}/${s}" ] 257 } 258 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/{{source_file_part}}" ] 259 deps = [ ":create_porting_src" ] 260} 261 262copy("musl_copy_inc_hook") { 263 sources = musl_inc_hook_files 264 outputs = [ "${target_out_dir}/${musl_inc_out_dir}/{{source_file_part}}" ] 265} 266 267group("libctest") { 268 testonly = true 269 deps = [ "libc-test:musl_libc_test" ] 270} 271