Hello everyone,
I am building an IOC application named ‘test6’ based on the classical command ‘makeBaseApp -t …’. When I put the following line in ‘test6/configure/RELEASE’ to include an external support module, surprisingly the build failed. Pay attention to the name ‘MODULE1’
which contains a digit.
MODULE1 = /nsls2/users/yhu/modules/elauncherSupport
Here is the error message:
**********************************************************
make rebuild
…
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUSE_TYPED_RSET -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/lib/epics/include/compiler/gcc -I/usr/lib/epics/include/os/Linux -I/usr/lib/epics/include -MM -MF test6Main.d ../test6Main.cpp
Creating dbd file test6.dbd
perl -CSD /usr/lib/epics/bin/linux-x86_64/dbdExpand.pl -I. -I.. -I../O.Common -I../../../dbd -I/usr/lib/epics/dbd -o test6.dbd base.dbd asSupport.dbd devIocStats.dbd caPutLog.dbd reccaster.dbd system.dbd
elauncherSupport.dbd xxxSupport.dbd dbSubExample.dbd devtest6Version.dbd test6Hello.dbd initTrace.dbd PVAServerRegister.dbd qsrv.dbd
dbdExpand.pl: Can't find file 'elauncherSupport.dbd'
while reading 'elauncherSupport.dbd' to create 'test6.dbd'
Your Makefile may need this dependency rule:
$(COMMON_DIR)/test6.dbd: $(COMMON_DIR)/elauncherSupport.dbd
dbdExpand.pl: Exiting due to errors
**********************************************************
If I change ‘MODULE1’ to ‘MODULE’, then it worked as expected. And I see the path ‘-I/nsls2/users/yhu/modules/elauncherSupport/dbd’ is included in ‘perl -CSD /usr/lib/epics/bin/linux-x86_64/dbdExpand.pl’.
**********************************************************
make build
…
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUSE_TYPED_RSET -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include
-I/usr/lib/epics/include/compiler/gcc -I/usr/lib/epics/include/os/Linux -I/usr/lib/epics/include -MM -MF test6Main.d ../test6Main.cpp
Creating dbd file test6.dbd
perl -CSD /usr/lib/epics/bin/linux-x86_64/dbdExpand.pl -I. -I.. -I../O.Common -I../../../dbd -I/nsls2/users/yhu/modules/elauncherSupport/dbd -I/usr/lib/epics/dbd -o test6.dbd base.dbd asSupport.dbd devIocStats.dbd
caPutLog.dbd reccaster.dbd system.dbd elauncherSupport.dbd xxxSupport.dbd dbSubExample.dbd devtest6Version.dbd test6Hello.dbd initTrace.dbd PVAServerRegister.dbd qsrv.dbd
perl -CSD /usr/lib/epics/bin/linux-x86_64/registerRecordDeviceDriver.pl -I. -I.. -I../O.Common -I../../../dbd -I/nsls2/users/yhu/modules/elauncherSupport/dbd -I/usr/lib/epics/dbd -o test6_registerRecordDeviceDriver.cpp
../O.Common/test6.dbd test6_registerRecordDeviceDriver /nsls2/users/yhu/test6
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -DUSE_TYPED_RSET -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc
-I../../../include/os/Linux -I../../../include -I/usr/lib/epics/include/compiler/gcc -I/usr/lib/epics/include/os/Linux -I/usr/lib/epics/include -MM -MF test6_registerRecordDeviceDriver.d test6_registerRecordDeviceDriver.cpp
perl -CSD /usr/lib/epics/bin/linux-x86_64/genVersionHeader.pl -t ../../.. -N test6VERSION -V "" ../O.Common/test6Version.h
Keeping VCS header ../O.Common/test6Version.h
test6VERSION = "2cf4d364586c5e06a964-dirty"
Installing dbd file ../../../dbd/xxxSupport.dbd
mkdir ../../../dbd
Installing created dbd file ../../../dbd/test6.dbd
**********************************************************
So it seems there is a naming restriction in configure/RELEASE. Is this a bug or a feature? I am using Base-R7.0.5 if the version matters.
Cheers,
Yong