Hi,

This pertains to the Makefile generated by perl when building Glib-Object-Introspection-0.050.
It's the same problem with version 4.2.1 and version 4.4.1 of GNU make. (I haven't tested with any other versions.)

For Windows only, the Makefile.PL directly inserts a few lines into the generated Makefile.
One of those lines is:
PATH += ;build
The intention is to append ";build" to $ENV{PATH} but it instead appends " ;build".
This means that my PATH, which originally terminated in "...D:\msys64\mingw64\bin" then terminates in "...D:\msys64\mingw64\bin ;build".
Hence the (crucial) "D:\msys64\mingw64\bin" folder is no longer in my PATH - causing baffling load_file failures during 'gmake test'.

Notably, my original PATH doesn't terminate with a ';'. While that is perhaps not a good defensive programming approach, I don't believe it's a bug ?
Or, perhaps, the bug is in the instruction being provided by the Makefile.PL. Here is the relevant excerpt from the G-I-O-0.050 Makefile.PL:
$inherited =~ s/($target)/.IMPORT: PATH\nPATH += ;build\n.EXPORT: PATH +\n$1/;
which results in this entry in the generated Makefile:
.IMPORT: PATH PATH += ;build .EXPORT: PATH test_dynamic :: subdirs-test_dynamic $(FULLPERLRUN) "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "u +ndef *Test::Harness::Switches; test_harness($(TEST_VERBOSE), '$(INST_ +LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)
Cheers,
Rob

PS I tried the obvious and naive fix of changing "PATH += ;build" to "PATH+=;build" but the errant space is still being included in the PATH.

PPS Working around the problem is as simple as ensuring that my original path terminates with a semi-colon.The PATH then ends up terminating with "...D:\msys64\mingw64\bin; ;build", which seems to not be a problem.

In reply to A bug in GNU make ? by syphilis

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.