Re: makefile.mk is missing with Perl 5.34.0 distro.
by Corion (Patriarch) on Aug 24, 2021 at 13:19 UTC
|
The file was removed, since it is redundant with the GNUmakefile file. See this commit and the linked discussion.
If you're building using dmake I think that the dmake tool is not supported for building on Windows anymore. See the perldelta for 5.34, where this is discussed. You should review perldelta.pod whenever you upgrade Perl.
| [reply] [d/l] [select] |
Re: makefile.mk is missing with Perl 5.34.0 distro.
by syphilis (Archbishop) on Aug 24, 2021 at 13:21 UTC
|
....but it seems makefile.mk file is missing from the distro...
Yes, support for dmake (which is the make "flavour" for which the makefile.mk was written) has been withdrawn.
Use "GNU make" (aka "gmake", but sometimes simply called "make") instead. It will use GNUmakefile.
The build options are the same for GNUmakefile as they were with makefile.mk so you shouldn't have too many alterations to make to your existing batch file.
But it will have to be altered to call GNU make instead of dmake.
Cheers, Rob | [reply] [d/l] [select] |
Re: makefile.mk is missing with Perl 5.34.0 distro.
by Anonymous Monk on Aug 24, 2021 at 16:54 UTC
|
Hi Monks,
Thank you for the reply.
i tried installing make(gmake) on windows and added it in the path in the batch file, like below,
SET PATH=C:\Program Files (x86)\GnuWin32\bin;C:\msys64\mingw64\bin;C:\
+msys64\usr\bin;%PATH%;C:\Program Files\7-Zip
I have changed the make filename to the GNUmakefile, but i am getting below error
Everything is Ok
Folders: 952
Files: 6300
Size: 84783072
Compressed: 3722240
patching file 'C:\perlapp\sources\builds\win64\perl5.34.0\win32\GNUmak
+efile'
Hunk #1 FAILED at 27.
Hunk #2 FAILED at 227.
Hunk #3 FAILED at 292.
3 out of 3 hunks FAILED -- saving rejects to file 'C:\perlapp\sources\
+builds\win64\perl-5.34.0\win32\GNUmakefile.rej'
Any idea what could cause this error.
Do i need nmake here.
| [reply] [d/l] [select] |
|
|
No. Whatever patches you're trying to apply don't apply. This is likely because the file does not match your patches.
The solution is to look at your patches and understand them, and then change the GNUmakefile accordingly.
This is not an automated process.
| [reply] [d/l] |
|
|
Any idea what could cause this error.
Sorry - I was assuming that your build (batch) script was passing command line arguments to make.
In that case, the same command line args that worked for dmake (and makefile.mk) would also work for gmake (and GNUmakefile).
But if you're using the batch file to edit the GNUmakefile then you'll need to rewrite your patches.
I recommend that you stop altering the GNUmakefile, and instead start providing your build options via the arguments you provide to gmake.
For example, if you want perl to be installed in C:\my_new_perl and mingw is installed in C:\my_mingw, then instead of altering the INST_TOP and CCHOME settings in GNUmakefile, just run:
gmake INST_TOP=C:\my_new_perl CCHOME=C:\my_mingw
gmake test INST_TOP=C:\my_new_perl CCHOME=C:\my_mingw
gmake install INST_TOP=C:\my_new_perl CCHOME=C:\my_mingw
Of course, there maybe other build options that you'll want to add to that argument list.
Do I need nmake here.
No - the GNUmakefile is written specifically for GNU make.
The Makefile is written specifically for nmake, but it supports only Microsoft compilers.
Cheers, Rob | [reply] [d/l] [select] |
|
|
patch -b %PERL_BUILD_DIR%\win32\GNUmakefile %PERL_SOURCES_DIR%\configu
+ration\win64\makefile.patch
Below is the content of the makefile.patch
--- C:/perl_app/sources/builds/perl-5.22.2_win64/perl-5.22.2/win32/mak
+efile.mk.orig Fri Apr 08 17:45:19 2016
+++ C:/perl_app/sources/builds/perl-5.22.2_win64/perl-5.22.2/win32/mak
+efile.mk Fri May 13 09:51:24 2016
@@ -27,7 +27,7 @@
# newly built perl.
#
INST_DRV *= c:
-INST_TOP *= $(INST_DRV)\perl
+INST_TOP *= $(INST_DRV)\perl_app\bin\Perl
#
# Uncomment if you want to build a 32-bit Perl using a 32-bit compile
+r
@@ -227,7 +227,7 @@
# not be quoted)
#
.IF "$(CCTYPE)" == "GCC"
-CCHOME *= C:\MinGW
+CCHOME *= C:\msys64\mingw64
.ELSE
CCHOME *= $(MSVCDIR)
.ENDIF
@@ -292,7 +292,7 @@
# set this to your email address (perl will guess a value from
# from your loginname and your hostname, which may not be right)
#
-#EMAIL *=
+EMAIL *= customer_support@xyz.com
##
## Build configuration ends.
Can you please tell me what's going on here, do I need to modify the makefile.patch file.
Thank you.
| [reply] [d/l] [select] |
|
|
|
|
|
|
|
Re: makefile.mk is missing with Perl 5.34.0 distro.
by Anonymous Monk on Aug 26, 2021 at 13:27 UTC
|
Thank you @corion and @rob and all the monks for helping me out with the makefile and patch issue, I have new patch file and seems to work.
In GNUmakefile gmake command seems used whereas I have make.exe in the GNUWindows make directory and that is why it seems failing, would it work if i rename make.exe to gmake.exe.
Thanks again,
Cheers.
| [reply] |
|
|
... would it work if i rename make.exe to gmake.exe
The GNU make utility that I use to build perl on Windows is called "make.exe". It's in my PATH and I always invoke it simply as "make".
I've never had any problems with that. That should be fine - unless it's not really GNU make.
Cheers, Rob
| [reply] |
|
|
| [reply] |
|
|
Re: makefile.mk is missing with Perl 5.34.0 distro. ( yawn sigh )
by Anonymous Monk on Aug 24, 2021 at 13:21 UTC
|
2021-01-28 xenu win32: remove makefile.mk (#18511)
win32: remove makefile.mk (#18511)
Makefile.mk is redundant with GNUmakefile...
commit | commitdiff | tree
2021-01-11 sisyphus win32/makefile.mk - enable USE_QUADMATH buil
+ds (mingw...
win32/makefile.mk - enable USE_QUADMATH builds
win32: remove makefile.mk (#18511)
Makefile.mk is redundant with GNUmakefile. See
https://www.nntp.perl.org/group/perl.perl5.porters/2021/01/msg258848.html
for more details.
We planned to remove it shortly after the introduction of GNUmakefile
but that slipped through the cracks for some reason:
https://github.com/Perl/perl5/issues/14341 | [reply] [d/l] |
Re: makefile.mk is missing with Perl 5.34.0 distro.
by Anonymous Monk on Aug 26, 2021 at 17:07 UTC
|
Hi Monks,
Is "Net::LDAP/S" not the standard module and comes with the Perl distro "5.34.0", because I think i am done with the build and couldn't find "Net::LDAP/S".
Thank you
| [reply] |
|
|
| [reply] |