]> rtime.felk.cvut.cz Git - omk.git/blobdiff - rules/linux/kernelcfg2mk
Adaptation for AQuoSA
[omk.git] / rules / linux / kernelcfg2mk
index be7d1f54c3db340660182843acc7ab1d6d648b75..30497640a3924238bc9f2a12479a5dbf60f73907 100755 (executable)
@@ -1,5 +1,11 @@
 #!/bin/bash
 
+if [ "$OMK_VERBOSE" == "1" ]; then
+  CMD_ECHO=echo
+else
+  CMD_ECHO=true
+fi
+
 if [ $# -lt 1 ] ; then
   echo "kernelcfg2mk: requires linux kernel directory as the first argument"
   exit 2
@@ -12,13 +18,13 @@ if [ $# -gt 1 ] ; then
 fi
 
 if [ ! -e $LINUX_DIR/.config ] ; then
-  echo "kernelcfg2mk: the provided locations doesnot point to configured kernel sources"
+  echo "kernelcfg2mk: the provided location does not point to configured kernel sources"
   echo "        check directory $LINUX_DIR"
   exit 2
 fi
 
 if [ ! -e $LINUX_DIR/.config ] ; then
-  echo "kernelcfg2mk: the provided locations doesnot point to configured kernel sources"
+  echo "kernelcfg2mk: the provided location does not point to configured kernel sources"
   echo "        check directory $LINUX_DIR"
   exit 2
 fi
@@ -41,10 +47,11 @@ KERN_TEST_DIR="$KERN_BUILD_DIR/kern-test-mk"
 
 mkdir -p $KERN_TEST_DIR
 
-#echo MAKERULES_DIR $MAKERULES_DIR
-#echo LINUX_DIR $LINUX_DIR
-#echo KERN_BUILD_DIR $KERN_BUILD_DIR
-#echo KERN_MODULES_DIR $KERN_MODULES_DIR
+$CMD_ECHO MAKERULES_DIR='$MAKERULES_DIR'
+$CMD_ECHO LINUX_DIR='$LINUX_DIR'
+$CMD_ECHO KERN_BUILD_DIR='$KERN_BUILD_DIR'
+$CMD_ECHO KERN_MODULES_DIR='$KERN_MODULES_DIR'
+$CMD_ECHO KERN_TEST_DIR='$KERN_TEST_DIR'
 
 RETVAL="0"
 
@@ -58,9 +65,9 @@ fi
 LINUX_VERSION_MAJOR=$(echo ${LINUX_VERSION} | cut -d. -f1)
 LINUX_VERSION_MINOR=$(echo ${LINUX_VERSION} | cut -d. -f2)
 
-#echo $LINUX_VERSION
-#echo $LINUX_VERSION_MAJOR
-#echo $LINUX_VERSION_MINOR
+$CMD_ECHO Detected LINUX_VERSION=$LINUX_VERSION
+$CMD_ECHO Detected LINUX_VERSION_MAJOR=$LINUX_VERSION_MAJOR
+$CMD_ECHO Detected LINUX_VERSION_MINOR=$LINUX_VERSION_MINOR
 
 
 case $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR in
@@ -79,16 +86,34 @@ case $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR in
        fi
        cd ${KERN_TEST_DIR}
 
+       $CMD_ECHO Writing `pwd`/Makefile
        cat >${KERN_TEST_DIR}/Makefile <<EOF
+include $LINUX_DIR/include/config/auto.conf
+
+MODPOST_OPTS =                                  \\
+ \$(if \$(CONFIG_MODVERSIONS),-m)                  \\
+ \$(if \$(CONFIG_MODULE_SRCVERSION_ALL),-a,)       \\
+ \$(if \$(KBUILD_EXTMOD),-i,-o) \$(kernelsymfile)   \\
+ \$(if \$(KBUILD_EXTMOD),-I \$(modulesymfile))      \\
+ \$(if \$(KBUILD_EXTRA_SYMBOLS), \$(patsubst %, -e %,\$(EXTRA_SYMBOLS))) \\
+ \$(if \$(KBUILD_EXTMOD),-o \$(modulesymfile))      \\
+ \$(if \$(CONFIG_DEBUG_SECTION_MISMATCH),,-S)      \\
+ \$(if \$(CONFIG_MARKERS),-K \$(kernelmarkersfile)) \\
+ \$(if \$(CONFIG_MARKERS),-M \$(markersfile))   \\
+ \$(if \$(KBUILD_EXTMOD)\$(KBUILD_MODPOST_WARN),-w) \\
+ \$(if \$(cross_build),-c)
 
 .PHONY: modules
 modules:
+       if [ "$OMK_VERBOSE" = "1" ]; then env; fi
        @echo LINUX_ARCH="\$(ARCH)" >>flags
        @echo LINUX_LDFLAGS="" >>flags
        @echo LINUX_ARFLAGS="\$(ARFLAGS)" >>flags
        @echo LINUX_CROSS_COMPILE="\$(CROSS_COMPILE)" >>flags
        @echo LINUX_KERNELRELEASE="\$(KERNELRELEASE)" >>flags
+       @$CMD_ECHO LINUX_AFLAGS="\$(AFLAGS)"
        @echo LINUX_AFLAGS="\$(AFLAGS)" | sed 's#Iinclude#I"\$(LINUXDIR)/include"#g'>>flags
+       @$CMD_ECHO LINUX_CFLAGS="\$(CFLAGS)"
        @echo LINUX_CFLAGS="\$(CFLAGS)" | sed 's#Iinclude#I"\$(LINUXDIR)/include"#g'>>flags
        @echo LINUX_MODFLAGS="\$(MODFLAGS)"
        @echo LINUX_CC="\$(CC)" >>flags
@@ -96,10 +121,11 @@ modules:
        @echo LINUX_AS="\$(AS)" >>flags
        @echo LINUX_AR="\$(AR)" >>flags
        @echo LINUX_MODULE_EXT=".o" >>flags
+       @echo MODPOST_OPTS="\$(MODPOST_OPTS)" >>flags
 
 EOF
 
-       #echo ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} modules
+       $CMD_ECHO ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} modules
        ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} modules
        if [ $? == 0 ] ; then
                cp -v flags ${KERN_MODULES_DIR}/kernel.mk       
