EPICS Controls 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  <20152016  2017  2018  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  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Building custom areadetector module
From: Andrew Gomella <[email protected]>
To: "[email protected] Talk" <[email protected]>
Date: Thu, 26 Feb 2015 21:49:04 -0500
Hi Techtalk,

I'm currently working on writing an areadetector module for some Nikon cameras (http://www.nikon.com/products/instruments/lineup/bioscience/camera_microscopy/dsqi2/index.htm)

The problem I am currently having (I think) has something to due with me configuring one of the makefiles in this module incorrectly. I went through file by file (comparing to other areadetector modules which compile totally fine on my machine) to make sure my module adheres to the other examples. I am using release 2.1 of areadetector (both core and binaries). 

I can compile many other AD modules fine, including a custom areadetector module I built last year for varian detectors. 

The problem is my **Support.dbd file does not seem to get properly copied into iocs/**IOC/**App/src/O.Common      (where ** is my app name- "Ks") . I can temporarily fix the problem by copying the **Support.dbd file into O.Common but then I get other build errors (No rule to make target **.lib needed by **App.exe.  This is fixed (for some reason) by me commenting out PROD_LIBS in my ioc src makefile. and THEN I get LNK2001 error about unresolved external symbol pvar_func_KsRegister  ) I am hoping these errors are all related.

Here is my terminal output:
make -C ./configure install 
make[1]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/configure'
perl C:/base-3.14.12.4/bin/windows-x64/makeMakefile.pl O.windows-x64 ../..
perl -MExtUtils::Command -e mkpath O.Common
make -C O.windows-x64 -f ../Makefile TOP=../.. T_A=windows-x64 install
make[2]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/configure/O.windows-x64'
perl C:/base-3.14.12.4/bin/windows-x64/convertRelease.pl checkRelease
make[2]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/configure/O.windows-x64'
make[1]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/configure'
make -C ./KsApp install 
make[1]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp'
make -C ./src install 
make[2]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/src'
perl C:/base-3.14.12.4/bin/windows-x64/makeMakefile.pl O.windows-x64 ../../..
perl -MExtUtils::Command -e mkpath O.Common
make -C O.windows-x64 -f ../Makefile TOP=../../.. T_A=windows-x64 install
make[3]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/src/O.windows-x64'
cl /nologo /EHsc /GR -c             /favor:blend   /nologo /D__STDC__=0 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE   /Ox /GL   /W3 /w44355       /MT -DEPICS_DLL_NO /TP   -I. -I..\\O.Common -I. -I.. -I..\\..\\..\\include\\os\\WIN32 -I..\\..\\..\\include     -IC:\\base-3.14.12.4\\include\\os\\WIN32 -IC:\\base-3.14.12.4\\include  -IC:\\support\\asyn-4-26\\include -IC:\\support\\areaDetector-R2-0\\ADBinaries\\include\\os\\WIN32 -IC:\\support\\areaDetector-R2-0\\ADBinaries\\include -IC:\\support\\areaDetector-R2-0\\ADCore\\include\\os\\WIN32 -IC:\\support\\areaDetector-R2-0\\ADCore\\include       ..\\Ks.cpp 
Ks.cpp
..\Ks.cpp(435) : warning C4101: 'pstInfo' : unreferenced local variable
lib /nologo /verbose /out:Ks.lib /LTCG        Ks.obj
Appending Ks.obj
"Installing library ../../../lib/windows-x64/Ks.lib"
make[3]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/src/O.windows-x64'
make[2]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/src'
make -C ./Db install 
make[2]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/Db'
perl C:/base-3.14.12.4/bin/windows-x64/makeMakefile.pl O.windows-x64 ../../..
perl -MExtUtils::Command -e mkpath O.Common
make -C O.windows-x64 -f ../Makefile TOP=../../.. T_A=windows-x64 install
make[3]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/Db/O.windows-x64'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/Db/O.windows-x64'
make[2]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp/Db'
make[1]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/KsApp'
make -C ./iocs install 
make[1]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs'
make -C ./KsIOC install 
make[2]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC'
make -C ./configure install 
make[3]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/configure'
perl C:/base-3.14.12.4/bin/windows-x64/makeMakefile.pl O.windows-x64 ../..
perl -MExtUtils::Command -e mkpath O.Common
make -C O.windows-x64 -f ../Makefile TOP=../.. T_A=windows-x64 install
make[4]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/configure/O.windows-x64'
perl C:/base-3.14.12.4/bin/windows-x64/convertRelease.pl checkRelease
make[4]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/configure/O.windows-x64'
make[3]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/configure'
make -C ./KsApp install 
make[3]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/KsApp'
make -C ./src install 
make[4]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/KsApp/src'
perl C:/base-3.14.12.4/bin/windows-x64/makeMakefile.pl O.windows-x64 ../../..
perl -MExtUtils::Command -e mkpath O.Common
make -C O.windows-x64 -f ../Makefile TOP=../../.. T_A=windows-x64 install
make[5]: Entering directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/KsApp/src/O.windows-x64'
perl C:/base-3.14.12.4/bin/windows-x64/makeIncludeDbd.pl KsSupport.dbd commonDriverSupport.dbd KsAppInclude.dbd
echo "../O.Common/KsAppInclude.dbd : ../Makefile" >> KsApp.dbd.d
"Expanding dbd"
Can't open include file "KsSupport.dbd"
Error at or before ""KsSupport.dbd"" in file "../O.Common/KsAppInclude.dbd" line 1
dbExpand: Input errors, no output generated
C:/base-3.14.12.4/configure/RULES.Db:261: recipe for target '../O.Common/KsApp.dbd' failed
make[5]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/KsApp/src/O.windows-x64'
C:/base-3.14.12.4/configure/RULES_ARCHS:63: recipe for target 'install.windows-x64' failed
make[4]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/KsApp/src'
C:/base-3.14.12.4/configure/RULES_DIRS:70: recipe for target 'src.install' failed
make[3]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC/KsApp'
C:/base-3.14.12.4/configure/RULES_DIRS:70: recipe for target 'KsApp.install' failed
make[2]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs/KsIOC'
C:/base-3.14.12.4/configure/RULES_DIRS:70: recipe for target 'KsIOC.install' failed
make[1]: Leaving directory 'C:/support/areaDetector-R2-0/ADNikonKs/iocs'
C:/base-3.14.12.4/configure/RULES_DIRS:70: recipe for target 'iocs.install' failed

My Makefile inside the KsApp/src/ folder:
#################################################
TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
#  ADD MACRO DEFINITIONS AFTER THIS LINE

LIBRARY_IOC += Ks
LIB_SRCS    += Ks.cpp

DBD += KsSupport.dbd

include $(ADCORE)/ADApp/commonLibraryMakefile

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

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




My Makefile inside the iocs\KsIOC\KsApp\src folder:
####################################################
TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
#  ADD MACRO DEFINITIONS AFTER THIS LINE

PROD_NAME = KsApp
PROD_IOC += $(PROD_NAME)

# <name>.dbd will be created from <name>Include.dbd
DBD += $(PROD_NAME).dbd
$(PROD_NAME)_DBD += KsSupport.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 += Ks


include $(ADCORE)/ADApp/commonDriverMakefile

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

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

Any help would be greatly appreciated.

Thanks,
Andrew 
 

Replies:
RE: Building custom areadetector module Mark Rivers

Navigate by Date:
Prev: Streamdevice IOC for Agilent XGS600 Vacuum Gauge Controller Alex Wallace
Next: RE: Building custom areadetector module Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Streamdevice IOC for Agilent XGS600 Vacuum Gauge Controller Alex Wallace
Next: RE: Building custom areadetector module Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·