1fc4da9a3SMichal Marek#!/bin/sh 2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 3fc4da9a3SMichal Marek# 4fc4da9a3SMichal Marek# A depmod wrapper used by the toplevel Makefile 5fc4da9a3SMichal Marek 65a144a1aSMasahiro Yamadaif test $# -ne 2; then 75a144a1aSMasahiro Yamada echo "Usage: $0 /sbin/depmod <kernelrelease>" >&2 8fc4da9a3SMichal Marek exit 1 9fc4da9a3SMichal Marekfi 10fc4da9a3SMichal MarekDEPMOD=$1 11fc4da9a3SMichal MarekKERNELRELEASE=$2 12fc4da9a3SMichal Marek 13934193a6SRandy Dunlapif ! test -r System.map ; then 14f0b0d88aSRandy Dunlap echo "Warning: modules_install: missing 'System.map' file. Skipping depmod." >&2 15fc4da9a3SMichal Marek exit 0 16fc4da9a3SMichal Marekfi 178937e897SJames Hogan 18934193a6SRandy Dunlapif [ -z $(command -v $DEPMOD) ]; then 19914b087fSRandy Dunlap echo "Warning: 'make modules_install' requires $DEPMOD. Please install it." >&2 20934193a6SRandy Dunlap echo "This is probably in the kmod package." >&2 21914b087fSRandy Dunlap exit 0 22934193a6SRandy Dunlapfi 23934193a6SRandy Dunlap 24bfe5424aSMichal Marek# older versions of depmod require the version string to start with three 25bfe5424aSMichal Marek# numbers, so we cheat with a symlink here 26bfe5424aSMichal Marekdepmod_hack_needed=true 278fc62e59SMichal Marektmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/depmod.XXXXXX) 288fc62e59SMichal Marekmkdir -p "$tmp_dir/lib/modules/$KERNELRELEASE" 298fc62e59SMichal Marekif "$DEPMOD" -b "$tmp_dir" $KERNELRELEASE 2>/dev/null; then 308fc62e59SMichal Marek if test -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep" -o \ 318fc62e59SMichal Marek -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep.bin"; then 32bfe5424aSMichal Marek depmod_hack_needed=false 33bfe5424aSMichal Marek fi 34bfe5424aSMichal Marekfi 358fc62e59SMichal Marekrm -rf "$tmp_dir" 36bfe5424aSMichal Marekif $depmod_hack_needed; then 37bfe5424aSMichal Marek symlink="$INSTALL_MOD_PATH/lib/modules/99.98.$KERNELRELEASE" 38bfe5424aSMichal Marek ln -s "$KERNELRELEASE" "$symlink" 39bfe5424aSMichal Marek KERNELRELEASE=99.98.$KERNELRELEASE 40bfe5424aSMichal Marekfi 41bfe5424aSMichal Marek 42fc4da9a3SMichal Marekset -- -ae -F System.map 43fc4da9a3SMichal Marekif test -n "$INSTALL_MOD_PATH"; then 44fc4da9a3SMichal Marek set -- "$@" -b "$INSTALL_MOD_PATH" 45fc4da9a3SMichal Marekfi 465a144a1aSMasahiro Yamada"$DEPMOD" "$@" "$KERNELRELEASE" 47bfe5424aSMichal Marekret=$? 48bfe5424aSMichal Marek 49bfe5424aSMichal Marekif $depmod_hack_needed; then 50bfe5424aSMichal Marek rm -f "$symlink" 51bfe5424aSMichal Marekfi 52bfe5424aSMichal Marek 53bfe5424aSMichal Marekexit $ret 54