doc: remove dependency on findutils on FreeBSD

Standard "find" on BSD does not support the "-printf" so gfind from
findutils package was used to enable full doc builds. We can remove this
extra dependency by using "sed" and "tr" to adjust the output from
regular find instead.

Fixes: 8260f4f98cfe ("mk: use script to generate examples.dox")
Fixes: 499fe9dfcfc7 ("doc: add dependency on examples for API doxygen")
Fixes: 897e55c8d27f ("doc: fix Doxygen examples build on FreeBSD")
Cc: stable@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
Bruce Richardson 2021-12-22 15:18:55 +00:00 committed by Thomas Monjalon
parent eefbfbf5ea
commit fee17a1d29

View File

@ -6,21 +6,15 @@ EXAMPLES_DIR=$1
API_EXAMPLES=$2
FIND=find
if [ "$(uname)" = "FreeBSD" ] ; then
# on FreeBSD, we need GNU find for "-printf" flag
FIND=gfind
if ! which -s $FIND ; then
echo "Error: need '$FIND' on FreeBSD. Install 'findutils' pkg"
exit 1
fi
fi
# generate a .d file including both C files and also build files, so we can
# detect both file changes and file additions/deletions
echo "$API_EXAMPLES: $($FIND ${EXAMPLES_DIR} -type f \( -name '*.c' -o -name 'meson.build' \) -printf '%p ' )" > ${API_EXAMPLES}.d
echo "$API_EXAMPLES: $($FIND ${EXAMPLES_DIR} -type f \( -name '*.c' -o -name 'meson.build' \) | tr '\n' ' ' )" > ${API_EXAMPLES}.d
exec > "${API_EXAMPLES}"
printf '/**\n'
printf '@page examples DPDK Example Programs\n\n'
$FIND "${EXAMPLES_DIR}" -type f -name '*.c' -printf '@example examples/%P\n' | LC_ALL=C sort
$FIND "${EXAMPLES_DIR}" -type f -name '*.c' |
sed "s|${EXAMPLES_DIR}|@example examples|" |
LC_ALL=C sort
printf '*/\n'