1 # SPDX-License-Identifier: GPL-2.0-only 2 # Maintainer: Thomas Weißschuh <linux@weisssch 3 # Contributor: Jan Alexander Steffens (heftig)< 4 5 pkgbase=${PACMAN_PKGBASE:-linux-upstream} 6 pkgname=("${pkgbase}") 7 8 _extrapackages=${PACMAN_EXTRAPACKAGES-headers 9 for pkg in $_extrapackages; do 10 pkgname+=("${pkgbase}-${pkg}") 11 done 12 13 pkgver="${KERNELRELEASE//-/_}" 14 # The PKGBUILD is evaluated multiple times. 15 # Running scripts/build-version from here woul 16 pkgrel="${KBUILD_REVISION}" 17 pkgdesc='Upstream Linux' 18 url='https://www.kernel.org/' 19 # Enable flexible cross-compilation 20 arch=(${CARCH}) 21 license=(GPL-2.0-only) 22 makedepends=( 23 bc 24 bison 25 cpio 26 flex 27 gettext 28 kmod 29 libelf 30 openssl 31 pahole 32 perl 33 python 34 rsync 35 tar 36 ) 37 options=(!debug !strip !buildflags !makeflags) 38 39 _prologue() { 40 # MAKEFLAGS from makepkg.conf override 41 # Bypass this override with a custom v 42 export MAKEFLAGS="${KBUILD_MAKEFLAGS}" 43 44 # Kbuild works in the output directory 45 cd "$(dirname "${BASH_SOURCE[0]}")" 46 } 47 48 build() { 49 _prologue 50 51 ${MAKE} KERNELRELEASE="${KERNELRELEASE 52 } 53 54 _package() { 55 pkgdesc="The ${pkgdesc} kernel and mod 56 57 local modulesdir="${pkgdir}/usr/${MODL 58 59 _prologue 60 61 echo "Installing boot image..." 62 # systemd expects to find the kernel h 63 # https://github.com/systemd/systemd/c 64 install -Dm644 "$(${MAKE} -s image_nam 65 66 # Used by mkinitcpio to name the kerne 67 echo "${pkgbase}" > "${modulesdir}/pkg 68 69 echo "Installing modules..." 70 ${MAKE} INSTALL_MOD_PATH="${pkgdir}/us 71 DEPMOD=true modules_install 72 73 if [ -d "${srctree}/arch/${SRCARCH}/bo 74 echo "Installing dtbs..." 75 ${MAKE} INSTALL_DTBS_PATH="${m 76 fi 77 78 # remove build link, will be part of - 79 rm -f "${modulesdir}/build" 80 } 81 82 _package-headers() { 83 pkgdesc="Headers and scripts for build 84 85 local builddir="${pkgdir}/usr/${MODLIB 86 87 _prologue 88 89 if grep -q CONFIG_MODULES=y include/co 90 echo "Installing build files.. 91 "${srctree}/scripts/package/in 92 fi 93 94 echo "Installing System.map and config 95 mkdir -p "${builddir}" 96 cp System.map "${builddir}/System.map" 97 cp .config "${builddir}/.config" 98 99 echo "Adding symlink..." 100 mkdir -p "${pkgdir}/usr/src" 101 ln -sr "${builddir}" "${pkgdir}/usr/sr 102 } 103 104 _package-api-headers() { 105 pkgdesc="Kernel headers sanitized for 106 provides=(linux-api-headers) 107 conflicts=(linux-api-headers) 108 109 _prologue 110 111 ${MAKE} headers_install INSTALL_HDR_PA 112 } 113 114 _package-debug(){ 115 pkgdesc="Non-stripped vmlinux file for 116 117 local debugdir="${pkgdir}/usr/src/debu 118 local builddir="${pkgdir}/usr/${MODLIB 119 120 _prologue 121 122 install -Dt "${debugdir}" -m644 vmlinu 123 mkdir -p "${builddir}" 124 ln -sr "${debugdir}/vmlinux" "${buildd 125 } 126 127 for _p in "${pkgname[@]}"; do 128 eval "package_$_p() { 129 $(declare -f "_package${_p#$pk 130 _package${_p#$pkgbase} 131 }" 132 done
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.