yaffs Add multi and single version Linux glue code
[yaffs2.git] / patch-ker.sh
index 04e6c2c703cfff3fea99c33737e6ddf751877945..4393e8d01b95cdbe65a4b6d4eb1acb7d330d5497 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # YAFFS: Yet another FFS. A NAND-flash specific file system.
 #
-# Copyright (C) 2002-2006 Aleph One Ltd.
+# Copyright (C) 2002-2010 Aleph One Ltd.
 #
 # Created by Charles Manning <charles@aleph1.co.uk>
 #
 #
 # Patch YAFFS into the kernel
 #
-#  args:  kpath  : Full path to kernel sources to be patched
+#  args:  l/c : link or copy
+#        kpath  : Full path to kernel sources to be patched
 #
 #  Somewhat "inspired by" the mtd patchin script
 #
-#  $Id: patch-ker.sh,v 1.4 2007-12-13 15:35:17 wookey Exp $
 
 VERSION=0
 PATCHLEVEL=0
 SUBLEVEL=0
 COPYORLINK=$1
-LINUXDIR=$2
+MULTIORSINGLE=$2
+LINUXDIR=$3
 
 # To be a Linux directory, it must have a Makefile
 
 
 # Display usage of this script
 usage () {
-       echo "usage:  $0  c/l kernelpath"
+       echo "usage:  $0  c/l m/s kernelpath"
        echo " if c/l is c, then copy. If l then link"
+       echo " if m/s is m, then use multi version code. If s then use single version code"
        exit 1
 }
 
@@ -50,6 +52,15 @@ else
    usage;
 fi
 
+if [ $MULTIORSINGLE = m ]; then
+   VFSGLUE="yaffs_vfs_multi.c"
+elif [ $MULTIORSINGLE = s ]; then
+   VFSGLUE="yaffs_vfs.c"
+else
+   echo "unknown multi/single version selection"
+   usage;
+fi
+
 
 # Check if kerneldir contains a Makefile
 if [ ! -f $LINUXDIR/Makefile ]
@@ -92,12 +103,12 @@ else
     YAFFS_PATCHED=1
     echo "Updating $KCONFIG"
     mv -f $KCONFIG  $KCONFIGOLD
-    sed -n -e "/JFFS/,99999 ! p" $KCONFIGOLD >$KCONFIG
+    sed -n -e "/[Jj][Ff][Ff][Ss]/,99999 ! p" $KCONFIGOLD >$KCONFIG
     echo "">>$KCONFIG
     echo "# Patched by YAFFS" >>$KCONFIG
     echo "source \"fs/yaffs2/Kconfig\"">>$KCONFIG
     echo "">>$KCONFIG
-    sed -n -e "/JFFS/,99999 p" $KCONFIGOLD >>$KCONFIG
+    sed -n -e "/[Jj][Ff][Ff][Ss]/,99999 p" $KCONFIGOLD >>$KCONFIG
 
    # now do fs/Makefile -- simply add the target at the end
     echo "Updating $MAKEFILE"
@@ -112,10 +123,14 @@ YAFFSDIR=$LINUXDIR/fs/yaffs2
 
 if [ -e $YAFFSDIR ]
 then
-   echo "$YAFFSDIR exists, not patching"
+   echo "$YAFFSDIR exists, not patching."
+   echo "If you want to replace what is already there then delete $YAFFSDIR"
+   echo " eg.  \"rm -rf $YAFFSDIR\" "
 else
    mkdir $LINUXDIR/fs/yaffs2
    $CPY  $PWD/Makefile.kernel $LINUXDIR/fs/yaffs2/Makefile
    $CPY $PWD/Kconfig $LINUXDIR/fs/yaffs2
    $CPY $PWD/*.c $PWD/*.h  $LINUXDIR/fs/yaffs2
+   rm $LINUXDIR/fs/yaffs2/yaffs_vfs.c $LINUXDIR/fs/yaffs2/yaffs_vfs_multi.c
+   $CPY $PWD/$VFSGLUE $LINUXDIR/fs/yaffs2/yaffs_vfs_glue.c
 fi