Re: Setting gmake command arguments in the Strawberry perl CPAN shell

2020-06-05 Thread sisyphus
Hi Luigi,
Glad you managed to work out a solution.

It seems to me that you've struck a rather strange issue that the
Strawberry Perl developers might be able to deal with - or at least should
be made aware of.

If you would like to have it followed up, I think the best thing would be
to create a New Issue at
https://github.com/StrawberryPerl/Perl-Dist-Strawberry/issues

Cheers,
Rob






On Sat, Jun 6, 2020 at 12:52 AM Luigi Iotti  wrote:

> Hi sisyphus,
>
>
>
> 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\System32\WindowsPowerShell\v1.0\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin
> , before starting cpan.bat.
>
> Thank you very much.
>
>
>
> As a sidenote: I don’t 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’ 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.
>
>
>
> Regards, Luigi
>
>
>
>
>
> *Da:* sisyphus 
> *Inviato:* mercoledì 3 giugno 2020 23:48
> *A:* Luigi Iotti 
> *Cc:* win32-vanilla@perl.org
> *Oggetto:* Re: Setting gmake command arguments in the Strawberry perl
> CPAN shell
>
>
>
> 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  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
> 
> 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
> 

R: Setting gmake command arguments in the Strawberry perl CPAN shell

2020-06-05 Thread Luigi Iotti
Hi sisyphus,

 

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\System32\WindowsPowerShell\v1.0\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin
 , before starting cpan.bat.

Thank you very much.

 

As a sidenote: I don’t 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’ 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.

 

Regards, Luigi

 

 

Da: sisyphus  
Inviato: mercoledì 3 giugno 2020 23:48
A: Luigi Iotti 
Cc: win32-vanilla@perl.org
Oggetto: Re: Setting gmake command arguments in the Strawberry perl CPAN shell

 

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 mailto: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

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