diff mbox series

doc/examples: fix build on FreeBSD

Message ID 20210915173633.59057-1-bruce.richardson@intel.com (mailing list archive)
State New
Delegated to: Thomas Monjalon
Headers show
Series doc/examples: fix build on FreeBSD | expand

Checks

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

Commit Message

Bruce Richardson Sept. 15, 2021, 5:36 p.m. UTC
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: bluca@debian.org
Cc: stable@dpdk.org

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

Comments

Thomas Monjalon Oct. 1, 2021, 3:03 p.m. UTC | #1
15/09/2021 19:36, Bruce Richardson:
> On FreeBSD, "find" does not support the "printf" flag, so we need to
> use "gfind" from the "findutils" package.

It is one more dependency.
Shouldn't we avoid it by rewritting the shell commands with loops?
Bruce Richardson Oct. 1, 2021, 3:15 p.m. UTC | #2
On Fri, Oct 01, 2021 at 05:03:11PM +0200, Thomas Monjalon wrote:
> 15/09/2021 19:36, Bruce Richardson:
> > On FreeBSD, "find" does not support the "printf" flag, so we need to
> > use "gfind" from the "findutils" package.
> 
> It is one more dependency.
> Shouldn't we avoid it by rewritting the shell commands with loops?
>
Probably in the longer term, yes. If I get the chance, I'll try and rewrite
this script, but let's keep this patch in the queue in case I don't get to
in the 21.11 timeframe.

/Bruce
Thomas Monjalon Oct. 1, 2021, 3:36 p.m. UTC | #3
01/10/2021 17:15, Bruce Richardson:
> On Fri, Oct 01, 2021 at 05:03:11PM +0200, Thomas Monjalon wrote:
> > 15/09/2021 19:36, Bruce Richardson:
> > > On FreeBSD, "find" does not support the "printf" flag, so we need to
> > > use "gfind" from the "findutils" package.
> > 
> > It is one more dependency.
> > Shouldn't we avoid it by rewritting the shell commands with loops?
> >
> Probably in the longer term, yes. If I get the chance, I'll try and rewrite
> this script, but let's keep this patch in the queue in case I don't get to
> in the 21.11 timeframe.

OK
I can help with the shell tricks if needed.
Bruce Richardson Oct. 1, 2021, 3:41 p.m. UTC | #4
On Fri, Oct 01, 2021 at 05:36:51PM +0200, Thomas Monjalon wrote:
> 01/10/2021 17:15, Bruce Richardson:
> > On Fri, Oct 01, 2021 at 05:03:11PM +0200, Thomas Monjalon wrote:
> > > 15/09/2021 19:36, Bruce Richardson:
> > > > On FreeBSD, "find" does not support the "printf" flag, so we need to
> > > > use "gfind" from the "findutils" package.
> > > 
> > > It is one more dependency.
> > > Shouldn't we avoid it by rewritting the shell commands with loops?
> > >
> > Probably in the longer term, yes. If I get the chance, I'll try and rewrite
> > this script, but let's keep this patch in the queue in case I don't get to
> > in the 21.11 timeframe.
> 
> OK
> I can help with the shell tricks if needed.
> 
Well, I was actually considering a rewrite in python for two reasons:
* easy FS scans using the "walk()" function
* portability across OS's [which is the main reason for the work after all]

/Bruce
diff mbox series

Patch

diff --git a/doc/api/generate_examples.sh b/doc/api/generate_examples.sh
index dae7ee0be0..3e08236596 100755
--- a/doc/api/generate_examples.sh
+++ b/doc/api/generate_examples.sh
@@ -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'