source: scripts/native-scripts/native-perl.sh @ 8080e7a

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since 8080e7a was 8080e7a, checked in by Jim Gifford <clfs@…>, 18 years ago

r583@server (orig r581): ryan | 2005-08-05 21:44:17 -0700
Always use -fPIC when building perl



  • Property mode set to 100755
File size: 2.7 KB
Line 
1#!/bin/bash
2
3# cross-lfs native perl build
4# ---------------------------
5# $LastChangedBy$
6# $LastChangedDate$
7# $LastChangedRevision$
8# $HeadURL$
9#
10
11cd ${SRC}
12LOG=perl-native.log
13
14# Test if the 64 script has been called.
15# This should only really get called during bi-arch builds
16SELF=`basename ${0}`
17set_buildenv
18set_libdirname
19setup_multiarch
20
21test "${SELF}" = "native-perl-64.sh" && LIB64=Y
22
23unpack_tarball perl-${PERL_VER} &&
24cd ${PKGDIR}
25
26chmod u+w hints/linux.sh          # For those not running as a root user
27
28if [ ! "${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
52fi
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#
64echo "loclibpth=\"\"" >> hints/linux.sh
65cd ${SRC}/${PKGDIR}
66
67# if not creating a shared libperl (ie useshrplib not true), still use pic
68sed -i -e "s@pldlflags=''@pldlflags=\"\$cccdlflags\"@g" \
69       -e "s@static_target='static'@static_target='static_pic'@g" \
70   Makefile.SH
71
72max_log_init Perl ${PERL_VER} "native (shared)" ${CONFLOGS} ${LOG}
73CC="${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' \
78   -Dcccdlflags='-fPIC' \
79   >> ${LOGFILE} 2>&1 &&
80echo " o Configure OK" || barf
81
82min_log_init ${BUILDLOGS} &&
83make LDFLAGS="-s" \
84   >> ${LOGFILE} 2>&1 &&
85echo " o Build OK" || barf
86
87min_log_init ${INSTLOGS} &&
88make install \
89   >> ${LOGFILE} 2>&1 &&
90echo " o Install OK" || barf
91
92if [ "Y" = "${MULTIARCH}" ]; then
93   use_wrapper /usr/bin/{perl,perl${PERL_VER}}
94fi
Note: See TracBrowser for help on using the repository browser.