#
# Copyright (c) 2000-2006 Silicon Graphics, Inc.  All Rights Reserved.
#

TOPDIR = ..
include $(TOPDIR)/include/builddefs

LTLIBRARY = libxfs.la
LT_CURRENT = 0
LT_REVISION = 0
LT_AGE = 0

# headers to install in include/xfs
PKGHFILES = xfs_fs.h \
	xfs_types.h

# headers with build dependencies
SHFILES = init.h \
	crc32defs.h \
	crc32table.h \
	libxfs_priv.h

HFILES = $(addprefix support/, $(SHFILES)) \
	xfs_dir2_priv.h

# headers installed in QA targets
SQAHFILES = libxfs_api_defs.h \
	libxfs_io.h \
	xfs_arch.h \
	xfs_btree_trace.h \
	xfs_inode.h \
	xfs_mount.h \
	xfs_trace.h \
	xfs_trans.h

QAHFILES = $(addprefix support/, $(SQAHFILES)) \
	xfs_alloc.h \
	xfs_alloc_btree.h \
	xfs_attr_leaf.h \
	xfs_attr_sf.h \
	xfs_bit.h \
	xfs_bmap.h \
	xfs_bmap_btree.h \
	xfs_btree.h \
	xfs_attr_remote.h \
	xfs_cksum.h \
	xfs_da_btree.h \
	xfs_da_format.h \
	xfs_dir2.h \
	xfs_format.h \
	xfs_ialloc.h \
	xfs_ialloc_btree.h \
	xfs_inode_buf.h \
	xfs_inode_fork.h \
	xfs_log_format.h \
	xfs_quota_defs.h \
	xfs_sb.h \
	xfs_shared.h \
	xfs_trans_resv.h \
	xfs_trans_space.h \

# supporting C files
SCFILES = cache.c \
	crc32.c \
	init.c \
	kmem.c \
	logitem.c \
	radix-tree.c \
	rdwr.c \
	trans.c \
	util.c

CFILES = $(addprefix support/, $(SCFILES)) \
	xfs_alloc.c \
	xfs_alloc_btree.c \
	xfs_attr.c \
	xfs_attr_leaf.c \
	xfs_attr_remote.c \
	xfs_bmap.c \
	xfs_bmap_btree.c \
	xfs_btree.c \
	xfs_da_btree.c \
	xfs_da_format.c \
	xfs_dir2.c \
	xfs_dir2_block.c \
	xfs_dir2_data.c \
	xfs_dir2_leaf.c \
	xfs_dir2_node.c \
	xfs_dir2_sf.c \
	xfs_dquot_buf.c \
	xfs_ialloc.c \
	xfs_inode_buf.c \
	xfs_inode_fork.c \
	xfs_ialloc_btree.c \
	xfs_log_rlimit.c \
	xfs_rtbitmap.c \
	xfs_sb.c \
	xfs_symlink_remote.c \
	xfs_trans_resv.c

CFILES += $(addprefix support/, $(PKG_PLATFORM).c)

SPCFILES = darwin.c freebsd.c irix.c linux.c
SLSRCFILES = $(shell echo $(SPCFILES) | sed -e "s/$(PKG_PLATFORM).c//g")
SLSRCFILES += gen_crc32table.c
LSRCFILES = $(addprefix support/, $(SLSRCFILES))

#
# Tracing flags:
# -DIO_DEBUG		reads and writes of buffers
# -DMEM_DEBUG		all zone memory use
# -DLI_DEBUG		log item (ino/buf) manipulation
# -DXACT_DEBUG		transaction state changes
#
#LCFLAGS +=

FCFLAGS = -I. -Isupport

LTLIBS = $(LIBPTHREAD) $(LIBRT)

# don't try linking xfs_repair with a debug libxfs.
DEBUG = -DNDEBUG

LDIRT = $(addprefix support/, gen_crc32table crc32table.h crc32selftest)

default: xfs support/crc32selftest ltdepend $(LTLIBRARY)

# set up include/xfs header directory
xfs: $(addsuffix -hdrs, $(PKGHFILES) $(QAHFILES))

%-hdrs:
	$(Q)$(LN_S) -f $(PWD)/libxfs/$* $(TOPDIR)/include/xfs/$(notdir $*)

support/crc32table.h: support/gen_crc32table.c
	@echo "    [CC]     support/gen_crc32table"
	$(Q) $(CC) $(CFLAGS) -o support/gen_crc32table $<
	@echo "    [GENERATE] $@"
	$(Q) support/gen_crc32table > support/crc32table.h

# The selftest binary will return an error if it fails. This is made a
# dependency of the build process so that we refuse to build the tools on broken
# systems/architectures. Hence we make sure that xfsprogs will never use a
# busted CRC calculation at build time and hence avoid putting bad CRCs down on
# disk.
support/crc32selftest: $(addprefix support/, gen_crc32table.c crc32table.h crc32.c)
	@echo "    [TEST]    CRC32"
	$(Q) $(CC) $(CFLAGS) -D CRC32_SELFTEST=1 support/crc32.c -o $@
	$(Q) ./$@

include $(BUILDRULES)

install: default

install-dev: install
	$(INSTALL) -m 644 $(HFILES) $(PKG_INC_DIR)

install-qa: install-dev
	$(INSTALL) -m 644 $(QAHFILES) $(PKG_INC_DIR)

-include .ltdep

