1ff4b8cb7SAlexander Leidinger# 2ff4b8cb7SAlexander Leidinger# 3ff4b8cb7SAlexander Leidinger 4ff4b8cb7SAlexander Leidinger_ALL!= cd ${.CURDIR} && ls Doxyfile-* 5ff4b8cb7SAlexander LeidingerALL= ${_ALL:C/Doxyfile-//g} 6ff4b8cb7SAlexander LeidingerPDF_ALL=${_ALL:C/Doxyfile/pdf/g} 7ff4b8cb7SAlexander Leidinger 8ff4b8cb7SAlexander LeidingerTARGET_ARCH?= ${MACHINE_ARCH} 9ff4b8cb7SAlexander LeidingerS?=/usr/src/sys 1069f1cb3cSAlexander LeidingerLOCALBASE?=/usr/local 11ff4b8cb7SAlexander Leidinger 12*d65c432aSAlexander LeidingerMFILES!= find ${S} -name \*.m | egrep '/(dev|libkern|kgssapi|opencrypto|isa|geom|kern|xen|net|${TARGET_ARCH})/' | sed -e 's:${S}/::g' 13ff4b8cb7SAlexander LeidingerHFILES= ${MFILES:T:S/.m$/.h/} 14ff4b8cb7SAlexander LeidingerAWK?= awk 15ff4b8cb7SAlexander Leidinger 16ff4b8cb7SAlexander Leidinger.MAIN: usage 17ff4b8cb7SAlexander Leidinger 18ff4b8cb7SAlexander Leidingerusage: 19ff4b8cb7SAlexander Leidinger @echo "Possible targets are:" 20ff4b8cb7SAlexander Leidinger.for entry in ${ALL} 21ff4b8cb7SAlexander Leidinger @echo " ${entry}" 22ff4b8cb7SAlexander Leidinger @echo " pdf-${entry}" 23ff4b8cb7SAlexander Leidinger @echo " clean-${entry}" 24ff4b8cb7SAlexander Leidinger.endfor 25ff4b8cb7SAlexander Leidinger @echo 26ff4b8cb7SAlexander Leidinger @echo " all" 27ff4b8cb7SAlexander Leidinger @echo " pdf-all" 28ff4b8cb7SAlexander Leidinger @echo " clean" 29ff4b8cb7SAlexander Leidinger 30ff4b8cb7SAlexander Leidingerall: ${ALL} 31ff4b8cb7SAlexander Leidingerpdf-all:${PDF_ALL} 32ff4b8cb7SAlexander Leidinger 3320cb1f56SAlexander Leidingermfiles: ${HFILES:S/^/${.OBJDIR}\/include\//} 34ff4b8cb7SAlexander Leidinger 3520cb1f56SAlexander LeidingerDOXYGEN_DEST_PATH?= ${.OBJDIR} 3620cb1f56SAlexander LeidingerDOXYGEN_LATEX_DEST_PATH?=${.OBJDIR} 3720cb1f56SAlexander LeidingerDOXYGEN_PDF_DEST_PATH?= ${.OBJDIR} 38ff4b8cb7SAlexander Leidinger 3920cb1f56SAlexander Leidinger.if exists(${S}/${TARGET_ARCH}/linux) 40ff4b8cb7SAlexander LeidingerDOXYGEN_LINUX_PATH= ${S}/${TARGET_ARCH}/linux 41ff4b8cb7SAlexander Leidinger.endif 4220cb1f56SAlexander Leidinger.if exists(${S}/${TARGET_ARCH}/linux32) 43ff4b8cb7SAlexander LeidingerDOXYGEN_LINUX_PATH+= ${S}/${TARGET_ARCH}/linux32 44ff4b8cb7SAlexander Leidinger.endif 45ff4b8cb7SAlexander Leidinger 46ff4b8cb7SAlexander Leidinger# 47ff4b8cb7SAlexander Leidinger# generate the necessary targets 48ff4b8cb7SAlexander Leidinger# 49ff4b8cb7SAlexander Leidinger.for target in ${ALL} 50ff4b8cb7SAlexander Leidinger${target}: mfiles ${.OBJDIR}/${target}/${target}.tag 51ff4b8cb7SAlexander Leidinger 52ff4b8cb7SAlexander Leidinger${.OBJDIR}/${target}/${target}.tag: 5369f1cb3cSAlexander Leidinger @mkdir -p ${.OBJDIR}/${target} 54ff4b8cb7SAlexander Leidinger @cd ${.OBJDIR} && \ 55ff4b8cb7SAlexander Leidinger env DOXYGEN_INCLUDE_PATH=${.CURDIR} \ 56ff4b8cb7SAlexander Leidinger DOXYGEN_SRC_PATH=${S} \ 57ff4b8cb7SAlexander Leidinger DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \ 5820cb1f56SAlexander Leidinger DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include ${.OBJDIR}/include" \ 59ff4b8cb7SAlexander Leidinger DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \ 60176f88e9SAlexander Leidinger DOXYGEN_LINUX_PATH="${DOXYGEN_LINUX_PATH}" \ 6139e2bd0bSAlexander Leidinger NOTREVIEWED=${.CURDIR}/notreviewed.dox \ 6269f1cb3cSAlexander Leidinger PATH=${LOCALBASE}/bin:${PATH} \ 63ff4b8cb7SAlexander Leidinger doxygen ${.CURDIR}/Doxyfile-${target} 6420cb1f56SAlexander Leidinger @echo "API docs for ${target} are now available in ${DOXYGEN_DEST_PATH}/${target}/." | /usr/bin/fmt 65ff4b8cb7SAlexander Leidinger 66ff4b8cb7SAlexander Leidingerpdf-${target}: ${.OBJDIR}/${target}/${target}.tag 67ff4b8cb7SAlexander Leidinger @cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf 68ff4b8cb7SAlexander Leidinger @echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt 69ff4b8cb7SAlexander Leidinger 70ff4b8cb7SAlexander LeidingerCLEANDIRS+= ${DOXYGEN_DEST_PATH}/${target} 71ff4b8cb7SAlexander LeidingerCLEANDIRS+= ${.OBJDIR}/${target}/ 72ff4b8cb7SAlexander LeidingerCLEANFILES+= ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf 73ff4b8cb7SAlexander Leidingerclean-${target}: 74ff4b8cb7SAlexander Leidinger rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target} 75ff4b8cb7SAlexander Leidinger.endfor 76ff4b8cb7SAlexander Leidinger 7720cb1f56SAlexander LeidingerCLEANDIRS+= ${.OBJDIR}/include 78ff4b8cb7SAlexander Leidinger.for file in ${MFILES} 7920cb1f56SAlexander LeidingerCLEANFILES+= ${.OBJDIR}/include/${file:T:S/.m$/.h/} 8020cb1f56SAlexander Leidinger${.OBJDIR}/include/${file:T:S/.m$/.h/}: ${S}/${file} 8120cb1f56SAlexander Leidinger @mkdir -p ${.OBJDIR}/include 8220cb1f56SAlexander Leidinger cd ${.OBJDIR}/include && ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h 83ff4b8cb7SAlexander Leidinger.endfor 84ff4b8cb7SAlexander Leidinger 85ff4b8cb7SAlexander Leidinger# 86ff4b8cb7SAlexander Leidinger# update target for the config files {config syntax change} 87ff4b8cb7SAlexander Leidinger# 88ff4b8cb7SAlexander Leidingerupdate-doxys: 89ff4b8cb7SAlexander Leidinger.for config_file in ${_ALL} 90ff4b8cb7SAlexander Leidinger @doxygen -u ${config_file} 91ff4b8cb7SAlexander Leidinger.endfor 92ff4b8cb7SAlexander Leidinger 93ff4b8cb7SAlexander Leidinger.include "Dependencies" 94ff4b8cb7SAlexander Leidinger.include <bsd.obj.mk> 95