1#
2# Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
3#
4# This program is free software; you can redistribute it and/or modify it
5# under the terms of version 2 of the GNU General Public License as
6# published by the Free Software Foundation.
7#
8# This program is distributed in the hope that it would be useful, but
9# WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11#
12# Further, this software is distributed without any warranty that it is
13# free of the rightful claim of any third person regarding infringement
14# or the like.  Any license provided herein, whether implied or
15# otherwise, applies only to this software file.  Patent licenses, if
16# any, provided herein do not apply to combinations of this program with
17# other software, or any other product whatsoever.
18#
19# You should have received a copy of the GNU General Public License along
20# with this program; if not, write the Free Software Foundation, Inc., 59
21# Temple Place - Suite 330, Boston MA 02111-1307, USA.
22#
23# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
24# Mountain View, CA  94043, or:
25#
26# http://www.sgi.com
27#
28# For further information regarding this notice, see:
29#
30# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
31#
32
33EXTRA_CFLAGS +=  -I. -I linux-2.4 -funsigned-char
34
35ifeq ($(CONFIG_XFS_DEBUG),y)
36	EXTRA_CFLAGS += -g -DSTATIC="" -DDEBUG
37	EXTRA_CFLAGS += -DPAGEBUF_LOCK_TRACKING
38endif
39ifeq ($(CONFIG_XFS_TRACE),y)
40	EXTRA_CFLAGS += -DXFS_ALLOC_TRACE
41	EXTRA_CFLAGS += -DXFS_ATTR_TRACE
42	EXTRA_CFLAGS += -DXFS_BLI_TRACE
43	EXTRA_CFLAGS += -DXFS_BMAP_TRACE
44	EXTRA_CFLAGS += -DXFS_BMBT_TRACE
45	EXTRA_CFLAGS += -DXFS_DIR_TRACE
46	EXTRA_CFLAGS += -DXFS_DQUOT_TRACE
47	EXTRA_CFLAGS += -DXFS_ILOCK_TRACE
48	EXTRA_CFLAGS += -DXFS_LOG_TRACE
49	EXTRA_CFLAGS += -DXFS_RW_TRACE
50	EXTRA_CFLAGS += -DXFS_DIR2_TRACE
51	EXTRA_CFLAGS += -DPAGEBUF_TRACE
52	# EXTRA_CFLAGS += -DXFS_VNODE_TRACE
53endif
54
55O_TARGET			:= xfs.o
56obj-m				:= $(O_TARGET)
57
58obj-$(CONFIG_XFS_RT)		+= xfs_rtalloc.o
59obj-$(CONFIG_XFS_POSIX_ACL)	+= xfs_acl.o
60
61obj-$(CONFIG_XFS_TRACE)		+= xfs_dir2_trace.o
62
63obj-y				+= xfs_alloc.o \
64				   xfs_alloc_btree.o \
65				   xfs_attr.o \
66				   xfs_attr_leaf.o \
67				   xfs_behavior.o \
68				   xfs_bit.o \
69				   xfs_bmap.o \
70				   xfs_bmap_btree.o \
71				   xfs_btree.o \
72				   xfs_buf_item.o \
73				   xfs_da_btree.o \
74				   xfs_dir.o \
75				   xfs_dir2.o \
76				   xfs_dir2_block.o \
77				   xfs_dir2_data.o \
78				   xfs_dir2_leaf.o \
79				   xfs_dir2_node.o \
80				   xfs_dir2_sf.o \
81				   xfs_dir_leaf.o \
82				   xfs_error.o \
83				   xfs_extfree_item.o \
84				   xfs_fsops.o \
85				   xfs_ialloc.o \
86				   xfs_ialloc_btree.o \
87				   xfs_iget.o \
88				   xfs_inode.o \
89				   xfs_inode_item.o \
90				   xfs_iocore.o \
91				   xfs_iomap.o \
92				   xfs_itable.o \
93				   xfs_dfrag.o \
94				   xfs_log.o \
95				   xfs_log_recover.o \
96				   xfs_macros.o \
97				   xfs_mount.o \
98				   xfs_rename.o \
99				   xfs_trans.o \
100				   xfs_trans_ail.o \
101				   xfs_trans_buf.o \
102				   xfs_trans_extfree.o \
103				   xfs_trans_inode.o \
104				   xfs_trans_item.o \
105				   xfs_utils.o \
106				   xfs_vfsops.o \
107				   xfs_vnodeops.o \
108				   xfs_refcache.o \
109				   xfs_rw.o \
110				   xfs_dmops.o \
111				   xfs_qmops.o
112
113# Objects not built in this directory
114obj-y				+= linux-2.4/linux_xfs.o \
115				   support/support_xfs.o
116
117subdir-$(CONFIG_XFS_FS)		+= linux-2.4 support
118
119ifeq ($(CONFIG_XFS_DMAPI),y)
120  subdir-$(CONFIG_XFS_FS)	+= dmapi
121  obj-y				+= dmapi/xfs_dmapi.o
122endif
123
124ifeq ($(CONFIG_XFS_QUOTA),y)
125  subdir-$(CONFIG_XFS_FS)	+= quota
126  obj-y				+= quota/xfs_quota.o
127endif
128
129include $(TOPDIR)/Rules.make
130
131# This is really nasty, but Rules.make was never designed for multi directory
132# modules.  Keith Owens.
133
134xfs.o: $(patsubst %,_modsubdir_%,$(subdir-m))
135