Skip to content
Snippets Groups Projects
Commit d51c57b3 authored by Simon Rose's avatar Simon Rose
Browse files

Merge branch 'remove_sequencer_rules' into 'master'

E3-1135: Remove sequencer rules

See merge request e3/e3-require!125
parents d0d3f39c fa0a8f73
No related branches found
No related tags found
1 merge request!125E3-1135: Remove sequencer rules
Pipeline #136592 passed with warnings
......@@ -247,6 +247,10 @@ SCR = $(if ${SCRIPTS},$(filter-out -none-,${SCRIPTS}),$(wildcard *.cmd *.iocsh))
SCR += ${SCRIPTS_${EPICSVERSION}}
export SCR
CFGS = ${CONFIGS}
CFGS += ${CONFIGS_${EPICSVERSION}}
export CFGS
# Filter architectures to build using EXCLUDE_ARCHS and ARCH_FILTER.
ALL_ARCHS = ${EPICS_HOST_ARCH} ${CROSS_COMPILER_TARGET_ARCHS}
BUILD_ARCHS = $(filter-out $(addprefix %,${EXCLUDE_ARCHS}),$(filter-out $(addsuffix %,${EXCLUDE_ARCHS}),\
......@@ -287,6 +291,8 @@ debug::
@echo "ARCH_FILTER = ${ARCH_FILTER}"
@echo "EXCLUDE_ARCHS = ${EXCLUDE_ARCHS}"
@echo "LIBVERSION = ${LIBVERSION}"
@echo "E3_SITEMODS_PATH = ${E3_SITEMODS_PATH}"
@echo "EPICS_MODULES = ${EPICS_MODULES}"
# Create e.g. build-$(T_A) rules for each architecture, so that we can just do
# build: build-arch1 build-arch2
......@@ -422,8 +428,6 @@ export BINS
VLIBS = $(VENDOR_LIBS) $(foreach x,$(VAR_EXTENSIONS),$(VENDOR_LIBS_$x))
export VLIBS
export CFG
# These variables are written into a .yaml file in the installed module directory to keep track of
# metadata for which module was compiled.
......@@ -468,7 +472,7 @@ INSTALL_VLIB = ${INSTALL_REV}/lib/$(T_A)/vendor
INSTALL_INCLUDE = ${INSTALL_REV}/include
INSTALL_DBD = ${INSTALL_REV}/dbd
INSTALL_DB = ${INSTALL_REV}/db
INSTALL_CFG = ${INSTALL_REV}/cfg
INSTALL_CONFIG = ${INSTALL_REV}/cfg
INSTALL_DOC = ${MODULE_LOCATION}/doc
INSTALL_SCR = ${INSTALL_REV}
......@@ -518,10 +522,6 @@ DBDFILES += $(patsubst %.stt,%_snl.dbd,$(notdir $(filter %.stt,${SRCS})))
# Create dbd file for GPIB code.
DBDFILES += $(patsubst %.gt,%.dbd,$(notdir $(filter %.gt,${SRCS})))
# snc location
SNCALL=$(shell ls -dv $(E3_SITEMODS_PATH)/sequencer/$(sequencer_VERSION)/bin/$(EPICS_HOST_ARCH) 2> /dev/null)
SNC=$(lastword $(SNCALL))/snc
ifneq (,$(strip $(VLIBS)))
USR_LDFLAGS_$(T_A) += $(foreach l,$(VLIBS),-L../$(dir $(l)))
USR_LDFLAGS_$(T_A) += -Wl,-rpath,"\$$ORIGIN/vendor"
......@@ -536,6 +536,10 @@ ifneq ($(MODULELIB),)
LIBOBJS += $(addsuffix $(OBJ),$(basename ${VERSIONFILE}))
endif # MODULELIB
MODULE_RULES = ${CFGS:%=../%}
MODULE_RULES += $(foreach m,$(REQ),$(wildcard $(E3_SITEMODS_PATH)/$m/$($(m)_VERSION)/cfg/RULES*))
MODULE_RULES += $(foreach m,$(REQ),$(wildcard $(EPICS_MODULES)/$m/$($(m)_VERSION)/cfg/RULES*))
debug::
@echo "===================== Pass 3: Build directory ====================="
@echo "BUILDCLASSES = ${BUILDCLASSES}"
......@@ -550,6 +554,7 @@ debug::
@echo "SOURCES_${OS_CLASS} = ${SOURCES_${OS_CLASS}}"
@echo "SRCS = ${SRCS}"
@echo "REQ = ${REQ}"
@echo "CFGS = ${CFGS}"
@echo "LIBOBJS = ${LIBOBJS}"
@echo "DBDS = ${DBDS}"
@echo "DBDS_${OS_CLASS} = ${DBDS_${OS_CLASS}}"
......@@ -558,6 +563,7 @@ debug::
@echo "TEMPLS = ${TEMPLS}"
@echo "LIBVERSION = ${LIBVERSION}"
@echo "MODULE_LOCATION = ${MODULE_LOCATION}"
@echo "MODULE_RULES = ${MODULE_RULES}"
build: MODULEINFOS
build: ${MODULEDBD}
......@@ -571,7 +577,10 @@ INSTALL_LOADABLE_SHRLIBS=
# We ony want to include ${BASERULES} from EPICS base if we are /not/ in debug
# mode. Including this causes all of the source files to be compiled!
ifeq (,$(findstring debug,${MAKECMDGOALS}))
include ${BASERULES}
include ${BASERULES}
ifneq ($(strip $(MODULE_RULES)),)
include $(MODULE_RULES)
endif
endif
# Fix incompatible release rules.
......@@ -582,7 +591,7 @@ RELEASE_INCLUDES += -I${EPICS_BASE}/include/compiler/${CMPLR_CLASS}
RELEASE_INCLUDES += -I${EPICS_BASE}/include/os/${OS_CLASS}
# Find all sources and set vpath accordingly.
$(foreach file, ${SRCS} ${TEMPLS} ${DBDINSTALLS} ${SCR}, $(eval vpath $(notdir ${file}) ../$(dir ${file})))
$(foreach file, ${SRCS} ${TEMPLS} ${DBDINSTALLS} ${SCR} ${CFGS}, $(eval vpath $(notdir ${file}) ../$(dir ${file})))
$(foreach file,${VLIBS},$(eval vpath $(notdir ${file}) ../$(dir ${file})))
# Do not treat %.dbd the same way because it creates a circular dependency
......@@ -627,7 +636,7 @@ endif
INSTALL_DBS = $(addprefix ${INSTALL_DB}/,$(notdir ${TEMPLS}))
INSTALL_SCRS = $(addprefix ${INSTALL_SCR}/,$(notdir ${SCR}))
INSTALL_BINS = $(addprefix ${INSTALL_BIN}/,$(notdir ${BINS}))
INSTALL_CFGS = $(CFG:%=${INSTALL_CFG}/%)
INSTALL_CONFIGS = $(addprefix ${INSTALL_CONFIG}/,$(notdir ${CFGS}))
debug::
@echo "INSTALL_LIB = $(INSTALL_LIB)"
......@@ -643,8 +652,8 @@ debug::
@echo "INSTALL_DBS = $(INSTALL_DBS)"
@echo "INSTALL_SCR = $(INSTALL_SCR)"
@echo "INSTALL_SCRS = $(INSTALL_SCRS)"
@echo "INSTALL_CFG = $(INSTALL_CFG)"
@echo "INSTALL_CFGS = $(INSTALL_CFGS)"
@echo "INSTALL_CONFIG = $(INSTALL_CONFIG)"
@echo "INSTALL_CONFIGS = $(INSTALL_CONFIGS)"
@echo "INSTALL_BIN = $(INSTALL_BIN)"
@echo "INSTALL_BINS = $(INSTALL_BINS)"
@echo "HDR_SUBDIRS = $(HDR_SUBDIRS)"
......@@ -661,7 +670,7 @@ debug::
endef
$(foreach d,$(HDR_SUBDIRS),$(eval $(call install_subdirs,$d)))
INSTALLS += ${INSTALL_CFGS} ${INSTALL_SCRS} ${INSTALL_HDRS} ${INSTALL_DBDS} ${INSTALL_DBS} ${INSTALL_LIBS} ${INSTALL_VLIBS} ${INSTALL_BINS} ${INSTALL_DEPS} ${INSTALL_META}
INSTALLS += ${INSTALL_CONFIGS} ${INSTALL_SCRS} ${INSTALL_HDRS} ${INSTALL_DBDS} ${INSTALL_DBS} ${INSTALL_LIBS} ${INSTALL_VLIBS} ${INSTALL_BINS} ${INSTALL_DEPS} ${INSTALL_META}
install: ${INSTALLS}
......@@ -693,7 +702,7 @@ ${INSTALL_SCRS}: $(notdir ${SCR})
@echo "Installing scripts $^ to $(@D)"
$(INSTALL) -d -m$(BIN_PERMISSIONS) $^ $(@D)
${INSTALL_CFGS}: ${CFGS}
${INSTALL_CONFIGS}: $(notdir ${INSTALL_CONFIGS})
@echo "Installing configuration files $^ to $(@D)"
$(INSTALL) -d -m$(INSTALL_PERMISSIONS) $^ $(@D)
......@@ -701,39 +710,6 @@ ${INSTALL_BINS}: $(addprefix ../,$(filter-out /%,${BINS})) $(filter /%,${BINS})
@echo "Installing binaries $^ to $(@D)"
$(INSTALL) -d -m$(BIN_PERMISSIONS) $^ $(@D)
# Create SNL code from st/stt file.
# Important to have %.o: %.st and %.o: %.stt rule before %.o: %.c rule!
CPPSNCFLAGS1 = $(filter -D%, ${OP_SYS_CFLAGS})
CPPSNCFLAGS1 += $(filter-out ${OP_SYS_INCLUDE_CPPFLAGS} ,${CPPFLAGS}) ${CPPSNCFLAGS}
CPPSNCFLAGS1 += -I $(dir $(SNC))../../include
SNCFLAGS += -r
%.i: %.st
@echo ">> Preprocessing $(<F)"
$(CPP) ${CPPSNCFLAGS1} $< > $(*F).i
%.c: %.i
@echo ""
@echo ">> SNC building process .... "
@echo ">> SNC : $(SNC)"
@echo ">> SNC_VERSION : $(sequencer_VERSION)"
@echo ">> SNC is defined as $(SNC)"
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $(*F).i -o $(*F).c
%_snl.dbd: %.c
@echo ">> Building $(*F)_snl.dbd"
awk -F [\(\)] '/epicsExportRegistrar/ { print "registrar (" $$2 ")"}' $(*F).c > $(*F)_snl.dbd
%.c: %.stt
@echo ""
@echo ">> SNC building process .... "
@echo ">> SNC : $(SNC)"
@echo ">> SNC_VERSION : $(sequencer_VERSION)"
@echo ">> SNC is defined as $(SNC)"
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $< -o $(*F).c
# Create GPIB code from *.gt file.
%.c %.dbd %.list: %.gt
@echo "Converting $*.gt"
......
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