xref: /freebsd/tools/kerneldoc/subsys/Makefile (revision 176f88e9aca1c9833bff8099a5164faa5bacecf8)
1ff4b8cb7SAlexander Leidinger#
2ff4b8cb7SAlexander Leidinger# $FreeBSD$
3ff4b8cb7SAlexander Leidinger#
4ff4b8cb7SAlexander Leidinger
5ff4b8cb7SAlexander Leidinger_ALL!=	cd ${.CURDIR} && ls Doxyfile-*
6ff4b8cb7SAlexander LeidingerALL=	${_ALL:C/Doxyfile-//g}
7ff4b8cb7SAlexander LeidingerPDF_ALL=${_ALL:C/Doxyfile/pdf/g}
8ff4b8cb7SAlexander Leidinger
9ff4b8cb7SAlexander LeidingerTARGET_ARCH?=	${MACHINE_ARCH}
10ff4b8cb7SAlexander LeidingerS?=/usr/src/sys
1169f1cb3cSAlexander LeidingerLOCALBASE?=/usr/local
12ff4b8cb7SAlexander Leidinger
1320cb1f56SAlexander LeidingerMFILES!= find ${S} -name \*.m | sed -e 's:${S}/::g'
14ff4b8cb7SAlexander LeidingerHFILES=	${MFILES:T:S/.m$/.h/}
15ff4b8cb7SAlexander LeidingerAWK?=	awk
16ff4b8cb7SAlexander Leidinger
17ff4b8cb7SAlexander Leidinger.MAIN:	usage
18ff4b8cb7SAlexander Leidinger
19ff4b8cb7SAlexander Leidingerusage:
20ff4b8cb7SAlexander Leidinger	@echo "Possible targets are:"
21ff4b8cb7SAlexander Leidinger.for entry in ${ALL}
22ff4b8cb7SAlexander Leidinger	@echo "	${entry}"
23ff4b8cb7SAlexander Leidinger	@echo "	pdf-${entry}"
24ff4b8cb7SAlexander Leidinger	@echo "	clean-${entry}"
25ff4b8cb7SAlexander Leidinger.endfor
26ff4b8cb7SAlexander Leidinger	@echo
27ff4b8cb7SAlexander Leidinger	@echo "	all"
28ff4b8cb7SAlexander Leidinger	@echo "	pdf-all"
29ff4b8cb7SAlexander Leidinger	@echo "	clean"
30ff4b8cb7SAlexander Leidinger
31ff4b8cb7SAlexander Leidingerall:	${ALL}
32ff4b8cb7SAlexander Leidingerpdf-all:${PDF_ALL}
33ff4b8cb7SAlexander Leidinger
3420cb1f56SAlexander Leidingermfiles: ${HFILES:S/^/${.OBJDIR}\/include\//}
35ff4b8cb7SAlexander Leidinger
3620cb1f56SAlexander LeidingerDOXYGEN_DEST_PATH?=	${.OBJDIR}
3720cb1f56SAlexander LeidingerDOXYGEN_LATEX_DEST_PATH?=${.OBJDIR}
3820cb1f56SAlexander LeidingerDOXYGEN_PDF_DEST_PATH?=	${.OBJDIR}
39ff4b8cb7SAlexander Leidinger
4020cb1f56SAlexander Leidinger.if exists(${S}/${TARGET_ARCH}/linux)
41ff4b8cb7SAlexander LeidingerDOXYGEN_LINUX_PATH=	${S}/${TARGET_ARCH}/linux
42ff4b8cb7SAlexander Leidinger.endif
4320cb1f56SAlexander Leidinger.if exists(${S}/${TARGET_ARCH}/linux32)
44ff4b8cb7SAlexander LeidingerDOXYGEN_LINUX_PATH+=	${S}/${TARGET_ARCH}/linux32
45ff4b8cb7SAlexander Leidinger.endif
46ff4b8cb7SAlexander Leidinger
47ff4b8cb7SAlexander Leidinger#
48ff4b8cb7SAlexander Leidinger# generate the necessary targets
49ff4b8cb7SAlexander Leidinger#
50ff4b8cb7SAlexander Leidinger.for target in ${ALL}
51ff4b8cb7SAlexander Leidinger${target}:	mfiles ${.OBJDIR}/${target}/${target}.tag
52ff4b8cb7SAlexander Leidinger
53ff4b8cb7SAlexander Leidinger${.OBJDIR}/${target}/${target}.tag:
5469f1cb3cSAlexander Leidinger	@mkdir -p ${.OBJDIR}/${target}
55ff4b8cb7SAlexander Leidinger	@cd ${.OBJDIR} && \
56ff4b8cb7SAlexander Leidinger		env DOXYGEN_INCLUDE_PATH=${.CURDIR} \
57ff4b8cb7SAlexander Leidinger		    DOXYGEN_SRC_PATH=${S}  \
58ff4b8cb7SAlexander Leidinger		    DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \
5920cb1f56SAlexander Leidinger		    DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include ${.OBJDIR}/include" \
60ff4b8cb7SAlexander Leidinger		    DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \
61*176f88e9SAlexander Leidinger		    DOXYGEN_LINUX_PATH="${DOXYGEN_LINUX_PATH}" \
6239e2bd0bSAlexander Leidinger		    NOTREVIEWED=${.CURDIR}/notreviewed.dox \
6369f1cb3cSAlexander Leidinger		    PATH=${LOCALBASE}/bin:${PATH} \
64ff4b8cb7SAlexander Leidinger			doxygen ${.CURDIR}/Doxyfile-${target}
6520cb1f56SAlexander Leidinger	@echo "API docs for ${target} are now available in ${DOXYGEN_DEST_PATH}/${target}/." | /usr/bin/fmt
66ff4b8cb7SAlexander Leidinger
67ff4b8cb7SAlexander Leidingerpdf-${target}:	${.OBJDIR}/${target}/${target}.tag
68ff4b8cb7SAlexander Leidinger	@cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
69ff4b8cb7SAlexander Leidinger	@echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt
70ff4b8cb7SAlexander Leidinger
71ff4b8cb7SAlexander LeidingerCLEANDIRS+=	${DOXYGEN_DEST_PATH}/${target}
72ff4b8cb7SAlexander LeidingerCLEANDIRS+=	${.OBJDIR}/${target}/
73ff4b8cb7SAlexander LeidingerCLEANFILES+=	${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
74ff4b8cb7SAlexander Leidingerclean-${target}:
75ff4b8cb7SAlexander Leidinger	rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target}
76ff4b8cb7SAlexander Leidinger.endfor
77ff4b8cb7SAlexander Leidinger
7820cb1f56SAlexander LeidingerCLEANDIRS+=	${.OBJDIR}/include
79ff4b8cb7SAlexander Leidinger.for file in ${MFILES}
8020cb1f56SAlexander LeidingerCLEANFILES+=     ${.OBJDIR}/include/${file:T:S/.m$/.h/}
8120cb1f56SAlexander Leidinger${.OBJDIR}/include/${file:T:S/.m$/.h/}: ${S}/${file}
8220cb1f56SAlexander Leidinger	@mkdir -p ${.OBJDIR}/include
8320cb1f56SAlexander Leidinger	cd ${.OBJDIR}/include && ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h
84ff4b8cb7SAlexander Leidinger.endfor
85ff4b8cb7SAlexander Leidinger
86ff4b8cb7SAlexander Leidinger#
87ff4b8cb7SAlexander Leidinger# update target for the config files {config syntax change}
88ff4b8cb7SAlexander Leidinger#
89ff4b8cb7SAlexander Leidingerupdate-doxys:
90ff4b8cb7SAlexander Leidinger.for config_file in ${_ALL}
91ff4b8cb7SAlexander Leidinger	@doxygen -u ${config_file}
92ff4b8cb7SAlexander Leidinger.endfor
93ff4b8cb7SAlexander Leidinger
94ff4b8cb7SAlexander Leidinger.include "Dependencies"
95ff4b8cb7SAlexander Leidinger.include <bsd.obj.mk>
96