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
}
usage;
fi
+if [ $MULTIORSINGLE = m ]; then
+ VFS_CODE="yaffs_vfs_multi.c"
+ MTD1_CODE="yaffs_mtdif1_multi.c"
+ MTD2_CODE="yaffs_mtdif2_multi.c"
+elif [ $MULTIORSINGLE = s ]; then
+ VFS_CODE="yaffs_vfs_single.c"
+ MTD1_CODE="yaffs_mtdif1_single.c"
+ MTD2_CODE="yaffs_mtdif2_single.c"
+
+ echo ""
+ echo "*** Warning ***"
+ echo "You have chosen to use the single kernel variant of the yaffs VFS glue code"
+ echo "that only works with the latest Linux kernel tree. If you are using an older"
+ echo "version of Linux then you probably wanted to use the multi-version variant by"
+ echo "re-running the patch-ker.sh script using m as a the second argument."
+ echo " ie $0 $COPYORLINK m $LINUXDIR"
+ echo ""
+else
+ echo "unknown multi/single version selection"
+ usage;
+fi
+
# Check if kerneldir contains a Makefile
if [ ! -f $LINUXDIR/Makefile ]
if [ -e $YAFFSDIR ]
then
- echo "$YAFFSDIR exists, not patching."
- echo "If you want to replace what is already there then delete $YAFFSDIR"
+ echo "$YAFFSDIR exists, so not patching. If you want to replace what is"
+ echo "already there then delete $YAFFSDIR and re-run this script"
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_mtdif[12]*.c
+ $CPY $PWD/$VFS_CODE $LINUXDIR/fs/yaffs2/yaffs_vfs.c
+ $CPY $PWD/$MTD1_CODE $LINUXDIR/fs/yaffs2/yaffs_mtdif1.c
+ $CPY $PWD/$MTD2_CODE $LINUXDIR/fs/yaffs2/yaffs_mtdif2.c
fi