summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorKent Fredric <kentfredric@gmail.com>2013-04-29 04:50:16 +1200
committerKent Fredric <kentfredric@gmail.com>2013-04-29 04:50:16 +1200
commit02042ae27d49efefe1aad683748b6a90d635221c (patch)
tree59da172558107f3f98e61d59bb710e0a4c1e2cac /eclass
parent[added] ExtUtils-InstallPaths-0.9.0 (diff)
downloadperl-overlay-02042ae27d49efefe1aad683748b6a90d635221c.tar.gz
perl-overlay-02042ae27d49efefe1aad683748b6a90d635221c.tar.bz2
perl-overlay-02042ae27d49efefe1aad683748b6a90d635221c.zip
[eclass] add perl-mb-tiny.eclass : Only EAPI5 + Module::Build::Tiny supported
Diffstat (limited to 'eclass')
-rw-r--r--eclass/perl-mb-tiny.eclass177
1 files changed, 177 insertions, 0 deletions
diff --git a/eclass/perl-mb-tiny.eclass b/eclass/perl-mb-tiny.eclass
new file mode 100644
index 000000000..35d87c1eb
--- /dev/null
+++ b/eclass/perl-mb-tiny.eclass
@@ -0,0 +1,177 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.134 2012/09/15 16:16:53 zmedico Exp $
+
+# @ECLASS: perl-mb-tiny.eclass
+# @MAINTAINER:
+# perl@gentoo.org
+# @AUTHOR:
+# Kent Fredric <kentnl@cpan.org>
+# Seemant Kulleen <seemant@gentoo.org>
+# @BLURB: eclass for perl modules
+# @DESCRIPTION:
+# The perl-module eclass is designed to allow easier installation of perl
+# modules, and their incorporation into the Gentoo Linux system.
+
+inherit perl-module
+
+PERLMB_EXPF="src_unpack src_compile src_test src_install src_prepare src_configure"
+
+case "${EAPI:-0}" in
+ 5)
+ ;;
+ *)
+ die "EAPI=${EAPI} is not supported by perl-mb-tiny.eclass"
+ ;;
+esac
+
+EXPORT_FUNCTIONS ${PERLMB_EXPF};
+
+
+perl-mb-tiny_src_unpack() {
+ debug-print-function $FUNCNAME "$@"
+ base_src_unpack
+}
+
+perl-mb-tiny_src_prepare() {
+ debug-print-function $FUNCNAME "$@"
+ base_src_prepare
+ perl_fix_osx_extra
+ esvn_clean
+}
+
+perl-mb-tiny_src_configure() {
+ debug-print-function $FUNCNAME "$@"
+
+ perl_set_version
+ perl_set_eprefix
+
+ # Disable ExtUtils::AutoInstall from prompting
+ export PERL_EXTUTILS_AUTOINSTALL="--skipdeps"
+
+ if [[ $(declare -p myconf 2>&-) != "declare -a myconf="* ]]; then
+ local myconf_local=(${myconf})
+ else
+ local myconf_local=("${myconf[@]}")
+ fi
+
+ if [[ ! -f Build.PL ]] ; then
+ die "Not Build.PL, is not a Module::Build::Tiny dist";
+ fi
+ if [[ ${DEPEND} != *dev-perl/Module-Build-Tiny* && ${PN} != Module-Build-Tiny ]]; then
+ die "Package MUST depend on Module::Build::Tiny";
+ fi
+ einfo "Using Module::Build::Tiny"
+ set -- \
+ --installdirs=vendor \
+ --destdir="${D}" \
+ "${myconf_local[@]}"
+ einfo "perl Build.PL" "$@"
+ perl Build.PL "$@" <<< "${pm_echovar}" \
+ || die "Unable to build!"
+}
+
+perl-mb-tiny_src_compile() {
+ debug-print-function $FUNCNAME "$@"
+ perl_set_version
+
+ if [[ $(declare -p mymake 2>&-) != "declare -a mymake="* ]]; then
+ local mymake_local=(${mymake})
+ else
+ local mymake_local=("${mymake[@]}")
+ fi
+
+ if [[ ! -f Build.PL ]] ; then
+ die "Not Build.PL, is not a Module::Build::Tiny dist";
+ fi
+
+ ./Build build || die "Compilation failed"
+}
+
+# For testers:
+# This code attempts to work out your threadingness from MAKEOPTS
+# and apply them to Test::Harness.
+#
+# If you want more verbose testing, set TEST_VERBOSE=1
+# in your bashrc | /etc/make.conf | ENV
+#
+# Additionally, you can add support for a few additional situations:
+#
+# 1. GENTOO_PERL_TESTS="network" will enable running tests that require
+# network connectivity.
+#
+# 2. GENTOO_PERL_TESTS="broken" will enable running tests that we have marked
+# as broken.
+#
+# 3. GENTOO_PERL_TESTS="undefined" will make all packages using the
+# perl-module eclass to behave as if somebody had put a SRC_TEST stanza in it.
+#
+# For ebuild writers:
+# If you wish to enable default tests w/ 'make test' ,
+#
+# SRC_TEST="do"
+#
+# If you wish to have threads run in parallel ( using the users makeopts )
+# all of the following have been tested to work.
+#
+# SRC_TEST="do parallel"
+# SRC_TEST="parallel"
+# SRC_TEST="parallel do"
+# SRC_TEST=parallel
+#
+# If your ebuild has tests, but they require networking to work, you can
+# disable tests by adding "network" in your SRC_TEST string.
+#
+# If your ebuild has tests, but they are broken, you can disable them
+# with SRC_TEST="broken"
+#
+
+perl-mb-tiny_src_test() {
+ debug-print-function $FUNCNAME "$@"
+ if has 'do' ${SRC_TEST} || has 'parallel' ${SRC_TEST} ; then
+ if has "${TEST_VERBOSE:-0}" 0 && has 'parallel' ${SRC_TEST} ; then
+ export HARNESS_OPTIONS=j$(makeopts_jobs)
+ einfo "Test::Harness Jobs=$(makeopts_jobs)"
+ fi
+ ${perlinfo_done} || perl_set_version
+
+ ./Build test verbose=${TEST_VERBOSE:-0} || die "test failed"
+ fi
+}
+
+perl-mb-tiny_src_install() {
+ debug-print-function $FUNCNAME "$@"
+
+ perl_set_version
+ perl_set_eprefix
+
+ local f
+
+ if [[ -z ${mytargets} ]] ; then
+ case "${CATEGORY}" in
+ dev-perl|perl-core) mytargets="install" ;;
+ *) mytargets="install" ;;
+ esac
+ fi
+
+ if [[ $(declare -p myinst 2>&-) != "declare -a myinst="* ]]; then
+ local myinst_local=(${myinst})
+ else
+ local myinst_local=("${myinst[@]}")
+ fi
+
+ ./Build ${mytargets} || die "./Build ${mytargets} failed"
+
+ perl_delete_module_manpages
+ perl_delete_localpod
+ perl_delete_packlist
+ perl_remove_temppath
+
+ for f in Change* CHANGES README* TODO FAQ ${mydoc}; do
+ [[ -s ${f} ]] && dodoc ${f}
+ done
+
+ perl_link_duallife_scripts
+}
+
+