xref: /openbsd/share/mk/bsd.dep.mk (revision 08b1808b)
1*08b1808bSpatrick#	$OpenBSD: bsd.dep.mk,v 1.25 2022/01/08 17:05:30 patrick Exp $
288a61734Smickey#	$NetBSD: bsd.dep.mk,v 1.12 1995/09/27 01:15:09 christos Exp $
3df930be7Sderaadt
4df930be7Sderaadt.if !target(depend)
5a86afe1bSespiedepend:
6a86afe1bSespie	@:
7a86afe1bSespie.endif
87168f600Sespie
9a86afe1bSespie# relies on DEPS defined by bsd.lib.mk and bsd.prog.mk
10a86afe1bSespie.if defined(DEPS) && !empty(DEPS)
118c219cffSespie# catch22: don't include potentially bogus files we are going to clean
128c219cffSespie.  if !(make(clean) || make(cleandir) || make(obj))
13a86afe1bSespie.    for o in ${DEPS}
14a86afe1bSespie       sinclude $o
15a86afe1bSespie.    endfor
16df930be7Sderaadt.  endif
178c219cffSespie.endif
18a86afe1bSespie
19a86afe1bSespieCFLAGS += -MD -MP
20a86afe1bSespieCXXFLAGS += -MD -MP
21a86afe1bSespie
22a86afe1bSespie# libraries need some special love
23749ab249SguentherDFLAGS += -MD -MP -MT $*.o -MT $*.po -MT $*.so -MT $*.do
24df930be7Sderaadt
25df930be7Sderaadt.if !target(tags)
26df930be7Sderaadt.  if defined(SRCS)
27df930be7Sderaadttags: ${SRCS} _SUBDIRUSE
288671d480Santon	-cd ${.CURDIR}; ${CTAGS} -f /dev/stdout -d ${.ALLSRC:N*.h} | \
29df930be7Sderaadt	    sed "s;\${.CURDIR}/;;" > tags
30df930be7Sderaadt.  else
31df930be7Sderaadttags:
32df930be7Sderaadt.  endif
33df930be7Sderaadt.endif
34df930be7Sderaadt
359d887525Sespie# explicitly tag most source files
369d887525Sespie.for i in ${SRCS:N*.[hyl]:N*.sh} ${_LEXINTM} ${_YACCINTM}
3752a0f106Sespie# assume libraries
3852a0f106Sespie${i:R:S/$/.o/} ${i:R:S/$/.po/} ${i:R:S/$/.so/} ${i:R:S/$/.do/}: $i
399d887525Sespie.endfor
40f4b7a610Sespie
41b32aa918Sespie# give us better rules for yacc
42b32aa918Sespie
43b32aa918Sespie.if ${YFLAGS:M-d}
44b32aa918Sespie# loop may not trigger
45b32aa918Sespie.  for f in ${SRCS:M*.y}
46b32aa918Sespie${f:.y=.c} ${f:.y=.h}: $f
47*08b1808bSpatrick	${YACC.y} -o ${f:.y=.c} ${.ALLSRC:M*.y}
48b32aa918Sespie.  endfor
49b32aa918SespieCLEANFILES += ${SRCS:M*.y:.y=.h}
50b32aa918Sespie.endif
51b32aa918Sespie
5234ec81a5Sespie.if defined(SRCS)
5334ec81a5Sespiecleandir: cleandepend
5434ec81a5Sespiecleandepend:
5534ec81a5Sespie	rm -f ${.CURDIR}/tags
5634ec81a5Sespie.endif
5734ec81a5Sespie
58d96a07ceSnaddyCLEANFILES += ${DEPS}
5952a0f106Sespie
609cf9bf88SespieBUILDFIRST ?=
619cf9bf88SespieBUILDAFTER ?=
6252a0f106Sespie.if !empty(BUILDAFTER)
6352a0f106Sespie.  for i in ${BUILDFIRST} ${_LEXINTM} ${_YACCINTM}
6452a0f106Sespie.    if !exists($i)
6552a0f106Sespie${BUILDAFTER}: $i
6652a0f106Sespie.    endif
6752a0f106Sespie.  endfor
689cf9bf88Sespie.endif
6934ec81a5Sespie.PHONY: cleandepend
70