diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2015-12-20 22:18:11 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2015-12-20 22:19:19 +0100 |
commit | 7f58f90b8f6ba4ec94ea92769e966dfc5ad95137 (patch) | |
tree | db9e291b0a984d19b8dbd4cc3a8cbd7a414bd916 /scripts | |
parent | aaa8063368367c7a63064c139617fb7f2264e55f (diff) |
use strings instead of modinfo for a portable way
Idea from Phil to have a portable method to find
the kernel module dependencies. make-module-ipkgs.sh
uses associative arrays, so check for bash version 4.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/make-module-ipkgs.sh | 3 | ||||
-rwxr-xr-x | scripts/prereq.sh | 56 |
2 files changed, 37 insertions, 22 deletions
diff --git a/scripts/make-module-ipkgs.sh b/scripts/make-module-ipkgs.sh index aeef76f10..e50340c0a 100644 --- a/scripts/make-module-ipkgs.sh +++ b/scripts/make-module-ipkgs.sh @@ -28,6 +28,7 @@ BUILD_DIR="$3" PKG_BUILD="$4" PACKAGE_DIR="$5" +# declare associative arrays declare -A modpaths moddeps modlevels # recursively find a level for given module which is high enough so all @@ -48,7 +49,7 @@ pkgname() { # (modname) for modpath in $(find ${BUILD_DIR}/modules -name \*.ko | xargs); do modname="$(basename $modpath .ko)" - moddep="$(modinfo $modpath | awk '/^depends:/{print $2}' | sed 's/,/ /g')" + moddep="$(strings $modpath | awk -F= '/^depends=/{print $2}' | sed 's/,/ /g')" modpaths[$modname]="$modpath" moddeps[$modname]="$moddep" done diff --git a/scripts/prereq.sh b/scripts/prereq.sh index 9b82b2b74..f0d5c48ed 100755 --- a/scripts/prereq.sh +++ b/scripts/prereq.sh @@ -206,28 +206,33 @@ done printf " ---> checking if bash is installed.. " if which bash >/dev/null; then printf "found\n" -else - # we need to build GNU bash - printf "not found\n" - printf " ---> compiling missing GNU bash.. " - cd dl - $FETCHCMD bash-${bashver}.tar.gz $mirror/bash-${bashver}.tar.gz - if [ $? -ne 0 ]; then - printf "ERROR: failed to download make from $mirror\n" - exit 1 + printf " ---> checking if it is bash 4.x.. " + bash --version 2>/dev/null| grep "Version 4" >/dev/null + if [ $? -eq 0 ]; then + printf "yes\n" + else + # we need to build GNU bash 4.x + printf "not found\n" + printf " ---> compiling missing GNU bash.. " + cd dl + $FETCHCMD bash-${bashver}.tar.gz $mirror/bash-${bashver}.tar.gz + if [ $? -ne 0 ]; then + printf "ERROR: failed to download make from $mirror\n" + exit 1 + fi + cd .. + mkdir tmp + cd tmp + tar xzf ../dl/bash-${bashver}.tar.gz + cd bash-${bashver} + ./configure --prefix=$topdir/host_$gnu_host_name/ + make + make install + cd .. + cd .. + rm -rf tmp + printf " done\n" fi - cd .. - mkdir tmp - cd tmp - tar xzf ../dl/bash-${bashver}.tar.gz - cd bash-${bashver} - ./configure --prefix=$topdir/host_$gnu_host_name/ - make - make install - cd .. - cd .. - rm -rf tmp - printf " done\n" fi # skip the script if distclean / cleandir @@ -237,6 +242,15 @@ if [ "$target" = "distclean" -o "$target" = "cleandir" ]; then exit 0 fi +printf " ---> checking if strings is installed.. " +if ! which strings >/dev/null 2>&1; then + echo You must install strings to continue. + echo + out=1 + printf "not found\n" +fi +printf "found\n" + printf " ---> checking if perl is installed.. " if ! which perl >/dev/null 2>&1; then echo You must install perl to continue. |