Skip to content
Snippets Groups Projects
Commit 24d1243b authored by Dolphin von Chips's avatar Dolphin von Chips
Browse files

devicepkg-dev: implement out-of-tree build for kernel

parent c747733a
No related branches found
No related tags found
No related merge requests found
pkgname="devicepkg-dev"
pkgver=0.11.3
pkgver=0.11.4
pkgrel=0
pkgdesc="Provides default device package functions"
url="https://postmarketos.org"
......@@ -63,8 +63,8 @@ package() {
sha512sums="d69930dd790b00fb39760a37d95a10899f0d167e10e2804feb05d9ce04f94185dc32d36edc90214aba2ea2aa09bf18f7dab93f1d2eff23f67beb2cc83be30e7c compiler-gcc.h
332f693abfb3260ad6c1ef5d245062af8cc8eedba7db360d54db5a7fcf7b301a37a299a0004e9ff4de80b5dfcd260d0cd0f99f96ed6d56080bb4dea81116cc82 devicepkg_build.sh
5ac4a5087c598582cb12278a4ce0c2dccfe7f91c1620d3328d1d0944c89eff81f8afcc681506d73a80d69615401f96a99fb1fdaa755fea101e0d36ec6ef2d5d0 devicepkg_package.sh
69dad4bde05377ec235d72789c80cdfbdaa5a19b97defe9d4c19e0e12aa2c081d6dcf19fb80ebe33c2d6539ce8a39d36d98413404852d6bb2d56cc75d2f1ee95 downstreamkernel_prepare.sh
8a6a0afa6e499b59c5433194298d13eb07712c4344e1dd4f71fdc34a2836950a12247c61aa7563bd646efff6118b377ceb387f09170282896809a160b3d9cd04 downstreamkernel_package.sh
3dd74182656eaad9429aea3d3ec76bf2eac5309d1328361af219767fa09f25579786265d6e762b1effc37dc6e752c4e597f81590b58daba90b50afaf6011edea downstreamkernel_prepare.sh
776d7c36afc7bedbd531641abe90fa4bf06a519ad9e300dedf67b6d3b4997b57a398938dd528d5eeda6d17e0d34644472702a4fdd8ff41e0a4a7ad0671f4a216 downstreamkernel_package.sh
cf5ee240cd1c1e9d30cdec833b4a007fd2e00f9a32ba3f265f99aa2e3dd3601cf43c08d3f3e01bade1d5b2648a6754b2f236e5cb4a9945e18e5c4e97aa2ed7c8 devicepkg_subpackage_kernel.sh
9bb7f2a0930f397a713e9f4b6d5b83a426d9a2a3f692dcc42ac30717bf26ead869d8823a38f3ad388af12b2b9a02e8ec4d4418e9c2062389ed06d2b891a49ff3 deviceinfo
136247a16ec91dc0c7241eeddb28c2196ae3b29946a9bc7e9566f848491ef1c53b12d05bf2dbc1cc352986712fd76f25c1510bcc8f301af540a2f01c33b299e1 expected-deviceinfo-downstream
......
......@@ -5,22 +5,23 @@ builddir=$1
pkgdir=$2
_carch=$3
_flavor=$4
_outdir=$5
if [ -z "$builddir" ] || [ -z "$pkgdir" ] || [ -z "$_carch" ] ||
[ -z "$_flavor" ]; then
echo "ERROR: missing argument!"
echo "Please call downstreamkernel_package() with \$builddir, \$pkgdir,"
echo "\$_carch and \$_flavor as arguments."
echo "\$_carch, \$_flavor (and optionally \$_outdir) as arguments."
exit 1
fi
# kernel.release
install -D "$builddir/include/config/kernel.release" \
install -D "$builddir/$_outdir/include/config/kernel.release" \
"$pkgdir/usr/share/kernel/$_flavor/kernel.release"
# zImage (find the right one)
# shellcheck disable=SC2164
cd "$builddir/arch/$_carch/boot"
cd "$builddir/$_outdir/arch/$_carch/boot"
_target="$pkgdir/boot/vmlinuz-$_flavor"
if [ -n "$KERNEL_IMAGE_NAME" ]; then
......
......@@ -3,6 +3,7 @@
# Replace compiler-gcc.h with one that works with newer GCC versions.
# Set REPLACE_GCCH=0 to avoid replacing an existing compiler-gcc.h file.
install_gcc_h() {
# shellcheck disable=SC2154
_gcch="$builddir/include/linux/compiler-gcc.h"
if [ -f "$_gcch" ]; then
if [ "$REPLACE_GCCH" = "0" ]; then
......@@ -21,23 +22,13 @@ install_gcc_h() {
cp -v "/usr/share/devicepkg-dev/compiler-gcc.h" "$_gcch"
}
# Parse arguments
srcdir=$1
builddir=$2
_config=$3
_carch=$4
HOSTCC=$5
if [ -z "$srcdir" ] || [ -z "$builddir" ] || [ -z "$_config" ] ||
[ -z "$_carch" ]; then
echo "ERROR: missing argument!"
echo "Please call downstreamkernel_prepare() with \$srcdir, \$builddir,"
echo "\$_config, \$_carch (and optionally \$HOSTCC) as arguments."
exit 1
# Set _outdir to "." if not set
if [ -z "$_outdir" ]; then
_outdir="."
fi
# Only override HOSTCC if set (to force use of an old gcc)
[ -z "$HOSTCC" ] || HOSTCC="HOSTCC=$HOSTCC"
# Set _hostcc when HOSTCC is set
[ -z "$HOSTCC" ] || _hostcc="HOSTCC=$HOSTCC"
# Support newer GCC versions
install_gcc_h
......@@ -52,6 +43,9 @@ for i in $makefiles; do
done
# Prepare kernel config ('yes ""' for kernels lacking olddefconfig)
cp "$srcdir/$_config" "$builddir"/.config
# shellcheck disable=SC2086
yes "" | make -C "$builddir" ARCH="$_carch" $HOSTCC oldconfig
mkdir -p "$builddir/$_outdir"
# shellcheck disable=SC2154
cp "$srcdir/$_config" "$builddir"/"$_outdir"/.config
# shellcheck disable=SC2086,SC2154
yes "" | make -C "$builddir" ARCH="$_carch" O="$_outdir" \
$_hostcc oldconfig
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment