From ae5cd93a23a22e396698d8a992dfbba268c357e1 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Wed, 23 Oct 2019 16:26:28 +0200 Subject: [PATCH] support *.iocsh scripts in addition to *.cmd --- App/tools/driver.makefile | 6 +++--- require.c | 22 ++++++++++++++++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/App/tools/driver.makefile b/App/tools/driver.makefile index e464fcc..42b8fe7 100644 --- a/App/tools/driver.makefile +++ b/App/tools/driver.makefile @@ -134,7 +134,7 @@ $(foreach v,$(sort $(basename $(basename ${BUILD_EPICS_VERSIONS})) $(basename ${ SUBMODULES:=$(foreach f,$(wildcard .gitmodules),$(shell awk '/^\[submodule/ { print gensub(/["\]]/,"","g",$$2) }' $f)) # Check only version of files needed to build the module. But which are they? -VERSIONCHECKFILES = $(filter-out /% -none-, $(USERMAKEFILE) $(wildcard *.db *.template *.subs *.dbd *.cmd) +VERSIONCHECKFILES = $(filter-out /% -none-, $(USERMAKEFILE) $(wildcard *.db *.template *.subs *.dbd *.cmd *.iocsh) VERSIONCHECKFILES += ${SOURCES} ${DBDS} ${TEMPLATES} ${SCRIPTS} $($(filter SOURCES_% DBDS_%,${.VARIABLES}))) VERSIONCHECKFILES += ${SUBMODULES} VERSIONCHECKCMD = ${MAKEHOME}/getVersion.tcl ${VERSIONDEBUGFLAG} ${VERSIONCHECKFILES} @@ -197,7 +197,7 @@ help: @echo " DBDS (*.dbd)" @echo " HEADERS () [only those to install]" @echo " TEMPLATES (*.template *.db *.subs) [db files]" - @echo " SCRIPTS (*.cmd) [startup and other scripts]" + @echo " SCRIPTS (*.cmd *.iocsh) [startup and other scripts]" @echo " BINS () [programs to install]" @echo " SHRLIBS () [extra shared libraries to install]" @echo " QT (qt/*) [QT user interfaces to install]" @@ -385,7 +385,7 @@ TEMPLSX += ${TEMPLATES_${EPICSVERSION}} TEMPLS = $(filter-out $(realpath ${TEMPLSX:%=%/}),$(realpath ${TEMPLSX})) export TEMPLS -SCRX = $(if ${SCRIPTS},$(filter-out -none-,${SCRIPTS}),$(wildcard *.cmd)) +SCRX = $(if ${SCRIPTS},$(filter-out -none-,${SCRIPTS}),$(wildcard *.cmd *.iocsh)) SCRX += ${SCRIPTS_${EPICS_BASETYPE}} SCRX += ${SCRIPTS_${EPICSVERSION}} SCR = $(filter-out $(realpath ${SCRX:%=%/}),$(realpath ${SCRX})) diff --git a/require.c b/require.c index cb20daa..2de067f 100644 --- a/require.c +++ b/require.c @@ -1365,7 +1365,7 @@ static int require_priv(const char* module, const char* version, const char* arg dirlen += strlen(OSI_PATH_SEPARATOR); /* filename = "/[dirlen]" */ - + snprintf(filename+dirlen, sizeof(filename)-dirlen, "%s" OSI_PATH_SEPARATOR "%n", module, &modulediroffs); modulediroffs += dirlen; /* filename = "/[dirlen]/[modulediroffs]" */ @@ -1647,22 +1647,40 @@ loadlib: if (requireDebug) printf("require: looking for startup script\n"); /* filename = "///R/[releasediroffs]db" */ - if (TRY_FILE(releasediroffs, "%s-%s.cmd", targetArch, epicsRelease) || + if (TRY_FILE(releasediroffs, "%s-%s.iocsh", targetArch, epicsRelease) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.iocsh", targetArch, epicsRelease) || + TRY_FILE(releasediroffs, "%s-%s.cmd", targetArch, epicsRelease) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.cmd", targetArch, epicsRelease) || + TRY_FILE(releasediroffs, "%s-%s.iocsh", targetArch, epicsBasetype) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.iocsh", targetArch, epicsBasetype) || TRY_FILE(releasediroffs, "%s-%s.cmd", targetArch, epicsBasetype) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.cmd", targetArch, epicsBasetype) || + TRY_FILE(releasediroffs, "%s-%s.iocsh", osClass, epicsRelease) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.iocsh", osClass, epicsRelease) || TRY_FILE(releasediroffs, "%s-%s.cmd", osClass, epicsRelease) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.cmd", osClass, epicsRelease) || + TRY_FILE(releasediroffs, "%s-%s.iocsh", osClass, epicsBasetype) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.iocsh", osClass, epicsBasetype) || TRY_FILE(releasediroffs, "%s-%s.cmd", osClass, epicsBasetype) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s-%s.cmd", osClass, epicsBasetype) || + TRY_FILE(releasediroffs, "startup-%s.iocsh", epicsRelease) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "startup-%s.iocsh", epicsRelease) || TRY_FILE(releasediroffs, "startup-%s.cmd", epicsRelease) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "startup-%s.cmd", epicsRelease) || + TRY_FILE(releasediroffs, "startup-%s.iocsh", epicsBasetype) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "startup-%s.iocsh", epicsBasetype) || TRY_FILE(releasediroffs, "startup-%s.cmd", epicsBasetype) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "startup-%s.cmd", epicsBasetype) || + TRY_FILE(releasediroffs, "%s.iocsh", targetArch) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s.iocsh", targetArch) || TRY_FILE(releasediroffs, "%s.cmd", targetArch) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s.cmd", targetArch) || + TRY_FILE(releasediroffs, "%s.iocsh", osClass) || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s.iocsh", osClass) || TRY_FILE(releasediroffs, "%s.cmd", osClass) || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "%s.cmd", osClass) || + TRY_FILE(releasediroffs, "startup.iocsh") || + TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "startup.iocsh") || TRY_FILE(releasediroffs, "startup.cmd") || TRY_FILE(releasediroffs, ".." OSI_PATH_SEPARATOR "startup.cmd") )