Mirror of espurna firmware for wireless switches and more
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.6 KiB

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)