summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-12-20 22:18:11 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2015-12-20 22:19:19 +0100
commit7f58f90b8f6ba4ec94ea92769e966dfc5ad95137 (patch)
treedb9e291b0a984d19b8dbd4cc3a8cbd7a414bd916 /scripts
parentaaa8063368367c7a63064c139617fb7f2264e55f (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.sh3
-rwxr-xr-xscripts/prereq.sh56
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.