235 # generate dependencies |
235 # generate dependencies |
236 PKGDEPEND_GENERATE_OPTIONS = -m $(PKG_PROTO_DIRS:%=-d %) |
236 PKGDEPEND_GENERATE_OPTIONS = -m $(PKG_PROTO_DIRS:%=-d %) |
237 $(MANIFEST_BASE)-%.depend: $(MANIFEST_BASE)-%.mangled |
237 $(MANIFEST_BASE)-%.depend: $(MANIFEST_BASE)-%.mangled |
238 $(PKGDEPEND) generate $(PKGDEPEND_GENERATE_OPTIONS) $< >$@ |
238 $(PKGDEPEND) generate $(PKGDEPEND_GENERATE_OPTIONS) $< >$@ |
239 |
239 |
|
240 # These files should contain a list of packages that the component is known to |
|
241 # depend on. Using resolve.deps is not required, but significantly speeds up |
|
242 # the "pkg resolve" step. |
|
243 EXTDEPFILES = $(wildcard $(sort $(addsuffix ../resolve.deps, $(dir $(DEPENDED))))) |
|
244 |
|
245 # This is a target that should only be run by hand, and not something that |
|
246 # .resolved-$(MACH) should depend on. |
|
247 sample-resolve.deps: |
|
248 @echo "<transform depend type=(require|require-any) -> print %(fmri)>" > rd-trans |
|
249 @for i in build/*.depend; do \ |
|
250 $(PKGMOGRIFY) -O /dev/null $$i rd-trans | tr " " "\n" | sort -u > m1; \ |
|
251 $(PKGMOGRIFY) -O /dev/null $$i.res rd-trans | tr " " "\n" | sort -u > m2; \ |
|
252 comm -13 m1 m2; \ |
|
253 done | sed -e 's/@[^ ]*//g' -e 's,pkg:/,,g' | sort -u > resolve.deps |
|
254 @$(RM) rd-trans m1 m2 |
|
255 @if [[ ! -s resolve.deps ]]; then \ |
|
256 echo "No computed dependencies found; removing empty resolve.deps."; \ |
|
257 $(RM) resolve.deps; \ |
|
258 fi |
|
259 |
240 # resolve the dependencies all at once |
260 # resolve the dependencies all at once |
241 $(BUILD_DIR)/.resolved-$(MACH): $(DEPENDED) |
261 $(BUILD_DIR)/.resolved-$(MACH): $(DEPENDED) |
242 $(PKGDEPEND) resolve -m $(DEPENDED) |
262 $(PKGDEPEND) resolve $(EXTDEPFILES:%=-e %) -m $(DEPENDED) |
243 $(TOUCH) $@ |
263 $(TOUCH) $@ |
244 |
264 |
245 # lint the manifests all at once |
265 # lint the manifests all at once |
246 $(BUILD_DIR)/.linted-$(MACH): $(BUILD_DIR)/.resolved-$(MACH) |
266 $(BUILD_DIR)/.linted-$(MACH): $(BUILD_DIR)/.resolved-$(MACH) |
247 @echo "VALIDATING MANIFEST CONTENT: $(RESOLVED)" |
267 @echo "VALIDATING MANIFEST CONTENT: $(RESOLVED)" |