blob: 42c9f3cc439dc5ed4bac254a559bb07364b32837 [file] [log] [blame]
# SPDX-License-Identifier: GPL-2.0
# 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
# we need a static build even if --disable-static is specified
LTLDFLAGS += -static
# headers to install in include/xfs
PKGHFILES = xfs_fs.h \
xfs_types.h \
xfs_da_format.h \
xfs_format.h \
xfs_log_format.h
HFILES = \
defer_item.h \
libxfs_io.h \
libxfs_api_defs.h \
listxattr.h \
init.h \
iunlink.h \
libxfs_priv.h \
linux-err.h \
topology.h \
buf_mem.h \
xfblob.h \
xfile.h \
xfs_ag_resv.h \
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_btree_mem.h \
xfs_btree_staging.h \
xfs_attr_remote.h \
xfs_cksum.h \
xfs_da_btree.h \
xfs_dir2.h \
xfs_errortag.h \
xfs_exchmaps.h \
xfs_group.h \
xfs_ialloc.h \
xfs_ialloc_btree.h \
xfs_inode_buf.h \
xfs_inode_fork.h \
xfs_inode_util.h \
xfs_metadir.h \
xfs_metafile.h \
xfs_parent.h \
xfs_quota_defs.h \
xfs_refcount.h \
xfs_refcount_btree.h \
xfs_rmap.h \
xfs_rmap_btree.h \
xfs_rtbitmap.h \
xfs_rtgroup.h \
xfs_sb.h \
xfs_shared.h \
xfs_trans_resv.h \
xfs_trans_space.h \
xfs_dir2_priv.h
CFILES = buf_mem.c \
cache.c \
defer_item.c \
init.c \
inode.c \
iunlink.c \
kmem.c \
listxattr.c \
logitem.c \
rdwr.c \
topology.c \
trans.c \
util.c \
xfblob.c \
xfile.c \
xfs_ag.c \
xfs_ag_resv.c \
xfs_alloc.c \
xfs_alloc_btree.c \
xfs_attr.c \
xfs_attr_leaf.c \
xfs_attr_remote.c \
xfs_bit.c \
xfs_bmap.c \
xfs_bmap_btree.c \
xfs_btree.c \
xfs_btree_mem.c \
xfs_btree_staging.c \
xfs_da_btree.c \
xfs_defer.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_exchmaps.c \
xfs_group.c \
xfs_ialloc.c \
xfs_iext_tree.c \
xfs_inode_buf.c \
xfs_inode_fork.c \
xfs_inode_util.c \
xfs_ialloc_btree.c \
xfs_metadir.c \
xfs_metafile.c \
xfs_log_rlimit.c \
xfs_parent.c \
xfs_refcount.c \
xfs_refcount_btree.c \
xfs_rmap.c \
xfs_rmap_btree.c \
xfs_rtbitmap.c \
xfs_rtgroup.c \
xfs_sb.c \
xfs_symlink_remote.c \
xfs_trans_inode.c \
xfs_trans_resv.c \
xfs_trans_space.c \
xfs_types.c
EXTRA_CFILES=\
ioctl_c_dummy.c
EXTRA_CXXFILES=\
ioctl_cxx_dummy.cpp
EXTRA_OBJECTS=\
$(patsubst %.c,%.o,$(EXTRA_CFILES)) \
$(patsubst %.cpp,%.o,$(EXTRA_CXXFILES))
LDIRT += $(EXTRA_OBJECTS)
#
# Tracing flags:
# -DMEM_DEBUG all zone memory use
# -DLI_DEBUG log item (ino/buf) manipulation
# -DXACT_DEBUG transaction state changes
#
#LCFLAGS +=
ifeq ($(HAVE_MEMFD_CREATE),yes)
LCFLAGS += -DHAVE_MEMFD_CREATE
endif
ifeq ($(HAVE_GETRANDOM_NONBLOCK),yes)
LCFLAGS += -DHAVE_GETRANDOM_NONBLOCK
endif
FCFLAGS = -I.
LTLIBS = $(LIBPTHREAD) $(LIBRT)
# don't try linking xfs_repair with a debug libxfs.
DEBUG = -DNDEBUG
default: ltdepend $(LTLIBRARY) $(EXTRA_OBJECTS)
%dummy.o: %dummy.cpp
@echo " [CXXD] $@"
$(Q)$(CXX) $(CXXFLAGS) -c $<
%dummy.o: %dummy.c
@echo " [CCD] $@"
$(Q)$(CC) $(CFLAGS) -c $<
MAKECXXDEP := $(MAKEDEPEND) $(CXXFLAGS)
.PHONY: .extradep
.extradep: $(EXTRA_CFILES) $(EXTRA_CXXFILES) $(HFILES)
$(Q)$(MAKEDEP) $(EXTRA_CFILES) > .extradep
$(Q)$(MAKECXXDEP) $(EXTRA_CXXFILES) >> .extradep
# set up include/xfs header directory
include $(BUILDRULES)
install: default
$(INSTALL) -m 755 -d $(PKG_INC_DIR)
install-headers: $(addsuffix -hdrs, $(PKGHFILES))
%-hdrs:
$(Q)$(LN_S) -f $(CURDIR)/$* $(TOPDIR)/include/xfs/$*
install-dev: install
$(INSTALL) -m 644 $(PKGHFILES) $(PKG_INC_DIR)
# We need to install the headers before building the dependencies. If we
# include the .ltdep file, the makefile decides that it needs to build the
# dependencies to remake the makefile before running the header install target,
# hence making it impossible to avoid errors being thrown by the dependency
# generation. Hence we play games so that we only include this file if we aren't
# running the install-headers target.
ifndef NODEP
-include .ltdep
-include .extradep
endif