bsd.dep.mk revision 35789
1226995Smarius# $Id: bsd.dep.mk,v 1.19 1998/03/23 14:58:26 eivind Exp $ 2226995Smarius# 3226995Smarius# The include file <bsd.dep.mk> handles Makefile dependencies. 4226995Smarius# 5226995Smarius# 6226995Smarius# +++ variables +++ 7226995Smarius# 8226995Smarius# DEPENDFILE dependencies file [.depend] 9226995Smarius# 10226995Smarius# MKDEP Options for ${MKDEPCMD} [not set] 11226995Smarius# 12226995Smarius# MKDEPCMD Makefile dependency list program [mkdep] 13226995Smarius# 14226995Smarius# SRCS List of source files (c, c++, assembler) 15226995Smarius# 16226995Smarius# 17226995Smarius# +++ targets +++ 18226995Smarius# 19226995Smarius# cleandepend: 20226995Smarius# Remove depend and tags file 21226995Smarius# 22226995Smarius# depend: 23226995Smarius# Make the dependencies for the source files, and store 24226995Smarius# them in the file ${DEPENDFILE}. 25226995Smarius# 26226995Smarius# tags: 27226995Smarius# Create a (GLOBAL) gtags file for the source files. 28226995Smarius# If HTML is defined, htags is also run after gtags. 29226995Smarius 30226995Smarius 31226995SmariusMKDEPCMD?= mkdep 32226995SmariusDEPENDFILE?= .depend 33226995Smarius 34226995Smarius.if !target(depend) 35226995Smarius.if defined(SRCS) 36226995Smariusdepend: beforedepend ${DEPENDFILE} afterdepend _SUBDIR 37226995Smarius 38226995Smarius# Different types of sources are compiled with slightly different flags. 39226995Smarius# Split up the sources, and filter out headers and non-applicable flags. 40226995Smarius${DEPENDFILE}: ${SRCS} 41226995Smarius rm -f ${DEPENDFILE} 42226995Smarius.if ${SRCS:M*.[sS]} != "" 43226995Smarius ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \ 44226995Smarius ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} \ 45226995Smarius ${AINC} \ 46226995Smarius ${.ALLSRC:M*.[sS]} 47226995Smarius.endif 48226995Smarius.if ${SRCS:M*.c} != "" 49226995Smarius ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \ 50226995Smarius ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} \ 51226995Smarius ${.ALLSRC:M*.c} 52226995Smarius.endif 53226995Smarius.if ${SRCS:M*.cc} != "" || ${SRCS:M*.C} != "" || ${SRCS:M*.cxx} != "" 54226995Smarius ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \ 55226995Smarius ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*} \ 56226995Smarius ${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cxx} 57226995Smarius.endif 58226995Smarius.if target(_EXTRADEPEND) 59226995Smarius cd ${.CURDIR}; ${MAKE} _EXTRADEPEND 60226995Smarius.endif 61226995Smarius 62226995Smarius.ORDER: ${DEPENDFILE} afterdepend 63226995Smarius.else 64226995Smariusdepend: beforedepend afterdepend _SUBDIR 65226995Smarius.endif 66226995Smarius.if !target(beforedepend) 67226995Smariusbeforedepend: 68226995Smarius.else 69226995Smarius.ORDER: beforedepend ${DEPENDFILE} 70226995Smarius.ORDER: beforedepend afterdepend 71226995Smarius.endif 72226995Smarius.if !target(afterdepend) 73226995Smariusafterdepend: 74226995Smarius.endif 75226995Smarius.endif 76226995Smarius 77226995Smarius.if defined(NOTAGS) 78226995Smariustags: 79226995Smarius.endif 80226995Smarius 81226995Smarius.if !target(tags) 82226995Smariustags: ${SRCS} _SUBDIR 83226995Smarius @cd ${.CURDIR} && gtags ${GTAGSFLAGS} ${.OBJDIR} 84226995Smarius.if defined(HTML) 85226995Smarius @cd ${.CURDIR} && htags ${HTAGSFLAGS} -d ${.OBJDIR} ${.OBJDIR} 86226995Smarius.endif 87226995Smarius.endif 88226995Smarius 89226995Smarius.if !target(cleandepend) 90226995Smariuscleandepend: _SUBDIR 91226995Smarius.if defined(SRCS) 92226995Smarius rm -f ${DEPENDFILE} ${.OBJDIR}/GRTAGS ${.OBJDIR}/GSYMS ${.OBJDIR}/GTAGS 93226995Smarius.if defined(HTML) 94226995Smarius rm -rf ${.OBJDIR}/HTML 95226995Smarius.endif 96226995Smarius.endif 97226995Smarius.endif 98226995Smarius