1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
|
# 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 include/platform_defs.h
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
# 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)
$(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
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_BIN) -n -i >/dev/null 2>/dev/null && echo -i`
configure: configure.ac
$(LIBTOOLIZE_BIN) -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:
@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 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
|