| # SPDX-License-Identifier: GPL-2.0 | |
| # | |
| # 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 | |
| CHECK=sparse | |
| CHECK_OPTS=-Wsparse-all -Wbitwise -Wno-transparent-union -Wno-return-void -Wno-undef \ | |
| -Wno-non-pointer-null -D__CHECK_ENDIAN__ -D__linux__ | |
| ifeq ("$(origin C)", "command line") | |
| CHECK_CMD=$(CHECK) $(CHECK_OPTS) | |
| CHECKSRC=$(C) | |
| else | |
| CHECK_CMD=@true | |
| CHECKSRC=0 | |
| endif | |
| export CHECK_CMD CHECKSRC | |
| 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 | |
| SRCTARXZ = $(PKG_NAME)-$(PKG_VERSION).tar.xz | |
| 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 *.xz \ | |
| autom4te.cache/* libtool include/builddefs | |
| ifeq ($(HAVE_BUILDDEFS), yes) | |
| LDIRDIRT = $(SRCDIR) | |
| LDIRT += $(SRCTAR) $(SRCTARXZ) | |
| endif | |
| # header install rules to populate include/xfs correctly | |
| HDR_SUBDIRS = include libxfs | |
| LIBFROG_SUBDIR = libfrog | |
| DLIB_SUBDIRS = libxlog libxcmd libhandle | |
| LIB_SUBDIRS = libxfs $(DLIB_SUBDIRS) | |
| TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \ | |
| mdrestore repair rtcp m4 man doc debian spaceman | |
| ifeq ("$(ENABLE_SCRUB)","yes") | |
| TOOL_SUBDIRS += scrub | |
| endif | |
| ifneq ("$(XGETTEXT)","") | |
| TOOL_SUBDIRS += po | |
| endif | |
| # include is listed last so it is processed last in clean rules. | |
| SUBDIRS = $(LIBFROG_SUBDIR) $(LIB_SUBDIRS) $(TOOL_SUBDIRS) include | |
| default: include/builddefs | |
| ifeq ($(HAVE_BUILDDEFS), no) | |
| $(Q)$(MAKE) $(MAKEOPTS) -C . $@ | |
| else | |
| $(Q)$(MAKE) $(MAKEOPTS) headers | |
| $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS) | |
| endif | |
| # tool/lib dependencies | |
| # note: include/xfs is set up by libxfs, too, so everything is dependent on it. | |
| $(LIBFROG_SUBDIR): include | |
| $(LIB_SUBDIRS) $(TOOL_SUBDIRS): include libfrog | |
| $(DLIB_SUBDIRS) $(TOOL_SUBDIRS): libxfs | |
| db logprint: libxlog | |
| fsr: libhandle | |
| growfs: libxcmd | |
| io: libxcmd libhandle | |
| quota: libxcmd | |
| repair: libxlog libxcmd | |
| copy: libxlog | |
| mkfs: libxcmd | |
| spaceman: libxcmd | |
| scrub: libhandle libxcmd | |
| rtcp: libfrog | |
| ifeq ($(HAVE_BUILDDEFS), yes) | |
| include $(BUILDRULES) | |
| else | |
| clean: # if configure hasn't run, nothing to clean | |
| endif | |
| configure: configure.ac | |
| libtoolize -c -i -f | |
| cp include/install-sh . | |
| aclocal -I m4 | |
| autoconf | |
| include/builddefs: configure | |
| ./configure $$LOCAL_CONFIGURE_OPTIONS | |
| 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: | |
| @echo "Installing $@" | |
| $(Q)$(MAKE) $(MAKEOPTS) -C $* install | |
| %-install-dev: | |
| @echo "Installing $@" | |
| $(Q)$(MAKE) $(MAKEOPTS) -C $* install-dev | |
| 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 default | |
| ifeq ($(HAVE_BUILDDEFS), no) | |
| $(Q)$(MAKE) $(MAKEOPTS) -C . $@ | |
| else | |
| $(Q)$(MAKE) $(MAKEOPTS) $(SRCTAR) | |
| endif | |
| deb: include/builddefs | |
| 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)rm -f $(PKG_NAME)_$(PKG_VERSION).orig.tar.gz | |
| $(Q)$(LN_S) $(SRCTAR) $(PKG_NAME)_$(PKG_VERSION).orig.tar.gz | |
| $(Q)cd $(SRCDIR) && dpkg-buildpackage $$LOCAL_DPKG_OPTIONS # -sa -S | |
| 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: $@ | |
| $(SRCTARXZ) : default $(SRCTARINC) .gitcensus | |
| $(Q)$(TAR) --transform "s,^,$(SRCDIR)/," -Jcf $(SRCDIR).tar.xz \ | |
| `cat .gitcensus` $(SRCTARINC) | |
| echo Wrote: $@ | |
| .gitcensus: $(_FORCE) | |
| $(Q)if test -d .git; then \ | |
| git ls-files > .gitcensus && echo "new .gitcensus"; \ | |
| fi |