in reply to Re^4: dmake and bash on Win?
in thread let Makefile.PL to do the Readme file for me -- new target?
My guess is that you are thinking it's "shell" code because it's using $(PERLRUN) to reference the variable. But $(PERLRUN) is a makefile variable/macro, not a shell variable. MakeMaker creates a plethora of useful macros in its generated Makefile, so that you have platform independent ways of running common linux-shell-style idioms. It's useful to skim through the auto-generated Makefile to see what's available, and how they define those commands. For example, $(ECHO) will run a command to print to the console, but it might not use your OS's builtin echo command, to avoid compatibility issues.
This super-simplified Makefile.PL works for me:
# dummy makefile use ExtUtils::MakeMaker; my %mm_args = ( 'NAME' => 'Dummy::Module', ); sub MY::postamble { return <<'__POSTAMBLE__'; pryrt :: $(ECHO) shell is set to "$(SHELL)" $(PERL) -V:myuname -V:make __POSTAMBLE__ } WriteMakefile( %mm_args );
then, at the command line, since I have a new enough Strawberry that it uses gmake, I run:
perl Makefile.PL gmake pryrt
with the output:
C:\Users\peter.jones\Downloads\TempData\perl>perl Makefile.PL Generating a gmake-style Makefile Writing Makefile for Dummy::Module Writing MYMETA.yml and MYMETA.json C:\Users\peter.jones\Downloads\TempData\perl>gmake pryrt "C:\USR\LOCAL\APPS\BERRYBREW\PERLS\SYSTEM\PERL\BIN\perl.exe" -l -e "bi +nmode STDOUT, qq{:raw}; print qq{@ARGV}" -- shell is set to "C:/Windo +ws/system32/cmd.exe" shell is set to C:/Windows/system32/cmd.exe "C:\USR\LOCAL\APPS\BERRYBREW\PERLS\SYSTEM\PERL\BIN\perl.exe" -V:myunam +e -V:make myuname='Win32 strawberry-perl 5.30.0.1 #1 Thu May 23 12:20:46 2019 x6 +4'; make='gmake';
Notice that the shell is listed as cmd.exe, but the build system is still properly handling $(ECHO) and $(PERL).
I know that I've done similar things with older Strawberry Perl versions (even as far back as v5.10) which used dmake instead of gmake, but I don't have that old of a Strawberry Perl that I can use while at $work, so I cannot prove it right now.
I don't have access to ActiveState Perl nor its build environment. If you want to continue exploring this path, I suggest you try that Makefile.PL and run the sequence with AS's build environment, to see what happens.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: dmake and bash on Win?
by LanX (Saint) on Jan 21, 2021 at 17:24 UTC | |
by pryrt (Abbot) on Jan 21, 2021 at 18:03 UTC | |
by LanX (Saint) on Jan 21, 2021 at 18:14 UTC | |
by pryrt (Abbot) on Jan 21, 2021 at 18:19 UTC | |
by LanX (Saint) on Jan 21, 2021 at 19:52 UTC |