Right, it’s actually a bootstrapping problem, although for this particular tool we could probably also avoid it by adding some dependencies to the Makefile. It’s easier to fix the ‘use lib’ line in the tool though.
Simply using $Bin only does not work later in the build process. But why is the script called from the source, not from the installation anyway?
CONFIG_BASE sets TOOLS = $(abspath $(EPICS_BASE_HOST_BIN)), which should be OK.
But src/tools/Makefile overwrites that with TOOLS = $(TOP)/src/tools (with TOP = ../..)
Removing that leads to a problem with $(TOOLS)/makeMakefile.pl in RULES_ARCH.
Using FIND_TOOL does not work here either.
Some of the Perl scripts in src/tools are needed by build rules that create the O.* directories and make the install tree and so on, so they aren’t installed when we first need to run them. FIND_TOOL allows them to be run from either location, but the
scripts must still be able to locate any EPICS:: libraries they use when run from either location. The podToHtml.pl script only started using EPICS:: libraries very recently, and I didn’t think to add $Bin to it’s library search path at the time so this is
my bug which I will fix.
Found the problem: In 3.15 podToHtml.pl is called from $INSTALL_LOCATION/bin/$EPICS_HOST_ARCH bit in 7.0 it is called from $PWD/src/tools.
Thus this search path does not work:
use lib "$Bin/../../lib/perl";
Neither branch 3.15 commit 841effe (HEAD) nor commit 45cf2ea (merged into 7.0) nor branch 7.0 commit ad44c7a5 9before merge) has this problem. It appears only with the last merge.
Dirk