@@ -111,7 +137,7 @@ EOF
        fi
 
        cd ${KERN_BUILD_DIR}
-       rm -rf ${KERN_TEST_DIR}
+       if [ "$OMK_VERBOSE" != "1" ]; then rm -rf ${KERN_TEST_DIR}; fi
        ;;
 
 #=====================================================================
@@ -128,21 +154,38 @@ EOF
        fi
        cd ${KERN_TEST_DIR}
 
+       $CMD_ECHO Writing `pwd`/Makefile
        cat >${KERN_TEST_DIR}/Makefile <<EOF
+include $LINUX_DIR/include/config/auto.conf
+
+MODPOST_OPTS =                                  \\
+ \$(if \$(CONFIG_MODVERSIONS),-m)                  \\
+ \$(if \$(CONFIG_MODULE_SRCVERSION_ALL),-a,)       \\
+ \$(if \$(KBUILD_EXTMOD),-i,-o) \$(kernelsymfile)   \\
+ \$(if \$(KBUILD_EXTMOD),-I \$(modulesymfile))      \\
+ \$(if \$(KBUILD_EXTRA_SYMBOLS), \$(patsubst %, -e %,\$(EXTRA_SYMBOLS))) \\
+ \$(if \$(KBUILD_EXTMOD),-o \$(modulesymfile))      \\
+ \$(if \$(CONFIG_DEBUG_SECTION_MISMATCH),,-S)      \\
+ \$(if \$(CONFIG_MARKERS),-K \$(kernelmarkersfile)) \\
+ \$(if \$(CONFIG_MARKERS),-M \$(markersfile))   \\
+ \$(if \$(KBUILD_EXTMOD)\$(KBUILD_MODPOST_WARN),-w) \\
+ \$(if \$(cross_build),-c)
+
 obj-m += fake.o
 
 \$(obj)/fake.c: flags
        touch \$(obj)/fake.c
 
 ifeq (\$(KBUILD_SRC),)
-OMK_LINUX_SRC = \$(LINUXDIR)
+  OMK_LINUX_SRC = \$(LINUXDIR)
 else
-OMK_LINUX_SRC = \$(KBUILD_SRC)
+  OMK_LINUX_SRC = \$(KBUILD_SRC)
 endif
 #\$(warning Test \$OMK_LINUX_SRC)
 
 .PHONY: flags
 flags:
+       if [ "$OMK_VERBOSE" = "1" ]; then echo "Environment:" && env; fi
        @echo LINUX_SRC="\$(OMK_LINUX_SRC)" >>\$(obj)/flags
        @echo LINUX_ARCH="\$(ARCH)" >>\$(obj)/flags
        @echo LINUX_BUILDHOST="\$(KBUILD_BUILDHOST)" >>\$(obj)/flags
@@ -150,18 +193,26 @@ flags:
        @echo LINUX_ARFLAGS="\$(ARFLAGS)" >>\$(obj)/flags
        @echo LINUX_CROSS_COMPILE="\$(CROSS_COMPILE)" >>\$(obj)/flags
        @echo LINUX_KERNELRELEASE="\$(KERNELRELEASE)" >>\$(obj)/flags
+       @$CMD_ECHO CPPFLAGS="\$(CPPFLAGS)"
+       @$CMD_ECHO KBUILD_CPPFLAGS="\$(KBUILD_CPPFLAGS)"
+       @$CMD_ECHO AFLAGS="\$(AFLAGS)"
+       @$CMD_ECHO CFLAGS="\$(CFLAGS)"
+       @$CMD_ECHO KBUILD_CFLAGS="\$(KBUILD_CFLAGS)"
+       @$CMD_ECHO LINUXINCLUDE="\$(LINUXINCLUDE)"
+       @$CMD_ECHO CFLAGS_MODULE="\$(CFLAGS_MODULE)"
 ifdef KBUILD_CFLAGS
