1// Copyright 2017 Google Inc. All rights reserved. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15subdirs = [ 16 "Lib", 17] 18 19cc_defaults { 20 name: "py2-interp-defaults", 21 cflags: [ 22 "-fwrapv", 23 "-O3", 24 "-Wall", 25 "-Wstrict-prototypes", 26 "-DPy_BUILD_CORE", 27 "-Werror", 28 "-Wno-invalid-source-encoding", 29 "-Wno-int-conversion", 30 "-Wno-missing-field-initializers", 31 "-Wno-null-pointer-arithmetic", 32 "-Wno-register", 33 "-Wno-shift-count-overflow", 34 "-Wno-sign-compare", 35 "-Wno-tautological-compare", 36 "-Wno-tautological-constant-out-of-range-compare", 37 "-Wno-unused-parameter", 38 "-Wno-unused-result", 39 ], 40 local_include_dirs: ["Include"], 41 target: { 42 android_arm: { 43 local_include_dirs: ["android_arm/pyconfig"], 44 }, 45 android_arm64: { 46 local_include_dirs: ["android_arm64/pyconfig"], 47 }, 48 android_x86: { 49 local_include_dirs: ["android_x86/pyconfig"], 50 }, 51 linux_bionic: { 52 // NB linux_bionic is a 'host' architecture but it uses the bionic libc like 'android' 53 // targets so use the android pyconfig. 54 local_include_dirs: ["android_x86_64/pyconfig"], 55 }, 56 android_x86_64: { 57 local_include_dirs: ["android_x86_64/pyconfig"], 58 }, 59 // Regenerate include dirs with android_regen.sh 60 darwin_x86_64: { 61 local_include_dirs: ["darwin_x86_64/pyconfig"], 62 cflags: [ 63 "-Wno-deprecated-declarations", 64 "-Wno-pointer-arith", 65 ], 66 }, 67 linux_glibc_x86: { 68 enabled: false, 69 }, 70 linux_glibc_x86_64: { 71 local_include_dirs: ["linux_x86_64/pyconfig"], 72 cflags: ["-Werror"], 73 }, 74 windows: { 75 enabled: false, 76 }, 77 }, 78 host_supported: true, 79 compile_multilib: "both", 80 multilib: { 81 lib32: { 82 suffix: "32", 83 }, 84 lib64: { 85 suffix: "64", 86 }, 87 }, 88} 89 90cc_library_static { 91 name: "py2-interp-parser", 92 defaults: ["py2-interp-defaults"], 93 srcs: [ 94 "Parser/acceler.c", 95 "Parser/bitset.c", 96 "Parser/firstsets.c", 97 "Parser/grammar.c", 98 "Parser/grammar1.c", 99 "Parser/listnode.c", 100 "Parser/metagrammar.c", 101 "Parser/myreadline.c", 102 "Parser/node.c", 103 "Parser/parser.c", 104 "Parser/parsetok.c", 105 "Parser/pgen.c", 106 "Parser/tokenizer.c", 107 ], 108} 109 110cc_library_static { 111 name: "py2-interp-object", 112 defaults: ["py2-interp-defaults"], 113 srcs: [ 114 "Objects/abstract.c", 115 "Objects/boolobject.c", 116 "Objects/bufferobject.c", 117 "Objects/bytes_methods.c", 118 "Objects/bytearrayobject.c", 119 "Objects/capsule.c", 120 "Objects/cellobject.c", 121 "Objects/classobject.c", 122 "Objects/cobject.c", 123 "Objects/codeobject.c", 124 "Objects/complexobject.c", 125 "Objects/descrobject.c", 126 "Objects/enumobject.c", 127 "Objects/exceptions.c", 128 "Objects/genobject.c", 129 "Objects/fileobject.c", 130 "Objects/floatobject.c", 131 "Objects/frameobject.c", 132 "Objects/funcobject.c", 133 "Objects/intobject.c", 134 "Objects/iterobject.c", 135 "Objects/listobject.c", 136 "Objects/longobject.c", 137 "Objects/dictobject.c", 138 "Objects/memoryobject.c", 139 "Objects/methodobject.c", 140 "Objects/moduleobject.c", 141 "Objects/object.c", 142 "Objects/obmalloc.c", 143 "Objects/rangeobject.c", 144 "Objects/setobject.c", 145 "Objects/sliceobject.c", 146 "Objects/stringobject.c", 147 "Objects/structseq.c", 148 "Objects/tupleobject.c", 149 "Objects/typeobject.c", 150 "Objects/weakrefobject.c", 151 "Objects/unicodeobject.c", 152 "Objects/unicodectype.c", 153 ], 154} 155 156cc_library_static { 157 name: "py2-interp-python", 158 defaults: ["py2-interp-defaults"], 159 target: { 160 linux: { 161 cflags: [ 162 "-DPLATFORM=\"linux2\"", 163 ], 164 }, 165 darwin_x86_64: { 166 cflags: [ 167 "-DPLATFORM=\"darwin\"", 168 ], 169 }, 170 }, 171 srcs: [ 172 "Python/_warnings.c", 173 "Python/Python-ast.c", 174 "Python/asdl.c", 175 "Python/ast.c", 176 "Python/bltinmodule.c", 177 "Python/ceval.c", 178 "Python/compile.c", 179 "Python/codecs.c", 180 "Python/errors.c", 181 "Python/frozen.c", 182 "Python/frozenmain.c", 183 "Python/future.c", 184 "Python/getargs.c", 185 "Python/getcompiler.c", 186 "Python/getcopyright.c", 187 "Python/getplatform.c", 188 "Python/getversion.c", 189 "Python/graminit.c", 190 "Python/import.c", 191 "Python/importdl.c", 192 "Python/marshal.c", 193 "Python/modsupport.c", 194 "Python/mystrtoul.c", 195 "Python/mysnprintf.c", 196 "Python/peephole.c", 197 "Python/pyarena.c", 198 "Python/pyctype.c", 199 "Python/pyfpe.c", 200 "Python/pymath.c", 201 "Python/pystate.c", 202 "Python/pythonrun.c", 203 "Python/random.c", 204 "Python/structmember.c", 205 "Python/symtable.c", 206 "Python/sysmodule.c", 207 "Python/traceback.c", 208 "Python/getopt.c", 209 "Python/pystrcmp.c", 210 "Python/pystrtod.c", 211 "Python/dtoa.c", 212 "Python/formatter_unicode.c", 213 "Python/formatter_string.c", 214 "Python/dynload_shlib.c", 215 "Python/thread.c", 216 ], 217} 218 219cc_defaults { 220 name: "py2-launcher-defaults", 221 defaults: ["py2-interp-defaults"], 222 cflags: [ 223 "-DVERSION=\"2.7\"", 224 "-DVPATH=\"\"", 225 "-DPREFIX=\"\"", 226 "-DEXEC_PREFIX=\"\"", 227 "-DPYTHONPATH=\"..:\"", 228 "-DANDROID_SKIP_ZIP_PATH", 229 "-DANDROID_SKIP_EXEC_PREFIX_PATH", 230 "-DANDROID_LIB_PYTHON_PATH=\"internal/stdlib\"", 231 "-DDATE=\"Dec 31 1969\"", 232 "-DTIME=\"23:59:59\"", 233 ], 234 static_libs: [ 235 "libbase", 236 "libcrypto_static", 237 "libexpat", 238 "liblog", 239 "libssl", 240 "libz", 241 ], 242 target: { 243 linux_glibc_x86_64: { 244 host_ldlibs: ["-lutil"], 245 }, 246 darwin: { 247 host_ldlibs: [ 248 "-framework SystemConfiguration", 249 "-framework CoreFoundation", 250 ], 251 }, 252 host: { 253 static_libs: ["libsqlite"], 254 }, 255 // Use shared libsqlite for device side, otherwise 256 // the executable size will be really huge. 257 android: { 258 shared_libs: ["libsqlite"], 259 }, 260 }, 261} 262 263cc_library_static { 264 name: "py2-launcher-lib", 265 defaults: ["py2-launcher-defaults"], 266 srcs: [ 267 "Modules/gcmodule.c", 268 "Modules/getpath.c", 269 "Modules/config.c", 270 "Modules/getbuildinfo.c", 271 // Default built-in extension py2-c-modules. 272 "Modules/threadmodule.c", 273 "Modules/signalmodule.c", 274 "Modules/posixmodule.c", 275 "Modules/errnomodule.c", 276 "Modules/pwdmodule.c", 277 "Modules/_sre.c", 278 "Modules/_codecsmodule.c", 279 "Modules/_weakref.c", 280 "Modules/zipimport.c", 281 "Modules/symtablemodule.c", 282 "Modules/main.c", 283 ], 284 // NOTE: Please update Modules/config.c if new lib get added in the static_libs. 285 whole_static_libs: [ 286 // Be careful the order of these three static libraries below due to 287 // missing symbols issues. 288 "py2-interp-object", 289 "py2-interp-python", 290 "py2-interp-parser", 291 "py2-c-module-array", 292 "py2-c-module-cmath", 293 "py2-c-module-math", 294 "py2-c-module-_struct", 295 "py2-c-module-time", 296 "py2-c-module-operator", 297 "py2-c-module-_testcapi", 298 "py2-c-module-_random", 299 "py2-c-module-_collections", 300 "py2-c-module-_heapq", 301 "py2-c-module-itertools", 302 "py2-c-module-strop", 303 "py2-c-module-_functools", 304 "py2-c-module-datetime", 305 "py2-c-module-_bisect", 306 "py2-c-module-unicodedata", 307 "py2-c-module-_io", 308 "py2-c-module-fcntl", 309 "py2-c-module-select", 310 "py2-c-module-mmap", 311 "py2-c-module-_csv", 312 "py2-c-module-_socket", 313 "py2-c-module-termios", 314 "py2-c-module-_ssl", 315 "py2-c-module-_md5", 316 "py2-c-module-_sha", 317 "py2-c-module-_sha256", 318 "py2-c-module-_sha512", 319 "py2-c-module-binascii", 320 "py2-c-module-parser", 321 "py2-c-module-cStringIO", 322 "py2-c-module-cPickle", 323 "py2-c-module-xxsubtype", 324 "py2-c-module-future_builtins", 325 "py2-c-module-_json", 326 "py2-c-module-_hotshot", 327 "py2-c-module-_lsprof", 328 "py2-c-module-grp", 329 "py2-c-module-syslog", 330 "py2-c-module-audioop", 331 "py2-c-module-resource", 332 "py2-c-module-_multibytecodec", 333 "py2-c-module-_codecs_kr", 334 "py2-c-module-_codecs_jp", 335 "py2-c-module-_codecs_cn", 336 "py2-c-module-_codecs_tw", 337 "py2-c-module-_codecs_hk", 338 "py2-c-module-_codecs_iso2022", 339 "py2-c-module-_multiprocessing", 340 "py2-c-module-zlib", 341 "py2-c-module-pyexpat", 342 "py2-c-module-_sqlite3", 343 "py2-c-module-_ctypes_test", 344 "py2-c-module-_ctypes", 345 ], 346 target: { 347 darwin: { 348 whole_static_libs: ["py2-c-module-_scproxy"], 349 }, 350 }, 351} 352 353cc_binary { 354 name: "py2-launcher", 355 defaults: ["py2-launcher-defaults"], 356 srcs: ["Launcher/launcher_main.cpp"], 357 static_libs: ["py2-launcher-lib"], 358} 359 360cc_binary { 361 name: "py2-launcher-autorun", 362 defaults: ["py2-launcher-defaults"], 363 srcs: ["Launcher/launcher_main.cpp"], 364 static_libs: ["py2-launcher-lib"], 365 cflags: ["-DANDROID_AUTORUN"], 366} 367 368python_binary_host { 369 name: "py2-cmd", 370 autorun: false, 371 version: { 372 py2: { 373 enabled: true, 374 embedded_launcher: true, 375 }, 376 py3: { 377 enabled: false, 378 }, 379 }, 380} 381 382// Enabled extension py2-c-modules. 383 384cc_library_static { 385 name: "py2-c-module-array", 386 defaults: ["py2-interp-defaults"], 387 srcs: [ 388 "Modules/arraymodule.c", 389 ], 390} 391 392cc_library_static { 393 name: "py2-c-module-cmath", 394 defaults: ["py2-interp-defaults"], 395 srcs: [ 396 "Modules/cmathmodule.c", 397 "Modules/_math.c", 398 ], 399} 400 401cc_library_static { 402 name: "py2-c-module-math", 403 defaults: ["py2-interp-defaults"], 404 srcs: [ 405 "Modules/mathmodule.c", 406 "Modules/_math.c", 407 ], 408} 409 410cc_library_static { 411 name: "py2-c-module-_struct", 412 defaults: ["py2-interp-defaults"], 413 srcs: [ 414 "Modules/_struct.c", 415 ], 416} 417 418cc_library_static { 419 name: "py2-c-module-time", 420 defaults: ["py2-interp-defaults"], 421 srcs: [ 422 "Modules/timemodule.c", 423 ], 424} 425 426cc_library_static { 427 name: "py2-c-module-operator", 428 defaults: ["py2-interp-defaults"], 429 srcs: [ 430 "Modules/operator.c", 431 ], 432} 433 434cc_library_static { 435 name: "py2-c-module-_testcapi", 436 defaults: ["py2-interp-defaults"], 437 srcs: [ 438 "Modules/_testcapimodule.c", 439 ], 440} 441 442cc_library_static { 443 name: "py2-c-module-_random", 444 defaults: ["py2-interp-defaults"], 445 srcs: [ 446 "Modules/_randommodule.c", 447 ], 448} 449 450cc_library_static { 451 name: "py2-c-module-_collections", 452 defaults: ["py2-interp-defaults"], 453 srcs: [ 454 "Modules/_collectionsmodule.c", 455 ], 456} 457 458cc_library_static { 459 name: "py2-c-module-_heapq", 460 defaults: ["py2-interp-defaults"], 461 srcs: [ 462 "Modules/_heapqmodule.c", 463 ], 464} 465 466cc_library_static { 467 name: "py2-c-module-itertools", 468 defaults: ["py2-interp-defaults"], 469 srcs: [ 470 "Modules/itertoolsmodule.c", 471 ], 472} 473 474cc_library_static { 475 name: "py2-c-module-strop", 476 defaults: ["py2-interp-defaults"], 477 srcs: [ 478 "Modules/stropmodule.c", 479 ], 480} 481 482cc_library_static { 483 name: "py2-c-module-_functools", 484 defaults: ["py2-interp-defaults"], 485 srcs: [ 486 "Modules/_functoolsmodule.c", 487 ], 488} 489 490cc_library_static { 491 name: "py2-c-module-datetime", 492 defaults: ["py2-interp-defaults"], 493 srcs: [ 494 "Modules/datetimemodule.c", 495 ], 496} 497 498cc_library_static { 499 name: "py2-c-module-_bisect", 500 defaults: ["py2-interp-defaults"], 501 srcs: [ 502 "Modules/_bisectmodule.c", 503 ], 504} 505 506cc_library_static { 507 name: "py2-c-module-unicodedata", 508 defaults: ["py2-interp-defaults"], 509 srcs: [ 510 "Modules/unicodedata.c", 511 ], 512} 513 514cc_library_static { 515 name: "py2-c-module-_io", 516 defaults: ["py2-interp-defaults"], 517 srcs: [ 518 "Modules/_io/bufferedio.c", 519 "Modules/_io/bytesio.c", 520 "Modules/_io/fileio.c", 521 "Modules/_io/iobase.c", 522 "Modules/_io/_iomodule.c", 523 "Modules/_io/stringio.c", 524 "Modules/_io/textio.c", 525 ], 526 local_include_dirs: [ 527 "Modules/_io", 528 ], 529} 530 531cc_library_static { 532 name: "py2-c-module-fcntl", 533 defaults: ["py2-interp-defaults"], 534 srcs: [ 535 "Modules/fcntlmodule.c", 536 ], 537} 538 539cc_library_static { 540 name: "py2-c-module-select", 541 defaults: ["py2-interp-defaults"], 542 srcs: [ 543 "Modules/selectmodule.c", 544 ], 545} 546 547cc_library_static { 548 name: "py2-c-module-mmap", 549 defaults: ["py2-interp-defaults"], 550 srcs: [ 551 "Modules/mmapmodule.c", 552 ], 553} 554 555cc_library_static { 556 name: "py2-c-module-_csv", 557 defaults: ["py2-interp-defaults"], 558 srcs: [ 559 "Modules/_csv.c", 560 ], 561} 562 563cc_library_static { 564 name: "py2-c-module-_socket", 565 defaults: ["py2-interp-defaults"], 566 srcs: [ 567 "Modules/socketmodule.c", 568 "Modules/timemodule.c", 569 ], 570} 571 572cc_library_static { 573 name: "py2-c-module-termios", 574 defaults: ["py2-interp-defaults"], 575 srcs: [ 576 "Modules/termios.c", 577 ], 578} 579 580cc_library_static { 581 name: "py2-c-module-_ssl", 582 defaults: ["py2-interp-defaults"], 583 srcs: ["Modules/_ssl.c"], 584 cflags: ["-Wno-incompatible-pointer-types-discards-qualifiers"], 585 static_libs: [ 586 "libssl", 587 "libcrypto_static", 588 ], 589} 590 591cc_library_static { 592 name: "py2-c-module-_md5", 593 defaults: ["py2-interp-defaults"], 594 srcs: [ 595 "Modules/md5module.c", 596 "Modules/md5.c", 597 ], 598} 599 600cc_library_static { 601 name: "py2-c-module-_sha", 602 defaults: ["py2-interp-defaults"], 603 srcs: [ 604 "Modules/shamodule.c", 605 ], 606} 607 608cc_library_static { 609 name: "py2-c-module-_sha256", 610 defaults: ["py2-interp-defaults"], 611 srcs: [ 612 "Modules/sha256module.c", 613 ], 614} 615 616cc_library_static { 617 name: "py2-c-module-_sha512", 618 defaults: ["py2-interp-defaults"], 619 srcs: [ 620 "Modules/sha512module.c", 621 ], 622} 623 624cc_library_static { 625 name: "py2-c-module-binascii", 626 defaults: ["py2-interp-defaults"], 627 srcs: [ 628 "Modules/binascii.c", 629 ], 630} 631 632cc_library_static { 633 name: "py2-c-module-parser", 634 defaults: ["py2-interp-defaults"], 635 srcs: [ 636 "Modules/parsermodule.c", 637 ], 638} 639 640cc_library_static { 641 name: "py2-c-module-cStringIO", 642 defaults: ["py2-interp-defaults"], 643 srcs: [ 644 "Modules/cStringIO.c", 645 ], 646} 647 648cc_library_static { 649 name: "py2-c-module-cPickle", 650 defaults: ["py2-interp-defaults"], 651 srcs: [ 652 "Modules/cPickle.c", 653 ], 654} 655 656cc_library_static { 657 name: "py2-c-module-xxsubtype", 658 defaults: ["py2-interp-defaults"], 659 srcs: [ 660 "Modules/xxsubtype.c", 661 ], 662} 663 664cc_library_static { 665 name: "py2-c-module-future_builtins", 666 defaults: ["py2-interp-defaults"], 667 srcs: [ 668 "Modules/future_builtins.c", 669 ], 670} 671 672cc_library_static { 673 name: "py2-c-module-_json", 674 defaults: ["py2-interp-defaults"], 675 srcs: [ 676 "Modules/_json.c", 677 ], 678} 679 680cc_library_static { 681 name: "py2-c-module-_hotshot", 682 defaults: ["py2-interp-defaults"], 683 srcs: [ 684 "Modules/_hotshot.c", 685 ], 686} 687 688cc_library_static { 689 name: "py2-c-module-_lsprof", 690 defaults: ["py2-interp-defaults"], 691 srcs: [ 692 "Modules/_lsprof.c", 693 "Modules/rotatingtree.c", 694 ], 695} 696 697cc_library_static { 698 name: "py2-c-module-grp", 699 defaults: ["py2-interp-defaults"], 700 srcs: [ 701 "Modules/grpmodule.c", 702 "Modules/rotatingtree.c", 703 ], 704} 705 706cc_library_static { 707 name: "py2-c-module-syslog", 708 defaults: ["py2-interp-defaults"], 709 srcs: [ 710 "Modules/syslogmodule.c", 711 ], 712} 713 714cc_library_static { 715 name: "py2-c-module-audioop", 716 defaults: ["py2-interp-defaults"], 717 srcs: [ 718 "Modules/audioop.c", 719 ], 720} 721 722cc_library_static { 723 name: "py2-c-module-resource", 724 defaults: ["py2-interp-defaults"], 725 srcs: [ 726 "Modules/resource.c", 727 ], 728} 729 730cc_library_static { 731 name: "py2-c-module-_multibytecodec", 732 defaults: ["py2-interp-defaults"], 733 srcs: [ 734 "Modules/cjkcodecs/multibytecodec.c", 735 ], 736} 737 738cc_library_static { 739 name: "py2-c-module-_codecs_kr", 740 defaults: ["py2-interp-defaults"], 741 srcs: ["Modules/cjkcodecs/_codecs_kr.c"], 742} 743 744cc_library_static { 745 name: "py2-c-module-_codecs_jp", 746 defaults: ["py2-interp-defaults"], 747 srcs: ["Modules/cjkcodecs/_codecs_jp.c"], 748} 749 750cc_library_static { 751 name: "py2-c-module-_codecs_cn", 752 defaults: ["py2-interp-defaults"], 753 srcs: ["Modules/cjkcodecs/_codecs_cn.c"], 754} 755 756cc_library_static { 757 name: "py2-c-module-_codecs_tw", 758 defaults: ["py2-interp-defaults"], 759 srcs: ["Modules/cjkcodecs/_codecs_tw.c"], 760} 761 762cc_library_static { 763 name: "py2-c-module-_codecs_hk", 764 defaults: ["py2-interp-defaults"], 765 srcs: ["Modules/cjkcodecs/_codecs_hk.c"], 766} 767 768cc_library_static { 769 name: "py2-c-module-_codecs_iso2022", 770 defaults: ["py2-interp-defaults"], 771 srcs: ["Modules/cjkcodecs/_codecs_iso2022.c"], 772} 773 774cc_library_static { 775 name: "py2-c-module-_multiprocessing", 776 defaults: ["py2-interp-defaults"], 777 srcs: [ 778 "Modules/_multiprocessing/multiprocessing.c", 779 "Modules/_multiprocessing/semaphore.c", 780 "Modules/_multiprocessing/socket_connection.c", 781 ], 782} 783 784cc_library_static { 785 name: "py2-c-module-zlib", 786 defaults: [ 787 "py2-interp-defaults", 788 ], 789 cflags: [ 790 "-DUSE_ZLIB_CRC32", 791 ], 792 srcs: [ 793 "Modules/zlibmodule.c", 794 ], 795 static_libs: [ 796 "libz", 797 ], 798} 799 800cc_library_static { 801 name: "py2-c-module-pyexpat", 802 defaults: [ 803 "py2-interp-defaults", 804 ], 805 cflags: [ 806 "-DUSE_PYEXPAT_CAPI", 807 ], 808 srcs: [ 809 "Modules/pyexpat.c", 810 ], 811 static_libs: [ 812 "libexpat", 813 ], 814} 815 816cc_library_static { 817 name: "py2-c-module-_sqlite3", 818 defaults: [ 819 "py2-interp-defaults", 820 ], 821 cflags: [ 822 "-DMODULE_NAME=\"sqlite3\"", 823 "-DSQLITE_OMIT_LOAD_EXTENSION", 824 "-Wno-format-security", 825 "-Wno-type-limits", 826 "-Wno-char-subscripts", 827 ], 828 local_include_dirs: [ 829 "Modules/_sqlite", 830 ], 831 srcs: [ 832 "Modules/_sqlite/cache.c", 833 "Modules/_sqlite/connection.c", 834 "Modules/_sqlite/cursor.c", 835 "Modules/_sqlite/microprotocols.c", 836 "Modules/_sqlite/module.c", 837 "Modules/_sqlite/prepare_protocol.c", 838 "Modules/_sqlite/row.c", 839 "Modules/_sqlite/statement.c", 840 "Modules/_sqlite/util.c", 841 ], 842 target: { 843 host: { 844 static_libs: [ 845 "libsqlite", 846 ], 847 }, 848 android: { 849 shared_libs: [ 850 "libsqlite", 851 ], 852 }, 853 }, 854} 855 856cc_library_static { 857 name: "py2-c-module-_ctypes_test", 858 defaults: ["py2-interp-defaults"], 859 srcs: ["Modules/_ctypes/_ctypes_test.c"], 860} 861 862cc_library_static { 863 name: "py2-c-module-_ctypes", 864 defaults: [ 865 "py2-interp-defaults", 866 ], 867 local_include_dirs: [ 868 "Modules/_ctypes/libffi/include", 869 ], 870 srcs: [ 871 "Modules/_ctypes/_ctypes.c", 872 "Modules/_ctypes/callbacks.c", 873 "Modules/_ctypes/callproc.c", 874 "Modules/_ctypes/stgdict.c", 875 "Modules/_ctypes/cfield.c", 876 "Modules/_ctypes/libffi/src/prep_cif.c", 877 "Modules/_ctypes/libffi/src/closures.c", 878 ], 879 arch: { 880 x86_64: { 881 local_include_dirs: [ 882 "Modules/_ctypes/libffi/src/x86", 883 ], 884 srcs: [ 885 "Modules/_ctypes/libffi/src/x86/ffi64.c", 886 "Modules/_ctypes/libffi/src/x86/ffi.c", 887 "Modules/_ctypes/libffi/src/x86/sysv.S", 888 ], 889 }, 890 x86: { 891 local_include_dirs: [ 892 "Modules/_ctypes/libffi/src/x86", 893 ], 894 srcs: [ 895 "Modules/_ctypes/libffi/src/x86/ffi.c", 896 "Modules/_ctypes/libffi/src/x86/sysv.S", 897 ], 898 }, 899 arm: { 900 local_include_dirs: [ 901 "android_arm/libffi", 902 "Modules/_ctypes/libffi/src/arm", 903 ], 904 srcs: [ 905 "Modules/_ctypes/libffi/src/arm/ffi.c", 906 "Modules/_ctypes/libffi/src/arm/sysv.S", 907 "Modules/_ctypes/libffi/src/arm/trampoline.S", 908 ], 909 }, 910 arm64: { 911 // arithmetic on a pointer in _ctypes/libffi/src/aarch64/ffi.c 912 cflags: ["-Wno-pointer-arith"], 913 local_include_dirs: [ 914 "android_arm64/libffi", 915 "Modules/_ctypes/libffi/src/aarch64", 916 ], 917 srcs: [ 918 "Modules/_ctypes/libffi/src/aarch64/ffi.c", 919 "Modules/_ctypes/libffi/src/aarch64/sysv.S", 920 ], 921 }, 922 }, 923 target: { 924 // Regenerate include dirs with android_regen.sh 925 darwin_x86_64: { 926 local_include_dirs: ["darwin_x86_64/libffi"], 927 srcs: [ 928 "Modules/_ctypes/libffi/src/x86/darwin.S", 929 "Modules/_ctypes/libffi/src/x86/darwin64.S", 930 ], 931 }, 932 linux_bionic: { 933 local_include_dirs: ["linux_x86_64/libffi"], 934 srcs: [ 935 "Modules/_ctypes/libffi/src/x86/unix64.S", 936 ], 937 }, 938 linux_glibc_x86_64: { 939 local_include_dirs: ["linux_x86_64/libffi"], 940 srcs: [ 941 "Modules/_ctypes/libffi/src/x86/unix64.S", 942 ], 943 }, 944 android_x86: { 945 local_include_dirs: ["android_x86/libffi"], 946 srcs: [ 947 "Modules/_ctypes/libffi/src/x86/win32.S", 948 ], 949 }, 950 android_x86_64: { 951 local_include_dirs: ["android_x86_64/libffi"], 952 srcs: [ 953 "Modules/_ctypes/libffi/src/x86/unix64.S", 954 ], 955 }, 956 }, 957} 958 959cc_library_host_static { 960 name: "py2-c-module-_scproxy", 961 defaults: ["py2-interp-defaults"], 962 srcs: ["Mac/Modules/_scproxy.c"], 963 target: { 964 linux: { 965 enabled: false, 966 }, 967 }, 968} 969