162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Copyright (c) 2000-2005 Silicon Graphics, Inc.
462306a36Sopenharmony_ci# All Rights Reserved.
562306a36Sopenharmony_ci#
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciccflags-y += -I $(srctree)/$(src)		# needed for trace events
862306a36Sopenharmony_ciccflags-y += -I $(srctree)/$(src)/libxfs
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciobj-$(CONFIG_XFS_FS)		+= xfs.o
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci# this one should be compiled first, as the tracing macros can easily blow up
1362306a36Sopenharmony_cixfs-y				+= xfs_trace.o
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci# build the libxfs code first
1662306a36Sopenharmony_cixfs-y				+= $(addprefix libxfs/, \
1762306a36Sopenharmony_ci				   xfs_ag.o \
1862306a36Sopenharmony_ci				   xfs_alloc.o \
1962306a36Sopenharmony_ci				   xfs_alloc_btree.o \
2062306a36Sopenharmony_ci				   xfs_attr.o \
2162306a36Sopenharmony_ci				   xfs_attr_leaf.o \
2262306a36Sopenharmony_ci				   xfs_attr_remote.o \
2362306a36Sopenharmony_ci				   xfs_bit.o \
2462306a36Sopenharmony_ci				   xfs_bmap.o \
2562306a36Sopenharmony_ci				   xfs_bmap_btree.o \
2662306a36Sopenharmony_ci				   xfs_btree.o \
2762306a36Sopenharmony_ci				   xfs_btree_staging.o \
2862306a36Sopenharmony_ci				   xfs_da_btree.o \
2962306a36Sopenharmony_ci				   xfs_defer.o \
3062306a36Sopenharmony_ci				   xfs_dir2.o \
3162306a36Sopenharmony_ci				   xfs_dir2_block.o \
3262306a36Sopenharmony_ci				   xfs_dir2_data.o \
3362306a36Sopenharmony_ci				   xfs_dir2_leaf.o \
3462306a36Sopenharmony_ci				   xfs_dir2_node.o \
3562306a36Sopenharmony_ci				   xfs_dir2_sf.o \
3662306a36Sopenharmony_ci				   xfs_dquot_buf.o \
3762306a36Sopenharmony_ci				   xfs_ialloc.o \
3862306a36Sopenharmony_ci				   xfs_ialloc_btree.o \
3962306a36Sopenharmony_ci				   xfs_iext_tree.o \
4062306a36Sopenharmony_ci				   xfs_inode_fork.o \
4162306a36Sopenharmony_ci				   xfs_inode_buf.o \
4262306a36Sopenharmony_ci				   xfs_log_rlimit.o \
4362306a36Sopenharmony_ci				   xfs_ag_resv.o \
4462306a36Sopenharmony_ci				   xfs_rmap.o \
4562306a36Sopenharmony_ci				   xfs_rmap_btree.o \
4662306a36Sopenharmony_ci				   xfs_refcount.o \
4762306a36Sopenharmony_ci				   xfs_refcount_btree.o \
4862306a36Sopenharmony_ci				   xfs_sb.o \
4962306a36Sopenharmony_ci				   xfs_symlink_remote.o \
5062306a36Sopenharmony_ci				   xfs_trans_inode.o \
5162306a36Sopenharmony_ci				   xfs_trans_resv.o \
5262306a36Sopenharmony_ci				   xfs_types.o \
5362306a36Sopenharmony_ci				   )
5462306a36Sopenharmony_ci# xfs_rtbitmap is shared with libxfs
5562306a36Sopenharmony_cixfs-$(CONFIG_XFS_RT)		+= $(addprefix libxfs/, \
5662306a36Sopenharmony_ci				   xfs_rtbitmap.o \
5762306a36Sopenharmony_ci				   )
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci# highlevel code
6062306a36Sopenharmony_cixfs-y				+= xfs_aops.o \
6162306a36Sopenharmony_ci				   xfs_attr_inactive.o \
6262306a36Sopenharmony_ci				   xfs_attr_list.o \
6362306a36Sopenharmony_ci				   xfs_bmap_util.o \
6462306a36Sopenharmony_ci				   xfs_bio_io.o \
6562306a36Sopenharmony_ci				   xfs_buf.o \
6662306a36Sopenharmony_ci				   xfs_dahash_test.o \
6762306a36Sopenharmony_ci				   xfs_dir2_readdir.o \
6862306a36Sopenharmony_ci				   xfs_discard.o \
6962306a36Sopenharmony_ci				   xfs_error.o \
7062306a36Sopenharmony_ci				   xfs_export.o \
7162306a36Sopenharmony_ci				   xfs_extent_busy.o \
7262306a36Sopenharmony_ci				   xfs_file.o \
7362306a36Sopenharmony_ci				   xfs_filestream.o \
7462306a36Sopenharmony_ci				   xfs_fsmap.o \
7562306a36Sopenharmony_ci				   xfs_fsops.o \
7662306a36Sopenharmony_ci				   xfs_globals.o \
7762306a36Sopenharmony_ci				   xfs_health.o \
7862306a36Sopenharmony_ci				   xfs_icache.o \
7962306a36Sopenharmony_ci				   xfs_ioctl.o \
8062306a36Sopenharmony_ci				   xfs_iomap.o \
8162306a36Sopenharmony_ci				   xfs_iops.o \
8262306a36Sopenharmony_ci				   xfs_inode.o \
8362306a36Sopenharmony_ci				   xfs_itable.o \
8462306a36Sopenharmony_ci				   xfs_iwalk.o \
8562306a36Sopenharmony_ci				   xfs_message.o \
8662306a36Sopenharmony_ci				   xfs_mount.o \
8762306a36Sopenharmony_ci				   xfs_mru_cache.o \
8862306a36Sopenharmony_ci				   xfs_pwork.o \
8962306a36Sopenharmony_ci				   xfs_reflink.o \
9062306a36Sopenharmony_ci				   xfs_stats.o \
9162306a36Sopenharmony_ci				   xfs_super.o \
9262306a36Sopenharmony_ci				   xfs_symlink.o \
9362306a36Sopenharmony_ci				   xfs_sysfs.o \
9462306a36Sopenharmony_ci				   xfs_trans.o \
9562306a36Sopenharmony_ci				   xfs_xattr.o \
9662306a36Sopenharmony_ci				   kmem.o
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci# low-level transaction/log code
9962306a36Sopenharmony_cixfs-y				+= xfs_log.o \
10062306a36Sopenharmony_ci				   xfs_log_cil.o \
10162306a36Sopenharmony_ci				   xfs_bmap_item.o \
10262306a36Sopenharmony_ci				   xfs_buf_item.o \
10362306a36Sopenharmony_ci				   xfs_buf_item_recover.o \
10462306a36Sopenharmony_ci				   xfs_dquot_item_recover.o \
10562306a36Sopenharmony_ci				   xfs_extfree_item.o \
10662306a36Sopenharmony_ci				   xfs_attr_item.o \
10762306a36Sopenharmony_ci				   xfs_icreate_item.o \
10862306a36Sopenharmony_ci				   xfs_inode_item.o \
10962306a36Sopenharmony_ci				   xfs_inode_item_recover.o \
11062306a36Sopenharmony_ci				   xfs_iunlink_item.o \
11162306a36Sopenharmony_ci				   xfs_refcount_item.o \
11262306a36Sopenharmony_ci				   xfs_rmap_item.o \
11362306a36Sopenharmony_ci				   xfs_log_recover.o \
11462306a36Sopenharmony_ci				   xfs_trans_ail.o \
11562306a36Sopenharmony_ci				   xfs_trans_buf.o
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci# optional features
11862306a36Sopenharmony_cixfs-$(CONFIG_XFS_QUOTA)		+= xfs_dquot.o \
11962306a36Sopenharmony_ci				   xfs_dquot_item.o \
12062306a36Sopenharmony_ci				   xfs_trans_dquot.o \
12162306a36Sopenharmony_ci				   xfs_qm_syscalls.o \
12262306a36Sopenharmony_ci				   xfs_qm_bhv.o \
12362306a36Sopenharmony_ci				   xfs_qm.o \
12462306a36Sopenharmony_ci				   xfs_quotaops.o
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci# xfs_rtbitmap is shared with libxfs
12762306a36Sopenharmony_cixfs-$(CONFIG_XFS_RT)		+= xfs_rtalloc.o
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_cixfs-$(CONFIG_XFS_POSIX_ACL)	+= xfs_acl.o
13062306a36Sopenharmony_cixfs-$(CONFIG_SYSCTL)		+= xfs_sysctl.o
13162306a36Sopenharmony_cixfs-$(CONFIG_COMPAT)		+= xfs_ioctl32.o
13262306a36Sopenharmony_cixfs-$(CONFIG_EXPORTFS_BLOCK_OPS)	+= xfs_pnfs.o
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci# notify failure
13562306a36Sopenharmony_ciifeq ($(CONFIG_MEMORY_FAILURE),y)
13662306a36Sopenharmony_cixfs-$(CONFIG_FS_DAX)		+= xfs_notify_failure.o
13762306a36Sopenharmony_ciendif
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_cixfs-$(CONFIG_XFS_DRAIN_INTENTS)	+= xfs_drain.o
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci# online scrub/repair
14262306a36Sopenharmony_ciifeq ($(CONFIG_XFS_ONLINE_SCRUB),y)
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci# Tracepoints like to blow up, so build that before everything else
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_cixfs-y				+= $(addprefix scrub/, \
14762306a36Sopenharmony_ci				   trace.o \
14862306a36Sopenharmony_ci				   agheader.o \
14962306a36Sopenharmony_ci				   alloc.o \
15062306a36Sopenharmony_ci				   attr.o \
15162306a36Sopenharmony_ci				   bitmap.o \
15262306a36Sopenharmony_ci				   bmap.o \
15362306a36Sopenharmony_ci				   btree.o \
15462306a36Sopenharmony_ci				   common.o \
15562306a36Sopenharmony_ci				   dabtree.o \
15662306a36Sopenharmony_ci				   dir.o \
15762306a36Sopenharmony_ci				   fscounters.o \
15862306a36Sopenharmony_ci				   health.o \
15962306a36Sopenharmony_ci				   ialloc.o \
16062306a36Sopenharmony_ci				   inode.o \
16162306a36Sopenharmony_ci				   parent.o \
16262306a36Sopenharmony_ci				   readdir.o \
16362306a36Sopenharmony_ci				   refcount.o \
16462306a36Sopenharmony_ci				   rmap.o \
16562306a36Sopenharmony_ci				   scrub.o \
16662306a36Sopenharmony_ci				   symlink.o \
16762306a36Sopenharmony_ci				   xfarray.o \
16862306a36Sopenharmony_ci				   xfile.o \
16962306a36Sopenharmony_ci				   )
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_cixfs-$(CONFIG_XFS_ONLINE_SCRUB_STATS) += scrub/stats.o
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_cixfs-$(CONFIG_XFS_RT)		+= $(addprefix scrub/, \
17462306a36Sopenharmony_ci				   rtbitmap.o \
17562306a36Sopenharmony_ci				   rtsummary.o \
17662306a36Sopenharmony_ci				   )
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_cixfs-$(CONFIG_XFS_QUOTA)		+= scrub/quota.o
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci# online repair
18162306a36Sopenharmony_ciifeq ($(CONFIG_XFS_ONLINE_REPAIR),y)
18262306a36Sopenharmony_cixfs-y				+= $(addprefix scrub/, \
18362306a36Sopenharmony_ci				   agheader_repair.o \
18462306a36Sopenharmony_ci				   reap.o \
18562306a36Sopenharmony_ci				   repair.o \
18662306a36Sopenharmony_ci				   )
18762306a36Sopenharmony_ciendif
18862306a36Sopenharmony_ciendif
189