]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - targets/Makefile.xtras
Trim a spurious trailing backslash
[FreeBSD/FreeBSD.git] / targets / Makefile.xtras
1 #
2 # Makefile.xtras - non-build targets
3
4 # Resist the urge to fill this with miscellaneous junk
5
6 # We are not building here (shouldn't be), so no meta mode.
7 .MAKE.MODE = normal
8
9 _here := ${_PARSEDIR}
10
11 .MAIN: no-default
12
13 .if !empty(SB_NAME)
14 # mk wrapper
15 MAKE_CMD= mk
16 MAKE_MACHINE_CMD= mk --machine <machine>
17 .else
18 # not using 'mk'
19 MAKE_CMD= ${.MAKE:T}
20 MAKE_MACHINE_CMD= env MACHINE=<machine> ${.MAKE:T}
21 .endif
22
23 no-default:
24         @echo "ERROR: there is no supported default target."; \
25         echo "Try '${MAKE_CMD} help'"
26
27
28 .if make(show-valid-targets)
29 OTHER_TARGETS = \
30         destroy \
31         destroy-arch \
32         destroy-host \
33         destroy-stage \
34
35 BUILD_TARGETS_${MACHINE:tu} != cd ${_here} && \
36         find . \( ${${.MAKE.DEPENDFILE:T} ${.MAKE.DEPENDFILE_PREFIX}:L:O:u:@m@-name $m -o@:tW:S,-o$,,} \) | \
37         sed 's,/Makefile.*,,;s,^./,,' | sort -u
38
39 .for _machine in ${ALL_MACHINE_LIST}
40 _targets_${_machine} != cd ${_here} && \
41         find . \( ${.MAKE.DEPENDFILE_PREFERENCE:T:M*${MACHINE}*:S,${MACHINE},${_machine},g:O:u:@m@-name $m -o@:tW:S,-o$,,} \) | \
42         sed 's,/Makefile.*,,;s,^./,,' | sort -u
43 BUILD_TARGETS_${_machine:tu} += ${_targets_${_machine}}
44 .endfor
45
46 show-valid-targets:
47 .for _machine in ${ALL_MACHINE_LIST:O}
48 .if !empty(BUILD_TARGETS_${_machine:tu})
49         @echo "Build targets for ${_machine} (leave out the ${DIRDEPS_TARGETS_DIRS:S,${_here:T},,:S,^/,,:S,$,/,}):"
50         @echo -e "${BUILD_TARGETS_${_machine:tu}:O:ts\n}" | sed -e 's,^,  ,'
51         @echo
52 .endif
53 .endfor
54         @echo "Other targets:"; echo "${OTHER_TARGETS:O:ts\n}" | sed -e 's,^,  ,'
55 .endif
56
57 help: show-help
58 show-help:
59         @echo; \
60         echo "You can see the targets which are valid for a given machine"; \
61         echo "by running '${MAKE_MACHINE_CMD} show-valid-targets'"; \
62         echo "For other information, read: ${HELP_DOCS:@d@${.newline}$d@}"; \
63         echo
64
65 not-valid-target:
66         @echo "ERROR: '${_TARGETS}' is not a valid target for ${MACHINE}."
67
68 .if make(destroy*)
69 .include <bsd.obj.mk>
70 .endif
71
72 .for t in ${_TARGETS:Nlove}
73 .if !target($t)
74 $t: not-valid-target show-help
75 .endif
76 .endfor