Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/scripts/package/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  PKGBUILD   Sprache: unbekannt

 
Spracherkennung für: vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

# SPDX-License-Identifier: GPL-2.0-only
# Maintainer: Thomas Weißschuh <linux@weissschuh.net>
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>

pkgbase=${PACMAN_PKGBASE:-linux-upstream}
pkgname=("${pkgbase}")

_extrapackages=${PACMAN_EXTRAPACKAGES-headers api-headers debug}
for pkg in $_extrapackages; do
 pkgname+=("${pkgbase}-${pkg}")
done

pkgver="${KERNELRELEASE//-/_}"
# The PKGBUILD is evaluated multiple times.
# Running scripts/build-version from here would introduce inconsistencies.
pkgrel="${KBUILD_REVISION}"
pkgdesc='Upstream Linux'
url='https://www.kernel.org/'
# Enable flexible cross-compilation
arch=(${CARCH})
license=(GPL-2.0-only)
makedepends=(
 bc
 bison
 flex
 gettext
 kmod
 libelf
 openssl
 pahole
 perl
 python
 rsync
 tar
)
options=(!debug !strip !buildflags !makeflags)

_prologue() {
 # MAKEFLAGS from makepkg.conf override the ones inherited from kbuild.
 # Bypass this override with a custom variable.
 export MAKEFLAGS="${KBUILD_MAKEFLAGS}"

 # Kbuild works in the output directory, where this PKGBUILD is located.
 cd "$(dirname "${BASH_SOURCE[0]}")"
}

build() {
 _prologue

 ${MAKE} KERNELRELEASE="${KERNELRELEASE}" KBUILD_BUILD_VERSION="${pkgrel}"
}

_package() {
 pkgdesc="The ${pkgdesc} kernel and modules"

 local modulesdir="${pkgdir}/usr/lib/modules/${KERNELRELEASE}"

 _prologue

 echo "Installing boot image..."
 # systemd expects to find the kernel here to allow hibernation
 # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
 install -Dm644 "$(${MAKE} -s image_name)" "${modulesdir}/vmlinuz"

 # Used by mkinitcpio to name the kernel
 echo "${pkgbase}" > "${modulesdir}/pkgbase"

 echo "Installing modules..."
 ${MAKE} INSTALL_MOD_PATH="${pkgdir}/usr" INSTALL_MOD_STRIP=1 \
  DEPMOD=true modules_install

 if [ -d "${srctree}/arch/${SRCARCH}/boot/dts" ]; then
  echo "Installing dtbs..."
  ${MAKE} INSTALL_DTBS_PATH="${modulesdir}/dtb" dtbs_install
 fi

 # remove build link, will be part of -headers package
 rm -f "${modulesdir}/build"
}

_package-headers() {
 pkgdesc="Headers and scripts for building modules for the ${pkgdesc} kernel"

 local builddir="${pkgdir}/usr/lib/modules/${KERNELRELEASE}/build"

 _prologue

 if grep -q CONFIG_MODULES=y include/config/auto.conf; then
  echo "Installing build files..."
  "${srctree}/scripts/package/install-extmod-build" "${builddir}"
 fi

 echo "Installing System.map and config..."
 mkdir -p "${builddir}"
 cp System.map "${builddir}/System.map"
 cp .config "${builddir}/.config"

 echo "Adding symlink..."
 mkdir -p "${pkgdir}/usr/src"
 ln -sr "${builddir}" "${pkgdir}/usr/src/${pkgbase}"
}

_package-api-headers() {
 pkgdesc="Kernel headers sanitized for use in userspace"
 provides=(linux-api-headers="${pkgver}")
 conflicts=(linux-api-headers)

 _prologue

 ${MAKE} headers_install INSTALL_HDR_PATH="${pkgdir}/usr"
}

_package-debug(){
 pkgdesc="Non-stripped vmlinux file for the ${pkgdesc} kernel"

 local debugdir="${pkgdir}/usr/src/debug/${pkgbase}"
 local builddir="${pkgdir}/usr/lib/modules/${KERNELRELEASE}/build"

 _prologue

 install -Dt "${debugdir}" -m644 vmlinux
 mkdir -p "${builddir}"
 ln -sr "${debugdir}/vmlinux" "${builddir}/vmlinux"
}

for _p in "${pkgname[@]}"; do
 eval "package_$_p() {
  $(declare -f "_package${_p#$pkgbase}")
  _package${_p#$pkgbase}
 }"
done

[ Dauer der Verarbeitung: 0.31 Sekunden  ]