Add --all-initrd-modules option to copy all kernel modules into initrd/ramfs. This...
[genkernel.git] / gen_moddeps.sh
1 #!/bin/bash
2
3 modules_kext()
4 {
5         if [ "${PAT}" -gt "4" ]
6         then
7                 KEXT=".ko"
8         else
9                 KEXT=".o"
10         fi
11         echo ${KEXT}
12 }
13
14 modules_dep_list()
15 {
16         KEXT=$(modules_kext)
17         if [ -f ${INSTALL_MOD_PATH}/lib/modules/${KV}/modules.dep ]
18         then
19                 cat ${INSTALL_MOD_PATH}/lib/modules/${KV}/modules.dep | grep ${1}${KEXT}\: | cut -d\:  -f2
20         fi
21 }
22
23 # Pass module deps list
24 strip_mod_paths()
25 {
26         local x
27         local ret
28         local myret
29
30         for x in ${*}
31         do
32                 ret=`basename ${x} | cut -d. -f1`
33                 myret="${myret} ${ret}"
34         done
35         echo "${myret}"
36 }
37
38
39 gen_deps()
40 {
41         local modlist
42         local deps
43
44         for x in ${*}
45         do
46                 echo ${x} >> ${TEMP}/moddeps
47                 modlist=`modules_dep_list ${x}`
48                 if [ "${modlist}" != "" -a "${modlist}" != " " ]
49                 then
50                         deps=`strip_mod_paths ${modlist}`
51                 else
52                         deps=""
53                 fi
54                 for y in ${deps}
55                 do
56                         echo ${y} >> ${TEMP}/moddeps
57                 done
58         done
59 }
60
61 gen_dep_list()
62 {
63         if [ "${ALLINITRDMODULES}" = "1" ]; then
64                 strip_mod_paths $(find "${INSTALL_MOD_PATH}/lib/modules/${KV}" -name "*$(modules_kext)") | sort
65         else
66                 local group_modules     
67                 rm -f ${TEMP}/moddeps > /dev/null
68         
69                 for group_modules in ${!MODULES_*}; do
70                         gen_deps ${!group_modules}
71                 done
72
73                 # Only list each module once
74                 if [ -f ${TEMP}/moddeps ]
75                 then
76                     cat ${TEMP}/moddeps | sort | uniq
77                 fi
78         fi
79 }