void-packages

Void Source Packages
git clone git://ezup.dev/void-packages.git
Log | Files | Refs | README | LICENSE

perl-module.sh (2809B)


      1#
      2# This helper does the required steps to be able to build and install
      3# perl modules that use MakeMaker into the correct location.
      4#
      5# Required vars to be set by a template:
      6#
      7# 	build_style=perl-module
      8#
      9# Optionally if the module needs more directories to be configured other
     10# than $XBPS_BUILDDIR/$wrksrc, one can use (relative to $wrksrc):
     11#
     12#	perl_configure_dirs="blob/bob foo/blah"
     13#
     14do_configure() {
     15	local perlmkf
     16
     17	local perlprefix=${XBPS_STATEDIR}/perlprefix-${XBPS_TARGET_MACHINE}
     18	mkdir -p $perlprefix
     19	if [ -d "$XBPS_CROSS_BASE/usr/lib/perl5/core_perl" ]; then
     20		cp "$XBPS_CROSS_BASE/usr/lib/perl5/core_perl/Config"*.p? $perlprefix
     21		cp "$XBPS_CROSS_BASE/usr/lib/perl5/core_perl/Errno.pm" $perlprefix
     22		sed -i -e "s;archlibexp => '\(.*\)';archlibexp => '${XBPS_CROSS_BASE}\1';" \
     23			${perlprefix}/Config.pm
     24		sed -i -e "s;^archlibexp='\(.*\)';archlibexp='${XBPS_CROSS_BASE}\1';" \
     25			${perlprefix}/Config_heavy.pl
     26	else
     27		cp "/usr/lib/perl5/core_perl/Config"*.p? $perlprefix
     28		cp "/usr/lib/perl5/core_perl/Errno.pm" $perlprefix
     29	fi
     30	export PERL5LIB=$perlprefix
     31
     32	if [ -f "${wrksrc}/Makefile.PL" ]; then
     33		sed -i "s,/usr/include,${XBPS_CROSS_BASE}/usr/include,g" "${wrksrc}/Makefile.PL"
     34	fi
     35
     36	if [ -z "$perl_configure_dirs" ]; then
     37		perlmkf="$wrksrc/Makefile.PL"
     38		if [ ! -f "$perlmkf" ]; then
     39			msg_error "*** ERROR couldn't find $perlmkf, aborting ***\n"
     40		fi
     41
     42		cd "$wrksrc"
     43		PERL_MM_USE_DEFAULT=1 GCC="$CC" CC="$CC" LD="$CC" \
     44			OPTIMIZE="$CFLAGS" \
     45			CFLAGS="$CFLAGS -I${XBPS_CROSS_BASE}/usr/include" \
     46			LDFLAGS="$LDFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \
     47			LDDLFLAGS="-shared $CFLAGS -L${XBPS_CROSS_BASE}/usr/lib" \
     48			perl -I. Makefile.PL ${configure_args} INSTALLDIRS=vendor
     49	fi
     50
     51	for i in ${perl_configure_dirs}; do
     52		perlmkf="$wrksrc/$i/Makefile.PL"
     53		if [ -f "$perlmkf" ]; then
     54			cd "$wrksrc/$i"
     55			PERL_MM_USE_DEFAULT=1 GCC="$CC" CC="$CC" LD="$CC" \
     56				OPTIMIZE="$CFLAGS" \
     57				CFLAGS="$CFLAGS -I${XBPS_CROSS_BASE}/usr/include" \
     58				LDFLAGS="$LDFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \
     59				LDDLFLAGS="-shared $CFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \
     60				perl -I. Makefile.PL ${make_build_args} INSTALLDIRS=vendor
     61		else
     62			msg_error "*** ERROR: couldn't find $perlmkf, aborting **\n"
     63		fi
     64	done
     65}
     66
     67do_build() {
     68	: ${make_cmd:=make}
     69
     70	${make_cmd} CC="$CC" LD="$CC" CFLAGS="$CFLAGS" OPTIMIZE="$CFLAGS" \
     71		LDFLAGS="$LDFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \
     72		LDDLFLAGS="-shared $CFLAGS -L${XBPS_CROSS_BASE}/usr/lib -lperl" \
     73		${makejobs} ${make_build_args} ${make_build_target}
     74}
     75
     76do_check() {
     77	: ${make_cmd:=make}
     78	: ${make_check_target:=test}
     79
     80	${make_cmd} ${make_check_args} ${make_check_target}
     81}
     82
     83do_install() {
     84	: ${make_cmd:=make}
     85	: ${make_install_target:=install}
     86
     87	${make_cmd} DESTDIR=${DESTDIR} ${make_install_args} ${make_install_target}
     88}