Add missing default value for some Kconfig's entries.
[yaffs2.git] / Makefile
1 #Makefile for YAFFS2 as a module
2 #
3 # NB this is not yet suitable for putting into the kernel tree.
4 # YAFFS: Yet another FFS. A NAND-flash specific file system. 
5 #
6 # Copyright (C) 2002 Aleph One Ltd.
7 #   for Toby Churchill Ltd and Brightstar Engineering
8 #
9 # Created by Charles Manning <charles@aleph1.co.uk>
10 #
11 # This program is free software; you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License version 2 as
13 # published by the Free Software Foundation.
14 #
15 # $Id: Makefile,v 1.4 2005-07-31 09:26:35 marty Exp $
16 #
17
18 ## Change or override  KERNELDIR to your kernel
19 ## comment out USE_xxxx if you don't want these features.
20
21 KERNELDIR = /usr/src/kernels/2.6.11-1.1369_FC4-i686
22
23 ## Change if you are using a cross-compiler
24 MAKETOOLS = 
25
26 CC=$(MAKETOOLS)gcc
27 LD=$(MAKETOOLS)ld
28
29 # Configurations...
30 # Comment out the stuff you don't want.
31 #
32
33 # CONFIG_YAFFS_YAFFS1
34 # This adds the yaffs file system support for working with a
35 # a 512 byte / page NAND mtd.
36
37 USE_MTD = -DCONFIG_YAFFS_YAFFS1
38
39 # CONFIG_YAFFS_YAFFS2
40 # This adds the yaffs2 file system support for working with a 
41 # 2048 or larger byte / page NAND mtd.
42
43 USE_MTD_2 = -DCONFIG_YAFFS_YAFFS2
44
45
46 # CONFIG_YAFFS_RAM_ENABLED.
47 # This adds the yaffsram file system support. Nice for testing on x86, but uses 2MB of RAM.
48 # Don't enable for NAND-based targets.
49
50 # USE_RAM_FOR_TEST = -DCONFIG_YAFFS_RAM_ENABLED
51
52 # CONFIG_YAFFS2_RAM_ENABLED.
53 # This adds the yaffs2ram file system support. Nice for testing on x86, but uses 2MB of RAM.
54 # Don't enable for NAND-based targets.
55
56 # USE_RAM_FOR_TEST_2 = -DCONFIG_YAFFS2_RAM_ENABLED
57
58 # CONFIG_YAFFS_USE_OLD_MTD
59 # Enable this to use the old MTD stuff that did not have yaffs support.
60 # You can use this to get around compilation problems, but the best
61 # thing to do is to upgrade your MTD support. You will get better speed.
62
63 #USE_OLD_MTD = -DCONFIG_YAFFS_USE_OLD_MTD
64
65 # CONFIG_YAFFS_USE_NANDECC
66 # This enables the ECC functions of the generic MTD-NAND driver.
67 # This will not work if you are using the old mtd.
68 #
69 # NB UseNANDECC does not work at present with yaffsram.
70
71 USE_NANDECC = -DCONFIG_YAFFS_USE_NANDECC
72
73 # CONFIG_YAFFS_ECC_WRONG_ORDER
74 # This makes yaffs_ecc.c use the same ecc byte order as
75 # Steven Hill's nand_ecc.c. If not set, then you get the
76 # same ecc byte order as SmartMedia.
77
78 #USE_WRONGECC = -DCONFIG_YAFFS_ECC_WRONG_ORDER
79
80 # CONFIG_YAFFS_USE_HEADER_FILE_SIZE
81 # When the flash is scanned, two file sizes are constructed:
82 # * The size taken from the object header for the file.
83 # * The size figured out by scanning the data chunks.
84 # If this option is enabled, then the object header size is used, otherwise the scanned size is used.
85 # Suggest leaving this disabled.
86
87 #USE_HEADER_FILE_SIZE = -DCONFIG_YAFFS_USE_HEADER_FILE_SIZE
88
89 #CONFIG_YAFFS_DISABLE_CHUNK_ERASED_CHECK
90 # Enabling this turns off the test that chunks are erased in flash before writing to them.
91 # this is safe, since the write verification will fail.
92 # Suggest enabling the test (ie. keep the following line commented) during development to help debug things.
93
94 #IGNORE_CHUNK_ERASED = -DCONFIG_YAFFS_DISABLE_CHUNK_ERASED_CHECK
95
96 #CONFIG_YAFFS_DISABLE_WRITE_VERIFY
97 # I am severely reluctant to provide this config. Disabling the verification is not a good thing to do
98 # since NAND writes can fail silently.
99 # Disabling the write verification will cause your teeth to rot, rats to eat your corn and give you split ends.
100 # You have been warned. ie. Don't uncomment the following line.
101
102 #IGNORE_WRITE_VERIFY = -DCONFIG_YAFFS_DISBLE_WRITE_VERIFY
103
104 #CONFIG_YAFFS_SHORT_NAMES_IN_RAM
105 # If this config is set, then short names are stored with the yaffs_Object
106 # This costs an extra 16 bytes of RAM per object, but makes look-ups faster.
107
108 ENABLE_SHORT_NAMES_IN_RAM = -DCONFIG_SHORT_NAMES_IN_RAM
109
110 # End of configuration options.
111
112 WIERD_COMPILE_CONFIGS = -DNR_IRQS=1 -DNR_IRQ_VECTORS=1
113
114 YAFFS_CONFIGS = $(WIERD_COMPILE_CONFIGS) \
115                 $(USE_RAM_FOR_TEST) $(USE_MTD) $(USE_RAM_FOR_TEST_2) $(USE_MTD_2)\
116                 $(USE_HEADER_FILE_SIZE) $(IGNORE_CHUNK_ERASED) $(IGNORE_WRITE_VERIFY) \
117                 $(ENABLE_SHORT_NAMES_IN_RAM) $(USE_NANDECC) $(USE_OLD_MTD) $(USE_WRONGECC)
118
119
120 YAFFS2_CONFIGS = $(YAFFS_CONFIGS)
121
122 CFLAGS = -D__KERNEL__ -DMODULE $(YAFFS2_CONFIGS)  -I$(KERNELDIR)/include -O2 -g -Wall
123
124
125 OBJS = yaffs_fs.o yaffs_guts.o yaffs_ramem.o yaffs_mtdif.o yaffs_ecc.o yaffs_tagscompat.o yaffs_ramem2k.o yaffs_packedtags2.o yaffs_mtdif2.o yaffs_tagsvalidity.o
126
127
128 all: yaffs.o
129
130 $(OBJS): %.o: %.c Makefile
131         $(CC) -c $(CFLAGS) $< -o $@
132
133 yaffs.o: $(OBJS)
134         $(LD) -r $(OBJS) -o $@
135
136 clean:
137         rm -f $(OBJS) core