--- a/scripts/build.js
+++ b/scripts/build.js
@@ -14,6 +14,45 @@ const tar = require("tar");
 
 const nativeSourceDir = "crt/";
 
+const exec = require('child_process').exec;
+const CMAKE_SYSTEM_NAME = process.env.CMAKE_SYSTEM_NAME;
+const CMAKE_SYSTEM_VERSION = process.env.CMAKE_SYSTEM_VERSION;
+const CMAKE_SYSTEM_PROCESSOR = process.env.CMAKE_SYSTEM_PROCESSOR;
+const CMAKE_BUILD_TYPE = process.env.CMAKE_BUILD_TYPE;
+const CMAKE_C_FLAGS_RELEASE = process.env.CMAKE_C_FLAGS_RELEASE;
+const CMAKE_CXX_FLAGS_RELEASE = process.env.CMAKE_CXX_FLAGS_RELEASE;
+const CMAKE_C_COMPILER_LAUNCHER = process.env.CMAKE_C_COMPILER_LAUNCHER;
+const CMAKE_C_COMPILER = process.env.CMAKE_C_COMPILER;
+const CMAKE_C_COMPILER_ARG1 = process.env.CMAKE_C_COMPILER_ARG1;
+const CMAKE_CXX_COMPILER_LAUNCHER = process.env.CMAKE_CXX_COMPILER_LAUNCHER;
+const CMAKE_CXX_COMPILER = process.env.CMAKE_CXX_COMPILER;
+const CMAKE_CXX_COMPILER_ARG1 = process.env.CMAKE_CXX_COMPILER_ARG1;
+const CMAKE_ASM_COMPILER = process.env.CMAKE_ASM_COMPILER;
+const CMAKE_EXE_LINKER_FLAGS = process.env.CMAKE_EXE_LINKER_FLAGS;
+const CMAKE_MODULE_LINKER_FLAGS = process.env.CMAKE_MODULE_LINKER_FLAGS;
+const CMAKE_SHARED_LINKER_FLAGS = process.env.CMAKE_SHARED_LINKER_FLAGS;
+const CMAKE_AR = process.env.CMAKE_AR;
+const CMAKE_NM = process.env.CMAKE_NM;
+const CMAKE_RANLIB = process.env.CMAKE_RANLIB;
+const CMAKE_FIND_ROOT_PATH = process.env.CMAKE_FIND_ROOT_PATH;
+const CMAKE_FIND_ROOT_PATH_MODE_PROGRAM = process.env.CMAKE_FIND_ROOT_PATH_MODE_PROGRAM;
+const CMAKE_FIND_ROOT_PATH_MODE_LIBRARY = process.env.CMAKE_FIND_ROOT_PATH_MODE_LIBRARY;
+const CMAKE_FIND_ROOT_PATH_MODE_INCLUDE = process.env.CMAKE_FIND_ROOT_PATH_MODE_INCLUDE;
+const CMAKE_STRIP = process.env.CMAKE_STRIP;
+const CMAKE_INSTALL_PREFIX = process.env.CMAKE_INSTALL_PREFIX;
+const DL_LIBRARY = process.env.DL_LIBRARY;
+const CMAKE_PREFIX_PATH = process.env.CMAKE_PREFIX_PATH;
+const CMAKE_SKIP_RPATH = process.env.CMAKE_SKIP_RPATH;
+const CMAKE_EXPORT_PACKAGE_REGISTRY = process.env.CMAKE_EXPORT_PACKAGE_REGISTRY;
+const CMAKE_EXPORT_NO_PACKAGE_REGISTRY = process.env.CMAKE_EXPORT_NO_PACKAGE_REGISTRY;
+const CMAKE_FIND_USE_PACKAGE_REGISTRY = process.env.CMAKE_FIND_USE_PACKAGE_REGISTRY;
+const CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY = process.env.CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY;
+const CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY = process.env.CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY;
+const CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY = process.env.CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY;
+const CMAKE_SYSROOT = process.env.CMAKE_SYSROOT;
+const CROSS_COMPILE = process.env.CROSS_COMPILE;
+const TARGET_CROSS = process.env.TARGET_CROSS;
+
 function rmRecursive(rmPath) {
     let rmBasePath = path.basename(rmPath);
     if (rmBasePath == "." || rmBasePath == "..") {
@@ -121,6 +160,42 @@ async function buildLocally() {
             CMAKE_EXPORT_COMPILE_COMMANDS: true,
             CMAKE_JS_PLATFORM: platform,
             BUILD_TESTING: 'OFF',
+            CMAKE_CROSSCOMPILING: true,
+            CMAKE_SYSTEM_NAME: `${CMAKE_SYSTEM_NAME}`,
+            CMAKE_SYSTEM_VERSION: `${CMAKE_SYSTEM_VERSION}`,
+            CMAKE_SYSTEM_PROCESSOR: `${CMAKE_SYSTEM_PROCESSOR}`,
+            CMAKE_BUILD_TYPE: `${CMAKE_BUILD_TYPE}`,
+            CMAKE_C_FLAGS_RELEASE: `${CMAKE_C_FLAGS_RELEASE}`,
+            CMAKE_CXX_FLAGS_RELEASE: `${CMAKE_CXX_FLAGS_RELEASE}`,
+            CMAKE_C_COMPILER_LAUNCHER: `${CMAKE_C_COMPILER_LAUNCHER}`,
+            CMAKE_C_COMPILER: `${CMAKE_C_COMPILER}`,
+            CMAKE_C_COMPILER_ARG1: `${CMAKE_C_COMPILER_ARG1}`,
+            CMAKE_CXX_COMPILER_LAUNCHER: `${CMAKE_CXX_COMPILER_LAUNCHER}`,
+            CMAKE_CXX_COMPILER: `${CMAKE_CXX_COMPILER}`,
+            CMAKE_CXX_COMPILER_ARG1: `${CMAKE_CXX_COMPILER_ARG1}`,
+            CMAKE_ASM_COMPILER: `${CMAKE_ASM_COMPILER}`,
+            CMAKE_EXE_LINKER_FLAGS: `${CMAKE_EXE_LINKER_FLAGS}`,
+            CMAKE_MODULE_LINKER_FLAGS: `${CMAKE_MODULE_LINKER_FLAGS}`,
+            CMAKE_SHARED_LINKER_FLAGS: `${CMAKE_SHARED_LINKER_FLAGS}`,
+            CMAKE_AR: `${CMAKE_AR}`,
+            CMAKE_NM: `${CMAKE_NM}`,
+            CMAKE_RANLIB: `${CMAKE_RANLIB}`,
+            CMAKE_FIND_ROOT_PATH: `${CMAKE_FIND_ROOT_PATH}`,
+            CMAKE_FIND_ROOT_PATH_MODE_PROGRAM: `${CMAKE_FIND_ROOT_PATH_MODE_PROGRAM}`,
+            CMAKE_FIND_ROOT_PATH_MODE_LIBRARY: `${CMAKE_FIND_ROOT_PATH_MODE_LIBRARY}`,
+            CMAKE_FIND_ROOT_PATH_MODE_INCLUDE: `${CMAKE_FIND_ROOT_PATH_MODE_INCLUDE}`,
+            DL_LIBRARY: `${DL_LIBRARY}`,
+            CMAKE_SKIP_RPATH: `${CMAKE_SKIP_RPATH}`,
+            CMAKE_EXPORT_PACKAGE_REGISTRY: `${CMAKE_EXPORT_PACKAGE_REGISTRY}`,
+            CMAKE_EXPORT_NO_PACKAGE_REGISTRY: `${CMAKE_EXPORT_NO_PACKAGE_REGISTRY}`,
+            CMAKE_FIND_USE_PACKAGE_REGISTRY: `${CMAKE_FIND_USE_PACKAGE_REGISTRY}`,
+            CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY: `${CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY}`,
+            CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY: `${CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY}`,
+            CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY: `${CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY}`,
+            CMAKE_SYSROOT: `${CMAKE_SYSROOT}`,
+            CROSS_COMPILE: `${CROSS_COMPILE}`,
+            CMAKE_OBJCOPY: `${TARGET_CROSS}objcopy`,
+            CMAKE_STRIP: `${TARGET_CROSS}strip`,
             CMAKE_INSTALL_PREFIX: 'crt/install',
             CMAKE_PREFIX_PATH: 'crt/install',
         }
@@ -148,6 +223,18 @@ async function buildLocally() {
     // Enable parallel build (ignored by cmake older than 3.12)
     process.env.CMAKE_BUILD_PARALLEL_LEVEL = `${Math.max(os.cpus().length, 1)}`;
 
+    // Bad technique (for OpenWrt)
+    exec("find ./crt  \\( -name CMakeLists.txt -or -name *.mk -or -name *.cmake \\) -exec sed -i -e 's| -Werror||g' {} +", (error, stdout, stderr) => {
+        console.log(error, stdout, stderr);
+    });
+    exec("find ./crt  \\( -name CMakeLists.txt -or -name *.mk -or -name *.cmake \\) -exec sed -i -e 's|-D_FORTIFY_SOURCE=2||g' {} +", (error, stdout, stderr) => {
+        console.log(error, stdout, stderr);
+    });
+
+    exec("sed -i '35d' ./crt/aws-c-common/cmake/AwsSharedLibSetup.cmake", (error, stdout, stderr) => {
+        console.log(error, stdout, stderr);
+    });
+
     // Run the build
     var buildSystem = new cmake.BuildSystem(options);
     await buildSystem.build();
