]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/kerneldoc/subsys/Makefile
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / kerneldoc / subsys / Makefile
1 #
2 # $FreeBSD$
3 #
4
5 _ALL!=  cd ${.CURDIR} && ls Doxyfile-*
6 ALL=    ${_ALL:C/Doxyfile-//g}
7 PDF_ALL=${_ALL:C/Doxyfile/pdf/g}
8
9 TARGET_ARCH?=   ${MACHINE_ARCH}
10 S?=/usr/src/sys
11 LOCALBASE?=/usr/local
12
13 MFILES!= find ${S} -name \*.m | sed -e 's:${S}/::g'
14 HFILES= ${MFILES:T:S/.m$/.h/}
15 AWK?=   awk
16
17 .MAIN:  usage
18
19 usage:
20         @echo "Possible targets are:"
21 .for entry in ${ALL}
22         @echo " ${entry}"
23         @echo " pdf-${entry}"
24         @echo " clean-${entry}"
25 .endfor
26         @echo
27         @echo " all"
28         @echo " pdf-all"
29         @echo " clean"
30
31 all:    ${ALL}
32 pdf-all:${PDF_ALL}
33
34 mfiles: ${HFILES:S/^/${.OBJDIR}\/include\//}
35
36 DOXYGEN_DEST_PATH?=     ${.OBJDIR}
37 DOXYGEN_LATEX_DEST_PATH?=${.OBJDIR}
38 DOXYGEN_PDF_DEST_PATH?= ${.OBJDIR}
39
40 .if exists(${S}/${TARGET_ARCH}/linux)
41 DOXYGEN_LINUX_PATH=     ${S}/${TARGET_ARCH}/linux
42 .endif
43 .if exists(${S}/${TARGET_ARCH}/linux32)
44 DOXYGEN_LINUX_PATH+=    ${S}/${TARGET_ARCH}/linux32
45 .endif
46
47 #
48 # generate the necessary targets
49 #
50 .for target in ${ALL}
51 ${target}:      mfiles ${.OBJDIR}/${target}/${target}.tag
52
53 ${.OBJDIR}/${target}/${target}.tag:
54         @mkdir -p ${.OBJDIR}/${target}
55         @cd ${.OBJDIR} && \
56                 env DOXYGEN_INCLUDE_PATH=${.CURDIR} \
57                     DOXYGEN_SRC_PATH=${S}  \
58                     DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \
59                     DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include ${.OBJDIR}/include" \
60                     DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \
61                     DOXYGEN_LINUX_PATH=${DOXYGEN_LINUX_PATH} \
62                     NOTREVIEWED=${.CURDIR}/notreviewed.dox \
63                     PATH=${LOCALBASE}/bin:${PATH} \
64                         doxygen ${.CURDIR}/Doxyfile-${target}
65         @echo "API docs for ${target} are now available in ${DOXYGEN_DEST_PATH}/${target}/." | /usr/bin/fmt
66
67 pdf-${target}:  ${.OBJDIR}/${target}/${target}.tag
68         @cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
69         @echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt
70
71 CLEANDIRS+=     ${DOXYGEN_DEST_PATH}/${target}
72 CLEANDIRS+=     ${.OBJDIR}/${target}/
73 CLEANFILES+=    ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf
74 clean-${target}:
75         rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target}
76 .endfor
77
78 CLEANDIRS+=     ${.OBJDIR}/include
79 .for file in ${MFILES}
80 CLEANFILES+=     ${.OBJDIR}/include/${file:T:S/.m$/.h/}
81 ${.OBJDIR}/include/${file:T:S/.m$/.h/}: ${S}/${file}
82         @mkdir -p ${.OBJDIR}/include
83         cd ${.OBJDIR}/include && ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h
84 .endfor
85
86 #
87 # update target for the config files {config syntax change}
88 #
89 update-doxys:
90 .for config_file in ${_ALL}
91         @doxygen -u ${config_file}
92 .endfor
93
94 .include "Dependencies"
95 .include <bsd.obj.mk>