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  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  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
<== Date ==> <== Thread ==>

Subject: Re: Naming restriction in configure/RELEASE
From: "Hu, Yong via Tech-talk" <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov (tech-talk at aps.anl.gov)" <tech-talk at aps.anl.gov>
Date: Thu, 1 Feb 2024 15:21:21 +0000

It turns out I had a customized ‘test6App/src/Makefile’ which includes the following lines:
include $(TOP)/configure/CONFIG

# MODULE_CONFIG is auto-generated by ioc_builder.py

include $(TOP)/configure/MODULE_CONFIG

‘MODULE1’ is re-defined in my customized file “include $(TOP)/configure/MODULE_CONFIG”, which overwrites configure/RELEASE. That explains why it failed.

Sorry for the noise.

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Hu, Yong via Tech-talk <tech-talk at aps.anl.gov>
Date: Thursday, February 1, 2024 at 8:46 AM
To: tech-talk at aps.anl.gov (tech-talk at aps.anl.gov) <tech-talk at aps.anl.gov>
Subject: Naming restriction in configure/RELEASE

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


References:
Naming restriction in configure/RELEASE Hu, Yong via Tech-talk

Navigate by Date:
Prev: Naming restriction in configure/RELEASE Hu, Yong via Tech-talk
Next: Re: RMP, REP garbage value Kevin Peterson via Tech-talk
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: Naming restriction in configure/RELEASE Hu, Yong via Tech-talk
Next: Alarm Log Table saleem khan via Tech-talk
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