doc: fix Doxygen examples build on FreeBSD
authorBruce Richardson <bruce.richardson@intel.com>
Wed, 15 Sep 2021 17:36:33 +0000 (18:36 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 17 Nov 2021 10:19:31 +0000 (11:19 +0100)
On FreeBSD, "find" does not support the "printf" flag, so we need to
use "gfind" from the "findutils" package.

Fixes: 8260f4f98cfe ("mk: use script to generate examples.dox")
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
doc/api/generate_examples.sh

index dae7ee0..3e08236 100755 (executable)
@@ -5,12 +5,22 @@
 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' \) -printf '%p ' )" > ${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' -printf '@example examples/%P\n' | LC_ALL=C sort
 printf '*/\n'