diff --git a/configure/CONFIG b/configure/CONFIG index 7156ced12982f97d239b5feb839ba9e7792fb2d1..4cb4ce46d6b20bbc5f7d7ecfcc5c59e94472780b 100644 --- a/configure/CONFIG +++ b/configure/CONFIG @@ -7,18 +7,46 @@ else include $(TOP)/configure/RELEASE endif + # CONFIG=$(EPICS_BASE)/configure # include $(CONFIG)/CONFIG -include $(TOP)/configure/CONFIG_REQUIRE include $(TOP)/configure/CONFIG_EPICS +# CONFIG_MODULE should be included before CONFIG_REQUIRE +# ifneq (,$(findstring dev,$(MAKECMDGOALS))) include $(TOP)/configure/CONFIG_MODULE_DEV else include $(TOP)/configure/CONFIG_MODULE endif +include $(TOP)/configure/CONFIG_REQUIRE include $(TOP)/configure/CONFIG_E3_MAKEFILE + + + +# IF EPICS_BASE is not WRITABLE, SUDO and SUDOBASH should be used +# SUDO_INFO 1 : SUDO is needed (NOT writable) +# SUDO_INFO 0 : SUDO is not needed +SUDO_INFO := $(shell test -w $(EPICS_BASE) 1>&2 2> /dev/null; echo $$?) + +ifeq "$(SUDO_INFO)" "1" +SUDO := sudo +SUDOBASH = $(SUDO) +SUDOBASH += -E +SUDOBASH += bash -c +endif + + +# Valid for only Development Mode, because we clone/remove them +# See RULES_DEV +# E3_MODULE_SRC_PATH_INFO 1 : the directory is not there +# E3_MODULE_SRC_PATH_INFO 0 : the directory is there +E3_MODULE_SRC_PATH_INFO := $(shell test -d $(E3_MODULE_SRC_PATH) 1>&2 2> /dev/null; echo $$?) + +ifeq "$(E3_MODULE_SRC_PATH_INFO)" "1" +INIT_E3_MODULE_SRC = 1 +endif \ No newline at end of file diff --git a/configure/CONFIG_E3_MAKEFILE b/configure/CONFIG_E3_MAKEFILE index 517b603b3464188cede0d37179a57e05e10d041c..c5e95448ff04bb182ee52c6c3756b80742735b7e 100644 --- a/configure/CONFIG_E3_MAKEFILE +++ b/configure/CONFIG_E3_MAKEFILE @@ -2,12 +2,8 @@ # Pass necessary driver.makefile variables through makefile options # -# E3_EPICS_VERSION_TEMP:=$(notdir $(EPICS_BASE)) - -# E3_EPICS_VERSION:=$(E3_EPICS_VERSION_TEMP:base-%=%) - - -E3_MODULES_PATH:=$(E3_REQUIRE_LOCATION)/siteMods +# Here, E3_MODULES_PATH is the same as E3_REQUIRE_LOCATION +E3_MODULES_PATH:=$(EPICS_BASE) E3_REQUIRE_MAKEFILE_INPUT_OPTIONS := -C $(E3_MODULE_SRC_PATH) E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += -f $(E3_MODULE_MAKEFILE) @@ -16,10 +12,12 @@ E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += PROJECT="$(E3_MODULE_NAME)" E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += EPICS_MODULES="$(E3_MODULES_PATH)" E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += EPICS_LOCATION="$(EPICS_BASE)" E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += BUILDCLASSES="Linux" -#E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += MODULE_LOCATION="$(E3_REQUIRE_LOCATION)" + + +E3_MODULE_MAKE_CMDS:=make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) ## the following variables to display -# VARS_EXCLUDES+=E3_EPICS_VERSION_TEMP +VARS_EXCLUDES+=E3_REQUIRE_MAKEFILE_INPUT_OPTIONS diff --git a/configure/CONFIG_MODULE b/configure/CONFIG_MODULE index 5bfd5eaeabf12e0428c118b8ebefe20718e80ada..8264e802f8281169ecc6c13ad99120aa093932ff 100644 --- a/configure/CONFIG_MODULE +++ b/configure/CONFIG_MODULE @@ -1,10 +1,9 @@ -EPICS_MODULE_NAME:=iocStats -EPICS_MODULE_TAG:=1856ef5 +EPICS_MODULE_NAME:=require +EPICS_MODULE_TAG:=tags/v2.5.4 - -E3_MODULE_SRC_PATH:=$(EPICS_MODULE_NAME) +E3_MODULE_SRC_PATH:=$(EPICS_MODULE_NAME)-ess E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile E3_MODULE_NAME:=$(EPICS_MODULE_NAME) -E3_MODULE_VERSION:=1856ef5 +E3_MODULE_VERSION:=2.5.4 diff --git a/configure/CONFIG_MODULE_DEV b/configure/CONFIG_MODULE_DEV index fcac2dba042fb2d1ad9c2d229f28f52dc16bbc46..72faf908b9a3291e7ae0f13d08a46f8c039cc6be 100644 --- a/configure/CONFIG_MODULE_DEV +++ b/configure/CONFIG_MODULE_DEV @@ -1,15 +1,13 @@ -EPICS_MODULE_NAME:=iocStats -EPICS_MODULE_TAG:=master +EPICS_MODULE_NAME:=require +EPICS_MODULE_TAG:=target_path_test E3_MODULE_SRC_PATH:=$(EPICS_MODULE_NAME)-dev E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile - E3_MODULE_NAME:=$(EPICS_MODULE_NAME) E3_MODULE_VERSION:=develop -#export DEV_GIT_URL:="https://where your git repo" -E3_MODULE_DEV_GITURL:="https://github.com/epics-modules/iocStats" +E3_MODULE_DEV_GITURL:="https://github.com/icshwi/require-ess" diff --git a/configure/CONFIG_REQUIRE b/configure/CONFIG_REQUIRE index 6b0c0baedb4621c554d62ceba702fa2fca4e249d..e182e2f00f5a952c29fd627b24baa0df4a3e875e 100644 --- a/configure/CONFIG_REQUIRE +++ b/configure/CONFIG_REQUIRE @@ -1,3 +1,13 @@ +# Keep the same convention with other modules, +# translate them with E3_REQUIRE_NAME or _VERSION Again + +E3_REQUIRE_NAME=$(EPICS_MODULE_NAME) +E3_REQUIRE_VERSION=$(E3_MODULE_VERSION) + + +# +# The following VARIABLES are the same as other modules ones. +# E3_REQUIRE_LOCATION:=$(EPICS_BASE)/$(E3_REQUIRE_NAME)/$(E3_REQUIRE_VERSION) diff --git a/configure/DEFINES_FT b/configure/DEFINES_FT index 7422071ee32fe38509eb7d5b3f5f935b37d1a607..47e10655e38969314c3592da16dafcbc8fc4d450 100644 --- a/configure/DEFINES_FT +++ b/configure/DEFINES_FT @@ -1,6 +1,5 @@ # Keep always the module up-to-date define git_update = -@git submodule deinit -f $@/ git submodule deinit -f $@/ sed -i '/submodule/,24465d' $(TOP)/.git/config rm -rf $(TOP)/.git/modules/$@ diff --git a/configure/RELEASE b/configure/RELEASE index 3257c8d460a2ee843b37f29f2cf067ee7e014f9e..8de3f2b450bc23a84b389321f9cd4d5876e3a0ce 100644 --- a/configure/RELEASE +++ b/configure/RELEASE @@ -1,8 +1 @@ EPICS_BASE=/testing/epics/base-3.15.5 - - -E3_REQUIRE_NAME:=require -E3_REQUIRE_VERSION:=0.0.1 - - - diff --git a/configure/RELEASE_DEV b/configure/RELEASE_DEV index f960c8460e4c2d2fcb709594c3a1ea7f7f519663..fee4bcbf7454c25a0be04a3a78d5ebbbfe0ff0c0 100644 --- a/configure/RELEASE_DEV +++ b/configure/RELEASE_DEV @@ -1,9 +1,2 @@ - - EPICS_BASE=/testing/epics/base-3.15.5 - -E3_REQUIRE_NAME:=require -E3_REQUIRE_VERSION:=0.0.1 - - diff --git a/configure/RULES b/configure/RULES index 8b647f943afe814c50309cbc4895fa6d8f02eae2..276cffed51d3864b1de45cb317ff5ff0dd4301c9 100644 --- a/configure/RULES +++ b/configure/RULES @@ -1,7 +1,12 @@ -#CONFIG +# -*- mode: Makefile;-*- + +# CONFIG # include $(EPICS_BASE)/configure/RULES include $(TOP)/configure/DEFINES_FT + +include $(TOP)/configure/RULES_REQUIRE + include $(TOP)/configure/RULES_E3 include $(TOP)/configure/RULES_EPICS include $(TOP)/configure/RULES_DB diff --git a/configure/RULES_DB b/configure/RULES_DB index e56da3edf87cbd6355dfc4544e439ff6180f98b7..f382b5b1269a968bbef1e30f71414b04603147ec 100644 --- a/configure/RULES_DB +++ b/configure/RULES_DB @@ -1,9 +1,9 @@ - +# -*- mode: Makefile;-*- ## This RULE should be used in case of inflating DB files ## -# .PHONY: db +.PHONY: db ### We have to think how to find $(EPICS_BASE) and ### $(EPICS_HOST_ARCH) during driver.makefile @@ -19,5 +19,5 @@ ### 5) make install ### ..... -#db: conf -# $(QUIET) make $(M_OPTIONS) db +db: conf + $(QUIET) $(E3_MODULE_MAKE_CMDS) db diff --git a/configure/RULES_DEV b/configure/RULES_DEV index 5bba7a078fd31291dfd3087e4888b699d24a5391..e596d5c00e325718331e255ab056cd1083591a88 100644 --- a/configure/RULES_DEV +++ b/configure/RULES_DEV @@ -1,18 +1,39 @@ -.PHONY: devvars devenv devinit devbuild devclean devrebuild devuninstall devdistclean +# -*- mode: Makefile;-*- + +.PHONY: devvars devenv devinit devbuild devclean devinstall devrebuild devuninstall devdistclean devvars: vars -devenv: devvars +devenv: devvars devinit: git-submodule-sync - git clone $(E3_MODULE_DEV_GITURL) $(E3_MODULE_SRC_PATH) - cd $(E3_MODULE_SRC_PATH) && git checkout $(EPICS_MODULE_TAG) - + git clone $(E3_MODULE_DEV_GITURL) $(E3_MODULE_SRC_PATH) + cd $(E3_MODULE_SRC_PATH) && git checkout $(EPICS_MODULE_TAG) + + +ifeq "$(INIT_E3_MODULE_SRC)" "1" + +devbuild: nonexists +devclean: nonexists +devinstall: nonexists +devrebuild: nonexists +devuninstall: nonexists +devdistclean: nonexists +nonexists: + $(QUIET)echo "" + $(QUIET)echo "------------------------------------------------------------" + $(QUIET)echo " Could not find $(E3_MODULE_SRC_PATH) " + $(QUIET)echo " Please make devinit first ! " + $(QUIET)echo "------------------------------------------------------------" + $(QUIET)echo "" +else devbuild: build devclean: clean +devinstall: install devrebuild: rebuild devuninstall: uninstall devdistclean: clean - $(QUIET)echo "Removing $(E3_MODULE_SRC_PATH) ......... " - rm -rf $(E3_MODULE_SRC_PATH) + $(QUIET)echo "Removing $(E3_MODULE_SRC_PATH) ......... " + rm -rf $(E3_MODULE_SRC_PATH) +endif diff --git a/configure/RULES_E3 b/configure/RULES_E3 index d458a0e438f69ece979d561e6d124b694b71ead6..b8cbacdbaba8fe6b207994f697e3d526b3df4d64 100644 --- a/configure/RULES_E3 +++ b/configure/RULES_E3 @@ -1,41 +1,46 @@ +# -*- mode: Makefile;-*- + + .PHONY: help default install uninstall build rebuild clean conf +default: help + + # # help is defined in # # https://gist.github.com/rcmachado/af3db315e31383502660 help: - $(info --------------------------------------- ) - $(info Available targets) - $(info --------------------------------------- ) - $(QUIET) awk '/^[a-zA-Z\-\_0-9]+:/ { \ - nb = sub( /^## /, "", helpMsg ); \ - if(nb == 0) { \ - helpMsg = $$0; \ - nb = sub( /^[^:]*:.* ## /, "", helpMsg ); \ - } \ - if (nb) \ - print $$1 "\t" helpMsg; \ - } \ - { helpMsg = $$0 }' \ - $(MAKEFILE_LIST) | column -ts: + $(info --------------------------------------- ) + $(info Available targets) + $(info --------------------------------------- ) + $(QUIET) awk '/^[a-zA-Z\-\_0-9]+:/ { \ + nb = sub( /^## /, "", helpMsg ); \ + if(nb == 0) { \ + helpMsg = $$0; \ + nb = sub( /^[^:]*:.* ## /, "", helpMsg ); \ + } \ + if (nb) \ + print $$1 "\t" helpMsg; \ + } \ + { helpMsg = $$0 }' \ + $(MAKEFILE_LIST) | column -ts: -default: help ## Install : $(E3_MODULE_NAME) -install: uninstall - $(QUIET) sudo -E bash -c 'make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) install' +install: uninstall requireconf + $(QUIET) $(SUDOBASH) '$(E3_MODULE_MAKE_CMDS) install' ## Uninstall : $(E3_MODULE_NAME) uninstall: conf - $(QUIET) sudo -E bash -c 'make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) uninstall' + $(QUIET) $(SUDOBASH) '$(E3_MODULE_MAKE_CMDS) uninstall' ## Build the EPICS Module : $(E3_MODULE_NAME) # Build always the Module with the EPICS_MODULES_TAG -build: conf checkout - $(QUIET) make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) build +build: conf checkout + $(QUIET) $(E3_MODULE_MAKE_CMDS) build ## Clean, build, and install the EPICS Module : $(E3_MODULE_NAME) @@ -44,31 +49,29 @@ rebuild: clean build install ## Clean : $(E3_MODULE_NAME) clean: conf - $(QUIET) make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) clean + $(QUIET) $(E3_MODULE_MAKE_CMDS) clean ## Copy $(E3_MODULE_MAKEFILE) into $(E3_MODULE_SRC_PATH) -conf: - $(QUIET) install -m 644 $(TOP)/$(E3_MODULE_MAKEFILE) $(E3_MODULE_SRC_PATH)/ +conf: + $(QUIET) install -m 644 $(TOP)/$(E3_MODULE_MAKEFILE) $(E3_MODULE_SRC_PATH)/ .PHONY: init git-submodule-sync$(E3_MODULE_SRC_PATH) checkout ## Initialize : $(E3_MODULE_SRC_PATH) -init: git-submodule-sync $(E3_MODULE_SRC_PATH) +init: git-submodule-sync $(E3_MODULE_SRC_PATH) checkout git-submodule-sync: - $(QUIET) git submodule sync + $(QUIET) git submodule sync $(E3_MODULE_SRC_PATH): - $(QUIET) $(git_update) - cd $@ && git checkout $(EPICS_MODULE_TAG) - + $(QUIET) $(git_update) checkout: - cd $(E3_MODULE_SRC_PATH) && git checkout $(EPICS_MODULE_TAG) + cd $(E3_MODULE_SRC_PATH) && git checkout $(EPICS_MODULE_TAG) @@ -79,4 +82,4 @@ checkout: # ## Show driver.makefile help # help2: -# $(QUIET) make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) help +# $(QUIET) $(E3_MODULE_MAKE_CMD) help diff --git a/configure/RULES_EPICS b/configure/RULES_EPICS index bf947c981a50a43575f1db39fd41354c7886b3b2..608df6b05ec2c3803a3ec8f377ec80aa2987b91a 100644 --- a/configure/RULES_EPICS +++ b/configure/RULES_EPICS @@ -1,13 +1,15 @@ +# -*- mode: Makefile;-*- + # One should define the any dependency modules and EPICS base path # in the following directory # .PHONY: epics epics-clean # epics: -# $(QUIET)echo "EPICS_BASE=$(EPICS_BASE)" > $(TOP)/$(EPICS_MODULE_SRC_PATH)/configure/RELEASE -# $(QUIET)echo "INSTALL_LOCATION=$(M_IOCSTATS)" > $(TOP)/$(EPICS_MODULE_SRC_PATH)/configure/CONFIG_SITE -# sudo -E bash -c "$(MAKE) -C $(EPICS_MODULE_SRC_PATH)" +# $(QUIET)echo "EPICS_BASE=$(EPICS_BASE)" > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/RELEASE +# $(QUIET)echo "INSTALL_LOCATION=$(M_IOCSTATS)" > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/CONFIG_SITE +# $(SUDOBASH) "$(MAKE) -C $(E3_MODULE_SRC_PATH)" #epics-clean: -# sudo -E bash -c "$(MAKE) -C $(EPICS_MODULE_SRC_PATH) clean" +# $(SUDOBASH) "$(MAKE) -C $(E3_MODULE_SRC_PATH) clean" diff --git a/configure/RULES_REQUIRE b/configure/RULES_REQUIRE new file mode 100644 index 0000000000000000000000000000000000000000..90e996ce1f805dad1dee73ff721f322fa2fbe38b --- /dev/null +++ b/configure/RULES_REQUIRE @@ -0,0 +1,17 @@ +# -*- mode: Makefile;-*- + +.PHONY: requireconf + +requireconf: + $(QUIET) $(SUDO) install -d -m 755 $(E3_REQUIRE_TOOLS) + $(QUIET) $(SUDO) install -d -m 755 $(E3_REQUIRE_BIN) + $(QUIET) $(SUDO) install -m 644 $(E3_MODULE_SRC_PATH)/App/tools/driver.makefile $(E3_REQUIRE_TOOLS)/ + $(QUIET) $(SUDO) install -m 755 $(E3_MODULE_SRC_PATH)/App/tools/*.tcl $(E3_REQUIRE_TOOLS)/ + $(QUIET) $(SUDO) install -m 755 $(TOP)/tools/iocsh.bash $(E3_REQUIRE_BIN)/ + $(QUIET) $(SUDO) install -m 644 $(TOP)/tools/ess-env.conf $(E3_REQUIRE_BIN)/ + $(QUIET) $(SUDO) install -m 644 $(TOP)/tools/iocsh_functions $(E3_REQUIRE_BIN)/ + $(QUIET) $(SUDO) install -m 644 $(TOP)/tools/setE3Env.bash $(E3_REQUIRE_BIN)/ +# $(QUIET) sed -i 's/^IOCSH_HASH_VERSION=.*/IOCSH_HASH_VERSION=$(IOCSH_HASH_VERSION)/g' $(TOP)/ess-env.conf + + + diff --git a/configure/RULES_VARS b/configure/RULES_VARS index f9c9c4719501c200b8fbeaf158a076f25b2300fd..4b21508f0584031df0d07280ddfa6419103f6eac 100644 --- a/configure/RULES_VARS +++ b/configure/RULES_VARS @@ -1,3 +1,4 @@ +# -*- mode: Makefile;-*- E3_MODULES_VARIABLES:=$(sort $(filter-out $(VARS_EXCLUDES) VARS_EXCLUDES,$(.VARIABLES))) @@ -5,12 +6,13 @@ E3_MODULES_VARIABLES:=$(sort $(filter-out $(VARS_EXCLUDES) VARS_EXCLUDES,$(.VARI vars: header - $(foreach v, $(E3_MODULES_VARIABLES), $(info $(v) = $($(v)))) @#noop - + $(foreach v, $(E3_MODULES_VARIABLES), $(info $(v) = $($(v)))) @#noop + env: vars header: - @echo "" - @echo "-------------------------------------------------" - @echo " Current EPICS and E3 Envrionment Variables " - @echo "-------------------------------------------------" + $(QUIET)echo "" + $(QUIET)echo "------------------------------------------------------------" + $(QUIET)echo ">>>> Current EPICS and E3 Envrionment Variables <<<<" + $(QUIET)echo "------------------------------------------------------------" + $(QUIET)echo "" diff --git a/require.Makefile b/require.Makefile index 60f618b114f9b961a43360e4b11c4bb41121e01c..2607e668318f3d28482988464dcef99b601355e7 100644 --- a/require.Makefile +++ b/require.Makefile @@ -5,7 +5,11 @@ # where_am_I := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) -include ${where_am_I}/App/tools/driver.makefile +# 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 + +#include $(E3_REQUIRE_TOOLS)/driver.makefile BUILDCLASSES += Linux @@ -18,9 +22,10 @@ SOURCES += dbLoadTemplate.y DBDS += dbLoadTemplate.dbd SOURCES_T2 += strdup.c -SOURCES_vxWorks += asprintf.c +SOURCES_vxWorks += asprintf.c HEADERS += strdup.h asprintf.h HEADERS += require.h + #HEADERS += require_env.h # We need to find the Linux link.h before the EPICS link.h diff --git a/ess-env.conf b/tools/ess-env.conf similarity index 100% rename from ess-env.conf rename to tools/ess-env.conf diff --git a/iocsh.bash b/tools/iocsh.bash similarity index 96% rename from iocsh.bash rename to tools/iocsh.bash index 262abb1787a0f358965755d31491008a8c20ad47..5e706408f3fcc957d2623db71cb87d7eaa623135 100755 --- a/iocsh.bash +++ b/tools/iocsh.bash @@ -65,8 +65,8 @@ trap "softIoc_end ${IOC_STARTUP}" EXIT HUP INT TERM loadFiles "$@"; printf "epicsEnvSet IOCSH_PS1 \"$IOCSH_PS1\"\n"; - printf "epicsEnvShow T_A\n"; - printf "epicsEnvShow EPICS_HOST_ARCH\n"; +# printf "epicsEnvShow T_A\n"; +# printf "epicsEnvShow EPICS_HOST_ARCH\n"; # printf "var requireDebug 1\n"; if [ "$init" != NO ]; then diff --git a/iocsh_functions b/tools/iocsh_functions similarity index 89% rename from iocsh_functions rename to tools/iocsh_functions index 795a09c79d5e63a00ce82af3ca3f495a6b2de367..75c36f4c5b8869e1f45abd5711cc1a736dff26f1 100644 --- a/iocsh_functions +++ b/tools/iocsh_functions @@ -122,14 +122,14 @@ function printIocEnv var_list+=(LOGNAME); var_list+=(EPICS_HOST_ARCH); var_list+=(EPICS_BASE); - var_list+=(EPICS_LOCATION); - var_list+=(EPICS); - var_list+=(ESS_EPICS_PATH); - var_list+=(REQUIRE); - var_list+=(REQUIRE_VERSION); - var_list+=(REQUIRE_BIN); - var_list+=(REQUIRE_LIB); - var_list+=(REQUIRE_DBD); +# var_list+=(EPICS_LOCATION); +# var_list+=(EPICS); +# var_list+=(ESS_EPICS_PATH); + var_list+=(E3_REQUIRE); + var_list+=(E3_REQUIRE_VERSION); + var_list+=(E3_REQUIRE_BIN); + var_list+=(E3_REQUIRE_LIB); + var_list+=(E3_REQUIRE_DBD); var_list+=(EPICS_CA_AUTO_ADDR_LIST); var_list+=(EPICS_CA_ADDR_LIST); var_list+=(PATH); @@ -204,10 +204,10 @@ function loadRequire { local libPrefix=lib local libPostfix=.so - local libName=${libPrefix}${REQUIRE}${libPostfix} + local libName=${libPrefix}${E3_REQUIRE}${libPostfix} - local require_lib=${REQUIRE_LIB}/${EPICS_HOST_ARCH}/${libName} - local require_dbd=${REQUIRE_DBD}/${REQUIRE}.dbd + local require_lib=${E3_REQUIRE_LIB}/${EPICS_HOST_ARCH}/${libName} + local require_dbd=${E3_REQUIRE_DBD}/${E3_REQUIRE}.dbd local load_cmd="dlload" @@ -215,7 +215,7 @@ function loadRequire printf "# \n"; printf "${load_cmd} ${require_lib}\n"; printf "dbLoadDatabase ${require_dbd}\n" - printf "${REQUIRE%-*}_registerRecordDeviceDriver\n\n" + printf "${E3_REQUIRE%-*}_registerRecordDeviceDriver\n\n" printf "# \n"; printf "# \n"; @@ -227,15 +227,15 @@ function check_mandatory_env_settings { declare -a var_list=(); var_list+=(EPICS_HOST_ARCH); - var_list+=(ESS_EPICS_PATH); - var_list+=(EPICS); +# var_list+=(ESS_EPICS_PATH); +# var_list+=(EPICS); # var_list+=(EPICS_MODULES); var_list+=(EPICS_BASE); - var_list+=(REQUIRE); - var_list+=(REQUIRE_BIN); - var_list+=(REQUIRE_LIB); - var_list+=(REQUIRE_DBD); - var_list+=(REQUIRE_VERSION); + var_list+=(E3_REQUIRE); + var_list+=(E3_REQUIRE_BIN); + var_list+=(E3_REQUIRE_LIB); + var_list+=(E3_REQUIRE_DBD); + var_list+=(E3_REQUIRE_VERSION); for var in ${var_list[@]}; do if [[ $(checkIfVar ${!var}) -eq "$NON_EXIST" ]]; then die 1 " $var is not defined!. Please source e3-env/setE3Env.bash." diff --git a/tools/setE3Env.bash b/tools/setE3Env.bash new file mode 100755 index 0000000000000000000000000000000000000000..04dcadbefc661b94dff9756d488ae9205e3c9482 --- /dev/null +++ b/tools/setE3Env.bash @@ -0,0 +1,113 @@ +# Copyright (c) 2016 - Present Jeong Han Lee +# Copyright (c) 2016 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 +# +# Shell : setE3Env.bash +# Author : Jeong Han Lee +# email : jeonghan.lee@gmail.com +# date : Monday, December 4 13:25:21 CET 2017 +# +# version : 0.0.2 + + +unset ESS_ETHERLAB_LIB +unset ESS_ETHERLAB_BIN +unset ESS_ETHERLAB_SBIN + + +unset ESS_LIBS + +unset ESS_OPCUA +unset ESS_OPCUA_LIB +unset ESS_OPCUA_BIN +unset ESS_OPCUA_INC + +unset EPICS_DRIVER_PATH +unset EPICS_BASE +unset EPICS_HOST_ARCH + +unset E3_REQUIRE +unset E3_REQUIRE_VERSION +unset E3_REQUIRE_LOCATION +unset E3_REQUIRE_BIN +unset E3_REQUIRE_LIB +unset E3_REQUIRE_DBD + +unset PATH +unset LD_LIBRARY_PATH + + + +base_ver=$1 +require_ver=$2 + +if [ -z "$require_ver" ]; then + require_ver="0.0.1" +fi + +if [ -z "$base_ver" ]; then + base_ver="3.15.5" +fi + + + +export EPICS_BASE=/testing/epics/base-3.15.5 + + +#ESS_LIBS=/opt/ess +#ESS_ETHERLAB=/opt/etherlab +#ESS_OPCUA=${ESS_LIBS}/opcUa +#ESS_ETHERLAB=${ESS_LIBS}/etherlab + +#export ESS_OPCUA_LIB=${ESS_OPCUA}/lib +#export ESS_OPCUA_INC=${ESS_OPCUA}/include +#export ESS_OPCUA_BIN=${ESS_OPCUA}/bin + + +# export ESS_ETHERLAB_LIB=${ESS_ETHERLAB}/lib +# export ESS_ETHERLAB_BIN=${ESS_ETHERLAB}/bin +# export ESS_ETHERLAB_SBIN=${ESS_ETHERLAB}/sbin + + +# shared libs seach directory by require.c +# +# EPICS_DRIVER_PATH +#export EPICS_DRIVER_PATH=${EPICS_MODULES}:${ESS_ETHERLAB_LIB} +#export EPICS_BASE=${EPICS}/base-${base_ver} + + + +# export EPICS_LOCATION=${ESS_EPICS_PATH}/bases +# export EPICS_MODULES=${ESS_EPICS_PATH}/modules + + + +EPICS_HOST_ARCH=$("${EPICS_BASE}/startup/EpicsHostArch.pl") +export EPICS_HOST_ARCH + +# Select REQUIRE Environment Variables + +export E3_REQUIRE=require +export E3_REQUIRE_VERSION=${require_ver} +export E3_REQUIRE_LOCATION=${EPICS_BASE}/${E3_REQUIRE}/${E3_REQUIRE_VERSION} + +export E3_REQUIRE_BIN=${E3_REQUIRE_LOCATION}/bin +export E3_REQUIRE_LIB=${E3_REQUIRE_LOCATION}/lib +export E3_REQUIRE_DBD=${E3_REQUIRE_LOCATION}/dbd + +export PATH=${E3_REQUIRE_BIN}:${EPICS_BASE}/bin/${EPICS_HOST_ARCH}:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:${HOME}/bin + +export LD_LIBRARY_PATH=${EPICS_BASE}/lib/${EPICS_HOST_ARCH}:${E3_REQUIRE_LIB}/${EPICS_HOST_ARCH}:/usr/local/lib:${HOME}/lib +