Repository navigation
MSYS2-MinGW64: Auto Generated Makefiles Give Error: target pattern contains no '%' #3120
Copy link
Copy link
Open
Labels
Description
Platform: MSYS2-MinGW64 on Windows 11
Node Version: v23.5.0
Compiler: GCC 14.2.0
make: GNU Make 4.4.1
Module: Pelias Interpolation
I'm trying to run the Pelias/Interpolation server on MSYS2-MinGW64. This module has dependencies on node-postal and better-sqlite3 node modules. Both this modules has addon's which gets build while installing these packages with npm install.
While installing these packages. I'm getting the following error:
$ npm install
npm warn deprecated trim@0.0.1: Use String.prototype.trim() instead
npm warn deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm warn deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm warn deprecated @hapi/pinpoint@1.0.2: Moved to 'npm install @sideway/pinpoint'
npm warn deprecated @hapi/formula@1.2.0: Moved to 'npm install @sideway/formula'
npm warn deprecated @hapi/joi@16.1.8: Switch to 'npm install joi'
npm warn deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
npm warn deprecated superagent@5.3.1: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net
npm error code 1
npm error path C:\temp\postal-test\msys64\home\aamir.ali\interpolation\node_modules\better-sqlite3
npm error command failed
npm error command C:\WINDOWS\system32\cmd.exe /d /s /c prebuild-install || node-gyp rebuild --release
npm error make: Entering directory '/home/aamir.ali/interpolation/node_modules/better-sqlite3/build'
npm error make: Leaving directory '/home/aamir.ali/interpolation/node_modules/better-sqlite3/build'
npm error prebuild-install warn install A dynamic link library (DLL) initialization routine failed.
npm error \\?\C:\temp\postal-test\msys64\home\aamir.ali\interpolation\node_modules\better-sqlite3\build\Release\better_sqlite3.node
npm error gyp info it worked if it ends with ok
npm error gyp info using node-gyp@11.0.0
npm error gyp info using node@23.5.0 | win32 | x64
npm error gyp info find Python using Python version 3.12.8 found at "C:/temp/postal-test/msys64/mingw64/bin/python3.exe"
npm error gyp info spawn C:/temp/postal-test/msys64/mingw64/bin/python3.exe
npm error gyp info spawn args [
npm error gyp info spawn args 'C:\\temp\\postal-test\\msys64\\mingw64\\lib\\node_modules\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py',
npm error gyp info spawn args 'binding.gyp',
npm error gyp info spawn args '-f',
npm error gyp info spawn args 'make',
npm error gyp info spawn args '-I',
npm error gyp info spawn args 'C:\\temp\\postal-test\\msys64\\home\\aamir.ali\\interpolation\\node_modules\\better-sqlite3\\build\\config.gypi',
npm error gyp info spawn args '-I',
npm error gyp info spawn args 'C:\\temp\\postal-test\\msys64\\mingw64\\lib\\node_modules\\npm\\node_modules\\node-gyp\\addon.gypi',
npm error gyp info spawn args '-I',
npm error gyp info spawn args 'C:\\temp\\postal-test\\msys64\\mingw64\\include\\node\\common.gypi',
npm error gyp info spawn args '-Dlibrary=shared_library',
npm error gyp info spawn args '-Dvisibility=default',
npm error gyp info spawn args '-Dnode_root_dir=C:\\temp\\postal-test\\msys64\\mingw64',
npm error gyp info spawn args '-Dnode_gyp_dir=C:\\temp\\postal-test\\msys64\\mingw64\\lib\\node_modules\\npm\\node_modules\\node-gyp',
npm error gyp info spawn args '-Dnode_lib_file=C:\\temp\\postal-test\\msys64\\mingw64\\lib\\libnode.dll.a',
npm error gyp info spawn args '-Dmodule_root_dir=C:\\temp\\postal-test\\msys64\\home\\aamir.ali\\interpolation\\node_modules\\better-sqlite3',
npm error gyp info spawn args '-Dnode_engine=v8',
npm error gyp info spawn args '--depth=.',
npm error gyp info spawn args '--no-parallel',
npm error gyp info spawn args '--generator-output',
npm error gyp info spawn args 'build',
npm error gyp info spawn args '-Goutput_dir=.'
npm error gyp info spawn args ]
npm error gyp info spawn make
npm error gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm error better_sqlite3.target.mk:93: *** target pattern contains no '%'. Stop.
npm error gyp ERR! build error
npm error gyp ERR! stack Error: `make` failed with exit code: 2
npm error gyp ERR! stack at ChildProcess.<anonymous> (C:\temp\postal-test\msys64\mingw64\lib\node_modules\npm\node_modules\node-gyp\lib\build.js:216:23)
npm error gyp ERR! stack at ChildProcess.emit (node:events:513:28)
npm error gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12)
npm error gyp ERR! System MINGW32_NT-10.0 10.0.22631
npm error gyp ERR! command "C:\\temp\\postal-test\\msys64\\mingw64\\bin\\node.exe" "C:\\temp\\postal-test\\msys64\\mingw64\\lib\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--release"
npm error gyp ERR! cwd C:\temp\postal-test\msys64\home\aamir.ali\interpolation\node_modules\better-sqlite3
npm error gyp ERR! node -v v23.5.0
npm error gyp ERR! node-gyp -v v11.0.0
npm error gyp ERR! not ok
npm error A complete log of this run can be found in: C:\Users\aamir.ali\AppData\Local\npm-cache\_logs\2025-01-17T19_59_42_101Z-debug-0.log
Installing the node modules on Windows 11 works without any error.
Can anyone please clarify if I'm making anything wrong or this is an issue with node-gyp on MSYS-MinGW64.
Any help in resolving this issue is highly appreciated.
Thanks in advance.
Reactions are currently unavailable
Activity
cclauss commentedon Jan 17, 2025
Duplicate of
Perhaps this is an issue for https://www.npmjs.com/package/better-sqlite3
aamirglb commentedon Jan 18, 2025
Hi @cclauss,
Thanks a lot for your reply.
I get the exact same error for openvenues/node-postal package as well. This package has a dependency on openvenues/libpostal. node-postal is a binding for libpostal.
This package installs successfully on Linux/WSL but fails to install on MSYS2-MinGW64.
Her is the binding.gyp which I customized for MSYS2 environment.
Here is the output of
npm install:The following lines in the auto generated
expand.target.mkMakefile are causing the issues:In
expand.target.mk, I added a info statement to display the value ofOBJSvariable,$(info OBJS: $(OBJS))and it gets evaluated asLooks like, node-gyp is trying to link
win_delay_load_hook.owhich has a:in its path. Could this be a potential issues?Here is the comparison of
expand.target.mkfile created onLinux/WSLandMSYS2-MinGW64:To me it looks like, the Makefile generated by
node-gypon MSYS2-MinGW64 has some issues which causes the installation of bothnode-postalandbetter-sqliteto fail.Any thoughts from your side?
Do you have any test cases to test
node-gypon MSYS2-MinGW64?Kreijstal commentedon Feb 10, 2025
This is a path conversion bug try to debug how this path is generated and use
MSYS2_ARG_CONV_EXCL="*"lsq commentedon Sep 27, 2025
I find the issue caused by
node -e \"require('nan')\")return a path with double quotes, so g++/gcc cannot handle it correctly.I have submitted a pr: