summaryrefslogtreecommitdiff
path: root/Makefile
blob: b9477b073a400a4598ee361f229d43a5895c25b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#Makefile for YAFFS2 as a module
#
# NB this is not yet suitable for putting into the kernel tree.
# YAFFS: Yet another FFS. A NAND-flash specific file system. 
#
# Copyright (C) 2002 Aleph One Ltd.
#   for Toby Churchill Ltd and Brightstar Engineering
#
# Created by Charles Manning <charles@aleph1.co.uk>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# $Id: Makefile,v 1.1 2004-12-17 23:14:51 charles Exp $
#

## Change or override  KERNELDIR to your kernel
## comment out USE_xxxx if you don't want these features.

KERNELDIR = /usr/src/kernel-headers-2.4.27

## Change if you are using a cross-compiler
MAKETOOLS = 

CC=$(MAKETOOLS)gcc
LD=$(MAKETOOLS)ld

# Configurations...
# Comment out the stuff you don't want.
#

# CONFIG_YAFFS_RAM_ENABLED.
# This adds the yaffsram file system support. Nice for testing on x86, but uses 2MB of RAM.
# Don't enable for NAND-based targets.

USE_RAM_FOR_TEST = -DCONFIG_YAFFS_RAM_ENABLED


# CONFIG_YAFFS_MTD_ENABLED.
# This adds the yaffs file system support for working with a NAND mtd.

USE_MTD = -DCONFIG_YAFFS_MTD_ENABLED

# CONFIG_YAFFS2_RAM_ENABLED.
# This adds the yaffs2ram file system support. Nice for testing on x86, but uses 2MB of RAM.
# Don't enable for NAND-based targets.

USE_RAM_FOR_TEST_2 = -DCONFIG_YAFFS2_RAM_ENABLED


# CONFIG_YAFFS2_MTD_ENABLED.
# This adds the yaffs2 file system support for working with a NAND mtd.

USE_MTD_2 = -DCONFIG_YAFFS2_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_HEADER_FILE_SIZE
# 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 used, otherwise the scanned size is used.
# Suggest leaving this disabled.

#USE_HEADER_FILE_SIZE = -DCONFIG_YAFFS_USE_HEADER_FILE_SIZE

#CONFIG_YAFFS_DISABLE_CHUNK_ERASED_CHECK
# Enabling this turns off the test that chunks are erased in flash before writing to them.
# this is safe, since the write verification will fail.
# Suggest enabling the test (ie. keep the following line commented) during development to help debug things.

#IGNORE_CHUNK_ERASED = -DCONFIG_YAFFS_DISABLE_CHUNK_ERASED_CHECK

#CONFIG_YAFFS_DISABLE_WRITE_VERIFY
# I am severely reluctant to provide this config. Disabling the verification is not a good thing to do
# since NAND writes can fail silently.
# Disabling the write verification will cause your teeth to rot, rats to eat your corn and give you split ends.
# You have been warned. ie. Don't uncomment the following line.

#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_RAM_FOR_TEST_2) $(USE_MTD_2)\
                $(USE_HEADER_FILE_SIZE) $(IGNORE_CHUNK_ERASED) $(IGNORE_WRITE_VERIFY) \
                $(ENABLE_SHORT_NAMES_IN_RAM) $(USE_NANDECC) $(USE_OLD_MTD) $(USE_WRONGECC)


YAFFS2_CONFIGS = $(YAFFS_CONFIGS) -DCONFIG_YAFFS_YAFFS2

CFLAGS = -D__KERNEL__ -DMODULE $(YAFFS2_CONFIGS)  -I$(KERNELDIR)/include -O2 -g -Wall


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


all: yaffs.o

$(OBJS): %.o: %.c Makefile
	$(CC) -c $(CFLAGS) $< -o $@

yaffs.o: $(OBJS)
	$(LD) -r $(OBJS) -o $@

clean:
	rm -f $(OBJS) core