1242818Ssjg# $FreeBSD$
2242818Ssjg#
3242818Ssjg# Makefile.xtras - non-build targets
4242818Ssjg
5242818Ssjg# Resist the urge to fill this with miscellaneous junk
6242818Ssjg
7242818Ssjg# We are not building here (shouldn't be), so no meta mode.
8242818Ssjg.MAKE.MODE = normal
9242818Ssjg
10242818Ssjg_here := ${_PARSEDIR}
11242818Ssjg
12242818Ssjg.MAIN: no-default
13242818Ssjg
14283688Ssjg.if !empty(SB_NAME)
15283688Ssjg# mk wrapper
16283688SsjgMAKE_CMD= mk
17283688SsjgMAKE_MACHINE_CMD= mk --machine <machine>
18283688Ssjg.else
19283688Ssjg# not using 'mk'
20283688SsjgMAKE_CMD= ${.MAKE:T}
21283688SsjgMAKE_MACHINE_CMD= env MACHINE=<machine> ${.MAKE:T}
22283688Ssjg.endif
23283688Ssjg
24242818Ssjgno-default:
25242818Ssjg	@echo "ERROR: there is no supported default target."; \
26283688Ssjg	echo "Try '${MAKE_CMD} help'"
27242818Ssjg
28242818Ssjg
29242818Ssjg.if make(show-valid-targets)
30242818SsjgOTHER_TARGETS = \
31242818Ssjg	destroy \
32295992Sbdrewery	destroy-arch \
33295992Sbdrewery	destroy-host \
34295992Sbdrewery	destroy-stage \
35242818Ssjg
36297430SbdreweryBUILD_TARGETS_${MACHINE:tu} != cd ${_here} && \
37242818Ssjg	find . \( -name Makefile.depend -o -name ${.MAKE.DEPENDFILE:T} \) | \
38242818Ssjg	sed 's,/Makefile.*,,;s,^./,,' | sort -u
39242818Ssjg
40297430Sbdrewery.for _machine in ${all_machine_list}
41297430Sbdrewery_targets_${_machine} != cd ${_here} && \
42297430Sbdrewery	find . \( -name Makefile.depend.${_machine} -o \
43297430Sbdrewery	    -name ${.MAKE.DEPENDFILE:T}.${_machine} \) | \
44297427Sbdrewery	sed 's,/Makefile.*,,;s,^./,,' | sort -u
45297430SbdreweryBUILD_TARGETS_${_machine:tu} += ${_targets_${_machine}}
46297430Sbdrewery.endfor
47297427Sbdrewery
48242818Ssjgshow-valid-targets:
49297430Sbdrewery.for _machine in ${all_machine_list:O}
50297430Sbdrewery.if !empty(BUILD_TARGETS_${_machine:tu})
51297430Sbdrewery	@echo "Build targets for ${_machine} (leave out the ${target_dirs:S,${_here:T},,:S,^/,,:S,$,/,}):"
52297433Sbdrewery	@echo -e "${BUILD_TARGETS_${_machine:tu}:O:ts\n}" | sed -e 's,^,  ,'
53297427Sbdrewery	@echo
54297427Sbdrewery.endif
55297430Sbdrewery.endfor
56297433Sbdrewery	@echo "Other targets:"; echo "${OTHER_TARGETS:O:ts\n}" | sed -e 's,^,  ,'
57242818Ssjg.endif
58242818Ssjg
59242818Ssjghelp: show-help
60242818Ssjgshow-help:
61242818Ssjg	@echo; \
62242818Ssjg	echo "You can see the targets which are valid for a given machine"; \
63283688Ssjg	echo "by running '${MAKE_MACHINE_CMD} show-valid-targets'"; \
64242818Ssjg	echo "For other information, read: ${HELP_DOCS:@d@${.newline}$d@}"; \
65242818Ssjg	echo
66242818Ssjg
67242818Ssjgnot-valid-target:
68242818Ssjg	@echo "ERROR: '${_TARGETS}' is not a valid target for ${MACHINE}."
69242818Ssjg
70296120Sbdrewery.if make(destroy*)
71295991Sbdrewery.include <bsd.obj.mk>
72296120Sbdrewery.endif
73242818Ssjg
74242818Ssjg.for t in ${_TARGETS:Nlove}
75242818Ssjg.if !target($t)
76242818Ssjg$t: not-valid-target show-help
77242818Ssjg.endif
78242818Ssjg.endfor
79