Experimental Physics and Industrial Control System
|
It worked after making sure that ADCore includes are pulled in first, and without duplicate base and asyn dbd's in my IOC Makefile.
Thanks Mark!
/Hinko I misread your message and thought you were running 3.14, not 3.15. But my reply is still valid.
________________________________
From: Mark Rivers
Sent: Monday, October 30, 2017 7:50 AM
To: Hinko Kocevar; [email protected]
Subject: Re: streamdevice and AD driver in same IOC
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: [email protected] <[email protected]> on behalf of Hinko Kocevar <[email protected]>
Sent: Monday, October 30, 2017 4:49 AM
To: [email protected]
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
--
.. the more I see the less I believe.., AE AoR
- References:
- streamdevice and AD driver in same IOC Hinko Kocevar
- Re: streamdevice and AD driver in same IOC Mark Rivers
- Re: streamdevice and AD driver in same IOC Mark Rivers
- Navigate by Date:
- Prev:
Re: How to use Archiver Appliance to archive PVs of only the latest period of time Shankar, Murali
- Next:
Re: How to define a global variable and global array in python script for a widget of Control system studio (CS Anton Derbenev
- 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>
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: streamdevice and AD driver in same IOC Mark Rivers
- Next:
Re: How to define a global variable and global array in python script for a widget of Control system studio (CS Anton Derbenev
- 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>
2018
2019
2020
2021
2022
2023
2024
|
ANJ, 21 Dec 2017 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|