[617118d] | 1 | #!/bin/bash
|
---|
| 2 |
|
---|
| 3 | # cross-lfs target util-linux build
|
---|
| 4 | # ---------------------------------
|
---|
| 5 | # $LastChangedBy$
|
---|
| 6 | # $LastChangedDate$
|
---|
| 7 | # $LastChangedRevision$
|
---|
| 8 | # $HeadURL$
|
---|
| 9 | #
|
---|
| 10 |
|
---|
| 11 | # NOTE: this script defaults to installing into the new root ( ${LFS} ).
|
---|
| 12 | # work has to be done on configure to make it install to
|
---|
| 13 | # ${TGT_TOOLS}
|
---|
| 14 |
|
---|
| 15 | # NOTE: *** For gods sake ryan, fix the setting of CPU and ARCH ***
|
---|
| 16 |
|
---|
| 17 | cd ${SRC}
|
---|
| 18 | LOG=util-linux-target.log
|
---|
| 19 |
|
---|
| 20 | set_libdirname
|
---|
| 21 | setup_multiarch
|
---|
| 22 |
|
---|
| 23 | unpack_tarball util-linux-${UTILLINUX_VER} &&
|
---|
| 24 | cd ${PKGDIR}
|
---|
| 25 |
|
---|
| 26 | case ${UTILLINUX_VER} in
|
---|
| 27 | 2.12 | 2.12a )
|
---|
| 28 | case ${KERNEL_VER} in
|
---|
| 29 | 2.[56].* )
|
---|
| 30 | # Fixes for utillinux 2.12 + 2.12a for building against 2.6
|
---|
| 31 | # kernel headers
|
---|
| 32 | apply_patch util-linux-2.12a-kernel_headers-1
|
---|
| 33 | ;;
|
---|
| 34 | esac
|
---|
| 35 | ;;
|
---|
| 36 | 2.12[k-q] )
|
---|
| 37 | # fix cramfs, this fix will need to be tracked for later versions...
|
---|
| 38 | apply_patch util-linux-2.12q-cramfs-1
|
---|
| 39 | # fix sfdisk for mips n32/64 as n32/64 uses lseek, not llseek
|
---|
| 40 | apply_patch util-linux-2.12q-sfdisk_use_lseek_for_mips64-1
|
---|
| 41 | ;;
|
---|
| 42 | esac
|
---|
| 43 |
|
---|
| 44 | case ${UTILLINUX_VER} in
|
---|
| 45 | 2.12 | 2.12[a-m] )
|
---|
| 46 | # Patch to fix fdiskbsdlabel.h for m68k, also adds unistd.h to list
|
---|
| 47 | # of includes for swapon.c
|
---|
| 48 | apply_patch util-linux-2.12a-cross-lfs-fixes
|
---|
| 49 | ;;
|
---|
| 50 | 2.12* )
|
---|
| 51 | # Patch to fix fdiskbsdlabel.h for m68k
|
---|
| 52 | apply_patch util-linux-2.12n-cross-lfs-fixes
|
---|
| 53 | ;;
|
---|
| 54 | esac
|
---|
| 55 |
|
---|
| 56 | # Make FHS compliant
|
---|
| 57 | # Get list of files which reference etc/adjtime
|
---|
| 58 | filelist=`grep -l -d recurse etc/adjtime *`
|
---|
| 59 |
|
---|
| 60 | # Edit each file in turn
|
---|
| 61 | for file in ${filelist} ; do
|
---|
| 62 | test -f ${file}-ORIG ||
|
---|
| 63 | cp ${file} ${file}-ORIG
|
---|
| 64 | # Change instance of etc/adjtime to var/lib/hwclock/adjtime
|
---|
| 65 | sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \
|
---|
| 66 | ${file}-ORIG > ${file}
|
---|
| 67 | done
|
---|
| 68 | mkdir -p ${LFS}/var/lib/hwclock
|
---|
| 69 |
|
---|
| 70 | if [ ! "${USE_SYSROOT}" = "Y" ]; then
|
---|
| 71 | echo " o Changing hard coded references to /usr/include to point at ${TGT_TOOLS}"
|
---|
| 72 | flist=`grep -d recurse -l /usr/include *`
|
---|
| 73 | for file in ${flist}; do
|
---|
| 74 | (
|
---|
| 75 | echo " - editing ${file}"
|
---|
| 76 | test -f ${file}-ORIG || cp ${file} ${file}-ORIG
|
---|
| 77 | sed 's@/usr/include@${TGT_TOOLS}/include@g' ${file}-ORIG > ${file}
|
---|
| 78 | )
|
---|
| 79 | done
|
---|
| 80 | fi
|
---|
| 81 |
|
---|
| 82 | # Optimization defaults to -O2
|
---|
| 83 | max_log_init Util-linux ${UTILLINUX_VER} "Final (shared)" ${CONFLOGS} ${LOG}
|
---|
| 84 | export CC="${TARGET}-gcc ${ARCH_CFLAGS}"
|
---|
| 85 |
|
---|
| 86 | # Here it is just plain ugly. We set CPU and ARCH to something that wont trigger
|
---|
| 87 | # anything in MCONFIG
|
---|
| 88 | export CPU=m68k
|
---|
| 89 | export ARCH=m68k
|
---|
| 90 | export DESTDIR=${LFS}
|
---|
| 91 |
|
---|
| 92 | ./configure \
|
---|
| 93 | >> ${LOGFILE} 2>&1 &&
|
---|
| 94 | echo " o Configure OK" &&
|
---|
| 95 |
|
---|
| 96 | # Don't build kill or sln
|
---|
| 97 | # (procps supplies kill and glibc supplies sln)
|
---|
| 98 | # No need to supply LDFLAGS="-s", taken care of during configure
|
---|
| 99 | #
|
---|
| 100 | # Optionally, for x86, unset CPUOPT (defaults to i486 if cpu not i386)
|
---|
| 101 | # or set specifically for your cpu type.
|
---|
| 102 | # See MCONFIG...
|
---|
| 103 | #
|
---|
| 104 | # also, build login by setting HAVE_SHADOW to no, this can be revisited
|
---|
| 105 | # if/when we cross-compile the shadow package
|
---|
| 106 |
|
---|
| 107 | min_log_init ${BUILDLOGS} &&
|
---|
| 108 | make HAVE_KILL=yes HAVE_SLN=yes HAVE_SHADOW=no CPUOPT="" \
|
---|
| 109 | >> ${LOGFILE} 2>&1 &&
|
---|
| 110 | echo " o Build OK" || barf
|
---|
| 111 |
|
---|
| 112 | min_log_init ${INSTLOGS} &&
|
---|
| 113 | echo Password:
|
---|
| 114 | su -c "export PATH=${PATH} ; make HAVE_KILL=yes HAVE_SLN=yes HAVE_SHADOW=no install" \
|
---|
| 115 | >> ${LOGFILE} 2>&1 &&
|
---|
| 116 | echo " o ALL OK" || barf
|
---|
| 117 |
|
---|