Skip to content
Snippets Groups Projects
Commit ebc9d216 authored by Jeong Han Lee's avatar Jeong Han Lee
Browse files

try to migrate the new building system

parent 414a31c3
No related branches found
No related tags found
No related merge requests found
Showing
with 375 additions and 30 deletions
[submodule "e3-env"]
path = e3-env
url = https://github.com/icshwi/e3-env
ignore = dirty
[submodule "require"] [submodule "require"]
path = require path = require
url = https://github.com/paulscherrerinstitute/require url = https://github.com/paulscherrerinstitute/require
......
...@@ -22,30 +22,7 @@ ...@@ -22,30 +22,7 @@
TOP:=$(CURDIR) TOP:=$(CURDIR)
-include $(TOP)/e3-env/E3_ENV_CONF
ifneq (,$(findstring dev,$(MAKECMDGOALS)))
include $(TOP)/configure/CONFIG_DEV
else
include $(TOP)/configure/CONFIG include $(TOP)/configure/CONFIG
endif
include $(TOP)/configure/MK_DEFINES
include $(TOP)/configure/BUILD_REQUIRE
include $(TOP)/configure/BUILD_E3
include $(TOP)/configure/BUILD_DB
# Build Rule for Community EPICS Building
include $(TOP)/configure/BUILD_EPICS
# Build Rule for Development Mode
ifneq (,$(findstring dev,$(MAKECMDGOALS)))
include $(TOP)/configure/BUILD_DEV
endif
include $(TOP)/configure/RULES
CONFIG_ESS
\ No newline at end of file
VARS_EXCLUDES := $(.VARIABLES)
ifneq (,$(findstring dev,$(MAKECMDGOALS)))
include $(TOP)/configure/RELEASE_DEV
else
include $(TOP)/configure/RELEASE
endif
# CONFIG=$(EPICS_BASE)/configure
# include $(CONFIG)/CONFIG
include $(TOP)/configure/CONFIG_REQUIRE
include $(TOP)/configure/CONFIG_EPICS
ifneq (,$(findstring dev,$(MAKECMDGOALS)))
include $(TOP)/configure/CONFIG_MODULE_DEV
else
include $(TOP)/configure/CONFIG_MODULE
endif
include $(TOP)/configure/CONFIG_E3_MAKEFILE
# 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
E3_REQUIRE_MAKEFILE_INPUT_OPTIONS := -C $(E3_MODULE_SRC_PATH)
E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += -f $(E3_MODULE_MAKEFILE)
E3_REQUIRE_MAKEFILE_INPUT_OPTIONS += LIBVERSION="$(E3_MODULE_VERSION)"
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)"
## the following variables to display
# VARS_EXCLUDES+=E3_EPICS_VERSION_TEMP
COMMUNITY_EPICS_MODULES:=$(EPICS_BASE)/epics-modules
M_AUTOSAVE:=$(COMMUNITY_EPICS_MODULES)/autosave
M_DEVLIB2:=$(COMMUNITY_EPICS_MODULES)/devlib2
M_IOCSTATS:=$(COMMUNITY_EPICS_MODULES)/iocStats
M_ASYN:=$(COMMUNITY_EPICS_MODULES)/asyn
M_BUSY:=$(COMMUNITY_EPICS_MODULES)/busy
M_MODBUS:=$(COMMUNITY_EPICS_MODULES)/modbus
M_MRFIOC2:=$(COMMUNITY_EPICS_MODULES)/mrfioc2
M_LUA:=$(COMMUNITY_EPICS_MODULES)/lua
M_IPMICOMM:=$(COMMUNITY_EPICS_MODULES)/ipmiComm
M_STREAM:=$(COMMUNITY_EPICS_MODULES)/stream
M_CALC:=$(COMMUNITY_EPICS_MODULES)/calc
M_MOTOR:=$(COMMUNITY_EPICS_MODULES)/motor
M_SSCAN:=$(COMMUNITY_EPICS_MODULES)/sscan
M_SNCSEQ:=$(COMMUNITY_EPICS_MODULES)/seq
M_IP:=$(COMMUNITY_EPICS_MODULES)/ip
M_IPAC:=$(COMMUNITY_EPICS_MODULES)/ipac
export M_AUTOSAVE
export M_DEVLIB2
export M_IOCSTATS
export M_ASYN
export M_BUSY
export M_MODBUS
export M_MRFIOC2
export M_LUA
export M_IPMICOMM
export M_STREAM
export M_CALC
export M_MOTOR
export M_SSCAN
export M_SNCSEQ
export M_IP
export M_IPAC
### Exclude the following variables to display
VARS_EXCLUDES+=COMMUNITY_EPICS_MODULES
VARS_EXCLUDES+=M_AUTOSAVE
VARS_EXCLUDES+=M_DEVLIB2
VARS_EXCLUDES+=M_IOCSTATS
VARS_EXCLUDES+=M_ASYN
VARS_EXCLUDES+=M_BUSY
VARS_EXCLUDES+=M_MODBUS
VARS_EXCLUDES+=M_MRFIOC2
VARS_EXCLUDES+=M_LUA
VARS_EXCLUDES+=M_IPMICOMM
VARS_EXCLUDES+=M_STREAM
VARS_EXCLUDES+=M_CALC
VARS_EXCLUDES+=M_MOTOR
VARS_EXCLUDES+=M_SSCAN
VARS_EXCLUDES+=M_SNCSEQ
VARS_EXCLUDES+=M_IP
VARS_EXCLUDES+=M_IPAC
EPICS_MODULE_NAME:=iocStats
EPICS_MODULE_TAG:=1856ef5
E3_MODULE_SRC_PATH:=$(EPICS_MODULE_NAME)
E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile
E3_MODULE_NAME:=$(EPICS_MODULE_NAME)
E3_MODULE_VERSION:=1856ef5
EPICS_MODULE_NAME:=iocStats
EPICS_MODULE_TAG:=master
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_REQUIRE_LOCATION:=$(EPICS_BASE)/$(E3_REQUIRE_NAME)/$(E3_REQUIRE_VERSION)
E3_REQUIRE_BIN:=$(E3_REQUIRE_LOCATION)/bin
E3_REQUIRE_TOOLS:=$(E3_REQUIRE_LOCATION)/tools
E3_REQUIRE_LIB:=$(E3_REQUIRE_LOCATION)/lib
E3_REQUIRE_DB:=$(E3_REQUIRE_LOCATION)/db
E3_REQUIRE_DBD:=$(E3_REQUIRE_LOCATION)/dbd
E3_REQUIRE_INC:=$(E3_REQUIRE_LOCATION)/include
export E3_REQUIRE_TOOLS
# 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/$@
git submodule init $@/
git submodule update --init --recursive $@/.
git submodule update --remote --merge $@/
endef
ifndef VERBOSE
QUIET := @
endif
ifdef DEBUG_SHELL
SHELL = /bin/sh -x
endif
### Exclude the following variables to display
VARS_EXCLUDES+=git_update
VARS_EXCLUDES+=QUIET
VARS_EXCLUDES+=SHELL
EPICS_BASE=/testing/epics/base-3.15.5
E3_REQUIRE_NAME:=require
E3_REQUIRE_VERSION:=0.0.1
EPICS_BASE=/testing/epics/base-3.15.5
E3_REQUIRE_NAME:=require
E3_REQUIRE_VERSION:=0.0.1
#CONFIG
# include $(EPICS_BASE)/configure/RULES
include $(TOP)/configure/DEFINES_FT
include $(TOP)/configure/RULES_E3
include $(TOP)/configure/RULES_EPICS
include $(TOP)/configure/RULES_DB
include $(TOP)/configure/RULES_VARS
ifneq (,$(findstring dev,$(MAKECMDGOALS)))
include $(TOP)/configure/RULES_DEV
endif
## This RULE should be used in case of inflating DB files
##
# .PHONY: db
### We have to think how to find $(EPICS_BASE) and
### $(EPICS_HOST_ARCH) during driver.makefile
### Friday, November 3 16:44:55 CET 2017, jhlee
### Currently feasible solutoin without touching driver.makefile
### is the following:
###
### 0) source setE3Env.bash 3.15.4
### 1) make db
### 2) make install
### 3) source setE3Env.bash 3.15.5
### 4) make db
### 5) make install
### .....
#db: conf
# $(QUIET) make $(M_OPTIONS) db
.PHONY: devvars devenv devinit devbuild devclean devrebuild devuninstall devdistclean
devvars: vars
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)
devbuild: build
devclean: clean
devrebuild: rebuild
devuninstall: uninstall
devdistclean: clean
$(QUIET)echo "Removing $(E3_MODULE_SRC_PATH) ......... "
rm -rf $(E3_MODULE_SRC_PATH)
.PHONY: help default install uninstall build rebuild clean conf
# # 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:
default: help
## Install : $(E3_MODULE_NAME)
install: uninstall
$(QUIET) sudo -E bash -c 'make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) install'
## Uninstall : $(E3_MODULE_NAME)
uninstall: conf
$(QUIET) sudo -E bash -c 'make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) 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
## Clean, build, and install the EPICS Module : $(E3_MODULE_NAME)
rebuild: clean build install
## Clean : $(E3_MODULE_NAME)
clean: conf
$(QUIET) make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) clean
## Copy $(E3_MODULE_MAKEFILE) into $(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)
git-submodule-sync:
$(QUIET) git submodule sync
$(E3_MODULE_SRC_PATH):
$(QUIET) $(git_update)
cd $@ && git checkout $(EPICS_MODULE_TAG)
checkout:
cd $(E3_MODULE_SRC_PATH) && git checkout $(EPICS_MODULE_TAG)
# .PHONY: help2
# ## Show driver.makefile help
# help2:
# $(QUIET) make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS) help
# 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)"
#epics-clean:
# sudo -E bash -c "$(MAKE) -C $(EPICS_MODULE_SRC_PATH) clean"
E3_MODULES_VARIABLES:=$(sort $(filter-out $(VARS_EXCLUDES) VARS_EXCLUDES,$(.VARIABLES)))
.PHONY : vars env header
vars: header
$(foreach v, $(E3_MODULES_VARIABLES), $(info $(v) = $($(v)))) @#noop
env: vars
header:
@echo ""
@echo "-------------------------------------------------"
@echo " Current EPICS and E3 Envrionment Variables "
@echo "-------------------------------------------------"
File moved
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment