Hi everyone...
I am trying to build an IOC to use both QuadEm to support an AH401B picoammeter and a ProSilica camera using AreaDetector, and I’ve run into an issue with my Makefile in my IOCxxApp/src directory.
My make looks like this:
TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
# ADD MACRO DEFINITIONS AFTER THIS LINE
#=============================
#=============================
# Build the IOC application
PROD_IOC = SR08ID01IOC43
# SR08ID01IOC43.dbd will be created and installed
DBD += SR08ID01IOC43.dbd
# SR08ID01IOC43.dbd will be made up from these files:
SR08ID01IOC43_DBD += base.dbd
SR08ID01IOC43_DBD += asyn.dbd
SR08ID01IOC43_DBD += drvIpac.dbd
SR08ID01IOC43_DBD += ipUnidigSupport.dbd
SR08ID01IOC43_DBD += drvAPS_EM.dbd
SR08ID01IOC43_DBD += drvAHxxx.dbd
SR08ID01IOC43_DBD += quadEMTestApp.dbd
SR08ID01IOC43_DBD += drvAsynIPPort.dbd
SR08ID01IOC43_DBD += quadEMTestAppVx.dbd
SR08ID01IOC43_DBD += calcSupport.dbd
SR08ID01IOC43_DBD += asSupport.dbd
SR08ID01IOC43_DBD += busySupport.dbd
SR08ID01IOC43_DBD += sscanSupport.dbd
SR08ID01IOC43_DBD += ADSupport.dbd
SR08ID01IOC43_DBD += NDPluginSupport.dbd
SR08ID01IOC43_DBD += prosilicaApp.dbd
SR08ID01IOC43_DBD += prosilicaSupport.dbd
SR08ID01IOC43_INC += drvQuadEM.h
# SR08ID01IOC43_registerRecordDeviceDriver.cpp derives from SR08ID01IOC43.dbd
SR08ID01IOC43_SRCS += SR08ID01IOC43_registerRecordDeviceDriver.cpp
SR08ID01IOC43_SRCS_vxWorks += SR08ID01IOC43AppVx_registerRecordDeviceDriver.cpp
# Build the main IOC entry point on workstation OSs.
SR08ID01IOC43_SRCS_DEFAULT += SR08ID01IOC43Main.cpp
SR08ID01IOC43_SRCS_vxWorks += -nil-
# Add support from base/src/vxWorks if needed
SR08ID01IOC43_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
# Add all the support libraries needed by this IOC
# # Finally link to the EPICS Base libraries
SR08ID01IOC43_LIBS += autosave
SR08ID01IOC43_LIBS += quadEM
SR08ID01IOC43_LIBS_vxWorks += Ipac
SR08ID01IOC43_LIBS_vxWorks += ipUnidig
SR08ID01IOC43_LIBS += mca
SR08ID01IOC43_LIBS += seq pv
SR08ID01IOC43_LIBS += ADBase
SR08ID01IOC43_LIBS += prosilicaSrc
SR08ID01IOC43_LIBS += prosilicaApp
SR08ID01IOC43_LIBS += prosilicaSupport
SR08ID01IOC43_LIBS += sscan
SR08ID01IOC43_LIBS += busy
SR08ID01IOC43_LIBS += calc
SR08ID01IOC43_LIBS += asyn
SR08ID01IOC43_LIBS += $(EPICS_BASE_IOC_LIBS)
SR08ID01IOC43_LIBS_vxWorks += $(EPICS_BASE_IOC_LIBS)
#===========================
include $(AREA_DETECTOR)/ADApp/commonDriverMakefile
include $(TOP)/configure/RULES
#----------------------------------------
# ADD RULES AFTER THIS LINE
And my output when I run my make is this:
src]$ make
perl /beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/base/bin/linux-x86/makeMakefile.pl O.linux-x86 ../../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../../.. T_A=linux-x86 install
make[1]: Entering directory `/beamline/perforce/Dev/SBS/3_Beamlines/3_10_SR08ID01_MIT/SR08ID01IOC43/SR08ID01IOC43App/src/O.linux-x86'
perl /beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/base/bin/linux-x86/makeIncludeDbd.pl base.dbd asyn.dbd drvIpac.dbd ipUnidigSupport.dbd drvAPS_EM.dbd drvAHxxx.dbd
quadEMTestApp.dbd drvAsynIPPort.dbd quadEMTestAppVx.dbd calcSupport.dbd asSupport.dbd busySupport.dbd sscanSupport.dbd ADSupport.dbd NDPluginSupport.dbd prosilicaApp.dbd prosilicaSupport.dbd SR08ID01IOC43Include.dbd
echo "../O.Common/SR08ID01IOC43Include.dbd : ../Makefile" >> SR08ID01IOC43.dbd.d
Expanding dbd
Installing created dbd file ../../../dbd/SR08ID01IOC43.dbd
perl /beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/base/bin/linux-x86/registerRecordDeviceDriver.pl ../O.Common/SR08ID01IOC43.dbd SR08ID01IOC43_registerRecordDeviceDriver
/beamline/perforce/Dev/SBS/3_Beamlines/3_10_SR08ID01_MIT/SR08ID01IOC43 > SR08ID01IOC43.tmp
mv SR08ID01IOC43.tmp SR08ID01IOC43_registerRecordDeviceDriver.cpp
/usr/bin/g++ -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -O3 -Wall -m32
-MMD -I. -I../O.Common -I. -I.. -I../../../include/os/Linux -I../../../include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/base/include/os/Linux -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/base/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/seq/include
-I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/asyn/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/calc/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/sscan/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/autosave/include/os/Linux
-I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/autosave/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/busy/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/quadEM/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/ipac/include
-I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/mca/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/areaDetector/include/os/Linux -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/areaDetector/include SR08ID01IOC43_registerRecordDeviceDriver.cpp
/usr/bin/g++ -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -O3 -Wall -m32
-MMD -I. -I../O.Common -I. -I.. -I../../../include/os/Linux -I../../../include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/base/include/os/Linux -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/base/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/seq/include
-I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/asyn/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/calc/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/sscan/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/autosave/include/os/Linux
-I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/autosave/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/busy/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/quadEM/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/ipac/include
-I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/mca/include -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/areaDetector/include/os/Linux -I/beamline/perforce/Dev/SBS/3_Beamlines/Common/IOC_Support/areaDetector/include ../SR08ID01IOC43Main.cpp
make[1]: *** No rule to make target `../../../lib/linux-x86/libprosilicaSrc.a', needed by `SR08ID01IOC43'. Stop.
make[1]: Leaving directory `/beamline/perforce/Dev/SBS/3_Beamlines/3_10_SR08ID01_MIT/SR08ID01IOC43/SR08ID01IOC43App/src/O.linux-x86'
make: *** [install.linux-x86] Error 2
Any hints or tips would be greatly appreciated.
Thanks....
Dave Reid
Australian Synchrotron