|
|
- import os
-
-
- def lwip_inject_patcher(env):
- # ignore when building with lwip2
- if "lwip_gcc" not in env["LIBS"]:
- return
-
- platform = env.PioPlatform()
- framework_dir = platform.get_package_dir("framework-arduinoespressif8266")
- toolchain_prefix = os.path.join(
- platform.get_package_dir("toolchain-xtensa"), "bin", "xtensa-lx106-elf-"
- )
-
- patch_action = env.VerboseAction(
- " ".join(
- [
- "-patch",
- "-u",
- "-N",
- "-d",
- os.path.join(framework_dir, "tools", "sdk", "lwip"),
- os.path.join("src", "core", "tcp_out.c"),
- env.subst(
- os.path.join(
- "$PROJECT_DIR",
- "..",
- "dist",
- "patches",
- "lwip_mtu_issue_1610.patch",
- )
- ),
- ]
- ),
- "Patching lwip source",
- )
- build_action = env.VerboseAction(
- " ".join(
- [
- "make",
- "-C",
- os.path.join(framework_dir, "tools", "sdk", "lwip", "src"),
- "install",
- "TOOLS_PATH={}".format(toolchain_prefix),
- "LWIP_LIB=liblwip_gcc.a",
- ]
- ),
- "Rebuilding lwip",
- )
-
- patcher = env.Alias("patch-lwip", None, patch_action)
- builder = env.Alias("build-lwip", patcher, build_action)
- if os.environ.get("ESPURNA_PIO_PATCH_ISSUE_1610"):
- env.Depends("$BUILD_DIR/${PROGNAME}.elf", builder)
- env.AlwaysBuild(patcher)
- env.AlwaysBuild(builder)
|