4 echo "kernelcfg2mk: requires linux kernel directory as the first argument"
10 if [ $# -gt 1 ] ; then
14 if [ ! -e $LINUX_DIR/.config ] ; then
15 echo "kernelcfg2mk: the provided locations doesnot point to configured kernel sources"
16 echo " check directory $LINUX_DIR"
20 if [ ! -e $LINUX_DIR/.config ] ; then
21 echo "kernelcfg2mk: the provided locations doesnot point to configured kernel sources"
22 echo " check directory $LINUX_DIR"
26 if [ -z "$KERN_BUILD_DIR" ] ; then
30 if [ -z "$KERN_MODULES_DIR" ] ; then
31 KERN_MODULES_DIR=`pwd`
35 if [ -z "$MAKE" ] ; then
40 KERN_TEST_DIR="$KERN_BUILD_DIR/kern-test-mk"
42 mkdir -p $KERN_TEST_DIR
44 #echo MAKERULES_DIR $MAKERULES_DIR
45 #echo LINUX_DIR $LINUX_DIR
46 #echo KERN_BUILD_DIR $KERN_BUILD_DIR
47 #echo KERN_MODULES_DIR $KERN_MODULES_DIR
51 LINUX_VERSION=$(grep UTS_RELEASE ${LINUX_DIR}/include/linux/version.h | \
52 sed 's/[^"]*"\(.*\)\{1\}"/\1/')
54 LINUX_VERSION_MAJOR=$(echo ${LINUX_VERSION} | cut -d. -f1)
55 LINUX_VERSION_MINOR=$(echo ${LINUX_VERSION} | cut -d. -f2)
58 #echo $LINUX_VERSION_MAJOR
59 #echo $LINUX_VERSION_MINOR
62 case $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR in
65 #=====================================================================
66 # test for 2.4.x kernels
69 rm -f ${KERN_BUILD_DIR}/kernel.mk
70 rm -rf ${KERN_TEST_DIR}
71 mkdir ${KERN_TEST_DIR}
74 cat >${KERN_TEST_DIR}/Makefile <<EOF
78 @echo LINUX_ARCH="\$(ARCH)" >>flags
79 @echo LINUX_LDFLAGS="" >>flags
80 @echo LINUX_ARFLAGS="\$(ARFLAGS)" >>flags
81 @echo LINUX_CROSS_COMPILE="\$(CROSS_COMPILE)" >>flags
82 @echo LINUX_KERNELRELEASE="\$(KERNELRELEASE)" >>flags
83 @echo LINUX_AFLAGS="\$(AFLAGS)" | sed 's_Iinclude_I"\$(LINUXDIR)/include"_g'>>flags
84 @echo LINUX_CFLAGS="\$(CFLAGS)" | sed 's_Iinclude_I"\$(LINUXDIR)/include"_g'>>flags
85 @echo LINUX_MODFLAGS="\$(MODFLAGS)"
86 @echo LINUX_CC="\$(CC)" >>flags
87 @echo LINUX_LD="\$(LD) \$(LDFLAGS)" >>flags
88 @echo LINUX_AS="\$(AS)" >>flags
89 @echo LINUX_AR="\$(AR)" >>flags
90 @echo LINUX_MODULE_EXT=".o" >>flags
94 #echo ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} modules
95 ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} modules
97 cp -v flags ${KERN_MODULES_DIR}/kernel.mk
98 if [ ! $? == 0 ] ; then
106 rm -rf ${KERN_TEST_DIR}
109 #=====================================================================
110 # test for 2.6.x kernels
114 rm -f ${KERN_BUILD_DIR}/kernel.mk
115 rm -rf ${KERN_TEST_DIR}
116 mkdir ${KERN_TEST_DIR}
119 cat >${KERN_TEST_DIR}/Makefile <<EOF
122 \$(obj)/fake.c: flags
125 ifeq (\$(KBUILD_SRC),)
126 OMK_LINUX_SRC = \$(LINUXDIR)
128 OMK_LINUX_SRC = \$(KBUILD_SRC)
130 #\$(warning Test \$OMK_LINUX_SRC)
134 @echo LINUX_SRC="\$(OMK_LINUX_SRC)" >>\$(obj)/flags
135 @echo LINUX_ARCH="\$(ARCH)" >>\$(obj)/flags
136 @echo LINUX_LDFLAGS="" >>\$(obj)/flags
137 @echo LINUX_ARFLAGS="\$(ARFLAGS)" >>\$(obj)/flags
138 @echo LINUX_CROSS_COMPILE="\$(CROSS_COMPILE)" >>\$(obj)/flags
139 @echo LINUX_KERNELRELEASE="\$(KERNELRELEASE)" >>\$(obj)/flags
140 @echo LINUX_CPPFLAGS="\$(CPPFLAGS)" | sed 's_Iinclude_I"\$(LINUXDIR)/include"_g'>>\$(obj)/flags
141 @echo LINUX_AFLAGS="\$(AFLAGS)" | sed 's_Iinclude_I"\$(OMK_LINUX_SRC)/include"_g'>>\$(obj)/flags
142 @echo LINUX_CFLAGS="\$(CFLAGS)" | sed 's_Iinclude_I"\$(OMK_LINUX_SRC)/include"_g'>>\$(obj)/flags
143 @echo LINUX_CFLAGS_MODULE="\$(CFLAGS_MODULE)" >>\$(obj)/flags
144 @echo LINUX_CC="\$(CC)" >>\$(obj)/flags
145 @echo LINUX_LD="\$(LD) \$(LDFLAGS) \$(LDFLAGS_MODULE)" >>\$(obj)/flags
146 @echo LINUX_AS="\$(AS)" >>\$(obj)/flags
147 @echo LINUX_AR="\$(AR)" >>\$(obj)/flags
148 @echo LINUX_MODULE_EXT=".ko" >>\$(obj)/flags
152 #echo ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR} modules
153 ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR} modules
154 #if [ $? == 0 ] ; then
155 cp -v flags ${KERN_MODULES_DIR}/kernel.mk
156 if [ ! $? == 0 ] ; then
164 rm -rf ${KERN_TEST_DIR}
167 #=====================================================================
170 echo "Unsupported Linux version $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR"