aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2018-04-05 23:11:59 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2018-04-05 23:11:59 +0100
commit393e1cd0c6d3ac81fa166bafe6065d42849f622c (patch)
treec7ee1c452a70ed128ca0511de9ae6793454409b1 /wrappers/emerge-wrapper
parentemerge-wrapper: add a note that 'package.provided' are normally incomplete (diff)
downloadcrossdev-393e1cd0c6d3ac81fa166bafe6065d42849f622c.tar.gz
crossdev-393e1cd0c6d3ac81fa166bafe6065d42849f622c.tar.bz2
crossdev-393e1cd0c6d3ac81fa166bafe6065d42849f622c.zip
wrappers: create profile/ and override ARCH, LIBC and KERNEL there
Need for make.defaults: portage does not allow ARCH override in make.conf anymore Need for use.force: embedded profile enforces linux target on us. It's ok as a default but would be nice to be able to override it with nothing (bare-metal) or other OS without existing profile. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'wrappers/emerge-wrapper')
-rwxr-xr-xwrappers/emerge-wrapper21
1 files changed, 19 insertions, 2 deletions
diff --git a/wrappers/emerge-wrapper b/wrappers/emerge-wrapper
index 2a3a91d..d23d00e 100755
--- a/wrappers/emerge-wrapper
+++ b/wrappers/emerge-wrapper
@@ -38,7 +38,11 @@ cross_wrap_etc()
cp -a "${PREFIX}"/share/crossdev/etc ${SYSROOT}/ || return 1
- local conf=${SYSROOT}/etc/portage/make.conf
+ local confs=(
+ ${SYSROOT}/etc/portage/make.conf
+ ${SYSROOT}/etc/portage/profile/make.defaults
+ ${SYSROOT}/etc/portage/profile/use.force
+ )
# Re-use existing CHOST->portage ARCH mapping code
ARCH=$(
@@ -58,12 +62,25 @@ cross_wrap_etc()
*) emit_setup_warning "No LIBC is known for this target." ;;
esac
+ KERNEL="__KERNEL__"
+ case ${CHOST} in
+ *linux*) KERNEL=linux ;;
+ *) emit_setup_warning "No KERNEL is known for this target." ;;
+ esac
+ if [[ -n ${KERNEL} ]]; then
+ USE_FORCE_KERNEL="kernel_${KERNEL}"
+ else
+ USE_FORCE_KERNEL=""
+ fi
+
sed -i \
-e "s:__LIBC__:${LIBC}:g" \
-e "s:__ARCH__:${ARCH}:g" \
+ -e "s:__KERNEL__:${KERNEL}:g" \
+ -e "s:__USE_FORCE_KERNEL__:${USE_FORCE_KERNEL}:g" \
-e "s:__CHOST__:${CHOST}:g" \
-e "s:__CBUILD__:${CBUILD}:g" \
- "${conf}"
+ "${confs[@]}"
# Try to figure out the libc version & os headers to avoid installing over top of it.
# XXX: Would be nice to use virtual/libc and virtual/os-headers here ...