Subject: | 5.22.2.1: (cosmetic) problems with Makefile's generated for modules |
Date: | Sat, 14 May 2016 01:30:38 -0700 |
To: | bug-Perl-Dist-Strawberry [...] rt.cpan.org |
From: | Ilya Zakharevich <nospam-abuse [...] ilyaz.org> |
First of all, a lot of thanks for releasing this distribution!
(These bugs were detected while creating Math::Pari v2.01080900.
Since it looks like Strawberry uses its own build of dmake,
these warnings become the bugs in Strawberry perl. ;—[ )
========================== (A)
Enabling tracing in dmake exposes the following warnings:
dmake: K:\get\strawberry-perl-5.22.2.1-32bit-PDL\c\bin\startup\config.mk: line 3: Warning: -- Macro `OS' redefined after use
dmake: K:\get\strawberry-perl-5.22.2.1-32bit-PDL\c\bin\startup\startup.mk: line 143: Warning: -- More than one prerequisite
for %-target. Use :| ruleop or indirect prerequisites.
dmake: K:\get\strawberry-perl-5.22.2.1-32bit-PDL\c\bin\startup\startup.mk: line 147: Warning: -- More than one prerequisite
for %-target. Use :| ruleop or indirect prerequisites.
dmake: makefile: line 329: Warning: -- The .SUFFIXES target has no special meaning and is deprecated.
Note that Makefile.PL does not mention the .SUFFIXES rule; this rule
is fully autogenerated.
========================== (B)
The module has a child Makefile.PL in a subdirectory, which builds a C
library. The toplevel Makefile.PL uses the standard practice of
having a rule (which, essentially, “inherits” dependencies of the child
makefile):
$(MYEXTLIB): libPARI/Makefile FORCE
cd libPARI && $(MAKE) $(PASTHRU)
However, this causes a warning from dmake:
dmake: Warning: -- Target [libPARI\libPARI.a] was made but the time stamp has not been updated.
========================== (C)
I have no idea for the reason for this warning:
dmake: Warning: -- Found file corresponding to virtual target [libPARI\pariinl.h].
The file exists indeed, but what makes it virtual is not clear.
The lines of tracing related to this file are:
Checking prerequisite [libPARI\pariinl.h]
dmake: Infering prerequisite(s) and recipe for [libPARI\pariinl.h]
dmake: Trying prerequisite [libPARI\RCS\pariinl.h] for [libPARI\pariinl.h]
dmake: Time stamp of [libPARI\pariinl.h] is 1401650795
dmake: >>>> Making [libPARI\pariinl.h]
dmake: Updating [libPARI\pariinl.h], (1462579885 > 1401650795)
dmake: <<<< Set [libPARI\pariinl.h] time stamp to 1462579885
dmake: Warning: -- Found file corresponding to virtual target [libPARI\pariinl.h].
Below I attach the context of these lines (if needed).
Thanks again,
Ilya
=============================================================================
The promised context:
dmake: >>>> Making [K:\get\strawberry-perl-5.22.2.1-32bit-PDL\perl\lib\CORE\wince.h]
dmake: Up to date [K:\get\strawberry-perl-5.22.2.1-32bit-PDL\perl\lib\CORE\wince.h], prq time = 1 , target time = 1445117550)
Checking prerequisite [Makefile]
Checking prerequisite [libPARI\pariinl.h]
dmake: Infering prerequisite(s) and recipe for [libPARI\pariinl.h]
dmake: Trying prerequisite [libPARI\RCS\pariinl.h] for [libPARI\pariinl.h]
dmake: Time stamp of [libPARI\pariinl.h] is 1401650795
Checking prerequisite [libPARI\libPARI.a]
dmake: Time stamp of [libPARI\libPARI.a] is 1462579885
Checking prerequisite [libPARI\Makefile]
--
dmake: Updating [libPARI\libPARI.a], (1462581608 > 1462579885)
cd libPARI && dmake LIBPERL_A="libperl.a" LINKTYPE="dynamic" OPTIMIZE="-s -O2" PREFIX="K:\get\strawberry-perl-5.22.2.1-32bit-PDL\perl\site" PASTHRU_DEFINE=" -DPARI_VERSION_EXP=2001007 -DDEBUG_PARI -DUSE_SLOW_ARRAY_ACCESS -DUSE_SLOW_NARGS_ACCESS -DLSB_in_U32=0 -DLONG_SHORTER_THAN_IV -Derr=pari_err -DGCC_INLINE " PASTHRU_INC=" -I ./pari-2.1.7/src -I ./pari-2.1.7/src/headers -I ./pari-2.1.7/src -I ./libPARI "
dmake: <<<< Set [libPARI\libPARI.a] time stamp to 1462579885
dmake: >>>> Making [libPARI\pariinl.h]
dmake: Updating [libPARI\pariinl.h], (1462579885 > 1401650795)
dmake: <<<< Set [libPARI\pariinl.h] time stamp to 1462579885
Checking prerequisite [Pari.c]
dmake: Infering prerequisite(s) and recipe for [Pari.c]
dmake: Trying prerequisite [RCS\Pari.c] for [Pari.c]
--
for %-target. Use :| ruleop or indirect prerequisites.
dmake: makefile: line 329: Warning: -- The .SUFFIXES target has no special meaning and is deprecated.
dmake: Warning: -- Target [libPARI\libPARI.a] was made but the time stamp has not been updated.
dmake: Warning: -- Found file corresponding to virtual target [libPARI\pariinl.h].