# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
-# $Id: Makefile,v 1.6 2002-10-02 02:11:25 charles Exp $
+# $Id: Makefile,v 1.12 2003-08-20 03:53:39 charles Exp $
#
## Change or override KERNELDIR to your kernel
KERNELDIR = /usr/src/kernel-headers-2.4.18
+## Change if you are using a cross-compiler
+MAKETOOLS =
+
+CC=$(MAKETOOLS)gcc
+LD=$(MAKETOOLS)ld
+
# Configurations...
# Comment out the stuff you don't want.
#
USE_MTD = -DCONFIG_YAFFS_MTD_ENABLED
+# CONFIG_YAFFS_USE_OLD_MTD
+# Enable this to use the old MTD stuff that did not have yaffs support.
+# You can use this to get around compilation problems, but the best
+# thing to do is to upgrade your MTD support. You will get better speed.
+
+#USE_OLD_MTD = -DCONFIG_YAFFS_USE_OLD_MTD
+
+# CONFIG_YAFFS_USE_NANDECC
+# This enables the ECC functions of the generic MTD-NAND driver.
+# This will not work if you are using the old mtd.
+#
+# NB UseNANDECC does not work at present with yaffsram.
+
+USE_NANDECC = -DCONFIG_YAFFS_USE_NANDECC
+
+# CONFIG_YAFFS_ECC_WRONG_ORDER
+# This makes yaffs_ecc.c use the same ecc byte order as
+# Steven Hill's nand_ecc.c. If not set, then you get the
+# same ecc byte order as SmartMedia.
+
+#USE_WRONGECC = -DCONFIG_YAFFS_ECC_WRONG_ORDER
+
# CONFIG_YAFFS_USE_GENERIC_RW
# Use generic_read/generic_write for reading/writing files. This enables the use of the Linux
# file caching layer.
# When the flash is scanned, two file sizes are constructed:
# * The size taken from the object header for the file.
# * The size figured out by scanning the data chunks.
-# If this option is enabled, then the object header size is ued, otherwise the scanned size is used.
+# If this option is enabled, then the object header size is used, otherwise the scanned size is used.
# Suggest leaving this disabled.
#USE_HEADER_FILE_SIZE = -DCONFIG_YAFFS_USE_HEADER_FILE_SIZE
#IGNORE_WRITE_VERIFY = -DCONFIG_YAFFS_DISBLE_WRITE_VERIFY
+#CONFIG_YAFFS_SHORT_NAMES_IN_RAM
+# If this config is set, then short names are stored with the yaffs_Object
+# This costs an extra 16 bytes of RAM per object, but makes look-ups faster.
+
+ENABLE_SHORT_NAMES_IN_RAM = -DCONFIG_SHORT_NAMES_IN_RAM
+
# End of configuration options.
-YAFFS_CONFIGS = $(USE_RAM_FOR_TEST) $(USE_MTD) $(USE_GENERIC_RW) $(USE_HEADER_FILE_SIZE) $(IGNORE_CHUNK_ERASED) $(IGNORE_WRITE_VERIFY)
+YAFFS_CONFIGS = $(USE_RAM_FOR_TEST) $(USE_MTD) $(USE_GENERIC_RW) $(USE_HEADER_FILE_SIZE) $(IGNORE_CHUNK_ERASED) $(IGNORE_WRITE_VERIFY) \
+ $(ENABLE_SHORT_NAMES_IN_RAM) $(USE_NANDECC) $(USE_OLD_MTD) $(USE_WRONGECC)
+
CFLAGS = -D__KERNEL__ -DMODULE $(YAFFS_CONFIGS) -I$(KERNELDIR)/include -O2 -Wall
-OBJS = yaffs_fs.o yaffs_guts.o yaffs_ramem.o yaffs_mtdif.o nand_ecc.o
+OBJS = yaffs_fs.o yaffs_guts.o yaffs_ramem.o yaffs_mtdif.o yaffs_ecc.o
all: yaffs.o
$(OBJS): %.o: %.c Makefile
- gcc -c $(CFLAGS) $< -o $@
+ $(CC) -c $(CFLAGS) $< -o $@
yaffs.o: $(OBJS)
- ld -r $(OBJS) -o $@
+ $(LD) -r $(OBJS) -o $@
clean:
rm -f $(OBJS) core