Added libgcrypt-1.4.3 template.
[pkgfs.git] / helper-templates / perl-module.sh
blob7e39bd0bedbf808993d8d335faa786fe71fd125d
2 # This helper does the required steps to be able to build and install
3 # perl modules into the correct location.
5 # Required vars to be set by a template:
7 # build_style=perl_module
9 # Optionally if the module needs more directories to be configured other
10 # than $PKGFS_BUILDDIR/$wrksrc, one can use (relative to $wrksrc):
12 # perl_configure_dirs=blob/bob foo/blah
15 # Override the paths to get desired results.
16 : ${_arch:=$(uname -m)}
17 : ${perl_thrmulti:=${_arch}-netbsd-thread-multi}
18 : ${perl_cmd:=$PKGFS_MASTERDIR/bin/perl}
19 : ${PERL_DESTDIR:=$PKGFS_MASTERDIR}
20 : ${PERL_PREFIX:=$PERL_DESTDIR}
21 : ${PERL_DPREFIX:=$PKGFS_DESTDIR/$pkgname-$version}
22 : ${PERL_VERSION:=5.10.0}
23 : ${PERL_LDDLFLAGS:=--whole-archive -shared -L$PKGFS_MASTERDIR/lib}
24 : ${PERL_SITELIBEXP:=$PERL_DPREFIX/lib/perl5/site_perl/$PERL_VERSION}
25 : ${PERL_SITEARCHEXP:=$PERL_SITELIBEXP/$perl_thrmulti}
26 : ${PERL_SITEPREFIX:=$PERL_PREFIX}
27 : ${PERL_INSTALLPRIVLIB:=$PERL_DPREFIX/lib/perl5/$PERL_VERSION}
28 : ${PERL_INSTALLSITELIB:=$PERL_DPREFIX/lib/perl5/site_perl/$PERL_VERSION}
29 : ${PERL_INSTALLARCHLIB:=$PERL_DPREFIX/lib/perl5/$PERL_VERSION/$perl_thrmulti}
30 : ${PERL_INSTALLSITEARCH:=$PERL_SITELIBEXP}
31 : ${PERL_INSTALLBIN:=$PERL_DPREFIX/bin}
32 : ${PERL_INSTALLSITEBIN:=$PERL_INSTALLBIN}
33 : ${PERL_INSTALLSCRIPT:=$PERL_DPREFIX/bin}
34 : ${PERL_INSTALLSITESCRIPT:=$PERL_INSTALLSCRIPT}
35 : ${PERL_INSTALLMAN1DIR:=$PERL_DPREFIX/man/man1}
36 : ${PERL_INSTALLSITEMAN1DIR=$PERL_INSTALLMAN1DIR}
37 : ${PERL_INSTALLMAN3DIR:=$PERL_DPREFIX/man/man3}
38 : ${PERL_INSTALLSITEMAN3DIR:=$PERL_INSTALLMAN3DIR}
39 : ${PERL_PERLLIB:=$PERL_PREFIX/lib/perl5/$PERL_VERSION}
40 : ${PERL_ARCHLIB:=$PERL_PREFIX/lib/perl5/$PERL_VERSION/$perl_thrmulti}
41 : ${PERL_INC:=$PERL_PREFIX/lib/perl5/$PERL_VERSION/$perl_thrmulti/CORE}
43 : ${PERL_MAKE_VARS:=LDFLAGS=$LDFLAGS LDDLFLAGS=$PERL_LDDLFLAGS \
44 SITELIBEXP=$PERL_SITELIBEXP SITEARCHEXP=$PERL_SITEARCHEXP \
45 PERLPREFIX=$PERL_DESTDIR SITEPREFIX=$PERL_SITEPREFIX \
46 INSTALLPRIVLIB=$PERL_INSTALLPRIVLIB \
47 INSTALLSITELIB=$PERL_INSTALLSITELIB \
48 INSTALLARCHLIB=$PERL_INSTALLARCHLIB \
49 INSTALLSITEARCH=$PERL_INSTALLSITEARCH \
50 INSTALLBIN=$PERL_INSTALLBIN \
51 INSTALLSITEBIN=$PERL_INSTALLSITEBIN \
52 INSTALLSCRIPT=$PERL_INSTALLSCRIPT \
53 INSTALLSITESCRIPT=$PERL_INSTALLSITESCRIPT \
54 INSTALLMAN1DIR=$PERL_INSTALLMAN1DIR \
55 INSTALLSITEMAN1DIR=$PERL_INSTALLSITEMAN1DIR \
56 INSTALLMAN3DIR=$PERL_INSTALLMAN3DIR \
57 INSTALLSITEMAN3DIR=$PERL_INSTALLSITEMAN3DIR \
58 PERL_LIB=$PERL_PERLLIB PERL_ARCHLIB=$PERL_ARCHLIB}
60 perl_module_build()
62 local builddir="$wrksrc"
63 local perlmkf=
65 if [ -z "$perl_configure_dirs" ]; then
66 perlmkf="$builddir/Makefile.PL"
67 if [ ! -f $perlmkf ]; then
68 echo "*** ERROR couldn't find $perlmkf, aborting"
69 exit 1
72 cd $builddir && \
73 $perl_cmd Makefile.PL ${PERL_MAKE_VARS} $make_build_args
74 if [ "$?" -ne 0 ]; then
75 echo "*** ERROR building perl module for $pkgname ***"
76 exit 1
80 for i in "$perl_configure_dirs"; do
81 perlmkf="$builddir/$i/Makefile.PL"
82 if [ -f $perlmkf ]; then
83 cd $builddir/$i && \
84 $perl_cmd Makefile.PL \
85 ${PERL_MAKE_VARS} $make_build_args
86 [ "$?" -ne 0 ] && exit 1
87 else
88 echo -n "*** ERROR: couldn't find $perlmkf"
89 echo ", aborting ***"
90 exit 1
92 done