xref: /freebsd/tools/kerneldoc/subsys/Makefile (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
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