[617118d] | 1 | #!/bin/bash
|
---|
| 2 |
|
---|
| 3 | # cross-lfs native perl build
|
---|
| 4 | # ---------------------------
|
---|
| 5 | # $LastChangedBy$
|
---|
| 6 | # $LastChangedDate$
|
---|
| 7 | # $LastChangedRevision$
|
---|
| 8 | # $HeadURL$
|
---|
| 9 | #
|
---|
| 10 |
|
---|
| 11 | cd ${SRC}
|
---|
| 12 | LOG=perl-native.log
|
---|
| 13 |
|
---|
| 14 | # Test if the 64 script has been called.
|
---|
| 15 | # This should only really get called during bi-arch builds
|
---|
| 16 | SELF=`basename ${0}`
|
---|
| 17 | set_buildenv
|
---|
| 18 | set_libdirname
|
---|
| 19 | setup_multiarch
|
---|
| 20 |
|
---|
| 21 | test "${SELF}" = "native-perl-64.sh" && LIB64=Y
|
---|
| 22 |
|
---|
| 23 | unpack_tarball perl-${PERL_VER} &&
|
---|
| 24 | cd ${PKGDIR}
|
---|
| 25 |
|
---|
| 26 | chmod u+w hints/linux.sh # For those not running as a root user
|
---|
| 27 |
|
---|
| 28 | if [ ! "${libdirname}" = "lib" ]; then
|
---|
| 29 | # We need to adjust Configure so that it understands
|
---|
| 30 | # installstyle=lib64/perl5 and sets up directory paths accordingly
|
---|
| 31 | # NOTE: may need to check how this affects vendor libs...
|
---|
| 32 | if [ ! -f Configure-ORIG ]; then cp Configure Configure-ORIG ;fi
|
---|
| 33 | sed "/\*lib\/perl5\*).*/{
|
---|
| 34 | h
|
---|
| 35 | s/\([^a-zA-Z]\)lib/\1${libdirname}/g
|
---|
| 36 | x
|
---|
| 37 | G }" Configure-ORIG > Configure
|
---|
| 38 |
|
---|
| 39 | # edit linux.sh
|
---|
| 40 | if [ ! -f hints/linux.sh-ORIG ]; then
|
---|
| 41 | cp hints/linux.sh hints/linux.sh-ORIG
|
---|
| 42 | fi
|
---|
| 43 | sed -e "s@/lib/libc.so.6@/${libdirname}/libc.so.6@g" \
|
---|
| 44 | -e "s@libc=/lib/\$libc@libc=/${libdirname}/\$libc@g" \
|
---|
| 45 | hints/linux.sh-ORIG > hints/linux.sh
|
---|
| 46 |
|
---|
| 47 | # Now that installstyle can handle lib64, specify our
|
---|
| 48 | # our installstyle in linux.sh
|
---|
| 49 | echo "installstyle=\"${libdirname}/perl5\"" >> hints/linux.sh
|
---|
| 50 | # override standard glibpth
|
---|
| 51 | echo "glibpth=\"/${libdirname} /usr/${libdirname}\"" >> hints/linux.sh
|
---|
| 52 | fi
|
---|
| 53 |
|
---|
| 54 | # override loclibpth
|
---|
| 55 | # NOTE: by rights during this stage of the build there shouldn't be
|
---|
| 56 | # any libs in the local lib paths
|
---|
| 57 | # (ie /usr/local/lib{,64} , /opt/local/lib{,64})
|
---|
| 58 | # so we just clear this (as we do ch5).
|
---|
| 59 | #
|
---|
| 60 | # Other option is to set
|
---|
| 61 | # loclibpth=\"/usr/local/${libdir} /opt/local/${libdir}\"
|
---|
| 62 | # (and optionally /usr/gnu/${libdir})
|
---|
| 63 | #
|
---|
| 64 | echo "loclibpth=\"\"" >> hints/linux.sh
|
---|
| 65 | cd ${SRC}/${PKGDIR}
|
---|
| 66 |
|
---|
[8080e7a] | 67 | # if not creating a shared libperl (ie useshrplib not true), still use pic
|
---|
| 68 | sed -i -e "s@pldlflags=''@pldlflags=\"\$cccdlflags\"@g" \
|
---|
| 69 | -e "s@static_target='static'@static_target='static_pic'@g" \
|
---|
| 70 | Makefile.SH
|
---|
| 71 |
|
---|
[617118d] | 72 | max_log_init Perl ${PERL_VER} "native (shared)" ${CONFLOGS} ${LOG}
|
---|
| 73 | CC="${CC-gcc} ${ARCH_CFLAGS}" \
|
---|
| 74 | ./configure.gnu --prefix=/usr \
|
---|
| 75 | -Doptimize="-O2 -pipe ${TGT_CFLAGS}" \
|
---|
| 76 | -Dman1dir='/usr/share/man/perl/man1' \
|
---|
| 77 | -Dman3dir='/usr/share/man/perl/man3' \
|
---|
[8080e7a] | 78 | -Dcccdlflags='-fPIC' \
|
---|
[617118d] | 79 | >> ${LOGFILE} 2>&1 &&
|
---|
| 80 | echo " o Configure OK" || barf
|
---|
| 81 |
|
---|
| 82 | min_log_init ${BUILDLOGS} &&
|
---|
| 83 | make LDFLAGS="-s" \
|
---|
| 84 | >> ${LOGFILE} 2>&1 &&
|
---|
| 85 | echo " o Build OK" || barf
|
---|
| 86 |
|
---|
| 87 | min_log_init ${INSTLOGS} &&
|
---|
| 88 | make install \
|
---|
| 89 | >> ${LOGFILE} 2>&1 &&
|
---|
| 90 | echo " o Install OK" || barf
|
---|
| 91 |
|
---|
| 92 | if [ "Y" = "${MULTIARCH}" ]; then
|
---|
| 93 | use_wrapper /usr/bin/{perl,perl${PERL_VER}}
|
---|
| 94 | fi
|
---|