diff --git a/kernel-release.spec b/kernel-release.spec
index fa913a3..ce7e8b4 100644
--- a/kernel-release.spec
+++ b/kernel-release.spec
@@ -1012,61 +1012,76 @@ CreateConfig() {
# (crazy) do not use %{S:X} to copy, if someone messes up we end up with broken stuff again
case ${arch} in
i?86)
- rm -rf .config
- %if %{with build_desktop}
- %if %{with gcc}
- cp -v ${config_dir}/i686-desktop-gcc-omv-defconfig .config
- %endif
- %if %{with clang}
- cp -v ${config_dir}/i686-desktop-clang-omv-defconfig .config
- %endif
- %endif
- %if %{with build_server}
- %if %{with gcc}
- cp -v ${config_dir}/i686-server-gcc-omv-defconfig .config
- %endif
- %if %{with clang}
- cp -v ${config_dir}/i686-server-clang-omv-defconfig .config
- %endif
- %endif
+ case ${type} in
+ desktop)
+ rm -rf .config
+ cp -v ${config_dir}/i686-desktop-gcc-omv-defconfig .config
+ ;;
+ desktop-clang)
+ rm -rf .config
+ cp -v ${config_dir}/i686-desktop-clang-omv-defconfig .config
+ ;;
+ server)
+ rm -rf .config
+ cp -v ${config_dir}/i686-server-gcc-omv-defconfig .config
+ ;;
+ server-clang)
+ rm -rf .config
+ cp -v ${config_dir}/i686-server-clang-omv-defconfig .config
+ ;;
+ *)
+ printf '%s\n' "ERROR: no such type ${type}"
+ exit 1
+ ;;
+ esac
;;
x86_64)
- rm -rf .config
- %if %{with build_desktop}
- %if %{with gcc}
- cp -v ${config_dir}/x86_64-desktop-gcc-omv-defconfig .config
- %endif
- %if %{with clang}
- cp -v ${config_dir}/x86_64-desktop-clang-omv-defconfig .config
- %endif
- %endif
- %if %{with build_server}
- %if %{with gcc}
- cp -v ${config_dir}/x86_64-server-gcc-omv-defconfig .config
- %endif
- %if %{with clang}
- cp -v ${config_dir}/x86_64-server-clang-omv-defconfig .config
- %endif
- %endif
+ case ${type} in
+ desktop)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-desktop-gcc-omv-defconfig .config
+ ;;
+ desktop-clang)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-desktop-clang-omv-defconfig .config
+ ;;
+ server)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-server-gcc-omv-defconfig .config
+ ;;
+ server-clang)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-server-clang-omv-defconfig .config
+ ;;
+ *)
+ printf '%s\n' "ERROR: no such type ${type}"
+ exit 1
+ ;;
+ esac
;;
znver1)
- rm -rf .config
- %if %{with build_desktop}
- %if %{with gcc}
- cp -v ${config_dir}/x86_64-znver-desktop-gcc-omv-defconfig .config
- %endif
- %if %{with clang}
- cp -v ${config_dir}/x86_64-znver-desktop-clang-omv-defconfig .config
- %endif
- %endif
- %if %{with build_server}
- %if %{with gcc}
- cp -v ${config_dir}/x86_64-znver-server-gcc-omv-defconfig .config
- %endif
- %if %{with clang}
- cp -v ${config_dir}/x86_64-znver-server-clang-omv-defconfig .config
- %endif
- %endif
+ case ${type} in
+ desktop)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-znver-desktop-gcc-omv-defconfig .config
+ ;;
+ desktop-clang)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-znver-desktop-clang-omv-defconfig .config
+ ;;
+ server)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-znver-server-gcc-omv-defconfig .config
+ ;;
+ server-clang)
+ rm -rf .config
+ cp -v ${config_dir}/x86_64-znver-server-clang-omv-defconfig .config
+ ;;
+ *)
+ printf '%s\n' "ERROR: no such type ${type}"
+ exit 1
+ ;;
+ esac
;;
ppc64)
CONFIGS=pseries_defconfig