R: Setting gmake command arguments in the Strawberry perl CPAN shell
[email protected] ("Luigi Iotti") Fri, 5 Jun 2020 09:42:53 +0200
| Newsgroups | perl.win32.vanilla |
|---|---|
| Message-ID | <[email protected]> |
------=_NextPart_000_00B3_01D63B1D.AF900530 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi sisyphus, =20 Thank you for your answer. You pointed me in the right direction. Setting tet the SHELL env var does not work: it seems that, at least in = my case, it does not go through all the way from cpan to make. But instead, it worked just reducing my PATH to just = C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System= 32\WindowsPowerShell\v1.0\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bi= n;C:\Strawberry\perl\bin , before starting cpan.bat. Thank you very much. =20 As a sidenote: I don=E2=80=99t have any sh.exe, or similar, in = C:/Program Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin . There is only = jcmd.exe, which can resemble a shell. But I think that make=E2=80=99 = find_and_set_shell should set the shell to C:/Program = Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/_something_.exe, not just = the folder C:/Program Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin. =20 Regards, Luigi =20 =20 Da: sisyphus <[email protected]>=20 Inviato: mercoled=C3=AC 3 giugno 2020 23:48 A: Luigi Iotti <[email protected]> Cc: [email protected] Oggetto: Re: Setting gmake command arguments in the Strawberry perl CPAN = shell =20 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/". =20 In the perl source, the GNUmakefile in the win32 directory avoids this = problem by specifying: =20 SHELL :=3D cmd.exe =20 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 : =20 set SHELL=3Dcmd.exe =20 Cheers, Rob =20 On Wed, Jun 3, 2020 at 11:57 PM Luigi Iotti <[email protected] = <mailto:[email protected]> > 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=3D2): 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=3D2): 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=3D1 MSLU=3D0 BUILD=3Drelease = SHARED=3D1 DEBUG_INFO=3Ddefault DEBUG_FLAG=3D1 LDFLAGS=3D" -m64" CPPFLAGS=3D"-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.=20 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=3D1 MSLU=3D0 BUILD=3Drelease = SHARED=3D1 DEBUG_INFO=3Ddefault DEBUG_FLAG=3D1 LDFLAGS=3D" -m64" CPPFLAGS=3D"-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 =3D 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 =3D 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=3Dcmd.exe on the gmake command line, it works. The = working command line is=20 gmake -f makefile.gcc all UNICODE=3D1 MSLU=3D0 BUILD=3Drelease = SHARED=3D1 DEBUG_INFO=3Ddefault DEBUG_FLAG=3D1 LDFLAGS=3D" -m64" CPPFLAGS=3D"-m64" SHELL=3DCMD.exe Hence my question about setting SHELL=3D from the CPAN shell. Other solutions are welcome. Thank you, regards Luigi ------=_NextPart_000_00B3_01D63B1D.AF900530 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" = xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" = xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta = http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta = name=3DGenerator content=3D"Microsoft Word 15 (filtered = medium)"><style><!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman",serif;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:purple; text-decoration:underline;} p.msonormal0, li.msonormal0, div.msonormal0 {mso-style-name:msonormal; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; font-size:12.0pt; font-family:"Times New Roman",serif;} span.StileMessaggioDiPostaElettronica18 {mso-style-type:personal-reply; font-family:"Calibri",sans-serif; color:#1F497D;} .MsoChpDefault {mso-style-type:export-only; font-family:"Calibri",sans-serif; mso-fareast-language:EN-US;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 2.0cm 2.0cm 2.0cm;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--></head><body lang=3DIT link=3Dblue = vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span = lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'>Hi sisyphus,<o:p></o:p></span></p><p = class=3DMsoNormal><span = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'><o:p> </o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'>Thank you for your answer. You pointed me in = the right direction.<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'>Setting tet the SHELL env var does not work: = it seems that, at least in my case, it does not go through all the way = from cpan to make.<o:p></o:p></span></p><p class=3DMsoNormal><span = lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'>But instead, it worked just reducing my PATH = to just = C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System= 32\WindowsPowerShell\v1.0\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bi= n;C:\Strawberry\perl\bin , before starting = cpan.bat.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'>Thank you very much.<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'><o:p> </o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'>As a sidenote: I don=E2=80=99t have any = sh.exe, or similar, in C:/Program = Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin . There is only jcmd.exe, = which can resemble a shell. But I think that make=E2=80=99 = find_and_set_shell should set the shell to C:/Program = Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/_something_.exe, not just = the folder C:/Program = Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin.<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'><o:p> </o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'>Regards, Luigi<o:p></o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'><o:p> </o:p></span></p><p = class=3DMsoNormal><span lang=3DEN-US = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;= mso-fareast-language:EN-US'><o:p> </o:p></span></p><div = style=3D'border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm = 4.0pt'><div><div style=3D'border:none;border-top:solid #E1E1E1 = 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=3DMsoNormal><b><span = style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif'>Da:</span></b= ><span style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif'> = sisyphus <[email protected]> <br><b>Inviato:</b> = mercoled=C3=AC 3 giugno 2020 23:48<br><b>A:</b> Luigi Iotti = <[email protected]><br><b>Cc:</b> = [email protected]<br><b>Oggetto:</b> Re: Setting gmake command = arguments in the Strawberry perl CPAN = shell<o:p></o:p></span></p></div></div><p = class=3DMsoNormal><o:p> </o:p></p><div><div><p = class=3DMsoNormal>Hi,<o:p></o:p></p></div><div><p class=3DMsoNormal>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/".<o:p></o:p></p></div><= div><p class=3DMsoNormal><o:p> </o:p></p></div><div><p = class=3DMsoNormal>In the perl source, the GNUmakefile in the win32 = directory avoids this problem by specifying:<o:p></o:p></p></div><div><p = class=3DMsoNormal><o:p> </o:p></p></div><div><p = class=3DMsoNormal>SHELL :=3D cmd.exe<o:p></o:p></p></div><div><p = class=3DMsoNormal><o:p> </o:p></p></div><div><p = class=3DMsoNormal>Is that just a way of setting the SHELL environment = variable from inside the makefile ?<o:p></o:p></p></div><div><p = class=3DMsoNormal>Does it help if you set the SHELL environment variable = to "cmd.exe" before starting the build of Alien::wxWidgets = :<o:p></o:p></p></div><div><p = class=3DMsoNormal><o:p> </o:p></p></div><div><p = class=3DMsoNormal>set SHELL=3Dcmd.exe<o:p></o:p></p></div><div><p = class=3DMsoNormal><o:p> </o:p></p></div><div><p = class=3DMsoNormal>Cheers,<o:p></o:p></p></div><div><p = class=3DMsoNormal>Rob<o:p></o:p></p></div></div><p = class=3DMsoNormal><o:p> </o:p></p><div><div><p class=3DMsoNormal>On = Wed, Jun 3, 2020 at 11:57 PM Luigi Iotti <<a = href=3D"mailto:[email protected]">[email protected]</a>> = wrote:<o:p></o:p></p></div><blockquote = style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm = 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=3DMsoNormal>Hi = all<br><br>I'm new to Strawberry perl. I just installed 5.30.2.1 on a = Win10 pc.<br><br>Long story short: in the CPAN shell, how may I add some = arguments to gmake<br>command line?<br>I tried o conf make_arg, = make_install_arg, makepl_arg, mbuildpl_arg but they<br>seem not to work, = at least in my case.<br><br>Long story long:<br><br>I'm trying to build = Alien::wxWidgets as it is a requirement for wx. But the<br>build fails = with:<br>...<br>if not exist gcc_mswudll mkdir = gcc_mswudll<br>process_begin: CreateProcess(NULL, = C:/Program<br>Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/ -c "if = not exist gcc_mswudll<br>mkdir gcc_mswudll", ...) failed.<br>make = (e=3D2): Impossibile trovare il file specificato. #(this means unable = to<br>find the specified file, in Italian)<br>gmake: [makefile.gcc:5089: = gcc_mswudll] Error 2 (ignored)<br>if not exist ..\..\lib\gcc_dll mkdir = ..\..\lib\gcc_dll<br>process_begin: CreateProcess(NULL, = C:/Program<br>Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/ -c "if = not exist<br>..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll", ...) = failed.<br>make (e=3D2): Impossibile trovare il file specificato. #(this = means unable to<br>find the specified file, in Italian)<br>gmake: *** = [makefile.gcc:5639: ..\..\lib\gcc_dll] Error 2<br>system: gmake -f = makefile.gcc all UNICODE=3D1 MSLU=3D0 BUILD=3Drelease = SHARED=3D1<br>DEBUG_INFO=3Ddefault DEBUG_FLAG=3D1 LDFLAGS=3D" = -m64" CPPFLAGS=3D"-m64": 512 at<br>inc/My/Build/Win32.pm = line 284.<br><br>I found that " C:/Program = Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/" is<br>the first = component of my PATH, and it seems to come from = gmake's<br>find_and_set_shell. <br>If I run the gmake command alone, = with -d, it calls find_and_set_shell<br>twice. The first time it finds a = gnu shell I have somewhere in my PATH, the<br>second time it finds the = first directory in PATH, not an executable:<br><br>>gmake -f = makefile.gcc all UNICODE=3D1 MSLU=3D0 BUILD=3Drelease = SHARED=3D1<br>DEBUG_INFO=3Ddefault DEBUG_FLAG=3D1 LDFLAGS=3D" = -m64" CPPFLAGS=3D"-m64" -d<br>GNU Make 4.2.1<br>Built for = x86_64-w64-mingw32<br>Copyright (C) 1988-2016 Free Software Foundation, = Inc.<br>License GPLv3+: GNU GPL version 3 or later<br><<a = href=3D"http://gnu.org/licenses/gpl.html" = target=3D"_blank">http://gnu.org/licenses/gpl.html</a>><br>This is = free software: you are free to change and redistribute it.<br>There is = NO WARRANTY, to the extent permitted by law.<br>find_and_set_shell() = path search set default_shell = =3D<br>C:/Utils/GnuWin32/bin/sh.exe<br>Reading makefiles...<br>Reading = makefile 'makefile.gcc'...<br>Reading makefile 'config.gcc' (search = path) (no ~ expansion)...<br>find_and_set_shell() path search set = default_shell =3D = C:/Program<br>Files/AdoptOpenJDK/jdk-14.0.1.7-hotspot/bin/<br>Reading = makefile 'gcc_mswudll/*.d' (search path) (don't care) (no = ~<br>expansion)...<br>Updating makefiles...<br><br>But if I add = SHELL=3Dcmd.exe on the gmake command line, it works. The = working<br>command line is <br>gmake -f makefile.gcc all = UNICODE=3D1 MSLU=3D0 BUILD=3Drelease SHARED=3D1<br>DEBUG_INFO=3Ddefault = DEBUG_FLAG=3D1 LDFLAGS=3D" -m64" = CPPFLAGS=3D"-m64"<br>SHELL=3DCMD.exe<br><br>Hence my question = about setting SHELL=3D from the CPAN shell.<br>Other solutions are = welcome.<br><br>Thank you, = regards<br>Luigi<o:p></o:p></p></blockquote></div></div></div></body></ht= ml> ------=_NextPart_000_00B3_01D63B1D.AF900530--