diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 397aa14418101e04e2e3dc245143c8a8888f352a..0000000000000000000000000000000000000000 --- a/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -O.* -require.Makefile -core.* -*~ -test/* -E3Test* -*~ -*-dev -modules.order -Module.symvers -Mkfile.old -dkms.conf -#* -.#* -\#* -.cvsignore -.vscode \ No newline at end of file diff --git a/App/startup/network.fin b/App/startup/network.fin deleted file mode 100644 index 10c4261c4a5bd00bcb3f3132bba4aa93f94a4580..0000000000000000000000000000000000000000 --- a/App/startup/network.fin +++ /dev/null @@ -1,9 +0,0 @@ -# setup mount points -hostAdd ("fileserver","129.129.145.56") -nfsMount ("fileserver", "/export/fin/ioc", "/ioc") -nfsMount ("fileserver", "/export/fin/work", "/fin/work") -nfsMount ("fileserver", "/export/fin/prod", "/fin/prod") -nfsMount ("fileserver", "/export/fin/devl", "/fin/devl") -nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") -putenv("EPICS_CA_AUTO_ADDR_LIST=NO") -putenv("EPICS_CA_ADDR_LIST=172.21.10.255 172.21.11.255 172.21.12.255 172.21.13.255") diff --git a/App/startup/network.hipa b/App/startup/network.hipa deleted file mode 100644 index 4633b3e29ddabb7d91ed108bab7d947060a61a72..0000000000000000000000000000000000000000 --- a/App/startup/network.hipa +++ /dev/null @@ -1,7 +0,0 @@ -# setup mount points -hostAdd ("fileserver","129.129.145.42") -nfsMount ("fileserver","/export/hipa/work","/hipa/work") -nfsMount ("fileserver","/export/hipa/prod","/hipa/prod") -nfsMount ("fileserver","/export/hipa/ioc","/ioc") -nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") -nfsAuthUnixSet &sysBootHost,500,9102 diff --git a/App/startup/network.proscan b/App/startup/network.proscan deleted file mode 100644 index 54f745a7cde0dbd8bd2b608bf752d7206b557aef..0000000000000000000000000000000000000000 --- a/App/startup/network.proscan +++ /dev/null @@ -1,6 +0,0 @@ -# setup mount points -hostAdd ("fileserver","129.129.145.66") -nfsMount ("fileserver","/export/proscan/ioc","/ioc") -nfsMount ("fileserver","/export/proscan/work","/proscan/work") -nfsMount ("fileserver","/export/proscan/prod","/proscan/prod") -nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") diff --git a/App/startup/network.sls b/App/startup/network.sls deleted file mode 100644 index 547b1b36930600d0d7c36af8ceae9d6f128299d6..0000000000000000000000000000000000000000 --- a/App/startup/network.sls +++ /dev/null @@ -1,22 +0,0 @@ -# Accept SLSBASE or INSTBASE -PBASE=0 -symFindByName(sysSymTbl,"INSTBASE",&PBASE,0) -symFindByName(sysSymTbl,"SLSBASE",&PBASE,0) -SLSBASE=*PBASE -INSTBASE=*PBASE - -# Router for SLS machine net (fails otherwise but that's ok) -routeAdd ("0.0.0.0","172.20.10.1") - -# setup mount points (try both possible locations for /ioc) -hostAdd ("slsfs","129.129.145.52") -nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") -nfsMount (&sysBootHost, "/ioc", "/ioc") -nfsMount ("slsfs", "/export/csa/releases/ioc", "/ioc") -nfsMount ("slsfs","/export/csa/releases/work","/work") -nfsMount ("slsfs","/export/csa/releases/prod","/prod") -nfsMount ("slsfs","/export/csa/releases/devl","/devl") -nfsMount ("slsfs","/export/exchange","/exchange") - -# overwrite driver module location -EPICS_MODULES = "/work/iocBoot/modules" diff --git a/App/startup/network.trfcb b/App/startup/network.trfcb deleted file mode 100644 index 597f23b5cdbf67c032ce03b13e2ecd97bed4397f..0000000000000000000000000000000000000000 --- a/App/startup/network.trfcb +++ /dev/null @@ -1,5 +0,0 @@ -# setup mount points -hostAdd ("fileserver","129.129.145.56") -nfsMount ("fileserver", "/export/trfcb/ioc", "/ioc") -nfsMount ("fileserver", "/export/trfcb/work", "/trfcb/work") -nfsMount (&sysBootHost, "/home/ioc", "/home/ioc") diff --git a/App/startup/saveRestore.script_common b/App/startup/saveRestore.script_common deleted file mode 100644 index 0eb23d24e779c5686841ea77d3f1c5104804cc2c..0000000000000000000000000000000000000000 --- a/App/startup/saveRestore.script_common +++ /dev/null @@ -1 +0,0 @@ -require "autoSRarray",getenv("autoSRarray_VERSION") diff --git a/App/startup/saveRestore.script_linux b/App/startup/saveRestore.script_linux deleted file mode 100644 index a41b4b8f1a9977b72ab8c9e33e3ca4244ff89f0d..0000000000000000000000000000000000000000 --- a/App/startup/saveRestore.script_linux +++ /dev/null @@ -1 +0,0 @@ -require "autoSRarray" "$(autoSRarray_VERSION=)" diff --git a/App/startup/startup.script_common b/App/startup/startup.script_common deleted file mode 100644 index 94f0faa414f067a1d513de22324d7227f95253aa..0000000000000000000000000000000000000000 --- a/App/startup/startup.script_common +++ /dev/null @@ -1,121 +0,0 @@ -# $Source: /cvs/A/CS/startup/startup.script_common,v $ -# This is the common part of all startup scripts -# It is included by all generated scripts - -# The following variables should be set before: -# * INSTBASE where to boot from -# * EPICS the epics release (e.g "R3.13.9") - -EPICS_MODULES = "/ioc/modules" - -# find a better way later to know current require version -REQUIRE_VERSION="2.4.3" - -#set EPICS_HOST_ARCH according to vxWorks version and cpu type -VX6=(*runtimeVersion>>24)&255-'5' -VMI=(*runtimeVersion>>8)&255 -EPICS_HOST_ARCH=malloc(16) -sprintf(EPICS_HOST_ARCH,"%s%c-ppc60%d",VX6?"V6":"T",VX6?VMI:VMI>'3'?'2':'1',sysCpu-90) - -#set target name as IOC name -IOC=&sysBootParams+60 - -BOOTPC=&sysBootHost - -STRINGBUFFER=malloc(256) - -# set the prompt -sprintf STRINGBUFFER, "%s (startup.script aborted) > ", IOC -shellPromptSet STRINGBUFFER - -# time server -putenv "EPICS_TS_NTP_INET=129.129.190.1" - -# do the NFS mounts and other network dependend stuff -< ../../startup/network - -sprintf STRINGBUFFER, "IOC=%s", IOC -putenv STRINGBUFFER - -# setup logging on boot PC -sprintf STRINGBUFFER, "EPICS_IOC_LOG_INET=%s", BOOTPC -putenv STRINGBUFFER -putenv "EPICS_IOC_LOG_PORT=6500" - -# create some path variables -HOME=malloc(80) -sprintf HOME, "/ioc/%s", IOC -sprintf STRINGBUFFER, "HOME=%s", HOME -putenv STRINGBUFFER -cd HOME - -CFG=malloc(80) -sprintf CFG, "%s/cfg", HOME -sprintf STRINGBUFFER, "CFG=%s", CFG -putenv STRINGBUFFER - -STREAM_PROTOCOL_DIR=malloc(80) -sprintf STREAM_PROTOCOL_DIR, "%s/cfg", HOME - -LIB=malloc(80) -sprintf LIB, "%s/iocBoot/%s/%s", INSTBASE, EPICS, EPICS_HOST_ARCH - -DBD=malloc(80) -sprintf DBD, "dbd:%s/iocBoot/%s/dbd", INSTBASE, EPICS - -sprintf STRINGBUFFER, "EPICS_DRIVER_PATH=.:bin/%s_%s:bin:snl:%s:%s", EPICS, EPICS_HOST_ARCH, EPICS_MODULES, LIB -putenv STRINGBUFFER - -TEMPLATES=malloc(80) -sprintf TEMPLATES, ".:%s/iocBoot/templates", INSTBASE - -# Release memory above 32 MB -# Code loaded after this must be compiled with -mlongcall -# at the moment snp24 does not work with this -memAddToPool (sysMemTop(),sysPhysMemTop()-sysMemTop()) -EXTENDED_MEMORY=0 -#EXTENDED_MEMORY=sysPhysMemTop()-sysMemTop() - -# load EPICS system core (different names for 3.13 and 3.14) -sprintf STRINGBUFFER, "%s/iocCore%s", LIB, strncmp(EPICS,"R3.13.",6) ? "Library.munch" : "" -ld 0, 0, STRINGBUFFER - -# TIMEZONE must be set after loading iocCoreLibrary.munch and before iocInit -# 2016: -putenv "TIMEZONE=MET::-60:032702:103003" -putenv "EPICS_TS_MIN_WEST=-60" - -# try for user-defined menus scan and convert -dbLoadDatabase "dbd/scan.dbd" -dbLoadDatabase "dbd/convert.dbd" -dbLoadDatabase "dbd/slsConvert.dbd" -taskDelay sysClkRateGet() - -# load "require" -sprintf STRINGBUFFER, "require_VERSION=%s", getenv("require_VERSION") ? getenv("require_VERSION") : REQUIRE_VERSION -putenv STRINGBUFFER -sprintf STRINGBUFFER, "require_DIR=%s/require/%s/%s/", EPICS_MODULES, getenv("require_VERSION"), EPICS -putenv STRINGBUFFER -sprintf STRINGBUFFER, "%s/lib/%s/requireLib.munch", getenv("require_DIR"), EPICS_HOST_ARCH -ld 0, 0, STRINGBUFFER - -#load standard drivers (allow user to specify version in environment variable) -require "base", getenv("base_VERSION") -registerModule "require", getenv("require_VERSION"), getenv("require_DIR") -require "utilities", getenv("utilities_VERSION") -require "misc", getenv("misc_VERSION") -require "iocmon", getenv("iocmon_VERSION") -require "genTime", getenv("genTime_VERSION") ? getenv("genTime_VERSION") : "ifexists" -require "seq", getenv("seq_VERSION") ? getenv("seq_VERSION") : "ifexists" - -# run EPICS only on 1st network port -putenv "EPICS_CA_AUTO_ADDR_LIST=NO" -putenv bootInfo("EPICS_CA_ADDR_LIST=%B") -putenv bootInfo("EPICS_CAS_INTF_ADDR_LIST=%e") -putenv "EPICS_CAS_AUTO_BEACON_ADDR_LIST=NO" -putenv bootInfo("EPICS_CAS_BEACON_ADDR_LIST=%B") - -# insert boot infos into database -bootNotify INSTBASE, "sls/bin/iocBootNotify.sh" - -# end of startup.script_common diff --git a/App/startup/startup.script_iocmon b/App/startup/startup.script_iocmon deleted file mode 100644 index 20a3f7c5db3dfe0a53f5b5772e07d6c2a6784ca3..0000000000000000000000000000000000000000 --- a/App/startup/startup.script_iocmon +++ /dev/null @@ -1 +0,0 @@ -# startup.script_iocmon is blank interntionally and only needed for backward compatibility with swit. diff --git a/App/startup/startup.script_linux b/App/startup/startup.script_linux deleted file mode 100644 index dc44e37cae57ff5c1d27babe57fd05ca9187da74..0000000000000000000000000000000000000000 --- a/App/startup/startup.script_linux +++ /dev/null @@ -1,38 +0,0 @@ - -# set EPICS according to BASE or default to 3.14.12 -epicsEnvSet EPICS, R$(BASE=3.14.12) - -# set up CA search lists for different networks -# Office (only officicial EPICS subnets, not SLS beamlines!) -epicsEnvSet CA_129.129.130,"129.129.131.255 129.129.137.255" -epicsEnvSet CA_129.129.131,"129.129.130.255 129.129.137.255" -epicsEnvSet CA_129.129.137,"129.129.130.255 129.129.131.255" -# WHLA (FIN machine networks) -epicsEnvSet CA_172.21.10,"172.21.11.255 172.21.12.255 172.21.13.255" -epicsEnvSet CA_172.21.11,"172.21.10.255 172.21.12.255 172.21.13.255" -epicsEnvSet CA_172.21.12,"172.21.10.255 172.21.11.255 172.21.13.255" -epicsEnvSet CA_172.21.13,"172.21.10.255 172.21.11.255 172.21.12.255" -# OSFA (SF machine networks) -epicsEnvSet CA_172.26,"sf-cans-01 sf-cans-02" -epicsEnvSet CA_AUTO_172.26,"NO" -epicsEnvSet CA_BEACON_172.26,"172.26.0.255 172.26.2.255 172.26.8.255 172.26.16.255 172.26.24.255 172.26.32.255 172.26.40.255 172.26.120.255" -epicsEnvSet CA_AUTO_BEACON_172.26,"NO" -# All others can work with the defaults: automatic -# Apply settings dependent on network -system ("/sbin/ifconfig | awk -F '[.: ]+' -v P='epicsEnvSet NET' -v K=, '/192.168/ {next} /Bcast/ {print P 1 K $9; print P 2 K $10; print P 3 K $11; exit}'>/tmp/$(IOC).net") -< /tmp/$(IOC).net -system ("rm /tmp/$(IOC).net") -epicsEnvSet EPICS_CA_ADDR_LIST,"$(CA_$(NET1=).$(NET2=).$(NET3=)=$(CA_$(NET1=).$(NET2=)=))" -epicsEnvSet EPICS_CA_AUTO_ADDR_LIST,"$(CA_AUTO_$(NET1=).$(NET2=).$(NET3=)=$(CA_AUTO_$(NET1=).$(NET2=)=YES))" -epicsEnvSet EPICS_CAS_BEACON_ADDR_LIST,"$(CA_BEACON_$(NET1=).$(NET2=).$(NET3=)=$(CA_BEACON_$(NET1=).$(NET2=)=$(EPICS_CA_ADDR_LIST)))" -epicsEnvSet EPICS_CAS_BEACON_AUTO_ADDR_LIST,"$(CA_AUTO_BEACON_$(NET1=).$(NET2=).$(NET3=)=$(CA_AUTO_BEACON_$(NET1=).$(NET2=)=YES))" - -epicsEnvSet TEMPLATES, $(INSTBASE)/iocBoot/templates -epicsEnvSet CFG, $(PWD)/cfg -epicsEnvSet STREAM_PROTOCOL_PATH, .:$(PWD)/cfg - -# disable sysmon for IFC -epicsEnvSet sysmon_VERSION_eldk52-e500v2 none -require sysmon $(sysmon_VERSION=$(sysmon_VERSION_$(T_A=)=)) - -! iocBootNotify.sh $(IOC) - \"\${SHELLBOX#*:}\" - $(_) $(PWD)/startup.script - $(EPICS) - diff --git a/App/startup/startup.script_part2 b/App/startup/startup.script_part2 deleted file mode 100644 index cb5cbc016de4da123789ecd5a4d41ecf285e4f4a..0000000000000000000000000000000000000000 --- a/App/startup/startup.script_part2 +++ /dev/null @@ -1,9 +0,0 @@ -# $Source: /cvs/A/CS/startup/startup.script_part2,v $ -# 2nd part of common startup - -#Enable memory >32MB on IOC that have it. (Is a NOOP on all others) -memAddToPool sysMemTop(), EXTENDED_MEMORY - -iocInit - -# end of startup.script_part2 diff --git a/App/startup/startup.script_part3 b/App/startup/startup.script_part3 deleted file mode 100644 index ef2001b94a46b4124ecab00520655f2307e5a823..0000000000000000000000000000000000000000 --- a/App/startup/startup.script_part3 +++ /dev/null @@ -1,16 +0,0 @@ -# $Source: /cvs/A/CS/startup/startup.script_part3,v $ - -# insert record list into database -sprintf STRINGBUFFER, "/home/ioc/%s.dbl", IOC -listRecords STRINGBUFFER, "RTYP DESC" -sprintf STRINGBUFFER, "%s/sls/bin/dbl2odb.sh", INSTBASE -rsh BOOTPC, "dbl2odb.sh", IOC, bootInfo("%B"), getenv("EPICS_CA_SERVER_PORT") - -# insert library list into database -sprintf STRINGBUFFER, "/home/ioc/%s.libs", IOC -libversionShow STRINGBUFFER -rsh BOOTPC, "upload_libinfo.sh", "-r -i", IOC, "-l", STRINGBUFFER - -# set the prompt -sprintf STRINGBUFFER, "%s > ", IOC -shellPromptSet STRINGBUFFER diff --git a/App/startup/startup.script_win32 b/App/startup/startup.script_win32 deleted file mode 100644 index 3a55fa947d911ee2f3af18b85d4c3f737ee0a81e..0000000000000000000000000000000000000000 --- a/App/startup/startup.script_win32 +++ /dev/null @@ -1,11 +0,0 @@ -# $Source: /cvs/A/CS/startup/startup.script_win32,v $ -epicsEnvSet EPICS, R3.14.8 -epicsEnvSet STREAM_PROTOCOL_PATH, %CD%/cfg -epicsEnvSet EPICS_DRIVER_PATH, C:/epics/SOFTIOCWIN32/bin/win32-x86 -epicsEnvSet TEMPLATES, $(INSTBASE)/iocBoot/templates -epicsEnvSet CFG, %CD%/cfg - -dbLoadDatabase "../../dbd/ioc.dbd" -ioc_registerRecordDeviceDriver pdbbase - - diff --git a/App/startup/startup.script_win64 b/App/startup/startup.script_win64 deleted file mode 100644 index fee7e6f1db073447b5240a2a37e0aaf0639bcbca..0000000000000000000000000000000000000000 --- a/App/startup/startup.script_win64 +++ /dev/null @@ -1,14 +0,0 @@ -# $Source: /cvs/A/CS/startup/startup.script_win64,v $ -dlload misc -dbLoadDatabase "../../../dbd/misc.dbd" -misc_registerRecordDeviceDriver pdbbase - -winunixconv EPICSBASE -winunixconv SOFTIOC - -epicsEnvSet STREAM_PROTOCOL_PATH, $(SOFTIOC)/iocBoot/ioc/$(IOC)/cfg -epicsEnvSet EPICS_DRIVER_PATH, $(SOFTIOC)/bin/$(T_A) -epicsEnvSet TEMPLATES, $(SOFTIOC)db -epicsEnvSet CFG, $(SOFTIOC)/iocBoot/ioc/$(IOC)/cfg -pwd - diff --git a/GNUmakefile b/GNUmakefile deleted file mode 100644 index 9ebfbefb73befcda15098594d82d498fb2d39c25..0000000000000000000000000000000000000000 --- a/GNUmakefile +++ /dev/null @@ -1,117 +0,0 @@ -# -# Copyright (c) 2004 - 2017 Paul Scherrer Institute -# Copyright (c) 2017 - Present European Spallation Source ERIC -# -# The program is free software: you can redistribute -# it and/or modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation, either version 2 of the -# License, or any newer version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# this program. If not, see https://www.gnu.org/licenses/gpl-2.0.txt -# -# PSI original author : Dirk Zimoch -# ESS specific author : Jeong Han Lee -# email : han.lee@esss.se -# -# Date : Wednesday, November 29 13:46:39 CET 2017 -# version : 0.0.1 - - -# This is the one time path in order to compile and install -# require within EPICS Environment. After the installation -# include $(E3_REQUIRE_TOOLS)/driver.makefile should be used -# -where_am_I := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) - -# It is easy to maintain RULES_E3 if we use the "repository" makefile -# instead of the installed makefile. -include $(where_am_I)/App/tools/driver.makefile - - -BUILDCLASSES += Linux - -SOURCES += require.c -DBDS += require.dbd -SOURCES += runScript.c -DBDS += runScript.dbd - -# PSI split expression at 0b6d1dd. So, require.Makefile should -# handel the different require source files with and without -# expr.c in the same way. Thus, I added the additional logic -# to handle to cover entire cases. -# If there is no expr.c, it is now safe to ignore it -# Friday, May 11 21:58:24 CEST 2018, jhlee - -expr_src=expr.c -SOURCES += $(filter $(expr_src), $(wildcard *.c)) - - -## -SOURCES += dbLoadTemplate.y -DBDS += dbLoadTemplate.dbd - -# ESS doesn't have any T2_ppc604 and vxWorks target -# Friday, May 11 22:05:07 CEST 2018, jhlee -# -#SOURCES_T2 += strdup.c -#SOURCES_vxWorks += asprintf.c -# -#HEADERS += strdup.h -#HEADERS += asprintf.h - -HEADERS += require.h - -#HEADERS += require_env.h - -# We need to find the Linux link.h before the EPICS link.h -USR_INCLUDES_Linux=-idirafter $(EPICS_BASE)/include - -# ESS require doesn't use T_A, because Linux should handle linux as "1" -# instead of its name. ESS require can handle them within the EPICS -# IOC shell internally. -# -#USR_CFLAGS += -DT_A='"${T_A}"' - -# ESS doesn't support WIN32 -# This should really go into some global WIN32 config file -# USR_CFLAGS_WIN32 += /D_WIN32_WINNT=0x501 - - -TEMPLATES += moduleversion.template -#TEMPLATES += moduleversion.db - -dbLoadTemplate.c: dbLoadTemplate_lex.c ../dbLoadTemplate.h - -## moduleversion should convert to db instead of template -## So, ESS uses it internally independent upon any IOC -## varialbes - -EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH) -MSI = $(EPICS_BASE_HOST_BIN)/msi - - -USR_DBFLAGS += -I . -I .. -USR_DBFLAGS += -I$(EPICS_BASE)/db - - -TEMS = $(wildcard *.template) - - -db: $(TEMS) - -$(TEMS): - @printf "Inflating database ... %44s >>> %40s \n" "$@" "$(basename $(@)).db" - @rm -f $(basename $(@)).db.d $(basename $(@)).db - @$(MSI) -D $(USR_DBFLAGS) -o $(basename $(@)).db $@ > $(basename $(@)).db.d - @$(MSI) $(USR_DBFLAGS) -o $(basename $(@)).db $@ - - - - -.PHONY: db $(TEMS) diff --git a/Makefile b/Makefile deleted file mode 100644 index 2f85c3b20e84a1b3d5a5a9b6968c2885eae64037..0000000000000000000000000000000000000000 --- a/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -TOP=.. - -include $(TOP)/configure/CONFIG - -LOADABLE_LIBRARY = require -DBD = requireSup.dbd - -LIB_SRCS += require_registerRecordDeviceDriver.cpp - -LIB_SRCS += require.c -requireSup_DBD += require.dbd - -LIB_SRCS += runScript.c -requireSup_DBD += runScript.dbd - -LIB_SRCS += expr.c -#requireSup_DBD += expr.dbd - -LIB_SRCS += dbLoadTemplate.y -requireSup_DBD += dbLoadTemplate.dbd - -LIB_SRCS_vxWorks = asprintf.c strdup.c -LIB_SRCS_WIN32 = asprintf.c - -LIB_LIBS += $(EPICS_BASE_IOC_LIBS) - -# We need to find the Linux link.h before the EPICS link.h -USR_INCLUDES_Linux=-idirafter ${EPICS_BASE}/include - -# Pass T_A to the code -USR_CFLAGS += -DT_A='"${T_A}"' - -# This should really go into some global WIN32 config file -USR_CFLAGS_WIN32 += /D_WIN32_WINNT=0x501 - -include $(TOP)/configure/RULES - -dbLoadTemplate.c: dbLoadTemplate_lex.c ../dbLoadTemplate.h diff --git a/README.md b/README.md deleted file mode 100644 index 0c5e3133347bf93d8956e4747a470d7725c07068..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,80 +0,0 @@ - -# ESS require - -`require` is a fork of [PSI require](https://github.com/paulscherrerinstitute/require). Multiple changes -have been put in place to fit within the e3 concept, some of which are outlined below. This is not truly -a stand-alone EPICS module, but fits together with its "e3 wrapper", located at -[e3-require](https://gitlab.esss.lu.se/e3/e3-require). Documentation for this can be found at -[e3.pages](http://e3.pages.esss.lu.se/design/2_require.html). - -## Changes from PSI require - -The main changes are the following. In all cases we have removed support for EPICS base 3.x, as well as -VxWorks. Other changes - -* `require.c`: We have changed the way that versioning is handled to include the option of build numbers, which - we have found are necessary to handle some dependency issues. We are also more restrictive for version - numbering; for example, we do not use the syntax `require module,1.3+`. See the above documentation. -* `driver.makefile`: A lot of simplifications have been added based on ESS's requirements (in particular, not - needing to have EPICS base 3.x and 7.x together). There are also a number of additions to allow some extra - flexibility in installing e.g. header files. -* `iocsh.bash`: We have replaced the PSI startup script `iocsh` with an ESS version, `iocsh.bash`. - -# Original PSI README - -``` -require "<module>" [,"<version>"] [,"<macro1>=<value2>, <macro2>=<value2>"] - ioc shell function - Loads a module library and its dbd file (if not yet done). - Executes its startup script if available. - - The two arguments "<version>" and the macro list are optional. - The order does not matter, thus macros can be provided without a version. - - "<version>" may be: - * full version number, e.g. "1.2.3" -- loads exact match - * partial version number, e.g. "1.2" -- loads highest available 1.2.x - * minimum version number, e.g. "1.2+" -- loads highest 1.x.y with x>=2 - * no version, nothing or "" -- loads highest available version - * test version, e.g. "zimoch" -- loads exact match - * optional flag "ifexists" -- loads highest version if one exists - - Failure to find a matching version aborts the startup script, except for "ifexists". - - If a version is already loaded, the requested version is checked for compatibility. - If the versions are incompatible the startup script is aborted. - An already loaded version is considered compatible if: - * no specific version was required - * the loaded version matches the required version exactly - * major numbers are the same and loaded minor number is at least the required one - * major and minor numbers are the same and patch number is at least the required one - * the loaded version is a test version and the required version is not a test version - - Versions with different major numbers are never compatible. - Different test versions are never compatible. - - If available, a module startup script is executed. Macros of the form $(macro) are - replaced either with given arguments or with environment variables in that script. - - The first found script in the module directory of the following list is executed: - * <targetArch>.cmd e.g. T2-ppc604.cmd - * <osClass>.cmd e.g. Linux.cmd - * startup.cmd - - If the module was already loaded, the startup script is called again only if - macro parameters are given. - - The following environment variables are set: - * MODULE the name of the current module - * T_A the target architecture, e.g "T2-ppc604" - * EPICS_RELEASE the EPICS base release, e.g. "3.14.12" - * <module>_DIR the directory of the loaded version of the module - * TEMPLATES the db directory of the module - * <module>_TEMPLATES the db directory of the module - * EPICS_DB_INCLUDE_PATH the db directories of all modules, last reqired first (after ".") - - The variables MODULE and TEMPLATES get overwritten for each module. - They always refer to the last require call, even if the module was already loaded. - The variable EPICS_DB_INCLUDE_PATH is used by dbLoadRecords and dbLoadDatabase. - ``` - diff --git a/configure/CONFIG b/configure/CONFIG deleted file mode 100644 index b46d386a563e0843e5614b53cb7d8702dcb7dd12..0000000000000000000000000000000000000000 --- a/configure/CONFIG +++ /dev/null @@ -1,14 +0,0 @@ -#CONFIG -include $(TOP)/configure/CONFIG_APP -# Add any changes to make definitions here - -#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 -#CROSS_COMPILER_TARGET_ARCHS = - -# Use this when your IOC and the host use different paths -# to access the application. Typically this will be -# used with the Microsoft FTP server or with NFS mounts. Use -# is indicated by failure of the cdCommands script on -# vxWorks. You must rebuild in the iocBoot directory -# before this takes effect. -#IOCS_APPL_TOP = <the top of the application as seen by the IOC> diff --git a/configure/CONFIG_APP b/configure/CONFIG_APP deleted file mode 100644 index 96eb2d5ecfcce889391199ba601f6178b84c7ee8..0000000000000000000000000000000000000000 --- a/configure/CONFIG_APP +++ /dev/null @@ -1,22 +0,0 @@ -# CONFIG_APP - -include $(TOP)/configure/RELEASE --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH) --include $(TOP)/configure/RELEASE.Common.$(T_A) --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A) - -CONFIG=$(EPICS_BASE)/configure -include $(CONFIG)/CONFIG - -INSTALL_LOCATION = $(TOP) -ifdef INSTALL_LOCATION_APP -INSTALL_LOCATION = $(INSTALL_LOCATION_APP) -endif - -ifdef T_A --include $(TOP)/configure/O.$(T_A)/CONFIG_APP_INCLUDE -endif - -# dbst based database optimization (default: NO) -DB_OPT = NO -HOST_OPT=NO diff --git a/configure/Makefile b/configure/Makefile deleted file mode 100644 index 03177469efde9ffa1e5b7bac7b93077101677251..0000000000000000000000000000000000000000 --- a/configure/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# Makefile - -TOP=.. - -include $(TOP)/configure/CONFIG - -# Set the following to NO to disable consistency checking of -# the support applications defined in $(TOP)/configure/RELEASE -CHECK_RELEASE = YES - -TARGETS = $(CONFIG_TARGETS) -CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) - -include $(TOP)/configure/RULES - diff --git a/configure/RELEASE b/configure/RELEASE deleted file mode 100644 index dc263eba5ed8dfa265bca7ab7f5a11ad55abadf2..0000000000000000000000000000000000000000 --- a/configure/RELEASE +++ /dev/null @@ -1,22 +0,0 @@ -#RELEASE Location of external products -# Run "gnumake clean uninstall install" in the application -# top directory each time this file is changed. -# -# NOTE: The build does not check dependancies on files -# external to this application. Thus you should run -# "gnumake clean uninstall install" in the top directory -# each time EPICS_BASE, SNCSEQ, or any other external -# module defined in the RELEASE file is rebuilt. - -TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top - -# If you don't want to install into $(TOP) then -# define INSTALL_LOCATION_APP here -#INSTALL_LOCATION_APP=<fullpathname> - -# EPICS_BASE usually appears last so other apps can override stuff: -EPICS_BASE=/usr/local/epics/base-3.14.12 - -#Want to use md command with global variables? -#Set path to symbolname library -#SYMBOLNAME= diff --git a/configure/RULES b/configure/RULES deleted file mode 100644 index ffee54a710fe5f61c2d5d03a5bdff8775a0a8932..0000000000000000000000000000000000000000 --- a/configure/RULES +++ /dev/null @@ -1,5 +0,0 @@ -#CONFIG -include $(EPICS_BASE)/configure/RULES - -# Library should be rebuilt because LIBOBJS may have changed. -$(LIBNAME): ../Makefile diff --git a/moduleversion.template b/require-ess/Db/moduleversion.template similarity index 100% rename from moduleversion.template rename to require-ess/Db/moduleversion.template diff --git a/asprintf.c b/require-ess/src/asprintf.c similarity index 100% rename from asprintf.c rename to require-ess/src/asprintf.c diff --git a/asprintf.h b/require-ess/src/asprintf.h similarity index 100% rename from asprintf.h rename to require-ess/src/asprintf.h diff --git a/dbLoadTemplate.dbd b/require-ess/src/dbLoadTemplate.dbd similarity index 100% rename from dbLoadTemplate.dbd rename to require-ess/src/dbLoadTemplate.dbd diff --git a/dbLoadTemplate.h b/require-ess/src/dbLoadTemplate.h similarity index 100% rename from dbLoadTemplate.h rename to require-ess/src/dbLoadTemplate.h diff --git a/dbLoadTemplate.y b/require-ess/src/dbLoadTemplate.y similarity index 100% rename from dbLoadTemplate.y rename to require-ess/src/dbLoadTemplate.y diff --git a/dbLoadTemplate_lex.l b/require-ess/src/dbLoadTemplate_lex.l similarity index 100% rename from dbLoadTemplate_lex.l rename to require-ess/src/dbLoadTemplate_lex.l diff --git a/expr.c b/require-ess/src/expr.c similarity index 100% rename from expr.c rename to require-ess/src/expr.c diff --git a/expr.h b/require-ess/src/expr.h similarity index 100% rename from expr.h rename to require-ess/src/expr.h diff --git a/require.c b/require-ess/src/require.c similarity index 100% rename from require.c rename to require-ess/src/require.c diff --git a/require.dbd b/require-ess/src/require.dbd similarity index 100% rename from require.dbd rename to require-ess/src/require.dbd diff --git a/require.h b/require-ess/src/require.h similarity index 100% rename from require.h rename to require-ess/src/require.h diff --git a/runScript.c b/require-ess/src/runScript.c similarity index 100% rename from runScript.c rename to require-ess/src/runScript.c diff --git a/runScript.dbd b/require-ess/src/runScript.dbd similarity index 100% rename from runScript.dbd rename to require-ess/src/runScript.dbd diff --git a/strdup.c b/require-ess/src/strdup.c similarity index 100% rename from strdup.c rename to require-ess/src/strdup.c diff --git a/strdup.h b/require-ess/src/strdup.h similarity index 100% rename from strdup.h rename to require-ess/src/strdup.h diff --git a/testscript b/require-ess/test/testscript similarity index 100% rename from testscript rename to require-ess/test/testscript diff --git a/teststrings b/require-ess/test/teststrings similarity index 100% rename from teststrings rename to require-ess/test/teststrings diff --git a/tools/README.md b/require-ess/tools/README.md similarity index 100% rename from tools/README.md rename to require-ess/tools/README.md diff --git a/App/tools/driver.makefile b/require-ess/tools/driver.makefile similarity index 100% rename from App/tools/driver.makefile rename to require-ess/tools/driver.makefile diff --git a/App/tools/expandDBD.tcl b/require-ess/tools/expandDBD.tcl similarity index 100% rename from App/tools/expandDBD.tcl rename to require-ess/tools/expandDBD.tcl diff --git a/App/tools/getVersion.tcl b/require-ess/tools/getVersion.tcl similarity index 100% rename from App/tools/getVersion.tcl rename to require-ess/tools/getVersion.tcl diff --git a/iocsh b/require-ess/tools/iocsh similarity index 100% rename from iocsh rename to require-ess/tools/iocsh diff --git a/tools/iocsh.bash b/require-ess/tools/iocsh.bash similarity index 100% rename from tools/iocsh.bash rename to require-ess/tools/iocsh.bash diff --git a/tools/iocsh_complete b/require-ess/tools/iocsh_complete similarity index 100% rename from tools/iocsh_complete rename to require-ess/tools/iocsh_complete diff --git a/tools/iocsh_functions b/require-ess/tools/iocsh_functions similarity index 100% rename from tools/iocsh_functions rename to require-ess/tools/iocsh_functions diff --git a/tools/iocsh_gdb.bash b/require-ess/tools/iocsh_gdb.bash similarity index 100% rename from tools/iocsh_gdb.bash rename to require-ess/tools/iocsh_gdb.bash diff --git a/tools/iocsh_nice.bash b/require-ess/tools/iocsh_nice.bash similarity index 100% rename from tools/iocsh_nice.bash rename to require-ess/tools/iocsh_nice.bash diff --git a/tools/promptE3Env.bash b/require-ess/tools/promptE3Env.bash similarity index 100% rename from tools/promptE3Env.bash rename to require-ess/tools/promptE3Env.bash diff --git a/tools/setE3Env.bash b/require-ess/tools/setE3Env.bash similarity index 100% rename from tools/setE3Env.bash rename to require-ess/tools/setE3Env.bash