You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
4.2 KiB
121 lines
4.2 KiB
#!/bin/sh |
|
## |
|
## perl-openpkg -- OpenPKG utility for use in Perl module packages |
|
## Copyright (c) 2002 Ralf S. Engelschall <rse@engelschall.com> |
|
## |
|
|
|
# hard-coded OpenPKG instance prefix |
|
l_prefix="@l_prefix@" |
|
|
|
# make sure we are running in the RPM environment |
|
if [ ".$RPM_BUILD_ROOT" = . ]; then |
|
echo "perl-openpkg:ERROR: \$RPM_BUILD_ROOT not set" 1>&2 |
|
exit 1 |
|
fi |
|
if [ ".$RPM_BUILD_DIR" = . ]; then |
|
echo "perl-openpkg:ERROR: \$RPM_BUILD_DIR not set" 1>&2 |
|
exit 1 |
|
fi |
|
|
|
# helper function for logging |
|
log () { |
|
echo "perl-openpkg: $*" 1>&2 |
|
} |
|
|
|
cmd="$1" |
|
shift |
|
case $cmd in |
|
prolog ) |
|
# prepare Perl module installation area |
|
log "prepare Perl module installation area" |
|
rm -rf $RPM_BUILD_ROOT |
|
l_shtool=`${l_prefix}/bin/rpm --eval '%{l_shtool}'` |
|
${l_shtool} mkdir -f -p -m 755 ${RPM_BUILD_ROOT}${l_prefix}/lib/perl |
|
|
|
# prepare Perl executable wrapper |
|
log "prepare Perl executable wrapper" |
|
eval `${l_prefix}/bin/perl -V:installarchlib -V:installprivlib -V:installsitearch -V:installsitelib` |
|
perl="${RPM_BUILD_DIR}/perl" |
|
echo "#!/bin/sh" >$perl |
|
echo "exec ${l_prefix}/bin/perl \\" >>$perl |
|
echo " -I${RPM_BUILD_ROOT}${installarchlib} \\" >>$perl |
|
echo " -I${RPM_BUILD_ROOT}${installprivlib} \\" >>$perl |
|
echo " -I${RPM_BUILD_ROOT}${installsitearch} \\" >>$perl |
|
echo " -I${RPM_BUILD_ROOT}${installsitelib} \\" >>$perl |
|
echo " \"\$@\"" >>$perl |
|
chmod a+x $perl |
|
;; |
|
|
|
install ) |
|
# determine build parameters |
|
log "determine build parameters" |
|
perl="${RPM_BUILD_DIR}/perl" |
|
perl_args="PREFIX=${RPM_BUILD_ROOT}${l_prefix} INSTALLDIRS=site" |
|
perl_args="${perl_args} PERL=${perl} FULLPERL=${perl}" |
|
make=`${l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'` |
|
make_args="PERL=${perl} FULLPERL=${perl}" |
|
|
|
# optionally enter sub-directory of module |
|
oldpwd=`pwd` |
|
if [ ".$1" = ".-d" ]; then |
|
shift |
|
dir="$1" |
|
shift |
|
if [ -d $dir ]; then |
|
log "entering sub-directory $dir" |
|
cd $dir |
|
else |
|
dir=`echo "$dir" | sed -e 's;^.*/\([^/]*\)\.tar\.gz$;\1;' -e 's;^.*/\([^/]*\)\.tgz$;\1;'` |
|
if [ -d $dir ]; then |
|
log "entering sub-directory $dir" |
|
cd $dir |
|
fi |
|
fi |
|
fi |
|
|
|
# configuring Perl module |
|
log "configuring Perl module" |
|
chmod -R u+rw Makefile.PL |
|
cp Makefile.PL Makefile.PL.orig |
|
sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL |
|
$perl Makefile.PL ${1+"$@"} $perl_args </dev/null |
|
|
|
# building Perl module |
|
log "building Perl module" |
|
$make $make_args pure_all |
|
|
|
# installing Perl module |
|
log "installing Perl module" |
|
$make $make_args pure_install |
|
;; |
|
|
|
epilog ) |
|
# pruning installation area |
|
log "pruning installation area" |
|
find ${RPM_BUILD_ROOT}${l_prefix} \ |
|
-name perllocal.pod -print | xargs rm -f |
|
find ${RPM_BUILD_ROOT}${l_prefix} \ |
|
-name .packlist -print | xargs rm -f |
|
find ${RPM_BUILD_ROOT}${l_prefix} \ |
|
-type d -depth -print | (xargs rmdir >/dev/null 2>&1 || true) |
|
|
|
# determining installation files |
|
log "determining installation files" |
|
eval `${l_prefix}/bin/perl -V:installarchlib -V:installprivlib -V:installsitearch -V:installsitelib` |
|
l_rpmtool=`${l_prefix}/bin/rpm --eval '%{l_rpmtool}'` |
|
eval ${l_rpmtool} files -v -ofiles -r${RPM_BUILD_ROOT} \ |
|
`${l_prefix}/bin/rpm --eval '%{l_files_std}'` \ |
|
"\"%not %dir ${l_prefix}/lib/perl\"" \ |
|
"\"%not %dir ${l_prefix}/lib/perl/*\"" \ |
|
"\"%not %dir $installarchlib\"" \ |
|
"\"%not %dir $installprivlib\"" \ |
|
"\"%not %dir $installsitearch\"" \ |
|
"\"%not %dir $installsitelib\"" \ |
|
"\"%not %dir $installarchlib/auto\"" \ |
|
"\"%not %dir $installprivlib/auto\"" \ |
|
"\"%not %dir $installsitearch/auto\"" \ |
|
"\"%not %dir $installsitelib/auto\"" \ |
|
"\"%not ${l_prefix}/man\"" |
|
;; |
|
esac |
|
|
|
|