Hi, I think this happens because gmake finds a file named sh.exe in the PATH - in your case it's in "C:/Program Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/".
In the perl source, the GNUmakefile in the win32 directory avoids this problem by specifying: SHELL := cmd.exe Is that just a way of setting the SHELL environment variable from inside the makefile ? Does it help if you set the SHELL environment variable to "cmd.exe" before starting the build of Alien::wxWidgets : set SHELL=cmd.exe Cheers, Rob On Wed, Jun 3, 2020 at 11:57 PM Luigi Iotti <lu...@iotti.biz> wrote: > Hi all > > I'm new to Strawberry perl. I just installed 5.30.2.1 on a Win10 pc. > > Long story short: in the CPAN shell, how may I add some arguments to gmake > command line? > I tried o conf make_arg, make_install_arg, makepl_arg, mbuildpl_arg but > they > seem not to work, at least in my case. > > Long story long: > > I'm trying to build Alien::wxWidgets as it is a requirement for wx. But the > build fails with: > ... > if not exist gcc_mswudll mkdir gcc_mswudll > process_begin: CreateProcess(NULL, C:/Program > Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/ -c "if not exist gcc_mswudll > mkdir gcc_mswudll", ...) failed. > make (e=2): Impossibile trovare il file specificato. #(this means unable to > find the specified file, in Italian) > gmake: [makefile.gcc:5089: gcc_mswudll] Error 2 (ignored) > if not exist ..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll > process_begin: CreateProcess(NULL, C:/Program > Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/ -c "if not exist > ..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll", ...) failed. > make (e=2): Impossibile trovare il file specificato. #(this means unable to > find the specified file, in Italian) > gmake: *** [makefile.gcc:5639: ..\..\lib\gcc_dll] Error 2 > system: gmake -f makefile.gcc all UNICODE=1 MSLU=0 BUILD=release SHARED=1 > DEBUG_INFO=default DEBUG_FLAG=1 LDFLAGS=" -m64" CPPFLAGS="-m64": 512 at > inc/My/Build/Win32.pm line 284. > > I found that " C:/Program Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/" is > the first component of my PATH, and it seems to come from gmake's > find_and_set_shell. > If I run the gmake command alone, with -d, it calls find_and_set_shell > twice. The first time it finds a gnu shell I have somewhere in my PATH, the > second time it finds the first directory in PATH, not an executable: > > >gmake -f makefile.gcc all UNICODE=1 MSLU=0 BUILD=release SHARED=1 > DEBUG_INFO=default DEBUG_FLAG=1 LDFLAGS=" -m64" CPPFLAGS="-m64" -d > GNU Make 4.2.1 > Built for x86_64-w64-mingw32 > Copyright (C) 1988-2016 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > find_and_set_shell() path search set default_shell = > C:/Utils/GnuWin32/bin/sh.exe > Reading makefiles... > Reading makefile 'makefile.gcc'... > Reading makefile 'config.gcc' (search path) (no ~ expansion)... > find_and_set_shell() path search set default_shell = C:/Program > Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/ > Reading makefile 'gcc_mswudll/*.d' (search path) (don't care) (no ~ > expansion)... > Updating makefiles... > > But if I add SHELL=cmd.exe on the gmake command line, it works. The working > command line is > gmake -f makefile.gcc all UNICODE=1 MSLU=0 BUILD=release SHARED=1 > DEBUG_INFO=default DEBUG_FLAG=1 LDFLAGS=" -m64" CPPFLAGS="-m64" > SHELL=CMD.exe > > Hence my question about setting SHELL= from the CPAN shell. > Other solutions are welcome. > > Thank you, regards > Luigi >