Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/sh
0002 # SPDX-License-Identifier: GPL-2.0
0003 #
0004 # A depmod wrapper used by the toplevel Makefile
0005 
0006 if test $# -ne 2; then
0007         echo "Usage: $0 /sbin/depmod <kernelrelease>" >&2
0008         exit 1
0009 fi
0010 DEPMOD=$1
0011 KERNELRELEASE=$2
0012 
0013 if ! test -r System.map ; then
0014         echo "Warning: modules_install: missing 'System.map' file. Skipping depmod." >&2
0015         exit 0
0016 fi
0017 
0018 # legacy behavior: "depmod" in /sbin, no /sbin in PATH
0019 PATH="$PATH:/sbin"
0020 if [ -z $(command -v $DEPMOD) ]; then
0021         echo "Warning: 'make modules_install' requires $DEPMOD. Please install it." >&2
0022         echo "This is probably in the kmod package." >&2
0023         exit 0
0024 fi
0025 
0026 # older versions of depmod require the version string to start with three
0027 # numbers, so we cheat with a symlink here
0028 depmod_hack_needed=true
0029 tmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/depmod.XXXXXX)
0030 mkdir -p "$tmp_dir/lib/modules/$KERNELRELEASE"
0031 if "$DEPMOD" -b "$tmp_dir" $KERNELRELEASE 2>/dev/null; then
0032         if test -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep" -o \
0033                 -e "$tmp_dir/lib/modules/$KERNELRELEASE/modules.dep.bin"; then
0034                 depmod_hack_needed=false
0035         fi
0036 fi
0037 rm -rf "$tmp_dir"
0038 if $depmod_hack_needed; then
0039         symlink="$INSTALL_MOD_PATH/lib/modules/99.98.$KERNELRELEASE"
0040         ln -s "$KERNELRELEASE" "$symlink"
0041         KERNELRELEASE=99.98.$KERNELRELEASE
0042 fi
0043 
0044 set -- -ae -F System.map
0045 if test -n "$INSTALL_MOD_PATH"; then
0046         set -- "$@" -b "$INSTALL_MOD_PATH"
0047 fi
0048 "$DEPMOD" "$@" "$KERNELRELEASE"
0049 ret=$?
0050 
0051 if $depmod_hack_needed; then
0052         rm -f "$symlink"
0053 fi
0054 
0055 exit $ret