]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blobdiff - Makefile
configure: don't check for fallocate
[thirdparty/xfsprogs-dev.git] / Makefile
index d4db4f533d458fdd8dd641282e22453a6a225e26..4e768526c6fe0c71349908fab37a6a15ca4a30d5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
 #
 # Copyright (c) 2000-2006 Silicon Graphics, Inc.  All Rights Reserved.
 #
@@ -15,6 +16,20 @@ 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 = .
@@ -26,44 +41,42 @@ 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 \
-       autom4te.cache/* libtool include/builddefs include/platform_defs.h
+       conftest* built .census install.* install-dev.* *.gz *.xz \
+       autom4te.cache/* libtool include/builddefs
 
 ifeq ($(HAVE_BUILDDEFS), yes)
 LDIRDIRT = $(SRCDIR)
-LDIRT += $(SRCTAR)
+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
+               mdrestore repair rtcp m4 man doc debian spaceman
 
-ifneq ("$(XGETTEXT)","")
-TOOL_SUBDIRS += po
+ifeq ("$(ENABLE_SCRUB)","yes")
+TOOL_SUBDIRS += scrub
 endif
 
-# If we are on OS X, use glibtoolize from MacPorts, as OS X doesn't have
-# libtoolize binary itself.
-LIBTOOLIZE_TEST=$(shell libtoolize --version >/dev/null 2>&1 && echo found)
-LIBTOOLIZE_BIN=libtoolize
-ifneq ("$(LIBTOOLIZE_TEST)","found")
-LIBTOOLIZE_BIN=glibtoolize
+ifneq ("$(XGETTEXT)","")
+TOOL_SUBDIRS += po
 endif
 
 # include is listed last so it is processed last in clean rules.
-SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) include
+SUBDIRS = $(LIBFROG_SUBDIR) $(LIB_SUBDIRS) $(TOOL_SUBDIRS) include
 
-default: include/builddefs include/platform_defs.h
+default: include/builddefs
 ifeq ($(HAVE_BUILDDEFS), no)
        $(Q)$(MAKE) $(MAKEOPTS) -C . $@
 else
@@ -73,16 +86,20 @@ endif
 
 # tool/lib dependencies
 # note: include/xfs is set up by libxfs, too, so everything is dependent on it.
-$(LIB_SUBDIRS) $(TOOL_SUBDIRS): include
+$(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
+repair: libxlog libxcmd
 copy: libxlog
 mkfs: libxcmd
+spaceman: libxcmd
+scrub: libhandle libxcmd
+rtcp: libfrog
 
 ifeq ($(HAVE_BUILDDEFS), yes)
 include $(BUILDRULES)
@@ -90,14 +107,8 @@ 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_BIN) -n -i >/dev/null 2>/dev/null && echo -i`
-
-configure:
-       $(LIBTOOLIZE_BIN) -c $(LIBTOOLIZE_INSTALL) -f
+configure: configure.ac
+       libtoolize -c -i -f
        cp include/install-sh .
        aclocal -I m4
        autoconf
@@ -105,13 +116,6 @@ configure:
 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)
@@ -135,21 +139,23 @@ realclean: distclean
 #
 # All this gunk is to allow for a make dist on an unconfigured tree
 #
-dist: include/builddefs include/platform_defs.h default
+dist: include/builddefs default
 ifeq ($(HAVE_BUILDDEFS), no)
        $(Q)$(MAKE) $(MAKEOPTS) -C . $@
 else
        $(Q)$(MAKE) $(MAKEOPTS) $(SRCTAR)
 endif
 
-deb: include/builddefs include/platform_defs.h
+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)cd $(SRCDIR) && dpkg-buildpackage
+       $(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)
@@ -161,6 +167,11 @@ $(SRCTAR) : default $(SRCTARINC) .gitcensus
           `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"; \