X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=Makefile;h=9204bed834fe92762c7da2a86f5729c152e82220;hb=0ba6dae9f86f7c02e88d8846234f497e1cde3aa9;hp=5c81f668517e8bdb5fc95060d1945f6cf3569817;hpb=1eb10ccb85261931d5401adbff11acd2dbc5bf63;p=thirdparty%2Fxfsprogs-dev.git diff --git a/Makefile b/Makefile index 5c81f6685..9204bed83 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,37 @@ +# 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) @@ -9,38 +39,74 @@ ifeq ($(HAVE_BUILDDEFS), yes) include $(TOPDIR)/include/builddefs endif -CONFIGURE = aclocal.m4 configure config.guess config.sub configure install-sh \ - ltmain.sh m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 \ - m4/ltversion.m4 m4/lt~obsolete.m4 -LSRCFILES = configure.in Makepkgs README VERSION $(CONFIGURE) +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 include/platform_defs.h + +ifeq ($(HAVE_BUILDDEFS), yes) +LDIRDIRT = $(SRCDIR) +LDIRT += $(SRCTAR) $(SRCTARXZ) +endif -LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \ - Logs/* built .census install.* install-dev.* *.gz autom4te.cache/* \ - libtool include/builddefs include/platform_defs.h +# header install rules to populate include/xfs correctly +HDR_SUBDIRS = include libxfs -LIB_SUBDIRS = libxfs libxlog libxcmd libhandle libdisk +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 po debian build + mdrestore repair rtcp m4 man doc debian spaceman + +ifeq ("$(ENABLE_SCRUB)","yes") +TOOL_SUBDIRS += scrub +endif + +ifneq ("$(XGETTEXT)","") +TOOL_SUBDIRS += po +endif -SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS) +# 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 +endif + +# include is listed last so it is processed last in clean rules. +SUBDIRS = $(LIBFROG_SUBDIR) $(LIB_SUBDIRS) $(TOOL_SUBDIRS) include default: include/builddefs include/platform_defs.h ifeq ($(HAVE_BUILDDEFS), no) - $(MAKE) -C . $@ + $(Q)$(MAKE) $(MAKEOPTS) -C . $@ else - $(MAKE) $(SUBDIRS) + $(Q)$(MAKE) $(MAKEOPTS) headers + $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS) endif # tool/lib dependencies -$(LIB_SUBDIRS) $(TOOL_SUBDIRS): include -copy mdrestore: libxfs -db logprint: libxfs libxlog +# 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: libxfs libxcmd +growfs: libxcmd io: libxcmd libhandle -mkfs: libxfs libdisk quota: libxcmd -repair: libxfs libxlog +repair: libxlog libxcmd +copy: libxlog +mkfs: libxcmd +spaceman: libxcmd +scrub: libhandle libxcmd ifeq ($(HAVE_BUILDDEFS), yes) include $(BUILDRULES) @@ -48,58 +114,85 @@ 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` +LIBTOOLIZE_INSTALL = `$(LIBTOOLIZE_BIN) -n -i >/dev/null 2>/dev/null && echo -i` -configure: - libtoolize -c $(LIBTOOLIZE_INSTALL) -f +configure: configure.ac + $(LIBTOOLIZE_BIN) -c $(LIBTOOLIZE_INSTALL) -f cp include/install-sh . aclocal -I m4 autoconf include/builddefs: configure - ./configure \ - --prefix=/ \ - --exec-prefix=/ \ - --sbindir=/sbin \ - --bindir=/usr/sbin \ - --libdir=/lib \ - --libexecdir=/usr/lib \ - --enable-lib64=yes \ - --includedir=/usr/include \ - --mandir=/usr/share/man \ - --datadir=/usr/share \ - $$LOCAL_CONFIGURE_OPTIONS - touch .census + ./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) $(AM_MAKEFLAGS) include/builddefs; \ + $(MAKE) $(MAKEOPTS) $(AM_MAKEFLAGS) include/builddefs; \ fi -install: default $(addsuffix -install,$(SUBDIRS)) +install: $(addsuffix -install,$(SUBDIRS)) $(INSTALL) -m 755 -d $(PKG_DOC_DIR) $(INSTALL) -m 644 README $(PKG_DOC_DIR) -install-dev: default $(addsuffix -install-dev,$(SUBDIRS)) - -install-qa: install $(addsuffix -install-qa,$(SUBDIRS)) +install-dev: $(addsuffix -install-dev,$(SUBDIRS)) %-install: - $(MAKE) -C $* install + @echo "Installing $@" + $(Q)$(MAKE) $(MAKEOPTS) -C $* install %-install-dev: - $(MAKE) -C $* install-dev - -%-install-qa: - $(MAKE) -C $* install-qa + @echo "Installing $@" + $(Q)$(MAKE) $(MAKEOPTS) -C $* install-dev distclean: clean - rm -f $(LDIRT) + $(Q)rm -f $(LDIRT) realclean: distclean - rm -f $(CONFIGURE) + $(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)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