Make possible to compile XEN based kernels providing --kernel-target= and --kernel...
authorFabio Erculiani <lxnay@sabayon.org>
Wed, 20 Jul 2011 15:54:56 +0000 (17:54 +0200)
committerFabio Erculiani <lxnay@sabayon.org>
Wed, 20 Jul 2011 15:54:56 +0000 (17:54 +0200)
defaults/config.sh
doc/genkernel.8.txt
gen_cmdline.sh
gen_compile.sh

index 7f339eac6b4fff03c3d1ca0375d6b0d2021cd423..6d267577ede6614eb7a26a4555c9629145b805ec 100755 (executable)
@@ -3,8 +3,10 @@
 # Arch-specific options that normally shouldn't be changed.
 #
 KERNEL_MAKE_DIRECTIVE="bzImage"
+KERNEL_MAKE_DIRECTIVE_OVERRIDE="--INVALID--"
 KERNEL_MAKE_DIRECTIVE_2=""
 KERNEL_BINARY="arch/i386/boot/bzImage"
+KERNEL_BINARY_OVERRIDE=""
 
 COMPRESS_INITRD=yes
 
index 2d7f77538a6a3c7d1bc2aac4be6be6b01faa2438..fc00834eaf8caf583e020c7329fd304d338f5b0f 100644 (file)
@@ -189,6 +189,12 @@ LOW-LEVEL COMPILATION OPTIONS
 *--kernel-make*=<makeprg>::
     GNU Make to use for the kernel compilation.
 
+*--kernel-target*=<t>::
+    Override default make target (bzImage)
+
+*--kernel-binary*=<path>::
+    Override default kernel binary path (arch/foo/boot/bar)
+
 *--utils-cc*=<compiler>::
     Compiler to use for utilities.
 
index f7eb7072085829126bc15d3c5fafbe8455c89b80..b3e451d51c345b28f110af2937b04323d0758271 100755 (executable)
@@ -57,6 +57,9 @@ longusage() {
   echo "       --kernel-ld=<linker>    Linker to use for kernel"
   echo "       --kernel-cross-compile=<cross var> CROSS_COMPILE kernel variable"
   echo "       --kernel-make=<makeprg> GNU Make to use for kernel"
+  echo "       --kernel-target=<t>     Override default make target (bzImage)"
+  echo "       --kernel-binary=<path>  Override default kernel binary path (arch/foo/boot/bar)"
+
   echo "       --utils-cc=<compiler>   Compiler to use for utilities"
   echo "       --utils-as=<assembler>  Assembler to use for utils"
   echo "       --utils-ld=<linker>     Linker to use for utils"
@@ -166,6 +169,14 @@ parse_cmdline() {
                        CMD_KERNEL_MAKE=`parse_opt "$*"`
                        print_info 2 "CMD_KERNEL_MAKE: ${CMD_KERNEL_MAKE}"
                        ;;
+               --kernel-target=*)
+                       KERNEL_MAKE_DIRECTIVE_OVERRIDE=`parse_opt "$*"`
+                       print_info 2 "KERNEL_MAKE_DIRECTIVE_OVERRIDE: ${KERNEL_MAKE_DIRECTIVE_OVERRIDE}"
+                       ;;
+               --kernel-binary=*)
+                       KERNEL_BINARY_OVERRIDE=`parse_opt "$*"`
+                       print_info 2 "KERNEL_BINARY_OVERRIDE: ${KERNEL_BINARY_OVERRIDE}"
+                       ;;
                --kernel-cross-compile=*)
                        CMD_KERNEL_CROSS_COMPILE=`parse_opt "$*"`
                        CMD_KERNEL_CROSS_COMPILE=$(echo ${CMD_KERNEL_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
index 3a815e83c613d5494191f87dd4969ae7304a5b0f..9fc35afc29132fd2880609d5b488bbd61fea2b5e 100755 (executable)
@@ -296,8 +296,12 @@ compile_kernel() {
        [ "${KERNEL_MAKE}" = '' ] &&
                gen_die "KERNEL_MAKE undefined - I don't know how to compile a kernel for this arch!"
        cd ${KERNEL_DIR}
-       print_info 1 "        >> Compiling ${KV} ${KERNEL_MAKE_DIRECTIVE/_install/ [ install ]/}..."
-       compile_generic "${KERNEL_MAKE_DIRECTIVE}" kernel
+       local kernel_make_directive="${KERNEL_MAKE_DIRECTIVE}"
+       if [ "${KERNEL_MAKE_DIRECTIVE_OVERRIDE}" != "--INVALID--" ]; then
+               kernel_make_directive="${KERNEL_MAKE_DIRECTIVE_OVERRIDE}"
+       fi
+       print_info 1 "        >> Compiling ${KV} ${kernel_make_directive/_install/ [ install ]/}..."
+       compile_generic "${kernel_make_directive}" kernel
        if [ "${KERNEL_MAKE_DIRECTIVE_2}" != '' ]
        then
                print_info 1 "        >> Starting supplimental compile of ${KV}: ${KERNEL_MAKE_DIRECTIVE_2}..."
@@ -313,7 +317,7 @@ compile_kernel() {
                print_info 1 "        >> Not installing firmware as it's included in the kernel already (CONFIG_FIRMWARE_IN_KERNEL=y)..."
        fi
 
-       local tmp_kernel_binary=$(find_kernel_binary ${KERNEL_BINARY})
+       local tmp_kernel_binary=$(find_kernel_binary ${KERNEL_BINARY_OVERRIDE:-${KERNEL_BINARY}})
        local tmp_kernel_binary2=$(find_kernel_binary ${KERNEL_BINARY_2})
        if [ -z "${tmp_kernel_binary}" ]
        then