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}