def METHOD_NAME(self):
    env = VirtualBuildEnv(self)
    env.METHOD_NAME()
    tc = AutotoolsToolchain(self)
    yes_no = lambda v: "yes" if v else "no"
    tc.configure_args.extend([
        f'--with-pic={yes_no(self.options.get_safe("fPIC", True))}',
        f'--enable-assembly={yes_no(not self.options.get_safe("disable_assembly", False))}',
        f'--enable-fat={yes_no(self.options.get_safe("enable_fat", False))}',
        f'--enable-cxx={yes_no(self.options.enable_cxx)}',
        f'--srcdir={"../src"}', # Use relative path to avoid issues with #include "$srcdir/gmp-h.in" on Windows
    ])
    if is_msvc(self):
        tc.configure_args.extend([
            "ac_cv_c_restrict=restrict",
            "gmp_cv_asm_label_suffix=:",
            "lt_cv_sys_global_symbol_pipe=cat",  # added to get further in shared MSVC build, but it gets stuck later
        ])
        tc.extra_cxxflags.append("-EHsc")
        if check_min_vs(self, "180", raise_invalid=False):
            tc.extra_cflags.append("-FS")
            tc.extra_cxxflags.append("-FS")
    env = tc.environment() # Environment must be captured *after* setting extra_cflags, etc. to pick up changes
    if is_msvc(self):
        yasm_wrapper = unix_path(self, os.path.join(self.source_folder, "yasm_wrapper.sh"))
        yasm_machine = {
            "x86": "x86",
            "x86_64": "amd64",
        }[str(self.settings.arch)]
        ar_wrapper = unix_path(self, self.conf.get("user.automake:lib-wrapper"))
        dumpbin_nm = unix_path(self, os.path.join(self.source_folder, "dumpbin_nm.py"))
        env.define("CC", "cl -nologo")
        env.define("CCAS", f"{yasm_wrapper} -a x86 -m {yasm_machine} -p gas -r raw -f win32 -g null -X gnu")
        env.define("CXX", "cl -nologo")
        env.define("LD", "link -nologo")
        env.define("AR", f'{ar_wrapper} "lib -nologo"')
        env.define("NM", f"python {dumpbin_nm}")
    tc.METHOD_NAME(env)