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 13ff4b8cb7SAlexander LeidingerMFILES+=contrib/dev/ath/freebsd/ah_if.m 14ff4b8cb7SAlexander LeidingerMFILES+=dev/acpica/acpi_if.m 1575f8db26SAlexander LeidingerMFILES+=dev/ata/ata_if.m 16ff4b8cb7SAlexander LeidingerMFILES+=dev/eisa/eisa_if.m 17ff4b8cb7SAlexander LeidingerMFILES+=dev/iicbus/iicbb_if.m 18ff4b8cb7SAlexander LeidingerMFILES+=dev/iicbus/iicbus_if.m 19ff4b8cb7SAlexander LeidingerMFILES+=dev/mii/miibus_if.m 20ff4b8cb7SAlexander LeidingerMFILES+=dev/ofw/ofw_bus_if.m 21ff4b8cb7SAlexander LeidingerMFILES+=dev/pccard/card_if.m 22ff4b8cb7SAlexander LeidingerMFILES+=dev/pccard/power_if.m 23ff4b8cb7SAlexander LeidingerMFILES+=dev/pci/pci_if.m 24ff4b8cb7SAlexander LeidingerMFILES+=dev/pci/pcib_if.m 25ff4b8cb7SAlexander LeidingerMFILES+=dev/ppbus/ppbus_if.m 2675f8db26SAlexander LeidingerMFILES+=dev/scc/scc_if.m 27ff4b8cb7SAlexander LeidingerMFILES+=dev/smbus/smbus_if.m 2875f8db26SAlexander LeidingerMFILES+=dev/sound/midi/mpu_if.m 2975f8db26SAlexander LeidingerMFILES+=dev/sound/midi/mpufoi_if.m 3075f8db26SAlexander LeidingerMFILES+=dev/sound/midi/synth_if.m 31ff4b8cb7SAlexander LeidingerMFILES+=dev/sound/pcm/ac97_if.m 32ff4b8cb7SAlexander LeidingerMFILES+=dev/sound/pcm/channel_if.m 33ff4b8cb7SAlexander LeidingerMFILES+=dev/sound/pcm/feeder_if.m 34ff4b8cb7SAlexander LeidingerMFILES+=dev/sound/pcm/mixer_if.m 35ff4b8cb7SAlexander LeidingerMFILES+=dev/uart/uart_if.m 36ff4b8cb7SAlexander LeidingerMFILES+=dev/usb/usb_if.m 37ff4b8cb7SAlexander LeidingerMFILES+=isa/isa_if.m 38ff4b8cb7SAlexander LeidingerMFILES+=kern/bus_if.m 39ff4b8cb7SAlexander LeidingerMFILES+=kern/clock_if.m 40ff4b8cb7SAlexander LeidingerMFILES+=kern/cpufreq_if.m 41ff4b8cb7SAlexander LeidingerMFILES+=kern/device_if.m 42ff4b8cb7SAlexander LeidingerMFILES+=kern/linker_if.m 4375f8db26SAlexander LeidingerMFILES+=kern/serdev_if.m 44ff4b8cb7SAlexander LeidingerMFILES+=libkern/iconv_converter_if.m 45ff4b8cb7SAlexander LeidingerMFILES+=opencrypto/crypto_if.m 46ff4b8cb7SAlexander LeidingerMFILES+=pc98/pc98/canbus_if.m 47ff4b8cb7SAlexander LeidingerMFILES+=pci/agp_if.m 4875f8db26SAlexander LeidingerMFILES+=powerpc/powerpc/mmu_if.m 49ff4b8cb7SAlexander LeidingerMFILES+=powerpc/powerpc/pic_if.m 50ff4b8cb7SAlexander LeidingerMFILES+=sparc64/pci/ofw_pci_if.m 51ff4b8cb7SAlexander Leidinger 52ff4b8cb7SAlexander LeidingerHFILES= ${MFILES:T:S/.m$/.h/} 53ff4b8cb7SAlexander LeidingerAWK?= awk 54ff4b8cb7SAlexander Leidinger 55ff4b8cb7SAlexander Leidinger.MAIN: usage 56ff4b8cb7SAlexander Leidinger 57ff4b8cb7SAlexander Leidingerusage: 58ff4b8cb7SAlexander Leidinger @echo "Possible targets are:" 59ff4b8cb7SAlexander Leidinger.for entry in ${ALL} 60ff4b8cb7SAlexander Leidinger @echo " ${entry}" 61ff4b8cb7SAlexander Leidinger @echo " pdf-${entry}" 62ff4b8cb7SAlexander Leidinger @echo " clean-${entry}" 63ff4b8cb7SAlexander Leidinger.endfor 64ff4b8cb7SAlexander Leidinger @echo 65ff4b8cb7SAlexander Leidinger @echo " all" 66ff4b8cb7SAlexander Leidinger @echo " pdf-all" 67ff4b8cb7SAlexander Leidinger @echo " clean" 68ff4b8cb7SAlexander Leidinger 69ff4b8cb7SAlexander Leidingerall: ${ALL} 70ff4b8cb7SAlexander Leidingerpdf-all:${PDF_ALL} 71ff4b8cb7SAlexander Leidinger 72ff4b8cb7SAlexander Leidingermfiles: ${HFILES:S/^/${.OBJDIR}\//} 73ff4b8cb7SAlexander Leidinger 74ff4b8cb7SAlexander LeidingerDOXYGEN_DEST_PATH= ${.OBJDIR} 75ff4b8cb7SAlexander LeidingerDOXYGEN_LATEX_DEST_PATH=${.OBJDIR} 76ff4b8cb7SAlexander LeidingerDOXYGEN_PDF_DEST_PATH= ${.OBJDIR} 77ff4b8cb7SAlexander Leidinger 78ff4b8cb7SAlexander Leidinger.if exists{${S}/${TARGET_ARCH}/linux} 79ff4b8cb7SAlexander LeidingerDOXYGEN_LINUX_PATH= ${S}/${TARGET_ARCH}/linux 80ff4b8cb7SAlexander Leidinger.endif 81ff4b8cb7SAlexander Leidinger.if exists{${S}/${TARGET_ARCH}/linux32} 82ff4b8cb7SAlexander LeidingerDOXYGEN_LINUX_PATH+= ${S}/${TARGET_ARCH}/linux32 83ff4b8cb7SAlexander Leidinger.endif 84ff4b8cb7SAlexander Leidinger 85ff4b8cb7SAlexander Leidinger# 86ff4b8cb7SAlexander Leidinger# generate the necessary targets 87ff4b8cb7SAlexander Leidinger# 88ff4b8cb7SAlexander Leidinger.for target in ${ALL} 89ff4b8cb7SAlexander Leidinger${target}: mfiles ${.OBJDIR}/${target}/${target}.tag 90ff4b8cb7SAlexander Leidinger 91ff4b8cb7SAlexander Leidinger${.OBJDIR}/${target}/${target}.tag: 9269f1cb3cSAlexander Leidinger @mkdir -p ${.OBJDIR}/${target} 93ff4b8cb7SAlexander Leidinger @cd ${.OBJDIR} && \ 94ff4b8cb7SAlexander Leidinger env DOXYGEN_INCLUDE_PATH=${.CURDIR} \ 95ff4b8cb7SAlexander Leidinger DOXYGEN_SRC_PATH=${S} \ 96ff4b8cb7SAlexander Leidinger DOXYGEN_DEST_PATH=${DOXYGEN_DEST_PATH} \ 97ff4b8cb7SAlexander Leidinger DOXYGEN_SRC_INCLUDE_PATH="${S}/sys ${S}/../include ${S}/${TARGET_ARCH}/include" \ 98ff4b8cb7SAlexander Leidinger DOXYGEN_TARGET_ARCH=${TARGET_ARCH} \ 99ff4b8cb7SAlexander Leidinger DOXYGEN_LINUX_PATH=${DOXYGEN_LINUX_PATH} \ 10039e2bd0bSAlexander Leidinger NOTREVIEWED=${.CURDIR}/notreviewed.dox \ 10169f1cb3cSAlexander Leidinger PATH=${LOCALBASE}/bin:${PATH} \ 102ff4b8cb7SAlexander Leidinger doxygen ${.CURDIR}/Doxyfile-${target} 103ff4b8cb7SAlexander Leidinger @echo "API docs for ${target} are now available in ${.OBJDIR}/${target}/." | /usr/bin/fmt 104ff4b8cb7SAlexander Leidinger 105ff4b8cb7SAlexander Leidingerpdf-${target}: ${.OBJDIR}/${target}/${target}.tag 106ff4b8cb7SAlexander Leidinger @cd ${DOXYGEN_LATEX_DEST_PATH}/${target}/latex && ${MAKE} refman.pdf && cp refman.pdf ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf 107ff4b8cb7SAlexander Leidinger @echo "API docs for ${target} are now available in ${DOXYGEN_PDF_DEST_PATH}/." | /usr/bin/fmt 108ff4b8cb7SAlexander Leidinger 109ff4b8cb7SAlexander LeidingerCLEANDIRS+= ${DOXYGEN_DEST_PATH}/${target} 110ff4b8cb7SAlexander LeidingerCLEANDIRS+= ${.OBJDIR}/${target}/ 111ff4b8cb7SAlexander LeidingerCLEANFILES+= ${DOXYGEN_PDF_DEST_PATH}/${target}.pdf 112ff4b8cb7SAlexander Leidingerclean-${target}: 113ff4b8cb7SAlexander Leidinger rm -rf ${DOXYGEN_DEST_PATH}/${target} ${.OBJDIR}/${target} 114ff4b8cb7SAlexander Leidinger.endfor 115ff4b8cb7SAlexander Leidinger 116ff4b8cb7SAlexander Leidinger.for file in ${MFILES} 117ff4b8cb7SAlexander LeidingerCLEANDIRS+= ${.OBJDIR}/${file:T:S/.m$/.h/} 118ff4b8cb7SAlexander Leidinger${.OBJDIR}/${file:T:S/.m$/.h/}: ${S}/${file} 119ff4b8cb7SAlexander Leidinger cd ${.OBJDIR}; ${AWK} -f $S/tools/makeobjops.awk ${S}/${file} -h 120ff4b8cb7SAlexander Leidinger.endfor 121ff4b8cb7SAlexander Leidinger 122ff4b8cb7SAlexander Leidinger# 123ff4b8cb7SAlexander Leidinger# update target for the config files {config syntax change} 124ff4b8cb7SAlexander Leidinger# 125ff4b8cb7SAlexander Leidingerupdate-doxys: 126ff4b8cb7SAlexander Leidinger.for config_file in ${_ALL} 127ff4b8cb7SAlexander Leidinger @doxygen -u ${config_file} 128ff4b8cb7SAlexander Leidinger.endfor 129ff4b8cb7SAlexander Leidinger 130ff4b8cb7SAlexander Leidinger.include "Dependencies" 131ff4b8cb7SAlexander Leidinger.include <bsd.obj.mk> 132