blob: d04f853b652e7bc3c3cf2062a21b5344e096cf3f [file] [log] [blame]
#
# Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.
#
ifeq ("$(origin V)", "command line")
BUILD_VERBOSE = $(V)
endif
ifndef BUILD_VERBOSE
BUILD_VERBOSE = 0
endif
ifeq ($(BUILD_VERBOSE),1)
Q =
else
Q = @
endif
MAKEOPTS = --no-print-directory Q=$(Q)
TOPDIR = .
HAVE_BUILDDEFS = $(shell test -f $(TOPDIR)/include/builddefs && echo yes || echo no)
ifeq ($(HAVE_BUILDDEFS), yes)
include $(TOPDIR)/include/builddefs
endif
SRCDIR = $(PKG_NAME)-$(PKG_VERSION)
SRCTAR = $(PKG_NAME)-$(PKG_VERSION).tar.gz
CONFIGURE = aclocal.m4 configure config.guess config.sub install-sh ltmain.sh
LSRCFILES = configure.ac release.sh README VERSION $(CONFIGURE)
SRCTARINC = m4/libtool.m4 m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 \
m4/ltversion.m4 po/xfsprogs.pot .gitcensus $(CONFIGURE)
LDIRT = config.log .ltdep .dep config.status config.cache confdefs.h \
conftest* built .census install.* install-dev.* *.gz \
autom4te.cache/* libtool include/builddefs include/platform_defs.h
ifeq ($(HAVE_BUILDDEFS), yes)
LDIRDIRT = $(SRCDIR)
LDIRT += $(SRCTAR)
endif
DLIB_SUBDIRS = libxlog libxcmd libhandle libdisk
LIB_SUBDIRS = libxfs $(DLIB_SUBDIRS)
TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \
mdrestore repair rtcp m4 man doc po debian
SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
default: include/builddefs include/platform_defs.h
ifeq ($(HAVE_BUILDDEFS), no)
$(Q)$(MAKE) $(MAKEOPTS) -C . $@
else
$(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS)
endif
# tool/lib dependencies
# note: include/xfs is set up by libxfs, too, so everything is dependent on it.
$(LIB_SUBDIRS) $(TOOL_SUBDIRS): include
$(DLIB_SUBDIRS) $(TOOL_SUBDIRS): libxfs
db logprint: libxlog
fsr: libhandle
growfs: libxcmd
io: libxcmd libhandle
quota: libxcmd
repair: libxlog
ifneq ($(ENABLE_BLKID), yes)
mkfs: libdisk
endif
ifeq ($(HAVE_BUILDDEFS), yes)
include $(BUILDRULES)
else
clean: # if configure hasn't run, nothing to clean
endif
# Recent versions of libtool require the -i option for copying auxiliary
# files (config.sub, config.guess, install-sh, ltmain.sh), while older
# versions will copy those files anyway, and don't understand -i.
LIBTOOLIZE_INSTALL = `libtoolize -n -i >/dev/null 2>/dev/null && echo -i`
configure:
libtoolize -c $(LIBTOOLIZE_INSTALL) -f
cp include/install-sh .
aclocal -I m4
autoconf
include/builddefs: configure
./configure $$LOCAL_CONFIGURE_OPTIONS
include/platform_defs.h: include/builddefs
## Recover from the removal of $@
@if test -f $@; then :; else \
rm -f include/builddefs; \
$(MAKE) $(MAKEOPTS) $(AM_MAKEFLAGS) include/builddefs; \
fi
install: $(addsuffix -install,$(SUBDIRS))
$(INSTALL) -m 755 -d $(PKG_DOC_DIR)
$(INSTALL) -m 644 README $(PKG_DOC_DIR)
install-dev: $(addsuffix -install-dev,$(SUBDIRS))
install-qa: install $(addsuffix -install-qa,$(SUBDIRS))
%-install:
@echo "Installing $@"
$(Q)$(MAKE) $(MAKEOPTS) -C $* install
%-install-dev:
@echo "Installing $@"
$(Q)$(MAKE) $(MAKEOPTS) -C $* install-dev
%-install-qa:
@echo "Installing $@"
$(Q)$(MAKE) $(MAKEOPTS) -C $* install-qa
distclean: clean
$(Q)rm -f $(LDIRT)
realclean: distclean
$(Q)rm -f $(CONFIGURE) .gitcensus
#
# All this gunk is to allow for a make dist on an unconfigured tree
#
dist: include/builddefs include/platform_defs.h default
ifeq ($(HAVE_BUILDDEFS), no)
$(Q)$(MAKE) $(MAKEOPTS) -C . $@
else
$(Q)$(MAKE) $(MAKEOPTS) $(SRCTAR)
endif
deb: include/builddefs include/platform_defs.h
ifeq ($(HAVE_BUILDDEFS), no)
$(Q)$(MAKE) $(MAKEOPTS) -C . $@
else
# need to build translations before the source tarball
$(Q)$(MAKE) $(MAKEOPTS) -C po
$(Q)$(MAKE) $(MAKEOPTS) $(SRCDIR)
$(Q)cd $(SRCDIR) && dpkg-buildpackage
endif
$(SRCDIR) : $(_FORCE) $(SRCTAR)
rm -fr $@
$(Q)$(TAR) -zxvf $(SRCTAR)
$(SRCTAR) : default $(SRCTARINC) .gitcensus
$(Q)$(TAR) --transform "s,^,$(SRCDIR)/," -zcf $(SRCDIR).tar.gz \
`cat .gitcensus` $(SRCTARINC)
echo Wrote: $@
.gitcensus: $(_FORCE)
$(Q)if test -d .git; then \
git ls-files > .gitcensus && echo "new .gitcensus"; \
fi