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

add working envs for devlib2

parent ebf809e9
No related branches found
No related tags found
No related merge requests found
[submodule "e3-env"]
path = e3-env
url = https://github.com/icshwi/e3-env
ignore=dirty
[submodule "devlib2"]
path = devlib2
url = https://github.com/epics-modules/devlib2
ignore=all
Makefile 0 → 100644
#
# 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
#
# Author : Jeong Han Lee
# email : han.lee@esss.se
# Date : Thursday, October 19 11:36:26 CEST 2017
# version : 0.2.0
#
TOP:=$(CURDIR)
include $(TOP)/configure/CONFIG
-include $(TOP)/$(E3_ENV_NAME)/$(E3_ENV_NAME)
# 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
rm -rf $(TOP)/.git/modules/$@
git submodule init $@/
git submodule update --init --recursive --recursive $@/.
git submodule update --remote --merge $@/
endef
ifndef VERBOSE
QUIET := @
endif
ifdef DEBUG_SHELL
SHELL = /bin/sh -x
endif
# Pass necessary driver.makefile variables through makefile options
#
M_OPTIONS := -C $(EPICS_MODULE_SRC_PATH)
M_OPTIONS += -f $(ESS_MODULE_MAKEFILE)
M_OPTIONS += LIBVERSION="$(LIBVERSION)"
M_OPTIONS += PROJECT="$(EPICS_MODULE_NAME)"
M_OPTIONS += EPICS_MODULES="$(EPICS_MODULES)"
M_OPTIONS += EPICS_LOCATION="$(EPICS_LOCATION)"
M_OPTIONS += DEFAULT_EPICS_VERSIONS="$(DEFAULT_EPICS_VERSIONS)"
M_OPTIONS += BUILDCLASSES="Linux"
# # 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: uninstall
$(QUIET) sudo -E bash -c 'make $(M_OPTIONS) install'
## Uninstall "Require" Module in order not to use it
uninstall: conf
$(QUIET) sudo -E bash -c 'make $(M_OPTIONS) uninstall'
## Build the EPICS Module
build: conf
$(QUIET) make $(M_OPTIONS) build
## clean, build, and install again.
rebuild: clean build install
## Clean the EPICS Module
clean: conf
$(QUIET) make $(M_OPTIONS) clean
## Show driver.makefile help
help2:
$(QUIET) make $(M_OPTIONS) help
#
## Initialize EPICS BASE and E3 ENVIRONMENT Module
init: git-submodule-sync $(EPICS_MODULE_NAME) $(E3_ENV_NAME)
git-submodule-sync:
$(QUIET) git submodule sync
$(EPICS_MODULE_NAME):
$(QUIET) $(git_update)
cd $@ && git checkout $(EPICS_MODULE_TAG)
$(E3_ENV_NAME):
$(QUIET) $(git_update)
## Print EPICS and ESS EPICS Environment variables
env:
$(QUIET) echo ""
$(QUIET) echo "EPICS_MODULE_SRC_PATH : "$(EPICS_MODULE_SRC_PATH)
$(QUIET) echo "ESS_MODULE_MAKEFILE : "$(ESS_MODULE_MAKEFILE)
$(QUIET) echo "EPICS_MODULE_TAG : "$(EPICS_MODULE_TAG)
$(QUIET) echo "LIBVERSION : "$(LIBVERSION)
$(QUIET) echo "PROJECT : "$(PROJECT)
$(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 ""
conf:
$(QUIET) install -m 644 $(TOP)/$(ESS_MODULE_MAKEFILE) $(EPICS_MODULE_SRC_PATH)/
.PHONY: env $(E3_ENV_NAME) $(EPICS_MODULE_NAME) git-submodule-sync init help help2 build clean install uninstall conf rebuild
# (EPICS) EPICS_MODULE_NAME
# The EPICS community MODULE name.
# For example, https://github.com/epics-module/devlib2
# devlib2 is EPICS_MODULE_NAME
#
EPICS_MODULE_NAME:=devlib2
# (EPICS) EPICS_MODULE_TAG
# The EPICS community tag number, which we would like to install
# within ESS EPICS Environment (ESS)
# export EPICS_MODULE_TAG:=tags/2.5.1
export EPICS_MODULE_TAG:=tags/2.9
# (LOCAL) EPICS_MODULE_PATH
# Usually, it is the directory in $(TOP), after cloning the repository
# However, some modules from ESS have the weird directory structure.
# If one use the cloned directory, one should define the proper source
# directory path in $(ESS_MODULE_MAKEFILE)
export EPICS_MODULE_SRC_PATH:=$(EPICS_MODULE_NAME)
# (LOCAL) ESS_MODULE_MAKEFILE
# The very strange and additional Makefile for EPICS_MODULE_NAME, which
# should be maintained according to main repository evolving.
# some export variables in CONFIG file
# in order to build and install for EEE
ESS_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile
# (E3) PROJECT
# it is the jargon of E3, from EEE and PSI EPICS Environment,
# the E3 generic makefile (driver.makefile) uses it as the installation
# directory, and it will be used in the iocsh script (aka iocsh.bash)
# with the require commands, for example
# require $(PROJECT) $(LIBVERSION)
export PROJECT:=$(EPICS_MODULE_NAME)
# (E3) LIBVERSION
# it is the jargon of E3, from EEE and PSI EPICS Environment,
# the E3 generic makefile (driver.makefile) uses it as the installation
# directory, and it will be used in the iocsh script (aka iocsh.bash)
# with the require commands, for example
# require $(PROJECT) $(LIBVERSION)
export LIBVERSION:=2.9.0
# It may be the sole reason why we have so many troubles related with
# module version mismatch within the current E3
#
# export USR_DEPENDENCIES += devlib2,2.9.0
# E3_ENV_NAME
# It is the global E3 environment repository
#
export E3_ENV_NAME:=e3-env
#export E3_ENV_TAG:=v0.1
Subproject commit 73db6c672635b15eafab6e59d2850de009e3b7c7
include ${REQUIRE_TOOLS}/driver.makefile
PCIAPP:= pciApp
HEADERS += $(PCIAPP)/devLibPCI.h
HEADERS += $(PCIAPP)/devLibPCIImpl.h
SOURCES += $(wildcard $(PCIAPP)/devLib*.c)
SOURCES += $(PCIAPP)/pcish.c
SOURCES_Linux += $(PCIAPP)/os/Linux/devLibPCIOSD.c
DBDS += $(PCIAPP)/epicspci.dbd
VMEAPP:= vmeApp
HEADERS += $(VMEAPP)/devcsr.h
HEADERS += $(VMEAPP)/vmedefs.h
SOURCES += $(VMEAPP)/devcsr.c
SOURCES += $(VMEAPP)/iocreg.c
SOURCES += $(VMEAPP)/vmesh.c
SOURCES += $(VMEAPP)/devlib_compat.c
DBDS += $(VMEAPP)/epicsvme.dbd
Subproject commit 62b251c058d236d79e64ad67cdd3b87d3d2286e9
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