diff options
| author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2019-03-08 04:56:24 -0500 |
|---|---|---|
| committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2019-03-13 13:39:12 -0400 |
| commit | 515f4c633daee7654a199deed3e1939c7933ae2c (patch) | |
| tree | 3fd09e8b3b1b06e225f9b6ed3dccbb6741237b1d /scripts | |
| parent | 7e548e9a54bf4ca420f1874e4a602cafe0ed7671 (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-x | scripts/package/builddeb | 32 |
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 | ||
| 13 | set -e | 13 | set -e |
| 14 | 14 | ||
| 15 | is_enabled() { | ||
| 16 | grep -q "^$1=y" $KCONFIG_CONFIG | ||
| 17 | } | ||
| 18 | |||
| 19 | if_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 | |||
| 15 | create_package() { | 27 | create_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" |
| 63 | esac | 75 | esac |
| 64 | 76 | ||
| 65 | BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" | 77 | BUILD_DEBUG=$(if_enabled_echo CONFIG_DEBUG_INFO Yes) |
| 66 | 78 | ||
| 67 | # Setup the directory structure | 79 | # Setup the directory structure |
| 68 | rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files | 80 | rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files |
| @@ -83,14 +95,14 @@ else | |||
| 83 | fi | 95 | fi |
| 84 | cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path" | 96 | cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path" |
| 85 | 97 | ||
| 86 | if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then | 98 | if 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 |
| 91 | fi | 103 | fi |
| 92 | 104 | ||
| 93 | if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then | 105 | if 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. |
| 131 | debhookdir=${KDEB_HOOKDIR:-/etc/kernel} | 142 | debhookdir=${KDEB_HOOKDIR:-/etc/kernel} |
| 132 | if grep -q '^CONFIG_BLK_DEV_INITRD=y' $KCONFIG_CONFIG; then | ||
| 133 | want_initrd=Yes | ||
| 134 | else | ||
| 135 | want_initrd=No | ||
| 136 | fi | ||
| 137 | for script in postinst postrm preinst prerm ; do | 143 | for 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 | |||
| 145 | export DEB_MAINT_PARAMS="\$*" | 151 | export DEB_MAINT_PARAMS="\$*" |
| 146 | 152 | ||
| 147 | # Tell initramfs builder whether it's wanted | 153 | # Tell initramfs builder whether it's wanted |
| 148 | export INITRD=$want_initrd | 154 | export INITRD=$(if_enabled_echo CONFIG_BLK_DEV_INITRD Yes No) |
| 149 | 155 | ||
| 150 | test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d | 156 | test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d |
| 151 | exit 0 | 157 | exit 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" |
| 161 | if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then | 167 | if 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" |
| 163 | fi | 169 | fi |
| 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" |
| 165 | if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then | 171 | if 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" |
| 167 | fi | 173 | fi |
| 168 | destdir=$kernel_headers_dir/usr/src/linux-headers-$version | 174 | destdir=$kernel_headers_dir/usr/src/linux-headers-$version |
