#!/bin/bash # # Generate a header that defines the boot kernel. # # taken from initscripts (/etc/rc.d/rc.sysinit) BOOT_KERNEL_H=/boot/kernel.h KERNEL_TYPE=`uname -r | sed 's_^[^se]*\(\|smp\|enterprise\)$_-\1_;s_^-$__'` KERNEL_RELEASE=`uname -r | sed 's|smp\|enterprise||g'` KERNEL_ARCH=`rpm -q --qf '%{ARCH}' kernel$KERNEL_TYPE-$KERNEL_RELEASE 2>/dev/null` if [ -z "$KERNEL_ARCH" ] ; then KERNEL_ARCH=`rpm -q --qf '%{ARCH}' kernel24$KERNEL_TYPE-$KERNEL_RELEASE 2>/dev/null` fi OLD_KERNEL_ARCH_TYPE=`sed -n 's_^/\* Kernel type \(.*\) \*/_\1_p' /boot/kernel.h 2>/dev/null` if [ -n "$KERNEL_ARCH" -a "$KERNEL_ARCH$KERNEL_TYPE" != "$OLD_KERNEL_ARCH_TYPE" ]; then ENTERPRISE='0' SMP='0' UP='0' case "$KERNEL_TYPE" in -smp) SMP='1';; -enterprise) ENTERPRISE='1';; *) UP='1';; esac cat > $BOOT_KERNEL_H << EOF /* This file is automatically generated at boot time. */ #ifndef __BOOT_KERNEL_H_ #define __BOOT_KERNEL_H_ /* Kernel type $KERNEL_ARCH$KERNEL_TYPE */ #ifndef __MODULE_KERNEL_$KERNEL_ARCH #define __MODULE_KERNEL_$KERNEL_ARCH 1 #endif #ifndef __BOOT_KERNEL_ENTERPRISE #define __BOOT_KERNEL_ENTERPRISE $ENTERPRISE #endif #ifndef __BOOT_KERNEL_SMP #define __BOOT_KERNEL_SMP $SMP #endif #ifndef __BOOT_KERNEL_UP #define __BOOT_KERNEL_UP $UP #endif #endif EOF fi