[oe] Perl modules: Cannot compile due to wrong dependency in Makefile

Junqian Gordon Xu xjqian at gmail.com
Mon Mar 10 23:20:11 UTC 2008


On 03/09/2008 11:56 AM, Thomas Reitmayr wrote:
> Hi,
> I have a problem building perl modules which have their own recipe and
> are built outside of the original perl tree, eg. libwww-perl. It looks
> like there is a wrong dependency in the Makefile of such a module. The
> Makefile is created from Makefile.PL and includes the following:

These are definitely overlooked host path pollution.

> 
> [...]
> PERL_LIB = /usr/share/perl/5.8
> PERL_ARCHLIB = /usr/lib/perl/5.8
> [...]
> # Where is the Config information that we are using/depend on
> CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h
> [...]
> $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
> 	$(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
> [...]
> 
> As there is no /usr/lib/perl/5.8 on my build host (a Gentoo system), the
> reported error in log.do_compile.ZZZ is
> 
> make: *** No rule to make target `/usr/lib/perl/5.8/Config.pm', needed
> by `Makefile'.  Stop.
> 
> The only Config.pm I can find
> is /home/nslu2/slugos/tmp/staging/i686-linux/usr/lib/perl/5.8.8/Config.pm, but I am not sure if it would be correct to just set the PERL_LIB to its directory path. I traced back the origin of PERL_LIB and found it is coming from a %Config setting 'archlibexp'. Its contents is read from tmp/staging/i686-linux/usr/lib/perl/5.8.8/Config_heavy-target.pl.
> 
> I am not sure whether the contents of the variable is wrong or its
> usage, and of course how to fix it.
> [My quick fix was to modify the MakeMaker (MM_Unix.pm) to not create
> this dependency.]
> 
> Has anyone an idea what's wrong?

The common fix for hard coded path in configure or Makefile is to patch 
those with the appropriate ${STAGINGDIR}.

Regards
Gordon




More information about the Openembedded-devel mailing list