Makefile revision 160922
1158961Snetchild#
2158961Snetchild# $FreeBSD: head/tools/kerneldoc/subsys/Makefile 160922 2006-08-02 15:24:59Z netchild $
3158961Snetchild#
4158961Snetchild
5158961Snetchild_ALL!=	cd ${.CURDIR} && ls Doxyfile-*
6158961SnetchildALL=	${_ALL:C/Doxyfile-//g}
7158961SnetchildPDF_ALL=${_ALL:C/Doxyfile/pdf/g}
8158961Snetchild
9158961SnetchildTARGET_ARCH?=	${MACHINE_ARCH}
10158961SnetchildS?=/usr/src/sys
11160922SnetchildLOCALBASE?=/usr/local
12158961Snetchild
13158961SnetchildMFILES+=contrib/dev/ath/freebsd/ah_if.m
14158961SnetchildMFILES+=dev/acpica/acpi_if.m
15160172SnetchildMFILES+=dev/ata/ata_if.m
16158961SnetchildMFILES+=dev/eisa/eisa_if.m
17158961SnetchildMFILES+=dev/iicbus/iicbb_if.m
18158961SnetchildMFILES+=dev/iicbus/iicbus_if.m
19158961SnetchildMFILES+=dev/mii/miibus_if.m
20158961SnetchildMFILES+=dev/ofw/ofw_bus_if.m
21158961SnetchildMFILES+=dev/pccard/card_if.m
22158961SnetchildMFILES+=dev/pccard/power_if.m
23158961SnetchildMFILES+=dev/pci/pci_if.m
24158961SnetchildMFILES+=dev/pci/pcib_if.m
25158961SnetchildMFILES+=dev/ppbus/ppbus_if.m
26160172SnetchildMFILES+=dev/scc/scc_if.m
27158961SnetchildMFILES+=dev/smbus/smbus_if.m
28160172SnetchildMFILES+=dev/sound/midi/mpu_if.m
29160172SnetchildMFILES+=dev/sound/midi/mpufoi_if.m
30160172SnetchildMFILES+=dev/sound/midi/synth_if.m
31158961SnetchildMFILES+=dev/sound/pcm/ac97_if.m
32158961SnetchildMFILES+=dev/sound/pcm/channel_if.m
33158961SnetchildMFILES+=dev/sound/pcm/feeder_if.m
34158961SnetchildMFILES+=dev/sound/pcm/mixer_if.m
35158961SnetchildMFILES+=dev/uart/uart_if.m
36158961SnetchildMFILES+=dev/usb/usb_if.m
37158961SnetchildMFILES+=isa/isa_if.m
38158961SnetchildMFILES+=kern/bus_if.m
39158961SnetchildMFILES+=kern/clock_if.m
40158961SnetchildMFILES+=kern/cpufreq_if.m
41158961SnetchildMFILES+=kern/device_if.m
42158961SnetchildMFILES+=kern/linker_if.m
43160172SnetchildMFILES+=kern/serdev_if.m
44158961SnetchildMFILES+=libkern/iconv_converter_if.m
45158961SnetchildMFILES+=opencrypto/crypto_if.m
46158961SnetchildMFILES+=pc98/pc98/canbus_if.m
47158961SnetchildMFILES+=pci/agp_if.m
48160172SnetchildMFILES+=powerpc/powerpc/mmu_if.m
49158961SnetchildMFILES+=powerpc/powerpc/pic_if.m
50158961SnetchildMFILES+=sparc64/pci/ofw_pci_if.m
51158961Snetchild
52158961SnetchildHFILES=	${MFILES:T:S/.m$/.h/}
53158961SnetchildAWK?=	awk
54158961Snetchild
55158961Snetchild.MAIN:	usage
56158961Snetchild
57158961Snetchildusage:
58158961Snetchild	@echo "Possible targets are:"
59158961Snetchild.for entry in ${ALL}
60158961Snetchild	@echo "	${entry}"
61158961Snetchild	@echo "	pdf-${entry}"
62158961Snetchild	@echo "	clean-${entry}"
63158961Snetchild.endfor
64158961Snetchild	@echo
65158961Snetchild	@echo "	all"
66158961Snetchild	@echo "	pdf-all"
67158961Snetchild	@echo "	clean"
68158961Snetchild
69158961Snetchildall:	${ALL}
70158961Snetchildpdf-all:${PDF_ALL}
71158961Snetchild
72158961Snetchildmfiles: ${HFILES:S/^/${.OBJDIR}\//}
73158961Snetchild
74158961SnetchildDOXYGEN_DEST_PATH=	${.OBJDIR}
75158961SnetchildDOXYGEN_LATEX_DEST_PATH=${.OBJDIR}
76158961SnetchildDOXYGEN_PDF_DEST_PATH=	${.OBJDIR}
77158961Snetchild
78158961Snetchild.if exists{${S}/${TARGET_ARCH}/linux}
79158961SnetchildDOXYGEN_LINUX_PATH=	${S}/${TARGET_ARCH}/linux
80158961Snetchild.endif
81158961Snetchild.if exists{${S}/${TARGET_ARCH}/linux32}
82158961SnetchildDOXYGEN_LINUX_PATH+=	${S}/${TARGET_ARCH}/linux32
83158961Snetchild.endif
84158961Snetchild
85158961Snetchild#
86158961Snetchild# generate the necessary targets
87158961Snetchild#
88158961Snetchild.for target in ${ALL}
89158961Snetchild${target}:	mfiles ${.OBJDIR}/${target}/${target}.tag
90158961Snetchild
91158961Snetchild${.OBJDIR}/${target}/${target}.tag:
92160922Snetchild	@mkdir -p ${.OBJDIR}/${target}
93158961Snetchild	@cd ${.OBJDIR} && \
94158961Snetchild		env DOXYGEN_INCLUDE_PATH=${.CURDIR} \
95158961Snetchild		    DOXYGEN_SRC_PATH=${S}  \
96158961Snetchild		    DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \
97158961Snetchild		    DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include" \
98158961Snetchild		    DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \
99158961Snetchild		    DOXYGEN_LINUX_PATH=${DOXYGEN_LINUX_PATH} \
100159010Snetchild		    NOTREVIEWED=${.CURDIR}/notreviewed.dox \
101160922Snetchild		    PATH=${LOCALBASE}/bin:${PATH} \
102158961Snetchild			doxygen ${.CURDIR}/Doxyfile-${target}
103158961Snetchild	@echo "API docs for ${target} are now available in ${.OBJDIR}/${target}/." | /usr/bin/fmt
104158961Snetchild
105158961Snetchildpdf-${target}:	${.OBJDIR}/${target}/${target}.tag
106158961Snetchild	@cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
107158961Snetchild	@echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt
108158961Snetchild
109158961SnetchildCLEANDIRS+=	${DOXYGEN_DEST_PATH}/${target}
110158961SnetchildCLEANDIRS+=	${.OBJDIR}/${target}/
111158961SnetchildCLEANFILES+=	${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
112158961Snetchildclean-${target}:
113158961Snetchild	rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target}
114158961Snetchild.endfor
115158961Snetchild
116158961Snetchild.for file in ${MFILES}
117158961SnetchildCLEANDIRS+=     ${.OBJDIR}/${file:T:S/.m$/.h/}
118158961Snetchild${.OBJDIR}/${file:T:S/.m$/.h/}: ${S}/${file}
119158961Snetchild	cd ${.OBJDIR}; ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h
120158961Snetchild.endfor
121158961Snetchild
122158961Snetchild#
123158961Snetchild# update target for the config files {config syntax change}
124158961Snetchild#
125158961Snetchildupdate-doxys:
126158961Snetchild.for config_file in ${_ALL}
127158961Snetchild	@doxygen -u ${config_file}
128158961Snetchild.endfor
129158961Snetchild
130158961Snetchild.include "Dependencies"
131158961Snetchild.include <bsd.obj.mk>
132