]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blobdiff - Makefile
xfsprogs: Release v6.7.0
[thirdparty/xfsprogs-dev.git] / Makefile
index 885c9157451f43abaf8ed650479401c3b11858ba..4e768526c6fe0c71349908fab37a6a15ca4a30d5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,35 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0
 #
-# Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-# 
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of version 2 of the GNU General Public License as
-# published by the Free Software Foundation.
-# 
-# This program is distributed in the hope that it would be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# 
-# Further, this software is distributed without any warranty that it is
-# free of the rightful claim of any third person regarding infringement
-# or the like.  Any license provided herein, whether implied or
-# otherwise, applies only to this software file.  Patent licenses, if
-# any, provided herein do not apply to combinations of this program with
-# other software, or any other product whatsoever.
-# 
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston MA 02111-1307, USA.
-# 
-# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
-# Mountain View, CA  94043, or:
-# 
-# http://www.sgi.com 
-# 
-# For further information regarding this notice, see: 
-# 
-# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+# 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)
 
@@ -37,40 +39,140 @@ ifeq ($(HAVE_BUILDDEFS), yes)
 include $(TOPDIR)/include/builddefs
 endif
 
-CONFIGURE = configure include/builddefs include/platform_defs.h
-LSRCFILES = configure configure.in Makepkgs install-sh README VERSION
-LDIRT = config.* conftest* Logs/* built install.* install-dev.* *.gz
+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
 
-SUBDIRS = include libxfs libhandle \
-       bmap db fsck growfs logprint mkfile mkfs repair rtcp \
-       man doc debian build
+ifeq ("$(ENABLE_SCRUB)","yes")
+TOOL_SUBDIRS += scrub
+endif
+
+ifneq ("$(XGETTEXT)","")
+TOOL_SUBDIRS += po
+endif
 
-default: $(CONFIGURE)
+# 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)
-       $(MAKE) -C . $@
+       $(Q)$(MAKE) $(MAKEOPTS) -C . $@
 else
-       $(SUBDIRS_MAKERULE)
+       $(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.in include/builddefs.in VERSION
-       rm -f config.cache
+configure: configure.ac
+       libtoolize -c -i -f
+       cp include/install-sh .
+       aclocal -I m4
        autoconf
-       ./configure
 
-install: default
-       $(SUBDIRS_MAKERULE)
+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: default
-       $(SUBDIRS_MAKERULE)
+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: $@
 
-realclean distclean: clean
-       rm -f $(LDIRT) $(CONFIGURE)
-       [ ! -d Logs ] || rmdir Logs
+.gitcensus: $(_FORCE)
+       $(Q)if test -d .git; then \
+         git ls-files > .gitcensus && echo "new .gitcensus"; \
+       fi