Fix parallel make srpm
When building srpm using make -j, each of the recursive makes invoked to build srpm-{dkms,kmod,utils} will build the dist target. This is both unnecessary, and also has a very good chance of breaking when they race trying to build gitrev. Fix this by make dist a prerequisite of srpm-{dkms,kmod,utils} instead of srpm-common, so that it will be done once before invoking the recursive makes. Also, gitrev is not really required for make dist, so instead of adding it to BUILT_SOURCES, just add it as a prerequisite of the all target. Mark the individual package targets as PHONY. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu> Closes #10564
This commit is contained in:
parent
1743c737f5
commit
e6c093dd94
14
Makefile.am
14
Makefile.am
|
@ -1,9 +1,5 @@
|
||||||
ACLOCAL_AMFLAGS = -I config
|
ACLOCAL_AMFLAGS = -I config
|
||||||
|
|
||||||
include config/rpm.am
|
|
||||||
include config/deb.am
|
|
||||||
include config/tgz.am
|
|
||||||
|
|
||||||
SUBDIRS = include
|
SUBDIRS = include
|
||||||
if BUILD_LINUX
|
if BUILD_LINUX
|
||||||
SUBDIRS += rpm
|
SUBDIRS += rpm
|
||||||
|
@ -54,6 +50,7 @@ EXTRA_DIST += module/zfs/THIRDPARTYLICENSE.cityhash.descrip
|
||||||
@CODE_COVERAGE_RULES@
|
@CODE_COVERAGE_RULES@
|
||||||
|
|
||||||
GITREV = include/zfs_gitrev.h
|
GITREV = include/zfs_gitrev.h
|
||||||
|
CLEANFILES = $(GITREV)
|
||||||
|
|
||||||
PHONY = gitrev
|
PHONY = gitrev
|
||||||
gitrev:
|
gitrev:
|
||||||
|
@ -68,10 +65,7 @@ gitrev:
|
||||||
mv -f $(GITREV)~ $(GITREV); \
|
mv -f $(GITREV)~ $(GITREV); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$(GITREV): gitrev
|
all: gitrev
|
||||||
|
|
||||||
BUILT_SOURCES = $(GITREV)
|
|
||||||
CLEANFILES = $(GITREV)
|
|
||||||
|
|
||||||
# Double-colon rules are allowed; there are multiple independent definitions.
|
# Double-colon rules are allowed; there are multiple independent definitions.
|
||||||
distclean-local::
|
distclean-local::
|
||||||
|
@ -252,4 +246,8 @@ pkg-dkms: @DEFAULT_PACKAGE@-dkms
|
||||||
pkg-kmod: @DEFAULT_PACKAGE@-kmod
|
pkg-kmod: @DEFAULT_PACKAGE@-kmod
|
||||||
pkg-utils: @DEFAULT_PACKAGE@-utils
|
pkg-utils: @DEFAULT_PACKAGE@-utils
|
||||||
|
|
||||||
|
include config/rpm.am
|
||||||
|
include config/deb.am
|
||||||
|
include config/tgz.am
|
||||||
|
|
||||||
.PHONY: $(PHONY)
|
.PHONY: $(PHONY)
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
PHONY += deb-kmod deb-dkms deb-utils deb deb-local
|
||||||
|
|
||||||
deb-local:
|
deb-local:
|
||||||
@(if test "${HAVE_DPKGBUILD}" = "no"; then \
|
@(if test "${HAVE_DPKGBUILD}" = "no"; then \
|
||||||
echo -e "\n" \
|
echo -e "\n" \
|
||||||
|
|
|
@ -6,6 +6,12 @@
|
||||||
# Build targets for RPM packages.
|
# Build targets for RPM packages.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
PHONY += srpm srpms srpm-kmod srpm-dkms srpm-utils
|
||||||
|
PHONY += rpm rpms rpm-kmod rpm-dkms rpm-utils
|
||||||
|
PHONY += srpm-common rpm-common rpm-local
|
||||||
|
|
||||||
|
srpm-kmod srpm-dkms srpm-utils: dist
|
||||||
|
|
||||||
srpm-kmod:
|
srpm-kmod:
|
||||||
$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \
|
$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \
|
||||||
def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_KMOD}' srpm-common
|
def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_KMOD}' srpm-common
|
||||||
|
@ -54,7 +60,7 @@ rpm-local:
|
||||||
cp $(top_srcdir)/scripts/kmodtool $(rpmbuild)/SOURCES && \
|
cp $(top_srcdir)/scripts/kmodtool $(rpmbuild)/SOURCES && \
|
||||||
cp $(distdir).tar.gz $(rpmbuild)/SOURCES)
|
cp $(distdir).tar.gz $(rpmbuild)/SOURCES)
|
||||||
|
|
||||||
srpm-common: dist
|
srpm-common:
|
||||||
@(dist=`$(RPM) --eval %{?dist}`; \
|
@(dist=`$(RPM) --eval %{?dist}`; \
|
||||||
rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \
|
rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \
|
||||||
rpmspec=$(pkg).spec; \
|
rpmspec=$(pkg).spec; \
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
PHONY += tgz tgz-kmod tgz-utils tgz-local
|
||||||
|
|
||||||
tgz-local:
|
tgz-local:
|
||||||
@(if test "${HAVE_ALIEN}" = "no"; then \
|
@(if test "${HAVE_ALIEN}" = "no"; then \
|
||||||
echo -e "\n" \
|
echo -e "\n" \
|
||||||
|
|
Loading…
Reference in New Issue