summaryrefslogtreecommitdiffstats
path: root/tools/kerneldoc/subsys/Makefile
blob: b950808455474a8763e1e8c386e633a33779747c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#
# $FreeBSD$
#

_ALL!=	cd ${.CURDIR} && ls Doxyfile-*
ALL=	${_ALL:C/Doxyfile-//g}
PDF_ALL=${_ALL:C/Doxyfile/pdf/g}

TARGET_ARCH?=	${MACHINE_ARCH}
S?=/usr/src/sys

MFILES+=contrib/dev/ath/freebsd/ah_if.m
MFILES+=dev/acpica/acpi_if.m
MFILES+=dev/ata/ata_if.m
MFILES+=dev/eisa/eisa_if.m
MFILES+=dev/iicbus/iicbb_if.m
MFILES+=dev/iicbus/iicbus_if.m
MFILES+=dev/mii/miibus_if.m
MFILES+=dev/ofw/ofw_bus_if.m
MFILES+=dev/pccard/card_if.m
MFILES+=dev/pccard/power_if.m
MFILES+=dev/pci/pci_if.m
MFILES+=dev/pci/pcib_if.m
MFILES+=dev/ppbus/ppbus_if.m
MFILES+=dev/scc/scc_if.m
MFILES+=dev/smbus/smbus_if.m
MFILES+=dev/sound/midi/mpu_if.m
MFILES+=dev/sound/midi/mpufoi_if.m
MFILES+=dev/sound/midi/synth_if.m
MFILES+=dev/sound/pcm/ac97_if.m
MFILES+=dev/sound/pcm/channel_if.m
MFILES+=dev/sound/pcm/feeder_if.m
MFILES+=dev/sound/pcm/mixer_if.m
MFILES+=dev/uart/uart_if.m
MFILES+=dev/usb/usb_if.m
MFILES+=isa/isa_if.m
MFILES+=kern/bus_if.m
MFILES+=kern/clock_if.m
MFILES+=kern/cpufreq_if.m
MFILES+=kern/device_if.m
MFILES+=kern/linker_if.m
MFILES+=kern/serdev_if.m
MFILES+=libkern/iconv_converter_if.m
MFILES+=opencrypto/crypto_if.m
MFILES+=pc98/pc98/canbus_if.m
MFILES+=pci/agp_if.m
MFILES+=powerpc/powerpc/mmu_if.m
MFILES+=powerpc/powerpc/pic_if.m
MFILES+=sparc64/pci/ofw_pci_if.m

HFILES=	${MFILES:T:S/.m$/.h/}
AWK?=	awk

.MAIN:	usage

usage:
	@echo "Possible targets are:"
.for entry in ${ALL}
	@echo "	${entry}"
	@echo "	pdf-${entry}"
	@echo "	clean-${entry}"
.endfor
	@echo
	@echo "	all"
	@echo "	pdf-all"
	@echo "	clean"

all:	${ALL}
pdf-all:${PDF_ALL}

mfiles: ${HFILES:S/^/${.OBJDIR}\//}

DOXYGEN_DEST_PATH=	${.OBJDIR}
DOXYGEN_LATEX_DEST_PATH=${.OBJDIR}
DOXYGEN_PDF_DEST_PATH=	${.OBJDIR}

.if exists{${S}/${TARGET_ARCH}/linux}
DOXYGEN_LINUX_PATH=	${S}/${TARGET_ARCH}/linux
.endif
.if exists{${S}/${TARGET_ARCH}/linux32}
DOXYGEN_LINUX_PATH+=	${S}/${TARGET_ARCH}/linux32
.endif

#
# generate the necessary targets
#
.for target in ${ALL}
${target}:	mfiles ${.OBJDIR}/${target}/${target}.tag

${.OBJDIR}/${target}/${target}.tag:
	@cd ${.OBJDIR} && \
		env DOXYGEN_INCLUDE_PATH=${.CURDIR} \
		    DOXYGEN_SRC_PATH=${S}  \
		    DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \
		    DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include" \
		    DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \
		    DOXYGEN_LINUX_PATH=${DOXYGEN_LINUX_PATH} \
		    NOTREVIEWED=${.CURDIR}/notreviewed.dox \
			doxygen ${.CURDIR}/Doxyfile-${target}
	@echo "API docs for ${target} are now available in ${.OBJDIR}/${target}/." | /usr/bin/fmt

pdf-${target}:	${.OBJDIR}/${target}/${target}.tag
	@cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
	@echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt

CLEANDIRS+=	${DOXYGEN_DEST_PATH}/${target}
CLEANDIRS+=	${.OBJDIR}/${target}/
CLEANFILES+=	${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
clean-${target}:
	rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target}
.endfor

.for file in ${MFILES}
CLEANDIRS+=     ${.OBJDIR}/${file:T:S/.m$/.h/}
${.OBJDIR}/${file:T:S/.m$/.h/}: ${S}/${file}
	cd ${.OBJDIR}; ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h
.endfor

#
# update target for the config files {config syntax change}
#
update-doxys:
.for config_file in ${_ALL}
	@doxygen -u ${config_file}
.endfor

.include "Dependencies"
.include <bsd.obj.mk>
OpenPOWER on IntegriCloud