aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2019-03-08 04:56:24 -0500
committerMasahiro Yamada <yamada.masahiro@socionext.com>2019-03-13 13:39:12 -0400
commit515f4c633daee7654a199deed3e1939c7933ae2c (patch)
tree3fd09e8b3b1b06e225f9b6ed3dccbb6741237b1d /scripts
parent7e548e9a54bf4ca420f1874e4a602cafe0ed7671 (diff)
kbuild: deb-pkg: introduce is_enabled and if_enabled_echo to builddeb
I think is_enabled() and if_enable_echo() in scripts/package/mkdebian are useful. builddeb also has many repetitive greps over the kernel config, so I borrowed the idea to clean it up. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/package/builddeb32
1 files changed, 19 insertions, 13 deletions
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 8ac25d10a6ad..e2cb43895e14 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -12,6 +12,18 @@
12 12
13set -e 13set -e
14 14
15is_enabled() {
16 grep -q "^$1=y" $KCONFIG_CONFIG
17}
18
19if_enabled_echo() {
20 if is_enabled "$1"; then
21 echo -n "$2"
22 elif [ $# -ge 3 ]; then
23 echo -n "$3"
24 fi
25}
26
15create_package() { 27create_package() {
16 local pname="$1" pdir="$2" 28 local pname="$1" pdir="$2"
17 29
@@ -62,7 +74,7 @@ parisc|mips|powerpc)
62 installed_image_path="boot/vmlinuz-$version" 74 installed_image_path="boot/vmlinuz-$version"
63esac 75esac
64 76
65BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" 77BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes)
66 78
67# Setup the directory structure 79# Setup the directory structure
68rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files 80rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
@@ -83,14 +95,14 @@ else
83fi 95fi
84cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path" 96cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path"
85 97
86if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then 98if is_enabled CONFIG_OF_EARLY_FLATTREE; then
87 # Only some architectures with OF support have this target 99 # Only some architectures with OF support have this target
88 if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then 100 if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then
89 $MAKE -f $srctree/Makefile INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install 101 $MAKE -f $srctree/Makefile INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install
90 fi 102 fi
91fi 103fi
92 104
93if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then 105if is_enabled CONFIG_MODULES; then
94 INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_install 106 INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_install
95 rm -f "$tmpdir/lib/modules/$version/build" 107 rm -f "$tmpdir/lib/modules/$version/build"
96 rm -f "$tmpdir/lib/modules/$version/source" 108 rm -f "$tmpdir/lib/modules/$version/source"
@@ -111,8 +123,7 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
111 done 123 done
112 124
113 # resign stripped modules 125 # resign stripped modules
114 MODULE_SIG_ALL="$(grep -s '^CONFIG_MODULE_SIG_ALL=y' $KCONFIG_CONFIG || true)" 126 if is_enabled CONFIG_MODULE_SIG_ALL; then
115 if [ -n "$MODULE_SIG_ALL" ]; then
116 INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_sign 127 INSTALL_MOD_PATH="$tmpdir" $MAKE -f $srctree/Makefile modules_sign
117 fi 128 fi
118 fi 129 fi
@@ -129,11 +140,6 @@ fi
129# make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and 140# make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and
130# so do we; recent versions of dracut and initramfs-tools will obey this. 141# so do we; recent versions of dracut and initramfs-tools will obey this.
131debhookdir=${KDEB_HOOKDIR:-/etc/kernel} 142debhookdir=${KDEB_HOOKDIR:-/etc/kernel}
132if grep -q '^CONFIG_BLK_DEV_INITRD=y' $KCONFIG_CONFIG; then
133 want_initrd=Yes
134else
135 want_initrd=No
136fi
137for script in postinst postrm preinst prerm ; do 143for script in postinst postrm preinst prerm ; do
138 mkdir -p "$tmpdir$debhookdir/$script.d" 144 mkdir -p "$tmpdir$debhookdir/$script.d"
139 cat <<EOF > "$tmpdir/DEBIAN/$script" 145 cat <<EOF > "$tmpdir/DEBIAN/$script"
@@ -145,7 +151,7 @@ set -e
145export DEB_MAINT_PARAMS="\$*" 151export DEB_MAINT_PARAMS="\$*"
146 152
147# Tell initramfs builder whether it's wanted 153# Tell initramfs builder whether it's wanted
148export INITRD=$want_initrd 154export INITRD=$(if_enabled_echo CONFIG_BLK_DEV_INITRD Yes No)
149 155
150test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d 156test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d
151exit 0 157exit 0
@@ -158,11 +164,11 @@ done
158(cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles" 164(cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles"
159(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" 165(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
160(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" 166(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
161if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then 167if is_enabled CONFIG_STACK_VALIDATION; then
162 (cd $objtree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrobjfiles" 168 (cd $objtree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrobjfiles"
163fi 169fi
164(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" 170(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
165if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then 171if is_enabled CONFIG_GCC_PLUGINS; then
166 (cd $objtree; find scripts/gcc-plugins -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles" 172 (cd $objtree; find scripts/gcc-plugins -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles"
167fi 173fi
168destdir=$kernel_headers_dir/usr/src/linux-headers-$version 174destdir=$kernel_headers_dir/usr/src/linux-headers-$version