# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. if CONFIG["OS_ARCH"] == "Darwin": SOURCES += [ "xptcinvoke_darwin.cpp", "xptcstubs_darwin.cpp", ] if CONFIG["TARGET_CPU"] == "ppc": SOURCES += [ "!xptcstubs_asm_ppc_darwin.s", "xptcinvoke_asm_ppc_rhapsody.s", ] if CONFIG["TARGET_CPU"] == "x86_64": SOURCES += [ "xptcinvoke_asm_x86_64_unix.S", ] if CONFIG["TARGET_CPU"] == "aarch64": SOURCES += [ "xptcinvoke_asm_aarch64.S", "xptcstubs_asm_aarch64.S", ] if CONFIG["OS_ARCH"] == "GNU": if CONFIG["TARGET_CPU"] == "x86": SOURCES += ["xptcinvoke_gcc_x86_unix.cpp", "xptcstubs_gcc_x86_unix.cpp"] if CONFIG["OS_ARCH"] in ( "Linux", "Bitrig", "DragonFly", "FreeBSD", "NetBSD", "OpenBSD", "SunOS", ) or CONFIG["OS_ARCH"].startswith("GNU_"): if CONFIG["TARGET_CPU"] == "x86_64": SOURCES += [ "xptcinvoke_asm_x86_64_unix.S", "xptcinvoke_x86_64_unix.cpp", "xptcstubs_x86_64_linux.cpp", ] elif CONFIG["TARGET_CPU"] == "x86": SOURCES += ["xptcinvoke_gcc_x86_unix.cpp", "xptcstubs_gcc_x86_unix.cpp"] if CONFIG["OS_ARCH"] in ("Linux", "FreeBSD"): if CONFIG["TARGET_CPU"] == "ia64": SOURCES += [ "xptcinvoke_asm_ipf64.s", "xptcinvoke_ipf64.cpp", "xptcstubs_asm_ipf64.s", "xptcstubs_ipf64.cpp", ] if CONFIG["TARGET_CPU"] == "Alpha": if CONFIG["OS_ARCH"] in ("Linux", "FreeBSD", "NetBSD"): SOURCES += [ "xptcinvoke_linux_alpha.cpp", "xptcstubs_linux_alpha.cpp", ] elif CONFIG["OS_ARCH"] == "OpenBSD": SOURCES += [ "xptcinvoke_alpha_openbsd.cpp", "xptcstubs_alpha_openbsd.cpp", ] if CONFIG["TARGET_CPU"] == "arm": if CONFIG["OS_ARCH"] == "Linux": SOURCES += ["xptcinvoke_arm.cpp", "xptcstubs_arm.cpp"] CXXFLAGS += ["-O2"] elif CONFIG["OS_ARCH"] == "NetBSD": SOURCES += [ "xptcinvoke_arm_netbsd.cpp", "xptcstubs_arm_netbsd.cpp", ] if CONFIG["TARGET_CPU"] == "arm" and CONFIG["OS_ARCH"] in ("Bitrig", "OpenBSD"): SOURCES += [ "xptcinvoke_arm_openbsd.cpp", "xptcstubs_arm_openbsd.cpp", ] if CONFIG["OS_ARCH"] == "HP-UX": if CONFIG["CC"] != "gcc": if CONFIG["TARGET_CPU"] == "ia64": SOURCES += [ "xptcinvoke_asm_ipf32.s", "xptcinvoke_ipf32.cpp", "xptcstubs_asm_ipf32.s", "xptcstubs_ipf32.cpp", ] else: SOURCES += [ "xptcinvoke_asm_pa32.s", "xptcinvoke_pa32.cpp", "xptcstubs_asm_pa32.s", "xptcstubs_pa32.cpp", ] if CONFIG["OS_ARCH"] == "Linux": if CONFIG["TARGET_CPU"] == "hppa": if CONFIG["CC_TYPE"] in ("clang", "gcc"): SOURCES += [ "xptcinvoke_asm_parisc_linux.s", "xptcinvoke_pa32.cpp", "xptcstubs_asm_parisc_linux.s", "xptcstubs_pa32.cpp", ] elif CONFIG["COMPILE_ENVIRONMENT"]: error("Unknown C++ compiler, xptcall assembly will probably be incorrect.") if CONFIG["OS_ARCH"] in ("Linux", "FreeBSD", "NetBSD", "OpenBSD"): if CONFIG["TARGET_CPU"] == "aarch64": SOURCES += [ "xptcinvoke_aarch64.cpp", "xptcinvoke_asm_aarch64.S", "xptcstubs_aarch64.cpp", "xptcstubs_asm_aarch64.S", ] if CONFIG["TARGET_CPU"] == "mips64": SOURCES += [ "xptcinvoke_asm_mips64.S", "xptcinvoke_mips64.cpp", "xptcstubs_asm_mips64.S", "xptcstubs_mips64.cpp", ] if CONFIG["CC_TYPE"] == "clang": ASFLAGS += [ "-fno-integrated-as", ] if CONFIG["TARGET_CPU"] == "mips32": SOURCES += [ "xptcinvoke_asm_mips.S", "xptcinvoke_mips.cpp", "xptcstubs_asm_mips.S", "xptcstubs_mips.cpp", ] if CONFIG["CC_TYPE"] == "clang": ASFLAGS += [ "-fno-integrated-as", ] if CONFIG["OS_ARCH"] == "AIX": if CONFIG["HAVE_64BIT_BUILD"]: SOURCES += [ "!xptcstubs_asm_ppc_aix64.s", "xptcinvoke_asm_ppc_aix64.s", "xptcinvoke_ppc_aix64.cpp", "xptcstubs_ppc_aix64.cpp", ] else: SOURCES += [ "!xptcstubs_asm_ppc_aix.s", "xptcinvoke_ppc_aix.cpp", "xptcstubs_ppc_aix.cpp", ] if CONFIG["AIX_OBJMODEL"] == "ibm": SOURCES += [ "xptcinvoke_asm_ppc_ibmobj_aix.s", ] else: SOURCES += [ "xptcinvoke_asm_ppc_aix.s", ] if CONFIG["TARGET_CPU"] == "ppc": if CONFIG["OS_ARCH"] in ("Linux", "FreeBSD"): SOURCES += [ "xptcinvoke_asm_ppc_linux.S", "xptcinvoke_ppc_linux.cpp", "xptcstubs_asm_ppc_linux.S", "xptcstubs_ppc_linux.cpp", ] if CONFIG["TARGET_CPU"] == "ppc64": if CONFIG["OS_ARCH"] in ("Linux", "FreeBSD"): SOURCES += [ "xptcinvoke_asm_ppc64_linux.S", "xptcinvoke_ppc64_linux.cpp", "xptcstubs_asm_ppc64_linux.S", "xptcstubs_ppc64_linux.cpp", ] if CONFIG["CC_TYPE"] == "clang": ASFLAGS += [ "-fno-integrated-as", ] if CONFIG["OS_ARCH"] == "OpenBSD" and CONFIG["TARGET_CPU"] == "ppc": SOURCES += [ "xptcinvoke_asm_ppc_openbsd.S", "xptcinvoke_ppc_openbsd.cpp", "xptcstubs_asm_ppc_openbsd.S", "xptcstubs_ppc_openbsd.cpp", ] if CONFIG["OS_ARCH"] == "Linux" and CONFIG["TARGET_CPU"] == "sparc": SOURCES += [ "xptcinvoke_asm_sparc_linux_GCC3.s", "xptcinvoke_sparc_solaris.cpp", "xptcstubs_asm_sparc_solaris.s", "xptcstubs_sparc_solaris.cpp", ] if CONFIG["OS_ARCH"] == "NetBSD" and CONFIG["TARGET_CPU"] == "sparc": SOURCES += [ "xptcinvoke_asm_sparc_netbsd.s", "xptcinvoke_sparc_netbsd.cpp", "xptcstubs_asm_sparc_netbsd.s", "xptcstubs_sparc_netbsd.cpp", ] if CONFIG["OS_ARCH"] == "OpenBSD" and CONFIG["TARGET_CPU"] == "sparc": SOURCES += [ "xptcinvoke_asm_sparc_openbsd.s", "xptcinvoke_sparc_openbsd.cpp", "xptcstubs_asm_sparc_openbsd.s", "xptcstubs_sparc_openbsd.cpp", ] if ( CONFIG["OS_ARCH"] in ("OpenBSD", "FreeBSD", "Linux", "SunOS") and CONFIG["TARGET_CPU"] == "sparc64" ): SOURCES += [ "xptcinvoke_asm_sparc64_openbsd.s", "xptcinvoke_sparc64_openbsd.cpp", "xptcstubs_asm_sparc64_openbsd.s", "xptcstubs_sparc64_openbsd.cpp", ] if CONFIG["OS_ARCH"] == "Linux": if CONFIG["TARGET_CPU"] == "s390": SOURCES += [ "xptcinvoke_linux_s390.cpp", "xptcstubs_linux_s390.cpp", ] CXXFLAGS += [ "-fno-strict-aliasing", "-fno-inline", "-fomit-frame-pointer", "-mbackchain", ] elif CONFIG["TARGET_CPU"] == "s390x": SOURCES += [ "xptcinvoke_linux_s390x.cpp", "xptcstubs_linux_s390x.cpp", ] CXXFLAGS += [ "-fno-strict-aliasing", "-fno-inline", "-fomit-frame-pointer", "-mbackchain", ] if CONFIG["CC_TYPE"] == "clang": CXXFLAGS += [ "-fno-integrated-as", ] if CONFIG["OS_ARCH"] in ("Linux", "OpenBSD") and CONFIG["TARGET_CPU"] == "riscv64": SOURCES += [ "xptcinvoke_asm_riscv64.S", "xptcinvoke_riscv64.cpp", "xptcstubs_asm_riscv64.S", "xptcstubs_riscv64.cpp", ] if CONFIG["OS_ARCH"] == "Linux" and CONFIG["TARGET_CPU"] == "loongarch64": SOURCES += [ "xptcinvoke_asm_loongarch64.S", "xptcinvoke_loongarch64.cpp", "xptcstubs_asm_loongarch64.S", "xptcstubs_loongarch64.cpp", ] FINAL_LIBRARY = "xul" LOCAL_INCLUDES += [ "../..", ]