diff options
| author | ruki <[email protected]> | 2023-04-06 23:36:58 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-04-06 23:36:58 +0800 |
| commit | 1a94a99d7f4cde9fbaf9e50906d8a37ba12ac8f2 (patch) | |
| tree | 7f2d12ce8ef1c3ba26d7a851e4624fcc41e77057 | |
| parent | 37c266285c76bbca8ee06d0d6c63a3935f9a892e (diff) | |
update configure
| -rwxr-xr-x | configure | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -409,9 +409,15 @@ path_toolname() { clang) toolname="clang";; clang-*) toolname="clang";; */clang-*) toolname="clang";; + */emcc) toolname="emcc";; + emcc) toolname="emcc";; + */em++) toolname="emxx";; + em++) toolname="emxx";; *-ar) toolname="ar";; */ar) toolname="ar";; ar) toolname="ar";; + */emar) toolname="emar";; + emar) toolname="emar";; cc) toolname="gcc";; */cc) toolname="gcc";; c++) toolname="gxx";; @@ -639,6 +645,8 @@ if is_host "msys"; then _target_plat_default="mingw" elif is_host "freebsd"; then _target_plat_default="bsd" +elif test_nz "${EMSDK}"; then + _target_plat_default="wasm" fi # set the default target architecture @@ -647,6 +655,8 @@ if is_host "msys" && test_nz "${MSYSTEM_CARCH}"; then _target_arch_default="${MSYSTEM_CARCH}" elif test_nz "${TERMUX_ARCH}"; then _target_arch_default="${TERMUX_ARCH}" +elif test_nz "${EMSDK}"; then + _target_arch_default="wasm32" fi if test_eq "${_target_arch_default}" "i686"; then _target_arch_default="i386" @@ -940,6 +950,8 @@ _get_abstract_flags() { gxx) _get_abstract_flag_for_gcc_clang "${toolkind}" "${toolname}" "${itemname}" "${value}"; flag="${_ret}";; clang) _get_abstract_flag_for_gcc_clang "${toolkind}" "${toolname}" "${itemname}" "${value}"; flag="${_ret}";; clangxx) _get_abstract_flag_for_gcc_clang "${toolkind}" "${toolname}" "${itemname}" "${value}"; flag="${_ret}";; + emcc) _get_abstract_flag_for_gcc_clang "${toolkind}" "${toolname}" "${itemname}" "${value}"; flag="${_ret}";; + emxx) _get_abstract_flag_for_gcc_clang "${toolkind}" "${toolname}" "${itemname}" "${value}"; flag="${_ret}";; *) raise "unknown toolname(${toolname})!" ;; esac if test_nz "${flag}"; then @@ -1589,7 +1601,10 @@ _get_target_toolchain_flags() { gxx) _get_target_toolchain_flags_for_gcc "${name}" "${toolkind}"; flags="${_ret}";; clang) _get_target_toolchain_flags_for_clang "${name}" "${toolkind}"; flags="${_ret}";; clangxx) _get_target_toolchain_flags_for_clang "${name}" "${toolkind}"; flags="${_ret}";; + emcc) _get_target_toolchain_flags_for_clang "${name}" "${toolkind}"; flags="${_ret}";; + emxx) _get_target_toolchain_flags_for_clang "${name}" "${toolkind}"; flags="${_ret}";; ar) _get_target_toolchain_flags_for_ar "${name}" "${toolkind}"; flags="${_ret}";; + emar) _get_target_toolchain_flags_for_ar "${name}" "${toolkind}"; flags="${_ret}";; *) raise "unknown toolname(${toolname})!" ;; esac _ret="${flags}" @@ -2872,6 +2887,18 @@ toolchain "aarch64_linux_gnu" set_toolset "ar" "aarch64-linux-gnu-ar" "ar" toolchain_end +# emcc toolchain (wasm32) +toolchain "emcc" + set_toolset "as" "emcc" + set_toolset "cc" "emcc" + set_toolset "cxx" "emcc" "em++" + set_toolset "mm" "emcc" + set_toolset "mxx" "emcc" "em++" + set_toolset "ld" "em++" "emcc" + set_toolset "sh" "em++" "emcc" + set_toolset "ar" "emar" "ar" +toolchain_end + # check platform _check_platform() { if test "x${_target_plat}" = "x"; then @@ -2933,6 +2960,8 @@ _toolchain_compcmd() { gxx) _toolchain_compcmd_for_gcc_clang "${program}" "${objectfile}" "${sourcefile}" "${flags}"; compcmd="${_ret}";; clang) _toolchain_compcmd_for_gcc_clang "${program}" "${objectfile}" "${sourcefile}" "${flags}"; compcmd="${_ret}";; clangxx) _toolchain_compcmd_for_gcc_clang "${program}" "${objectfile}" "${sourcefile}" "${flags}"; compcmd="${_ret}";; + emcc) _toolchain_compcmd_for_gcc_clang "${program}" "${objectfile}" "${sourcefile}" "${flags}"; compcmd="${_ret}";; + emxx) _toolchain_compcmd_for_gcc_clang "${program}" "${objectfile}" "${sourcefile}" "${flags}"; compcmd="${_ret}";; *) raise "unknown toolname(${toolname})!" ;; esac _ret="${compcmd}" @@ -2951,7 +2980,10 @@ _toolchain_linkcmd() { gxx) _toolchain_linkcmd_for_gcc_clang "${toolkind}" "${program}" "${binaryfile}" "${objectfiles}" "${flags}"; linkcmd="${_ret}";; clang) _toolchain_linkcmd_for_gcc_clang "${toolkind}" "${program}" "${binaryfile}" "${objectfiles}" "${flags}"; linkcmd="${_ret}";; clangxx) _toolchain_linkcmd_for_gcc_clang "${toolkind}" "${program}" "${binaryfile}" "${objectfiles}" "${flags}"; linkcmd="${_ret}";; + emcc) _toolchain_linkcmd_for_gcc_clang "${toolkind}" "${program}" "${binaryfile}" "${objectfiles}" "${flags}"; linkcmd="${_ret}";; + emxx) _toolchain_linkcmd_for_gcc_clang "${toolkind}" "${program}" "${binaryfile}" "${objectfiles}" "${flags}"; linkcmd="${_ret}";; ar) _toolchain_linkcmd_for_ar "${toolkind}" "${program}" "${binaryfile}" "${objectfiles}" "${flags}"; linkcmd="${_ret}";; + emar) _toolchain_linkcmd_for_ar "${toolkind}" "${program}" "${binaryfile}" "${objectfiles}" "${flags}"; linkcmd="${_ret}";; *) raise "unknown toolname(${toolname})!" ;; esac _ret="${linkcmd}" @@ -3086,7 +3118,10 @@ _toolchain_try_program() { gxx) _toolchain_try_gxx "${kind}" "${program}" && ok=true;; clang) _toolchain_try_clang "${kind}" "${program}" && ok=true;; clangxx) _toolchain_try_clangxx "${kind}" "${program}" && ok=true;; + emcc) _toolchain_try_clang "${kind}" "${program}" && ok=true;; + emxx) _toolchain_try_clangxx "${kind}" "${program}" && ok=true;; ar) _toolchain_try_ar "${kind}" "${program}" && ok=true;; + emar) _toolchain_try_ar "${kind}" "${program}" && ok=true;; *) raise "unknown toolname(${toolname})!" ;; esac if ${ok}; then @@ -3188,6 +3223,8 @@ _toolchain_detect() { else toolchains="x86_64_w64_mingw32" fi + elif is_plat "wasm"; then + toolchains="emcc" elif is_plat "linux" && ! is_arch "${os_arch}"; then toolchains="envs" if is_arch "arm64"; then @@ -3815,6 +3852,8 @@ _gmake_add_build_object() { gxx) _gmake_add_build_object_for_gcc_clang "${sourcekind}" "${sourcefile}" "${objectfile}" "${flagname}";; clang) _gmake_add_build_object_for_gcc_clang "${sourcekind}" "${sourcefile}" "${objectfile}" "${flagname}";; clangxx) _gmake_add_build_object_for_gcc_clang "${sourcekind}" "${sourcefile}" "${objectfile}" "${flagname}";; + emcc) _gmake_add_build_object_for_gcc_clang "${sourcekind}" "${sourcefile}" "${objectfile}" "${flagname}";; + emxx) _gmake_add_build_object_for_gcc_clang "${sourcekind}" "${sourcefile}" "${objectfile}" "${flagname}";; *) raise "unknown toolname(${toolname})!" ;; esac echo "" >> "${xmake_sh_makefile}" @@ -3893,7 +3932,10 @@ _gmake_add_build_target() { gxx) _gmake_add_build_target_for_gcc_clang "${toolkind}" "${targetfile}" "${objectfiles}" "${flagname}";; clang) _gmake_add_build_target_for_gcc_clang "${toolkind}" "${targetfile}" "${objectfiles}" "${flagname}";; clangxx) _gmake_add_build_target_for_gcc_clang "${toolkind}" "${targetfile}" "${objectfiles}" "${flagname}";; + emcc) _gmake_add_build_target_for_gcc_clang "${toolkind}" "${targetfile}" "${objectfiles}" "${flagname}";; + emxx) _gmake_add_build_target_for_gcc_clang "${toolkind}" "${targetfile}" "${objectfiles}" "${flagname}";; ar) _gmake_add_build_target_for_ar "${toolkind}" "${targetfile}" "${objectfiles}" "${flagname}";; + emar) _gmake_add_build_target_for_ar "${toolkind}" "${targetfile}" "${objectfiles}" "${flagname}";; *) raise "unknown toolname(${toolname})!" ;; esac echo "" >> "${xmake_sh_makefile}" |
