Skip to content

Commit

Permalink
FLAVORS: Fix several 'make *recursive' targets not passing along FLAV…
Browse files Browse the repository at this point in the history
…OR properly.

PR:		225659 comment #15
Approved by:	portmgr (implicit)
  • Loading branch information
bdrewery committed Mar 12, 2018
1 parent f7281f9 commit d1e67be
Showing 1 changed file with 51 additions and 37 deletions.
88 changes: 51 additions & 37 deletions Mk/bsd.port.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4038,6 +4038,29 @@ DEV_WARNING+= "It looks like the ${d} depends line has an absolute port origin,
all-depends-list:
@${ALL-DEPENDS-LIST}

_FLAVOR_RECURSIVE_SH= \
if [ -z "$${recursive_cmd}" ]; then \
${ECHO_MSG} "_FLAVOR_RECURSIVE_SH requires recursive_cmd to be set to the recursive make target to run." >&2; \
${FALSE}; \
fi; \
if [ "$${recursive_dirs-null}" = "null" ]; then \
${ECHO_MSG} "_FLAVOR_RECURSIVE_SH requires recursive_dirs to be set to the directories to recurse." >&2; \
${FALSE}; \
fi; \
for dir in $${recursive_dirs}; do \
case $${dir} in \
*@*) \
flavor=$${dir\#*@}; \
dir=$${dir%@*}; \
;; \
esac; \
case $$dir in \
/*) ;; \
*) dir=${PORTSDIR}/$$dir ;; \
esac; \
(cd $$dir; ${SETENV} FLAVOR=$${flavor} ${MAKE} $${recursive_cmd}); \
done

# This script is shared among several dependency list variables. See file for
# usage.
DEPENDS-LIST= \
Expand All @@ -4051,6 +4074,7 @@ DEPENDS-LIST= \
${DEPENDS_SHOW_FLAVOR:D-f}

ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q}
ALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:Q}
MISSING-DEPENDS-LIST= ${DEPENDS-LIST} -m ${_UNIFIED_DEPENDS:Q}
BUILD-DEPENDS-LIST= ${DEPENDS-LIST} "${PKG_DEPENDS} ${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS}"
RUN-DEPENDS-LIST= ${DEPENDS-LIST} "${LIB_DEPENDS} ${RUN_DEPENDS}"
Expand All @@ -4074,42 +4098,32 @@ limited-clean-depends:

.if !target(deinstall-depends)
deinstall-depends:
@for dir in $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} deinstall); \
done
@recursive_cmd="deinstall"; \
recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}
.endif

.if !target(fetch-specials)
fetch-specials:
@${ECHO_MSG} "===> Fetching all distfiles required by ${PKGNAME} for building"
@for dir in ${_DEPEND_SPECIALS}; do \
case $${dir} in \
*@*) \
flavor=$${dir#*@}; \
dir=$${dir%@*}; \
;; \
esac; \
case $$dir in \
/*) ;; \
*) dir=${PORTSDIR}/$$dir ;; \
esac; \
(cd $$dir; ${SETENV} FLAVOR=$${flavor} ${MAKE} fetch); \
done
@recursive_cmd="fetch"; \
recursive_dirs="${_DEPEND_SPECIALS}"; \
${_FLAVOR_RECURSIVE_SH}
.endif

.if !target(fetch-recursive)
fetch-recursive:
@${ECHO_MSG} "===> Fetching all distfiles for ${PKGNAME} and dependencies"
@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} fetch); \
done
@recursive_cmd="fetch"; \
recursive_dirs="${.CURDIR} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}
.endif

.if !target(fetch-recursive-list)
fetch-recursive-list:
@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} fetch-list); \
done
@recursive_cmd="fetch-list"; \
recursive_dirs="${.CURDIR} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}
.endif

# Used by fetch-required and fetch-required list, this script looks
Expand Down Expand Up @@ -4174,9 +4188,9 @@ fetch-required-list: fetch-list
.if !target(checksum-recursive)
checksum-recursive:
@${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and dependencies"
@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} checksum); \
done
@recursive_cmd="checksum"; \
recursive_dirs="${.CURDIR} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}
.endif

# Dependency lists: build and runtime. Print out directory names.
Expand Down Expand Up @@ -4313,9 +4327,9 @@ actual-package-depends:
# Build packages for port and dependencies

package-recursive: package
@for dir in $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} package-noinstall); \
done
@recursive_cmd="package-noinstall"; \
recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}

# Show missing dependencies
missing:
Expand Down Expand Up @@ -4983,9 +4997,9 @@ config:
.if !target(config-recursive)
config-recursive:
@${ECHO_MSG} "===> Setting user-specified options for ${PKGNAME} and dependencies";
@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} config-conditional); \
done
@recursive_cmd="config-conditional"; \
recursive_dirs="${.CURDIR} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}
.endif # config-recursive

.if !target(config-conditional)
Expand Down Expand Up @@ -5039,9 +5053,9 @@ showconfig: check-config
.if !target(showconfig-recursive)
showconfig-recursive:
@${ECHO_MSG} "===> The following configuration options are available for ${PKGNAME} and dependencies";
@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} showconfig); \
done
@recursive_cmd="showconfig"; \
recursive_dirs="${.CURDIR} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}
.endif # showconfig-recursive

.if !target(rmconfig)
Expand All @@ -5066,9 +5080,9 @@ rmconfig:
.if !target(rmconfig-recursive)
rmconfig-recursive:
@${ECHO_MSG} "===> Removing user-specified options for ${PKGNAME} and dependencies";
@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} rmconfig); \
done
@recursive_cmd="rmconfig"; \
recursive_dirs="${.CURDIR} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \
${_FLAVOR_RECURSIVE_SH}
.endif # rmconfig-recursive

.if !target(pretty-print-config)
Expand Down

0 comments on commit d1e67be

Please sign in to comment.