Thread: [Module::Build] MBC possible missing dependency
Status: Beta
Brought to you by:
kwilliams
|
From: Jim C. <jc...@di...> - 2003-11-25 19:45:32
|
MBers, it appears that Module::Build::Compat 'make test' skips 'make' in some circumstances. 1. make clean, make is OK - lib -> blib happens [jimc@harpo Array-Compare-1.09]$ make clean /usr/local/bin/perl Build clean Deleting blib [jimc@harpo Array-Compare-1.09]$ make /usr/local/bin/perl Build lib/Array/Compare.pm -> blib/lib/Array/Compare.pm Manifying blib/lib/Array/Compare.pm -> blib/libdoc/Array::Compare.3 2. make clean, make test - OK - lib -> blib happens [jimc@harpo Array-Compare-1.09]$ make clean /usr/local/bin/perl Build clean Deleting blib [jimc@harpo Array-Compare-1.09]$ make test /usr/local/bin/perl Build test lib/Array/Compare.pm -> blib/lib/Array/Compare.pm t/pod.....make: *** [test] Interrupt 3. perl Makefile.PL, make test NOT OK lib -> blib SKIPPED [jimc@harpo Array-Compare-1.09]$ perl Makefile.PL /usr/local/bin/perl Build.PL Checking whether your kit is complete... Looks good Deleting Build Removed previous script 'Build' Creating new 'Build' script for 'Array-Compare' version '1.09' [jimc@harpo Array-Compare-1.09]$ make test /usr/local/bin/perl Build test t/pod.....make: *** [test] Interrupt 4. make clean, perl Makefile.PL, make test OK - [jimc@harpo Array-Compare-1.09]$ make clean /usr/local/bin/perl Build clean Deleting blib [jimc@harpo Array-Compare-1.09]$ perl Makefile.PL /usr/local/bin/perl Build.PL Checking whether your kit is complete... Looks good Deleting Build Removed previous script 'Build' Creating new 'Build' script for 'Array-Compare' version '1.09' [jimc@harpo Array-Compare-1.09]$ make test /usr/local/bin/perl Build test lib/Array/Compare.pm -> blib/lib/Array/Compare.pm t/pod..... from 3,4 I infer that perl Makefile.PL doesnt automatically invalidate blib by Makefile being newer than blib. while that might be a feature (of really knowing nothing changed), it could also be a mising dependency. 5. I change Makefile inside by giving it a new prefix. no lib->blib rebuild. This still might be ok, IFF MB is really smart, and knows that a diffferent install location doesnt need a re-make. [jimc@harpo Array-Compare-1.09]$ perl Makefile.PL PREFIX=~ /usr/local/bin/perl Build.PL config=prefix=/home/jimc Checking whether your kit is complete... Looks good Deleting Build Removed previous script 'Build' Creating new 'Build' script for 'Array-Compare' version '1.09' [jimc@harpo Array-Compare-1.09]$ make /usr/local/bin/perl Build [jimc@harpo Array-Compare-1.09]$ 6. same as above, but with perl Makefile.PL distdir=~ This could be an " Ouch!, Well - dont do that " problem, but I thought it worth flagging. tia, jimc |
|
From: Randy W. S. <Ra...@Th...> - 2003-11-27 01:42:43
|
On 11/25/2003 2:45 PM, Jim Cromie wrote: > MBers, > > it appears that Module::Build::Compat 'make test' skips 'make' > in some circumstances. > > > 1. make clean, make is OK - lib -> blib happens > > [jimc@harpo Array-Compare-1.09]$ make clean > /usr/local/bin/perl Build clean > Deleting blib > [jimc@harpo Array-Compare-1.09]$ make > /usr/local/bin/perl Build > lib/Array/Compare.pm -> blib/lib/Array/Compare.pm > Manifying blib/lib/Array/Compare.pm -> blib/libdoc/Array::Compare.3 > > 2. make clean, make test - OK - lib -> blib happens > > [jimc@harpo Array-Compare-1.09]$ make clean > /usr/local/bin/perl Build clean > Deleting blib > [jimc@harpo Array-Compare-1.09]$ make test > /usr/local/bin/perl Build test > lib/Array/Compare.pm -> blib/lib/Array/Compare.pm > t/pod.....make: *** [test] Interrupt > > 3. perl Makefile.PL, make test NOT OK lib -> blib SKIPPED > > [jimc@harpo Array-Compare-1.09]$ perl Makefile.PL > /usr/local/bin/perl Build.PL > Checking whether your kit is complete... > Looks good > Deleting Build > Removed previous script 'Build' > Creating new 'Build' script for 'Array-Compare' version '1.09' > [jimc@harpo Array-Compare-1.09]$ make test > /usr/local/bin/perl Build test > t/pod.....make: *** [test] Interrupt > > 4. make clean, perl Makefile.PL, make test OK - > > [jimc@harpo Array-Compare-1.09]$ make clean > /usr/local/bin/perl Build clean > Deleting blib > [jimc@harpo Array-Compare-1.09]$ perl Makefile.PL > /usr/local/bin/perl Build.PL > Checking whether your kit is complete... > Looks good > Deleting Build > Removed previous script 'Build' > Creating new 'Build' script for 'Array-Compare' version '1.09' > [jimc@harpo Array-Compare-1.09]$ make test > /usr/local/bin/perl Build test > lib/Array/Compare.pm -> blib/lib/Array/Compare.pm > t/pod..... > > > from 3,4 I infer that perl Makefile.PL doesnt automatically invalidate > blib > by Makefile being newer than blib. > > while that might be a feature (of really knowing nothing changed), it > could also > be a mising dependency. AFAICT, this is the correct behaviour. There is no dependence on the produced 'Makefile' since it will never, ever, under any condition, change. It's a simple pass-thru makefile with no variables or anything else that could change from one run to another. But do note that if you touch anything in lib, it will correctly be copied to blib. > 5. I change Makefile inside by giving it a new prefix. > no lib->blib rebuild. > This still might be ok, IFF MB is really smart, and knows that a diffferent > install location doesnt need a re-make. t> > [jimc@harpo Array-Compare-1.09]$ perl Makefile.PL PREFIX=~ > /usr/local/bin/perl Build.PL config=prefix=/home/jimc > Checking whether your kit is complete... > Looks good > Deleting Build > Removed previous script 'Build' > Creating new 'Build' script for 'Array-Compare' version '1.09' > [jimc@harpo Array-Compare-1.09]$ make > /usr/local/bin/perl Build > [jimc@harpo Array-Compare-1.09]$ > > 6. same as above, but with perl Makefile.PL distdir=~ > > > This could be an " Ouch!, Well - dont do that " problem, > but I thought it worth flagging. The arguments you pass in get stored in '_build/build_params' and not in the 'Makefile'. Again, 'Makefile' never changes, so it does not need to be listed in the dependencies. I don't see how any problems could arise here. Have you run in to any problems related to this behaviour? > tia, > jimc Regards, Randy. |
|
From: Jim C. <jc...@di...> - 2003-11-27 05:57:13
|
Randy W. Sims wrote: > On 11/25/2003 2:45 PM, Jim Cromie wrote: > >> from 3,4 I infer that perl Makefile.PL doesnt automatically >> invalidate blib >> by Makefile being newer than blib. >> >> while that might be a feature (of really knowing nothing changed), it >> could also >> be a mising dependency. > > > AFAICT, this is the correct behaviour. There is no dependence on the > produced 'Makefile' since it will never, ever, under any condition, > change. It's a simple pass-thru makefile with no variables or anything > else that could change from one run to another. But do note that if > you touch anything in lib, it will correctly be copied to blib. AHH - Duh - youre absolutely right. >> >> This could be an " Ouch!, Well - dont do that " problem, >> but I thought it worth flagging. > > > The arguments you pass in get stored in '_build/build_params' and not > in the 'Makefile'. Again, 'Makefile' never changes, so it does not > need to be listed in the dependencies. > > I don't see how any problems could arise here. Have you run in to any > problems related to this behaviour? only problem is that Ive gotten into the habit of letting 'make test' do the make for me. this works with perl builds, and with Makefile based CPAN modules. So reframing things, there seems to be a missing dependency in Build when testing things that havent been, um 'built' isnt quite the right word here.. Build test can proceed w/o Build '' I'll (later) try and see if I can concoct a real failing use-case for this. thx. > >> tia, >> jimc > > > Regards, > Randy. > > . > |