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.
26 lines
1.1 KiB
Bash
Executable File
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}
|