EPICS Home

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  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: streamdevice and AD driver in same IOC
From: Mark Rivers <[email protected]>
To: Hinko Kocevar <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 30 Oct 2017 12:55:30 +0000
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

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

Navigate by Date:
Prev: Re: streamdevice and AD driver in same IOC Mark Rivers
Next: Re: How to use Archiver Appliance to archive PVs of only the latest period of time Shankar, Murali
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: streamdevice and AD driver in same IOC Mark Rivers
Next: Re: streamdevice and AD driver in same IOC Hinko Kocevar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024