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: C

 
# 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.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.