diff --git a/config/Makefile.linux b/config/Makefile.linux
index 29e86f985d45eab837fa2d6280079f3c91755a7d..f571e044eb5966cfc175bba9f54ac0f45bea53e0 100644
--- a/config/Makefile.linux
+++ b/config/Makefile.linux
@@ -1,25 +1,8 @@
 # Linux Epics IOC system build rules
 
 
-###
-#  if EPICS environment variables defined, use those
-#  - otherwise set to old defaults for now
-ifeq (${EPICS_BASE},)
-EPICS_BASE = /opt/rtapps/epics/base
-EPICS_SEQ = /opt/rtapps/epics/modules/sncseq
-EPICS_EXTENSIONS = /opt/rtapps/epics/extensions
-endif
-ifeq (${EPICS_HOST_ARCH},)
-EPICS_HOST_ARCH = linux-x86_64
-endif
-
-EPICS_BASE_PATH := $(EPICS_BASE)
-EPICS_SEQ_PATH := $(EPICS_SEQ)
-EPICS_EXT_PATH := $(EPICS_EXTENSIONS)
-EPICS_ARCH := $(EPICS_HOST_ARCH)
-
-EPICS_BIN_PATH := $(EPICS_BASE)/bin/$(EPICS_ARCH)
-EPICS_LIB_PATH := $(EPICS_BASE)/lib/$(EPICS_ARCH)
+EPICS_VERSION := $(shell pkg-config --modversion epics-base)
+EPICS_BIN_PATH := $(shell pkg-config --variable=bindir epics-base)
 
 # Sequencer synchronization; to fix broken seq package
 SRC += $(RCG_SRC_DIR)/src/drv/sync.c
@@ -32,9 +15,7 @@ PREPROCESS = /usr/bin/gcc -x c -E -P
 
 # Standard C and C++ compiler and C preprocessor flags
 CFLAGS += $(EXTRA_CFLAGS)
-CFLAGS += -I$(EPICS_BASE_PATH)/include/os/Linux -I$(EPICS_BASE_PATH)/include/compiler/gcc -I$(EPICS_BASE_PATH)/include 
-CFLAGS += -I$(EPICS_SEQ_PATH)/include
-CFLAGS += -I$(EPICS_EXT_PATH)/include
+CFLAGS += $(shell pkg-config --cflags epics-base)
 CFLAGS += -I/usr/lib/rmnet -I/usr/lib/rfm2g
 CFLAGS += -Isrc/include
 CFLAGS += -I$(RCG_SRC_DIR)/src/include -I$(RCG_SRC_DIR)/src/include/drv
@@ -45,7 +26,7 @@ ifeq (rtlepics,$(findstring rtlepics, $(TARGET)))
 CFLAGS += -DNO_RFM_EPICS_RECORD_SUPPORT
 endif
 CFLAGS += -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS  
-CFLAGS += -DOSITHREAD_USE_DEFAULT_STACK  -D_X86_  -DUNIX  -D_DEFAULT_SOURCE -Dlinux
+CFLAGS += -DOSITHREAD_USE_DEFAULT_STACK  -D_X86_  -DUNIX  -D_BSD_SOURCE -Dlinux
 CFLAGS += -D_REENTRANT -g -fPIC 
 
 rtl_module := $(shell /sbin/lsmod | grep rtl)
@@ -58,7 +39,8 @@ SNCFLAGS += +a -c -w
 #SNCFLAGS += -e
 
 # Sequencer file (.st) compiler
-SNC = $(EPICS_SEQ_PATH)/bin/$(EPICS_ARCH)/snc $(SNCFLAGS)
+#SNC = $(EPICS_SEQ_PATH)/bin/$(EPICS_ARCH)/snc $(SNCFLAGS)
+SNC = $(EPICS_BIN_PATH)/snc $(SNCFLAGS)
 
 # registration code generator
 REGGEN = $(EPICS_BIN_PATH)/registerRecordDeviceDriver.pl
@@ -68,12 +50,14 @@ FMSEQFILES = $(RCG_SRC_DIR)/src/epics/util/fmseq.pl $(RCG_SRC_DIR)/src/epics/uti
 
 # Standard Epics IOC server library flags
 LIBFLAGS += -g