-       @echo LINUX_CPPFLAGS="\$(KBUILD_CPPFLAGS)\$(if \$(filter -I,\$(KBUILD_CPPFLAGS)),, \$(LINUXINCLUDE))" | sed 's#-I\(include\|arch\)#-I"\$(LINUXDIR)/\1"#g'>>\$(obj)/flags
+       @echo LINUX_CPPFLAGS="\$(KBUILD_CPPFLAGS)" | sed 's#-\(I\|include\) \?\(include\|arch\)#-\1 "\$(OMK_LINUX_SRC)/\2"#g'>>\$(obj)/flags
+       @echo LINUX_CPPFLAGS+="\$(LINUXINCLUDE)" | sed 's#-\(I\|include\) \?\(include\|arch\)#-\1 "\$(OMK_LINUX_SRC)/\2"#g'>>\$(obj)/flags
        @echo LINUX_AFLAGS="\$(KBUILD_AFLAGS)" | sed 's#-I\(include\|arch\)#-I"\$(OMK_LINUX_SRC)/\1"#g'>>\$(obj)/flags
        @echo LINUX_CFLAGS="\$(KBUILD_CFLAGS)" | sed 's#-I\(include\|arch\)#-I"\$(OMK_LINUX_SRC)/\1"#g'>>\$(obj)/flags
 else
-       @echo LINUX_CPPFLAGS="\$(CPPFLAGS)" | sed 's#Iinclude#I"\$(LINUXDIR)/include"#g'>>\$(obj)/flags
+       @echo LINUX_CPPFLAGS="\$(CPPFLAGS)" | sed 's#Iinclude#I"\$(OMK_LINUX_SRC)/include"#g'>>\$(obj)/flags
        @echo LINUX_AFLAGS="\$(AFLAGS)" | sed 's#Iinclude#I"\$(OMK_LINUX_SRC)/include"#g'>>\$(obj)/flags
        @echo LINUX_CFLAGS="\$(CFLAGS)" | sed 's#Iinclude#I"\$(OMK_LINUX_SRC)/include"#g'>>\$(obj)/flags
 endif
        @echo LINUX_CFLAGS_MODULE="\$(CFLAGS_MODULE)" >>\$(obj)/flags
        @echo LINUX_CC="\$(CC)" >>\$(obj)/flags
-       @echo LINUX_LD="\$(LD) \$(LDFLAGS) \$(LDFLAGS_MODULE)" | sed 's#\(\<arch/[^ ]*\.o\>\)#"\$(LINUXDIR)/\1"#g' >>\$(obj)/flags
+       @echo LINUX_LD="\$(LD) \$(LDFLAGS) \$(LDFLAGS_MODULE)" | sed 's#\(\<arch/[^ ]*\.o\>\)#"\$(OMK_LINUX_SRC)/\1"#g' >>\$(obj)/flags
        @echo LINUX_AS="\$(AS)" >>\$(obj)/flags
        @echo LINUX_AR="\$(AR)" >>\$(obj)/flags
        @echo LINUX_MODULE_EXT=".ko" >>\$(obj)/flags
@@ -174,21 +225,12 @@ endif
        @echo LINUX_KBUILD_EXTRA_SYMBOLS=\$(KBUILD_EXTRA_SYMBOLS) >>\$(obj)/flags
        @echo LINUX_KBUILD_MODPOST_WARN=\$(KBUILD_MODPOST_WARN) >>\$(obj)/flags
        @echo LINUX_CROSS_BUILD=\$(cross_build) >>\$(obj)/flags
-EOF
-
-       # modkern_cflags := $(CFLAGS_KERNEL) / $(CFLAGS_MODULE)
-
-       # _c_flags       = $(KBUILD_CFLAGS) $(ccflags-y) $(CFLAGS_$(basetarget).o)
-       # _a_flags       = $(KBUILD_AFLAGS) $(asflags-y) $(AFLAGS_$(basetarget).o)
-       # _cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F))
+       @echo MODPOST_OPTS="\$(MODPOST_OPTS)" >> \$(obj)/flags
 
-       # export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
-       # export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
-       # export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
+EOF
 
-       #  -p V=1
-       #echo ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR} modules
-       ${MAKE} -C ${LINUX_DIR} M=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR}/modver modules
+#      ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR} KBUILD_VERBOSE=1 modules
+       ${MAKE} -C ${LINUX_DIR} M=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR}/modver KBUILD_VERBOSE=$OMK_VERBOSE modules
        #if [ $? == 0 ] ; then
                cp -v flags ${KERN_MODULES_DIR}/kernel.mk       
                if [ ! $? == 0 ] ; then
@@ -199,7 +241,7 @@ EOF
        #fi
 
        cd ${KERN_BUILD_DIR}
-       rm -rf ${KERN_TEST_DIR}
+       if [ "$OMK_VERBOSE" != "1" ]; then rm -rf ${KERN_TEST_DIR}; fi
        ;;
 
 #=====================================================================