Advertisement
AdmiralNemo

Minimalist Cross-Compiled Gentoo

Jul 13th, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.89 KB | None | 0 0
  1. #!/bin/sh
  2. # vim: set ts=4 sts=4 sw=4 et :
  3.  
  4. NAME=myrpi
  5. CONFIGROOT=configroot
  6. ARCH=arm
  7. ELIBC=glibc
  8. PROFILE=embedded
  9. CTARGET=armv6j-hardfloat-linux-gnueabi
  10. #UNSTABLE=1
  11.  
  12. # =========================================================================== #
  13.  
  14. if [ $(id -u) -ne 0 ]; then
  15.     echo "$(basename "$0") must be run as root!" &>2
  16.     exit 1
  17. fi
  18.  
  19. set -e
  20.  
  21. export ROOT="${TMPDIR:-${TEMP:-${TMP:-/var/tmp}}}/${NAME}"
  22. export EMERGE_DEFAULT_OPTS="--quiet --quiet-build --quiet-fail --usepkg \
  23.    --nospinner --misspell-suggestions=n"
  24. export PORTAGE_CONFIGROOT="${ROOT}"
  25.  
  26. test -d "${ROOT}"/etc/portage || mkdir -p "${ROOT}"/etc/portage
  27.  
  28. if [ -n "${CONFIGROOT}" ]; then
  29.     cp -r "${CONFIGROOT}"/. "${ROOT}"/etc/portage/
  30. fi
  31.  
  32. test -d "${ROOT}"/etc/portage/profile || mkdir -p "${ROOT}"/etc/portage/profile
  33.  
  34. cat > "${ROOT}"/etc/portage/profile/make.defaults <<EOF
  35. ARCH=${ARCH}
  36. ELIBC=${ELIBC}
  37. ACCEPT_KEYWORDS="${ARCH}${UNSTABLE:+ ~${ARCH}}"
  38. FEATURES="-news"
  39. USE="${ARCH} bindist minimal"
  40. EOF
  41.  
  42. cat > "${ROOT}"/etc/portage/make.conf <<EOF
  43. CFLAGS="\${CFLAGS} --sysroot=${ROOT}"
  44. CXXFLAGS="\${CFLAGS}"
  45. LDFLAGS="\${LDFLAGS} --sysroot=${ROOT} -Wl,--sysroot=${ROOT} -L=/usr/lib -Wl,-verbose"
  46. FEATURES="buildpkg"
  47. USE="ipv6"
  48. EOF
  49.  
  50. portdir=$(portageq envvar PORTDIR)
  51. ln -snf "${portdir}"/profiles/${PROFILE:-embedded} \
  52.     "${ROOT}"/etc/portage/make.profile
  53.  
  54. CFLAGS= LDFLAGS= FEATURES='-buildpkg' ${CTARGET}-emerge --oneshot --noreplace \
  55.     virtual/libc virtual/os-headers
  56.  
  57. export SYSROOT="${ROOT}"
  58.  
  59. ${CTARGET}-emerge --noreplace --changed-use \
  60.     app-shells/bash \
  61.     app-arch/bzip2 \
  62.     sys-apps/coreutils \
  63.     sys-apps/file \
  64.     sys-apps/findutils \
  65.     sys-apps/gawk \
  66.     sys-apps/grep \
  67.     app-arch/gzip \
  68.     sys-apps/kbd \
  69.     sys-apps/kmod \
  70.     sys-apps/less \
  71.     sys-apps/openrc \
  72.     sys-apps/net-tools \
  73.     sys-process/procps \
  74.     sys-apps/sed \
  75.     sys-apps/shadow
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement