1 1.69 christos # $NetBSD: bsd.dep.mk,v 1.69 2010/01/25 00:43:00 christos Exp $ 2 1.13 gwr 3 1.33 tv ##### Basic targets 4 1.32 tv cleandir: cleandepend 5 1.33 tv realdepend: beforedepend .depend afterdepend 6 1.33 tv .ORDER: beforedepend .depend afterdepend 7 1.14 mycroft 8 1.33 tv beforedepend .depend afterdepend: # ensure existence 9 1.33 tv 10 1.33 tv ##### Default values 11 1.63 dsl MKDEP?= mkdep 12 1.63 dsl MKDEP_SUFFIXES?= .o 13 1.1 mycroft 14 1.33 tv ##### Build rules 15 1.1 mycroft # some of the rules involve .h sources, so remove them from mkdep line 16 1.33 tv 17 1.53 lukem .if defined(SRCS) # { 18 1.62 mrg _TRADITIONAL_CPP?=-traditional-cpp 19 1.62 mrg __acpp_flags= ${_TRADITIONAL_CPP} 20 1.48 lukem 21 1.55 lukem __DPSRCS.all= ${SRCS:C/\.(c|m|s|S|C|cc|cpp|cxx)$/.d/} \ 22 1.55 lukem ${DPSRCS:C/\.(c|m|s|S|C|cc|cpp|cxx)$/.d/} 23 1.55 lukem __DPSRCS.d= ${__DPSRCS.all:O:u:M*.d} 24 1.55 lukem __DPSRCS.notd= ${__DPSRCS.all:O:u:N*.d} 25 1.48 lukem 26 1.55 lukem .NOPATH: .depend ${__DPSRCS.d} 27 1.53 lukem 28 1.56 martin .if !empty(__DPSRCS.d) # { 29 1.55 lukem ${__DPSRCS.d}: ${__DPSRCS.notd} ${DPSRCS} 30 1.56 martin .endif # } 31 1.55 lukem 32 1.55 lukem .depend: ${__DPSRCS.d} 33 1.60 lukem ${_MKTARGET_CREATE} 34 1.58 lukem rm -f .depend 35 1.63 dsl ${MKDEP} -d -f ${.TARGET} -s ${MKDEP_SUFFIXES:Q} ${__DPSRCS.d} 36 1.39 christos 37 1.57 lukem .SUFFIXES: .d .s .S .c .C .cc .cpp .cxx .m 38 1.49 lukem 39 1.51 lukem .c.d: 40 1.60 lukem ${_MKTARGET_CREATE} 41 1.65 lukem ${MKDEP} -f ${.TARGET} -- ${MKDEPFLAGS} \ 42 1.65 lukem ${CFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \ 43 1.65 lukem ${CPPFLAGS} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} 44 1.39 christos 45 1.51 lukem .m.d: 46 1.60 lukem ${_MKTARGET_CREATE} 47 1.65 lukem ${MKDEP} -f ${.TARGET} -- ${MKDEPFLAGS} \ 48 1.65 lukem ${OBJCFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \ 49 1.49 lukem ${CPPFLAGS} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} 50 1.39 christos 51 1.51 lukem .s.d .S.d: 52 1.60 lukem ${_MKTARGET_CREATE} 53 1.65 lukem ${MKDEP} -f ${.TARGET} -- ${MKDEPFLAGS} \ 54 1.65 lukem ${AFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \ 55 1.67 lukem ${CPPFLAGS} ${CPPFLAGS.${.IMPSRC:T}} ${__acpp_flags} ${.IMPSRC} 56 1.39 christos 57 1.51 lukem .C.d .cc.d .cpp.d .cxx.d: 58 1.60 lukem ${_MKTARGET_CREATE} 59 1.65 lukem ${MKDEP} -f ${.TARGET} -- ${MKDEPFLAGS} \ 60 1.65 lukem ${CXXFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \ 61 1.47 mrg ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} \ 62 1.65 lukem ${DESTDIR}/usr/include/g++} \ 63 1.49 lukem ${CPPFLAGS} ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} 64 1.39 christos 65 1.53 lukem .endif # defined(SRCS) # } 66 1.33 tv 67 1.33 tv ##### Clean rules 68 1.66 lukem cleandepend: .PHONY 69 1.33 tv .if defined(SRCS) 70 1.55 lukem rm -f .depend ${__DPSRCS.d} ${.CURDIR}/tags ${CLEANDEPEND} 71 1.3 mycroft .endif 72 1.2 mycroft 73 1.33 tv ##### Custom rules 74 1.2 mycroft .if !target(tags) 75 1.33 tv tags: ${SRCS} 76 1.4 mycroft .if defined(SRCS) 77 1.69 christos -cd "${.CURDIR}"; ctags -f /dev/stdout ${.ALLSRC:N*.h} | \ 78 1.68 apb ${TOOL_SED} "s;\${.CURDIR}/;;" > tags 79 1.4 mycroft .endif 80 1.4 mycroft .endif 81