def METHOD_NAME(self):
    env = VirtualBuildEnv(self)
    env.METHOD_NAME()
    tc = AutotoolsToolchain(self)
    if is_msvc(self):
        tc.extra_cflags.append("-FS")
        # Avoid a `Assertion Failed Dialog Box` during configure with build_type=Debug
        # Visual Studio does not support the %n format flag:
        # https://docs.microsoft.com/en-us/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions
        # Because the %n format is inherently insecure, it is disabled by default. If %n is encountered in a format string,
        # the invalid parameter handler is invoked, as described in Parameter Validation. To enable %n support, see _set_printf_count_output.
        tc.configure_args.extend([
            "gl_cv_func_printf_directive_n=no",
            "gl_cv_func_snprintf_directive_n=no",
            "gl_cv_func_snprintf_directive_n=no",
        ])
        if self.settings.build_type in ("Debug", "RelWithDebInfo"):
            tc.extra_ldflags.append("-PDB")
    elif self.settings.compiler == "clang" and Version(self.version) < "1.4.19":
        tc.extra_cflags.extend([
            "-rtlib=compiler-rt",
            "-Wno-unused-command-line-argument",
        ])
    if self.settings.os == "Windows":
        tc.configure_args.append("ac_cv_func__set_invalid_parameter_handler=yes")
    env = tc.environment()
    # help2man trick
    env.prepend_path("PATH", self.source_folder)
    # handle msvc
    if is_msvc(self):
        ar_wrapper = unix_path(self, os.path.join(self.source_folder, "build-aux", "ar-lib"))
        env.define("CC", "cl -nologo")
        env.define("CXX", "cl -nologo")
        env.define("AR", f"{ar_wrapper} lib")
        env.define("LD", "link")
        env.define("NM", "dumpbin -symbols")
        env.define("OBJDUMP", ":")
        env.define("RANLIB", ":")
        env.define("STRIP", ":")
    tc.METHOD_NAME(env)