blackmagic/scripts/gendoxylist
Karl Palsson a21aeab3b1 doc: make sure include/cm3 is pulled in properly.
Much as we had to pull in the individual target's include files
manually, because they're useful without necessarily having .c files
using them, the cortex core headers also need to be included.  This also
pulls in the doc-cm3.h file that setup nice groupings.
2018-09-09 15:27:41 +00:00

26 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Karl Palsson <karlp@tweak.net.au> Sept 2017
# Parse .d files for a given target, and generate a doxygen config file
# stub that is to be "@INCLUDE = <xxx>" into a doxygen template file.
DDIR=$1
ODIR=$2
ONAME=doxy.sourcelist
IPATH=$(echo ${DDIR} | sed -e 's#../lib/##')
PATH_DELTA=$(realpath --relative-to=${ODIR} ${DDIR})
printf "# This file is autogenerated by scripts/gendoxylist\n" > ${ODIR}/${ONAME}
printf "# All headers for core/platform, not always caught by .d file tracking\n" >> ${ODIR}/${ONAME}
UNTRACKED_DIRS="../include/libopencm3/cm3 ../include/libopencm3/${IPATH}"
for FN in $(find ${UNTRACKED_DIRS} -name '*.h'); do
printf "INPUT += ../%s\n" "$FN" >> ${ODIR}/${ONAME}
done
# There will be duplicates here, but doxygen doesn't mind.
printf "# Headers first\n" >> ${ODIR}/${ONAME}
grep -o '[^ ]*.h' ${DDIR}/*.d | grep 'include/libopencm3' | cut -d ':' -f2 | sort | uniq | sed "s#^#INPUT += ${PATH_DELTA}/#" >> ${ODIR}/${ONAME}
printf "# Now sources\n" >> ${ODIR}/${ONAME}
grep -o '[^ ]*\.c' ${DDIR}/*.d | cut -d ':' -f 2 | sort | uniq | sed "s#^#INPUT += $PATH_DELTA/#" >> ${ODIR}/${ONAME}