doc/api: remove dependency on findutils on FreeBSD

Message ID 20211222151855.803916-1-bruce.richardson@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series doc/api: remove dependency on findutils on FreeBSD |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS

Commit Message

Bruce Richardson Dec. 22, 2021, 3:18 p.m. UTC
  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 instread.

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: bluca@debian.org
Cc: thomas@monjalon.net
Cc: stable@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/api/generate_examples.sh | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)
  

Comments

Thomas Monjalon Jan. 12, 2022, 5:25 p.m. UTC | #1
22/12/2021 16:18, Bruce Richardson:
> 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 instread.
> 
> 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: bluca@debian.org
> Cc: thomas@monjalon.net
> Cc: stable@dpdk.org
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> -$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

Broke up this long line (after each pipe),
and applied, thanks.
  

Patch

diff --git a/doc/api/generate_examples.sh b/doc/api/generate_examples.sh
index 3e08236596..16949cb47a 100755
--- a/doc/api/generate_examples.sh
+++ b/doc/api/generate_examples.sh
@@ -6,21 +6,13 @@  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'