From a3a539fd14c37115df35a68de092f91d3bdf5a67 Mon Sep 17 00:00:00 2001 From: Jeong Han Lee <jeonghan.lee@gmail.com> Date: Fri, 6 Oct 2017 14:34:23 +0200 Subject: [PATCH] Update in order to use e3-env --- Makefile | 138 ++++++++++++++++++++++++++--------------------- configure/CONFIG | 17 ++---- 2 files changed, 79 insertions(+), 76 deletions(-) diff --git a/Makefile b/Makefile index 91f8e99d..751fa07f 100644 --- a/Makefile +++ b/Makefile @@ -16,24 +16,34 @@ # # Author : Jeong Han Lee # email : han.lee@esss.se -# Date : Tuesday, October 3 14:57:53 CEST 2017 -# version : 0.0.1 +# Date : Friday, October 6 13:35:46 CEST 2017 +# version : 0.1.0 # - -TOP = $(CURDIR) +TOP:=$(CURDIR) include $(TOP)/configure/CONFIG -E3_ENV_SRC=$(TOP)/e3-env/e3-env +-include $(TOP)/$(E3_ENV_NAME)/$(E3_ENV_NAME) -ifneq ($(wildcard $(E3_ENV_SRC)),) -include $(E3_ENV_SRC) +# +# Keep always the module up-to-date +define git_update = +@git submodule deinit -f $@/ +git submodule deinit -f $@/ +sed -i '/submodule/,$$d' $(TOP)/.git/config +git submodule init $@/ +git submodule update --init --recursive --recursive $@/. +git submodule update --remote --merge $@/ +endef + +ifndef VERBOSE + QUIET := @ endif - -M_DIRS:=$(sort $(dir $(wildcard $(TOP)/*/.))) - +ifdef DEBUG_SHELL + SHELL = /bin/sh -x +endif M_OPTIONS := -C $(EPICS_MODULE_SRC_PATH) M_OPTIONS += -f $(ESS_MODULE_MAKEFILE) @@ -53,7 +63,7 @@ help: $(info --------------------------------------- ) $(info Available targets) $(info --------------------------------------- ) - @awk '/^[a-zA-Z\-\_0-9]+:/ { \ + $(QUIET) awk '/^[a-zA-Z\-\_0-9]+:/ { \ nb = sub( /^## /, "", helpMsg ); \ if(nb == 0) { \ helpMsg = $$0; \ @@ -65,86 +75,90 @@ help: { helpMsg = $$0 }' \ $(MAKEFILE_LIST) | column -ts: + + default: help # ## Install "Require" Module in order to use it install: - sudo -E bash -c 'make $(M_OPTIONS) install' - @sudo install -d -m 755 $(REQUIRE_TOOLS) - @sudo install -m 644 $(EPICS_MODULE_SRC_PATH)/App/tools/driver.makefile $(REQUIRE_TOOLS)/ - @sudo install -m 755 $(EPICS_MODULE_SRC_PATH)/App/tools/*.tcl $(REQUIRE_TOOLS)/ - @sudo -E bash -c 'm4 -D_DEFAULT_EPICS_VERSIONS="$(DEFAULT_EPICS_VERSIONS)" -D_EPICS_MODULES="$(EPICS_MODULES)" -D_EPICS_LOCATION="$(EPICS_LOCATION)" $(TOP)/configure/driver_makefile_conf.m4 > $(REQUIRE_TOOLS)/conf' - @sudo install -d -m 755 $(REQUIRE_BIN) - @sudo install -m 755 $(EPICS_MODULE_SRC_PATH)/iocsh $(REQUIRE_BIN)/ + $(QUIET) sudo -E bash -c 'make $(M_OPTIONS) install' + $(QUIET) sudo install -d -m 755 $(REQUIRE_TOOLS) + $(QUIET) sudo install -m 644 $(EPICS_MODULE_SRC_PATH)/App/tools/driver.makefile $(REQUIRE_TOOLS)/ + $(QUIET) sudo install -m 755 $(EPICS_MODULE_SRC_PATH)/App/tools/*.tcl $(REQUIRE_TOOLS)/ + $(QUIET) sudo -E bash -c 'm4 \ + -D_DEFAULT_EPICS_VERSIONS="$(DEFAULT_EPICS_VERSIONS)" \ + -D_EPICS_MODULES="$(EPICS_MODULES)" \ + -D_EPICS_LOCATION="$(EPICS_LOCATION)" \ + $(TOP)/configure/driver_makefile_conf.m4 \ + > $(REQUIRE_TOOLS)/conf' + $(QUIET) sudo install -d -m 755 $(REQUIRE_BIN) + $(QUIET) sudo install -m 755 $(EPICS_MODULE_SRC_PATH)/iocsh $(REQUIRE_BIN)/ # ## Uninstall "Require" Module in order not to use it uninstall: - sudo -E bash -c 'make $(M_OPTIONS) uninstall' + $(QUIET) sudo -E bash -c 'make $(M_OPTIONS) uninstall' ## Build the EPICS Module build: conf - make $(M_OPTIONS) + $(QUIET) make $(M_OPTIONS) ## Clean the EPICS Module clean: - make $(M_OPTIONS) clean + $(QUIET) make $(M_OPTIONS) clean -## Initialize all environments -init: e3-env mo-init +# +## Initialize EPICS BASE and E3 ENVIRONMENT Module +init: git-submodule-sync $(EPICS_MODULE_NAME) $(E3_ENV_NAME) +git-submodule-sync: + $(QUIET) git submodule sync -## Get EPICS Module, and change its $(EPICS_MODULE_TAG) -mo-init: - @git submodule deinit -f $(EPICS_MODULE_NAME)/ - git submodule deinit -f $(EPICS_MODULE_NAME)/ - git submodule init $(EPICS_MODULE_NAME)/ - git submodule update --init --remote --recursive $(EPICS_MODULE_NAME)/. - cd $(EPICS_MODULE_NAME) && git checkout tags/$(EPICS_MODULE_TAG) +$(EPICS_MODULE_NAME): + $(QUIET) $(git_update) + cd $@ && git checkout tags/$(EPICS_MODULE_TAG) -## Print EPICS and ESS EPICS Environment variables -env: - @echo "" - @echo "EPICS_MODULE_NAME : "$(EPICS_MODULE_NAME) - @echo "EPICS_MODULE_TAG : "$(EPICS_MODULE_TAG) - @echo "EPICS_MODULE_SRC_PATH : "$(EPICS_MODULE_SRC_PATH) - @echo "ESS_MODULE_MAKEFILE : "$(ESS_MODULE_MAKEFILE) - @echo "PROJECT : "$(PROJECT) - @echo "LIBVERSION : "$(LIBVERSION) +$(E3_ENV_NAME): + $(QUIET) $(git_update) - @echo "" - @echo ">>>> ESS EPICS Environment <<<< " - @echo "" - @echo "EPICS_LOCATION : "$(EPICS_LOCATION) - @echo "EPICS_MODULES : "$(EPICS_MODULES) - @echo "DEFAULT_EPICS_VERSIONS : "$(DEFAULT_EPICS_VERSIONS) - @echo "REQUIRE_VERSION : "$(REQUIRE_VERSION) - @echo "REQUIRE_PATH : "$(REQUIRE_PATH) - @echo "REQUIRE_TOOLS : "$(REQUIRE_TOOLS) - @echo "REQUIRE_BIN : "$(REQUIRE_BIN) - @echo "" +## Print EPICS and ESS EPICS Environment variables +env: + $(QUIET) echo "" + + $(QUIET) echo "EPICS_MODULE_NAME : "$(EPICS_MODULE_NAME) + $(QUIET) echo "EPICS_MODULE_TAG : "$(EPICS_MODULE_TAG) + $(QUIET) echo "EPICS_MODULE_SRC_PATH : "$(EPICS_MODULE_SRC_PATH) + $(QUIET) echo "ESS_MODULE_MAKEFILE : "$(ESS_MODULE_MAKEFILE) + + $(QUIET) echo "" + $(QUIET) echo "----- >>>> EPICS BASE Information <<<< -----" + $(QUIET) echo "" + $(QUIET) echo "EPICS_BASE_TAG : "$(EPICS_BASE_TAG) + $(QUIET) echo "CROSS_COMPILER_TARGET_ARCHS : "$(CROSS_COMPILER_TARGET_ARCHS) + $(QUIET) echo "" + $(QUIET) echo "----- >>>> ESS EPICS Environment <<<< -----" + $(QUIET) echo "" + $(QUIET) echo "EPICS_LOCATION : "$(EPICS_LOCATION) + $(QUIET) echo "EPICS_MODULES : "$(EPICS_MODULES) + $(QUIET) echo "DEFAULT_EPICS_VERSIONS : "$(DEFAULT_EPICS_VERSIONS) + $(QUIET) echo "BASE_INSTALL_LOCATIONS : "$(BASE_INSTALL_LOCATIONS) + $(QUIET) echo "REQUIRE_VERSION : "$(REQUIRE_VERSION) + $(QUIET) echo "REQUIRE_PATH : "$(REQUIRE_PATH) + $(QUIET) echo "REQUIRE_TOOLS : "$(REQUIRE_TOOLS) + $(QUIET) echo "REQUIRE_BIN : "$(REQUIRE_BIN) + $(QUIET) echo "" -dirs: - @echo $(M_DIRS) || true conf: - @install -m 644 $(TOP)/$(ESS_MODULE_MAKEFILE) $(EPICS_MODULE_SRC_PATH)/ + $(QUIET) install -m 644 $(TOP)/$(ESS_MODULE_MAKEFILE) $(EPICS_MODULE_SRC_PATH)/ -# -# -e3-env: - @git submodule deinit -f $(E3_ENV)/ - git submodule deinit -f $(E3_ENV)/ - git submodule init $(E3_ENV)/ - git submodule update --init --remote --recursive $(E3_ENV)/. -# cd $(E3_ENV) && git checkout tags/$(E3_ENV_TAG) -.PHONY: install build clean distclean mo-init e3-env init env dirs conf +.PHONY: help default init $(EPICS_MODULE_NAME) $(E3_ENV_NAME) env conf install uninstall build clean diff --git a/configure/CONFIG b/configure/CONFIG index c0502e60..2d797e9d 100644 --- a/configure/CONFIG +++ b/configure/CONFIG @@ -34,20 +34,9 @@ ESS_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile # require $(PROJECT),$(LIBVERSION) export PROJECT:=$(EPICS_MODULE_NAME) -# (EEE) LIBVERSION -# it is the jargon of EEE, the EEE generic makefile uses it -# as the epics module version, and it will be used in the iocsh script -# with the require commands, for example -# require $(PROJECT),$(LIBVERSION) -# export LIBVERSION:=2.5.3 - - -# It may be the sole reason why we have so many troubles related with -# module version mismatch within the current EEE -# -# export USR_DEPENDENCIES += devlib2,2.9.0 +# E3_ENV_NAME +export E3_ENV_NAME:=e3-env +#export E3_ENV_TAG:=v0.1 -E3_ENV:=e3-env -E3_ENV_TAG:=master -- GitLab