named +perl-<something>+ in Buildroot.
This infrastructure handles various Perl build systems :
-+ExtUtils-MakeMaker+, +Module-Build+ and +Module-Build-Tiny+.
-+Build.PL+ is always preferred when a package provides a +Makefile.PL+
++ExtUtils-MakeMaker+ (EUMM), +Module-Build+ (MB) and +Module-Build-Tiny+.
++Build.PL+ is preferred by default when a package provides a +Makefile.PL+
and a +Build.PL+.
The main macro of the Perl/CPAN package infrastructure is
can also be defined. Many of them are only useful in very specific
cases, typical packages will therefore only use a few of them.
+* +PERL_FOO_PREFER_INSTALLER+/+HOST_PERL_FOO_PREFER_INSTALLER+,
+ specifies the preferred installation method. Possible values are
+ +EUMM+ (for +Makefile.PL+ based installation using
+ +ExtUtils-MakeMaker+) and +MB+ (for +Build.PL+ based installation
+ using +Module-Build+). This variable is only used when the package
+ provides both installation methods.
+
* +PERL_FOO_CONF_ENV+/+HOST_PERL_FOO_CONF_ENV+, to specify additional
environment variables to pass to the +perl Makefile.PL+ or +perl Build.PL+.
By default, empty.
$(2)_DEPENDENCIES += host-perl
endif
+# From http://perldoc.perl.org/CPAN.html#Config-Variables - prefer_installer
+# legal values are MB and EUMM: if a module comes
+# with both a Makefile.PL and a Build.PL, use the
+# former (EUMM) or the latter (MB); if the module
+# comes with only one of the two, that one will be
+# used no matter the setting
+$(2)_PREFER_INSTALLER ?= MB
+
#
# Configure step. Only define it if not already defined by the package
# .mk file. And take care of the differences between host and target
# Configure package for target
define $(2)_CONFIGURE_CMDS
- cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
+ cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \
$$($(2)_CONF_ENV) \
PERL_MM_USE_DEFAULT=1 \
$$(PERL_RUN) Build.PL \
# Configure package for host
define $(2)_CONFIGURE_CMDS
- cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
+ cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \
$$($(2)_CONF_ENV) \
PERL_MM_USE_DEFAULT=1 \
$$(PERL_RUN) Build.PL \
# Build package for target
define $(2)_BUILD_CMDS
- cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
+ cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \
$$(PERL_RUN) Build $$($(2)_BUILD_OPTS) build; \
else \
$$(MAKE1) \
# Build package for host
define $(2)_BUILD_CMDS
- cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
+ cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \
$$(PERL_RUN) Build $$($(2)_BUILD_OPTS) build; \
else \
$$(MAKE1) $$($(2)_BUILD_OPTS) pure_all; \
#
ifndef $(2)_INSTALL_CMDS
define $(2)_INSTALL_CMDS
- cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
+ cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \
$$(PERL_RUN) Build $$($(2)_INSTALL_TARGET_OPTS) install; \
else \
$$(MAKE1) $$($(2)_INSTALL_TARGET_OPTS) pure_install; \
#
ifndef $(2)_INSTALL_TARGET_CMDS
define $(2)_INSTALL_TARGET_CMDS
- cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] ; then \
+ cd $$($$(PKG)_SRCDIR) && if [ -f Build.PL ] && [ $$($(2)_PREFER_INSTALLER) != "EUMM" ] ; then \
$$(PERL_RUN) Build $$($(2)_INSTALL_TARGET_OPTS) install; \
else \
$$(MAKE1) $$($(2)_INSTALL_TARGET_OPTS) pure_install; \