Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
<== Date ==> <== Thread ==>

Subject: Re: streamdevice and AD driver in same IOC
From: Mark Rivers <rivers@cars.uchicago.edu>
To: Hinko Kocevar <hinkocevar@gmail.com>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Mon, 30 Oct 2017 12:50:00 +0000
Hi Hinko,


I have lots of IOCs with both AD and streamdevice, so it definitely can work.


I think your problem is that you need to know which DBD files commonDriverMakefile adds, and not add them again, because then you will then get the duplicate record definition errors.  This will become even more of a problem for you when you switch to 3.15 because it is stricter about no duplicate inclusion of DBD files.


Because commonDriverMakefile is used to build complete applications in the example IOCs it already includes base.dbd and asyn.dbd.  So your Makefile should include commonDriverMakefile a the top and then add additional DBD files, but don't include base.dbd or asyn.dbd.


Mark




________________________________
From: tech-talk-bounces@aps.anl.gov <tech-talk-bounces@aps.anl.gov> on behalf of Hinko Kocevar <hinkocevar@gmail.com>
Sent: Monday, October 30, 2017 4:49 AM
To: tech-talk@aps.anl.gov
Subject: streamdevice and AD driver in same IOC

Hi,

I'm trying to have two AD based drivers and one streamdevice based driver included in one IOC. If I compile individual IOCs then things go fine. While building composite IOC, I get stuck in specifying DBD files in the Makefile which seems to fail. This is with EPICS base 3.15.4.

The thing is if I do not call

include $(ADCORE)/ADApp/commonDriverMakefile

then the compile part goes fine, but of course I'm left with no AD DBDs/libs included in the IOC.


Makefile:


TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
#  ADD MACRO DEFINITIONS AFTER THIS LINE

PROD_NAME = imgApp
PROD_IOC += $(PROD_NAME)

# <name>.dbd will be created from <name>Include.dbd
DBD += $(PROD_NAME).dbd
$(PROD_NAME)_DBD += aravisCameraSupport.dbd
$(PROD_NAME)_DBD += tlccsSupport.dbd
$(PROD_NAME)_DBD += tlpm100Support.dbd
$(PROD_NAME)_DBD += drvAsynUSBTMC.dbd
$(PROD_NAME)_DBD += base.dbd
$(PROD_NAME)_DBD += stream.dbd
$(PROD_NAME)_DBD += asyn.dbd

# <name>_registerRecordDeviceDriver.cpp will be created from <name>.dbd
PROD_SRCS += $(PROD_NAME)_registerRecordDeviceDriver.cpp $(PROD_NAME)Main.cpp

# Add locally compiled object code
PROD_LIBS += aravisCamera
PROD_LIBS += tlccs
PROD_LIBS += asyn
PROD_LIBS += stream

PROD_SYS_LIBS += aravis-0.4
PROD_SYS_LIBS += giomm-2.4
PROD_SYS_LIBS += usb-1.0

include $(ADCORE)/ADApp/commonDriverMakefile

#=============================

include $(TOP)/configure/RULES
#----------------------------------------
#  ADD RULES AFTER THIS LINE



Failed compile messages:

[...]
make[3]: Entering directory '/home/hinkokocevar/git/ng3e-devel/stage/R3.15.4/iocs/imgioc-master+2/imgApp/src/O.linux-x86_64'
Creating dbd file imgApp.dbd
perl -CSD /home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/bin/linux-x86_64/dbdExpand.pl   -I. -I.. -I../O.Common -I../../../dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/adaravis-ESS-master+2/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/adcore-ESS-R3-1+1/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/adtlccs-master+1/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/asyn-ESS-R4-32+1/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/autosave-R5-8/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/busy-R1-6-1/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/calc-R5-4-2/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/sscan-R2-10-2/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/streamdevice-master/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/tlpm100-master/dbd -I/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/dbd -o imgApp.dbd aravisCameraSupport.dbd tlccsSupport.dbd tlpm100Support.dbd drvAsynUSBTMC.dbd base.dbd stream.dbd asyn.dbd base.dbd NDPluginSupport.dbd ADSupport.dbd NDFileNull.dbd NDFileNetCDF.dbd NDFileTIFF.dbd NDFileJPEG.dbd NDFileNexus.dbd NDFileHDF5.dbd asyn.dbd asSupport.dbd busySupport.dbd calcSupport.dbd sscanSupport.dbd
dbdExpand.pl: Duplicate definition of record type ''
Context: recordtype(aai) in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/dbd/aaiRecord.dbd' in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/dbd/stdRecords.dbd' in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/dbd/base.dbd'
  while reading 'base.dbd' to create 'imgApp.dbd'
dbdExpand.pl: Duplicate definition of record type ''
Context: recordtype(asyn) in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/asyn-ESS-R4-32+1/dbd/asynRecord.dbd' in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/modules/asyn-ESS-R4-32+1/dbd/asyn.dbd' in recordtype(aai) in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/dbd/aaiRecord.dbd' in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/dbd/stdRecords.dbd' in file '/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/dbd/base.dbd'
  while reading 'asyn.dbd' to create 'imgApp.dbd'
dbdExpand.pl: Exiting due to errors
make[3]: *** No rule to make target '../O.Common/imgApp.dbd', needed by 'build'.  Stop.
make[3]: Leaving directory '/home/hinkokocevar/git/ng3e-devel/stage/R3.15.4/iocs/imgioc-master+2/imgApp/src/O.linux-x86_64'
/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/configure/RULES_ARCHS:61: recipe for target 'install.linux-x86_64' failed
make[2]: *** [install.linux-x86_64] Error 2
make[2]: Leaving directory '/home/hinkokocevar/git/ng3e-devel/stage/R3.15.4/iocs/imgioc-master+2/imgApp/src'
/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/configure/RULES_DIRS:88: recipe for target 'src.install' failed
make[1]: *** [src.install] Error 2
make[1]: Leaving directory '/home/hinkokocevar/git/ng3e-devel/stage/R3.15.4/iocs/imgioc-master+2/imgApp'
/home/hinkokocevar/git/ng3e-devel/root/R3.15.4/base/configure/RULES_DIRS:88: recipe for target 'imgApp.install' failed



Thank you,
Hinko


--
.. the more I see the less I believe.., AE AoR

Replies:
Re: streamdevice and AD driver in same IOC Mark Rivers
References:
streamdevice and AD driver in same IOC Hinko Kocevar

Navigate by Date:
Prev: Re: How to define a global variable and global array in python script for a widget of Control system studio (CS Kasemir, Kay
Next: Re: streamdevice and AD driver in same IOC Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
Navigate by Thread:
Prev: streamdevice and AD driver in same IOC Hinko Kocevar
Next: Re: streamdevice and AD driver in same IOC Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
ANJ, 30 Oct 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·