-LIBFLAGS += -L$(EPICS_LIB_PATH)
-LIBFLAGS += -L$(EPICS_SEQ_PATH)/lib/$(EPICS_ARCH)
-LIBFLAGS += -L$(EPICS_EXT_PATH)/lib/$(EPICS_ARCH)
+#LIBFLAGS += -L$(EPICS_LIB_PATH)
+#LIBFLAGS += -L$(EPICS_SEQ_PATH)/lib/$(EPICS_ARCH)
+#LIBFLAGS += -L$(EPICS_EXT_PATH)/lib/$(EPICS_ARCH)
+LIBFLAGS += $(shell pkg-config --libs epics-base)
 
 # test for 3.15 libraries, otherwise use 3.14
-ifneq ("$(wildcard $(EPICS_LIB_PATH)/libdbCore.a)","")
+#ifneq ("$(wildcard $(EPICS_LIB_PATH)/libdbCore.a)","")
+ifneq ($(wordlist 1,2,$(subst '.',' ',$(EPICS_VERSION))), (3 15))
 LIBFLAGS += -lseq -lpv -ldbRecStd -ldbCore
 LIBFLAGS += -lca -lCom
 else
diff --git a/config/Makefile.nopackage b/config/Makefile.nopackage
new file mode 100644
index 0000000000000000000000000000000000000000..29e86f985d45eab837fa2d6280079f3c91755a7d
--- /dev/null
+++ b/config/Makefile.nopackage
@@ -0,0 +1,301 @@
+# Linux Epics IOC system build rules
+
+
+###
+#  if EPICS environment variables defined, use those
+#  - otherwise set to old defaults for now
+ifeq (${EPICS_BASE},)
+EPICS_BASE = /opt/rtapps/epics/base
+EPICS_SEQ = /opt/rtapps/epics/modules/sncseq
+EPICS_EXTENSIONS = /opt/rtapps/epics/extensions
+endif
+ifeq (${EPICS_HOST_ARCH},)
+EPICS_HOST_ARCH = linux-x86_64
+endif
+
+EPICS_BASE_PATH := $(EPICS_BASE)
+EPICS_SEQ_PATH := $(EPICS_SEQ)
+EPICS_EXT_PATH := $(EPICS_EXTENSIONS)
+EPICS_ARCH := $(EPICS_HOST_ARCH)
+
+EPICS_BIN_PATH := $(EPICS_BASE)/bin/$(EPICS_ARCH)
+EPICS_LIB_PATH := $(EPICS_BASE)/lib/$(EPICS_ARCH)
+
+# Sequencer synchronization; to fix broken seq package
+SRC += $(RCG_SRC_DIR)/src/drv/sync.c
+
+# Do not delete these intermediate files
+.SECONDARY: build/$(TARGET)/*.i
+
+# Preprocessor is used on .st file to get .i which is later fed to SNC
+PREPROCESS = /usr/bin/gcc -x c -E -P 
+
+# Standard C and C++ compiler and C preprocessor flags
+CFLAGS += $(EXTRA_CFLAGS)
+CFLAGS += -I$(EPICS_BASE_PATH)/include/os/Linux -I$(EPICS_BASE_PATH)/include/compiler/gcc -I$(EPICS_BASE_PATH)/include 
+CFLAGS += -I$(EPICS_SEQ_PATH)/include
+CFLAGS += -I$(EPICS_EXT_PATH)/include
+CFLAGS += -I/usr/lib/rmnet -I/usr/lib/rfm2g
+CFLAGS += -Isrc/include
+CFLAGS += -I$(RCG_SRC_DIR)/src/include -I$(RCG_SRC_DIR)/src/include/drv
+ifeq (,$(findstring tcsepics, $(TARGET)))
+CFLAGS += -DRFM_EPICS -DNO_FM10GEN_C_CODE
+endif
+ifeq (rtlepics,$(findstring rtlepics, $(TARGET)))
+CFLAGS += -DNO_RFM_EPICS_RECORD_SUPPORT
+endif
+CFLAGS += -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS  
+CFLAGS += -DOSITHREAD_USE_DEFAULT_STACK  -D_X86_  -DUNIX  -D_DEFAULT_SOURCE -Dlinux
+CFLAGS += -D_REENTRANT -g -fPIC 
+
+rtl_module := $(shell /sbin/lsmod | grep rtl)
+ifeq ($(rtl_module),)
+CFLAGS += -DNO_RTL=1
+endif
+
+CXXFLAGS = $(CFLAGS)
+SNCFLAGS += +a -c -w
+#SNCFLAGS += -e
+
+# Sequencer file (.st) compiler
+SNC = $(EPICS_SEQ_PATH)/bin/$(EPICS_ARCH)/snc $(SNCFLAGS)
+
+# registration code generator
+REGGEN = $(EPICS_BIN_PATH)/registerRecordDeviceDriver.pl
+
+# Sequencer generator files
+FMSEQFILES = $(RCG_SRC_DIR)/src/epics/util/fmseq.pl $(RCG_SRC_DIR)/src/epics/util/skeleton.db $(RCG_SRC_DIR)/src/epics/util/skeleton.st
+
+# Standard Epics IOC server library flags
+LIBFLAGS += -g
+LIBFLAGS += -L$(EPICS_LIB_PATH)
+LIBFLAGS += -L$(EPICS_SEQ_PATH)/lib/$(EPICS_ARCH)
+LIBFLAGS += -L$(EPICS_EXT_PATH)/lib/$(EPICS_ARCH)
+
+# test for 3.15 libraries, otherwise use 3.14
+ifneq ("$(wildcard $(EPICS_LIB_PATH)/libdbCore.a)","")
+LIBFLAGS += -lseq -lpv -ldbRecStd -ldbCore
+LIBFLAGS += -lca -lCom
+else
+LIBFLAGS += -lseq -lseqDev -lpv -lsoftDevIoc -lrecIoc
+LIBFLAGS += -lmiscIoc -lrsrvIoc -ldbtoolsIoc
+LIBFLAGS += -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom
+endif
+LIBFLAGS += -lpthread -lreadline -lcurses -lrt
+
+# User Makefiles's $(SRC) variable is split here in sequencer source
+# and all the rest, which should be C files
+SEQ_SRCS = $(filter %.st, $(SRC))
+CSRCS = $(filter-out %.st, $(SRC))
+# Required Epics files
+CCSRCS += build/$(TARGET)/registerRecordDeviceDriver.cc
+
+# Each .st file gets preprocessed twice to make one C and one C++
+# file. C++ file has different name. Both files are exactly the same
+# in content
+SEQ_ISRC = $(addprefix build/$(TARGET)/, $(notdir $(SEQ_SRCS:%st=%i)))
+#SEQ_CCSRC = $(addprefix build/$(TARGET)/, $(notdir $(SEQ_SRCS:%.st=%_foo.cc)))
+SEQ_CCSRC += $(addprefix build/$(TARGET)/, $(notdir $(SEQ_SRCS:%st=%c)))
+SEQ_OBJ = $(addprefix build/$(TARGET)/, $(notdir $(SEQ_SRCS:%st=%o)))
+#SEQ_OBJ += $(addprefix build/$(TARGET)/, $(notdir $(SEQ_SRCS:%.st=%_foo.o)))
+SEQ_OBJ += $(addprefix build/$(TARGET)/, $(notdir $(CSRCS:%.c=%.o)))
+SEQ_OBJ += $(addprefix build/$(TARGET)/, $(notdir $(CCSRCS:%.cc=%.o)))
+
+# Standard Epics IOC database definition file
+DBD += $(RCG_SRC_DIR)/src/epics/dbd/a.dbd build/$(TARGET)/*.dbd
+
+# Main target to make an Epics IOC server
+all: target build/$(TARGET)/$(TARGET) install
+
+# Install built epics IOC into target/$(TARGET)
+install: $(DB)
+	mkdir -p target/$(TARGET)/db
+	cp build/$(TARGET)/$(TARGET) target/$(TARGET)
+	/bin/rm -f target/$(TARGET)/db/*/autoBurt.req
+	for ifo in $(IFO) ; do \
+	  system=`echo $(subst epics,,$(TARGET)) | tr a-z A-Z | cut -c1-3`; \
+	  model=`echo $(subst epics,,$(TARGET))`; \
+	  ucmodel=`echo $(subst epics,,$(TARGET)) | tr a-z A-Z `; \
+	  ifo0=`echo $$ifo | sed 's/[0-9]/0/g'`; \
+	  mkdir -p target/$(TARGET)/db/$$ifo; \
+	  echo "#!/bin/sh" > target/$(TARGET)/startup$$ifo; \
+	  echo "if fuser -s ioc$$ifo.log; then" >> target/$(TARGET)/startup$$ifo; \
+	  echo "echo Another copy of Epics process running already\!" >> target/$(TARGET)/startup$$ifo; \
+	  echo "exit 1" >> target/$(TARGET)/startup$$ifo; \
+	  echo "fi" >> target/$(TARGET)/startup$$ifo; \
+	  echo "mkdir -p /opt/rtcds/$(SITE)/${ifo}/log/$$model" >> target/$(TARGET)/startup$$ifo; \
+	  echo ./$(TARGET) $(TARGET)$$ifo.cmd \> /opt/rtcds/$(SITE)/${ifo}/log/$$model/ioc$$ifo.log 2\>\&1 \& >> target/$(TARGET)/startup$$ifo ; \
+	  echo echo $(TARGET) $$ifo IOC Server started >> target/$(TARGET)/startup$$ifo ; \
+	  chmod +x target/$(TARGET)/startup$$ifo ; \
+	  /bin/rm -f target/$(TARGET)/$(TARGET)$$ifo.cmd ; \
+	  echo "dbLoadDatabase \"base.dbd\"" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+	  echo 'registerRecordDeviceDriver(pdbbase)' >> target/$(TARGET)/$(TARGET)$$ifo.cmd ; \
+	  for i in $(DB) ; do \
+		cat $$i | sed s/%IFO%/$$ifo/g\;s/%IFO0%/$$ifo0/g\;s/%SYS%/$$system/g > target/$(TARGET)/db/$$ifo/`basename $$i`; \
+		grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep 'DACKILL|record\(ao|record\(stringout' | egrep -v 'DACKILL_PANIC|_SDF_' | sed 's/.*"\(.*\)\".*/\1/g' | awk '{ printf "RO %s\n", $$0 }' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+		grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep 'record\(stringin' | egrep -v 'SDF_NAME | _SDF_' | sed 's/.*"\(.*\)\".*/\1/g' | awk '{ printf "%s\n", $$0 }' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+		grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep 'record\(ao' | egrep -v 'record\(mbbi' | egrep -v 'SWSTAT|DACKILL|_SDF_' | sed 's/.*"\(.*\)\".*/\1/g' | awk '{ printf "%s.HSV\n%s.LSV\n%s.HIGH\n%s.LOW\n", $$0, $$0, $$0, $$0 }' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+                grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep 'SWSTAT|DACKILL' | egrep -v 'DACKILL_PANIC' | sed 's/.*"\(.*\)\".*/\1/g' | awk '{ printf "RO %s.HSV\nRO %s.LSV\nRO %s.LOW\n", $$0, $$0, $$0 }' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+		\
+		grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep 'record\(bo|record\(bi' | egrep -v '_SDF_' | sed 's/.*"\(.*\)\".*/\1/g' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+		grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep 'record\(bo|record\(bi' | egrep -v '_SDF_' | sed 's/.*"\(.*\)\".*/\1/g' | awk '{ printf "%s.OSV\n%s.ZSV\n", $$0, $$0 }' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+		\
+		grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep -v 'DACKILL|SDF_RELOAD|_SDF_|record\(ao|record\(string|record\(bi|record\(bo'| sed 's/.*"\(.*\)\".*/\1/g' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+		grep record  target/$(TARGET)/db/$$ifo/`basename $$i` | egrep -v 'SWSTAT|DACKILL|_SDF_|record\(ao|record\(string|record\(bi|record\(bo|record\(mbbi' | sed 's/.*"\(.*\)\".*/\1/g' | awk '{ printf "%s.HSV\n%s.LSV\n%s.HIGH\n%s.LOW\n", $$0 , $$0, $$0, $$0 }' >> target/$(TARGET)/db/$$ifo/autoBurt.req; \
+		\
+		echo "dbLoadRecords \"db/$${ifo}/`basename $$i`\"" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet DAQ_FILE /opt/rtcds/$(SITE)/${ifo}/chans/daq/$$ucmodel.ini" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet DAQ_DIR /opt/rtcds/$(SITE)/${ifo}/chans/daq/" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet FOTON_FILE /opt/rtcds/$(SITE)/${ifo}/chans/$$ucmodel.txt" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet FOTON_DIFF_FILE /opt/rtcds/$(SITE)/${ifo}/chans/tmp/$$ucmodel.diff" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet COEFF_FILE /opt/rtcds/$(SITE)/${ifo}/chans/tmp/$$ucmodel.txt" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet LOG_DIR /opt/rtcds/$(SITE)/${ifo}/log/$$model" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet SDF_DIR /opt/rtcds/$(SITE)/${ifo}/target/$$model/$(TARGET)/burt/" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+                echo "epicsEnvSet SDF_FILE safe" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+                echo "epicsEnvSet SDF_MODEL $$model" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet MODEL_SITE $(SITE)" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo "epicsEnvSet MODEL_IFO ${ifo}" >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		echo -n 'epicsEnvSet PREFIX '>> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+		grep _GRD_RB_STAT0  target/$(TARGET)/db/$$ifo/`basename $$i` | head -1 | sed 's/[^"]*"\([^"]*\)_GRD_RB_STAT0.*/\1/g' >>  target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+	  done ; \
+	done
+	for ifo in $(IFO) ; do \
+	  echo "iocInit" >> target/$(TARGET)/$(TARGET)$$ifo.cmd ; \
+	  for i in $(SEQ) ; do \
+		echo "seq &$$i" | sed s/%IFO%/$$ifo/g\;s/%SITE%/`if test $$ifo = L1 ; then echo llo ; else echo lho ; fi`/g >> target/$(TARGET)/$(TARGET)$$ifo.cmd; \
+	  done ; \
+	done
+	for i in $(SEQH1) ; do \
+		echo "seq &$$i" | sed s/%IFO%/H1/g\;s/%SITE%/lho/g >> target/$(TARGET)/$(TARGET)H1.cmd; \
+	done
+	for i in $(SEQH2) ; do \
+		echo "seq &$$i" | sed s/%IFO%/H2/g\;s/%SITE%/lho/g >> target/$(TARGET)/$(TARGET)H2.cmd; \
+	done
+	for i in $(SEQL1) ; do \
+		echo "seq &$$i" | sed s/%IFO%/L1/g\;s/%SITE%/llo/g >> target/$(TARGET)/$(TARGET)L1.cmd; \
+	done
+	echo 'This is generated directory. Please make changes in CVS and reinstall from scratch.' > target/$(TARGET)/README.making_changes
+	echo 'Changes made to files in this directory will be lost.' >> target/$(TARGET)/README.making_changes
+	echo >> target/$(TARGET)/README.making_changes
+	echo 'Built on date' `date` >> target/$(TARGET)/README.making_changes
+
+# Epics IOC server link target
+build/$(TARGET)/$(TARGET): $(SEQ_OBJ)
+	$(CXX) -o $@ $? $(LIBFLAGS)
+
+# Object files depend on sources
+$(SEQ_OBJ): $(SEQ_CCSRC) $(CCSRCS) $(CSRCS)
+
+# Need to get .i files before we can run SNC to produce sources
+$(SEQ_CCSRC): $(SEQ_ISRC)
+
+# Make installation target directory
+target:
+	@mkdir -p build/$(TARGET)
+
+# Preprocess a sequencer file
+build/$(TARGET)/%.i: src/epics/seq/%.st
+	$(PREPROCESS) $(CFLAGS) $< > $@
+
+build/$(TARGET)/%.i: src/epics/seq/lsc/%.st
+	$(PREPROCESS) $(CFLAGS) $< > $@
+
+build/$(TARGET)/%.i: src/epics/seq/sus/%.st
+	$(PREPROCESS) $(CFLAGS) $< > $@
+
+build/$(TARGET)/%.i: src/epics/seq/quad/%.st
+	$(PREPROCESS) $(CFLAGS) $< > $@
+
+# Preprocess generated sequencer file
+# Preprocess generated sequencer file
+.PRECIOUS: build/$(TARGET)/%.st
+build/$(TARGET)/%.i: build/$(TARGET)/%.st
+	$(PREPROCESS) $(CFLAGS) $< > $@
+
+# Generate sequencer file using fmseq.pl
+build/$(TARGET)/%.st: src/epics/fmseq/% $(FMSEQFILES)
+	(cd src/epics/fmseq; \
+	 cat $(notdir $<) | cpp $(CFLAGS) -  | grep -v ^# | $(if $(FMSEQ), $(FMSEQ), $(RCG_SRC_DIR)/src/epics/util/fmseq.pl) $(notdir $<) &&\
+	 mv $(notdir $<)_proc.h ../../include/ &&\
+	 mv $(notdir $<).* ../../../build/$(TARGET))
+
+
+# Replicate sequencer source, because I am too lazy to write re-entrant code
+# Following block of rules used to replicate fmseq.pl generated sequencers
+build/$(TARGET)/%1.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\11/g > $@
+build/$(TARGET)/%2.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\12/g > $@
+build/$(TARGET)/%3.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\13/g > $@
+build/$(TARGET)/%4.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\14/g > $@
+build/$(TARGET)/%5.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\15/g > $@
+build/$(TARGET)/%6.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\16/g > $@
+build/$(TARGET)/%7.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\17/g > $@
+build/$(TARGET)/%8.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\18/g > $@
+build/$(TARGET)/%9.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\19/g > $@
+build/$(TARGET)/%10.st: build/$(TARGET)/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\110/g > $@
+
+# Replicate sequncers
+build/$(TARGET)/%1.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\11/g > $@
+build/$(TARGET)/%2.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\12/g > $@
+build/$(TARGET)/%3.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\13/g > $@
+build/$(TARGET)/%4.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\14/g > $@
+build/$(TARGET)/%5.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\15/g > $@
+build/$(TARGET)/%6.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\16/g > $@
+build/$(TARGET)/%7.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\17/g > $@
+build/$(TARGET)/%8.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\18/g > $@
+build/$(TARGET)/%9.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\19/g > $@
+build/$(TARGET)/%10.st: $(RCG_SRC_DIR)/src/epics/seq/%.st
+	cat $< | sed s/program\\w\*\\\(\.\*\\\)/program\ \\110/g > $@
+
+# Build C++ version of sequencer code
+#build/$(TARGET)/%_foo.cc: build/$(TARGET)/%.i
+#	$(SNC) $< -o $@
+# Build C version of sequencer code
+%.c: %.i
+	$(SNC) $< -o $@
+	echo 'registrar('`basename $(@:%.c=%)`'Registrar)' > $(@:%c=%dbd) 
+
+# Compile sequencer-related C code
+build/$(TARGET)/%o: $(RCG_SRC_DIR)/src/epics/seq/%c
+	$(CC) -c $(CFLAGS) $< -o $@
+
+# Compile driver C code
+build/$(TARGET)/%o: $(RCG_SRC_DIR)/src/drv/%c
+	$(CC) -c $(CFLAGS) $< -o $@
+
+# Compile sequencer-related C++ code
+build/$(TARGET)/%o: $(RCG_SRC_DIR)/src/epics/seq/%cc
+	$(CXX) -c $(CFLAGS) $< -o $@
+
+# Compile generate C++ code
+#build/$(TARGET)/%_foo.o: build/$(TARGET)/%_foo.cc
+#	$(CXX) -c $(CFLAGS) $< -o $@
+
+# Generate records and sequencers generation code
+build/$(TARGET)/registerRecordDeviceDriver.cc: 
+	cat $(DBD) > build/$(TARGET)/full.dbd
+	$(REGGEN) build/$(TARGET)/full.dbd  registerRecordDeviceDriver > $@
+	/bin/rm -f build/$(TARGET)/full.dbd
+
+
+# Targets not files
+.PHONY: target
+.PHONY: install
diff --git a/src/epics/util/lib/medmGenGdsTp.pm b/src/epics/util/lib/medmGenGdsTp.pm
index a9f9fdbb244144250597da11e0d29af9365734a4..ebb12350bf8b492edd65efb7f277e5503539eb78 100644
--- a/src/epics/util/lib/medmGenGdsTp.pm
+++ b/src/epics/util/lib/medmGenGdsTp.pm
@@ -147,7 +147,7 @@ sub createGdsMedm
 	$xpos = 21; $ypos = 70; $width = 12; $height = 16; $vis = "calc"; $calc = "(a&1)";
         $medmdata .= ("CDS::medmGen::medmGenRectangle") -> ($xpos,$ypos,$width,$height,$ecolors{ltblue},$vis,$calc,"$site\:FEC-$dcuid\_TIME_DIAG");
 	# ADD FE status indicator
-	$xpos = 14; $ypos = 2; $width = 240; $height = 17;
+	$xpos = 480; $ypos = 330; $width = 240; $height = 17;
         $medmdata .= ("CDS::medmGen::medmGenTextMon") -> ($xpos,$ypos,$width,$height,"$site\:FEC-$dcuid\_MSG_FESTAT",$ecolors{white},$ecolors{blue},"static");
 	# Add timing label
 	$xpos = 63; $ypos = 72; $width = 45; $height = 15; 
diff --git a/src/epics/util/skeleton.st b/src/epics/util/skeleton.st
index e984c8973660fc611b05efbc03e2cd5093a54c66..ec32fcdafc8ab0ea9c9445e5ef553f9e27daba3d 100644
--- a/src/epics/util/skeleton.st
+++ b/src/epics/util/skeleton.st
@@ -14,7 +14,6 @@ program %SEQUENCER_NAME%
 %% #include <errno.h>
 %% #include <epicsTime.h>
 %% #include <cadef.h>
-%% #include <ezca.h>
 %% #include <alarm.h>                                                    /* MA */
 %% #include <sys/types.h>                                                /* MA */
 %% #include <sys/stat.h>                                                 /* MA */