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

Subject: Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ...
From: Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
To: "Johnson, Andrew N." <anj at anl.gov>, "Hu, Yong" <yhu at bnl.gov>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Tue, 20 Apr 2021 22:03:26 -0700
On 4/20/21 4:04 PM, Johnson, Andrew N. via Tech-talk wrote:
> Hi Yong,
> 
> I don’t think it’s actually possible to install both Base and SNCSEQ into the same INSTALL_LOCATION (i.e. into your /usr/lib/epics/lib path) without making some changes to the build system. The sequencer provides its own set of build rules in a file configure/RULES_BUILD which tell GNUmake how to compile .st and .stt files into .c files. That file has the same name as the file that comes with Base to tell GNUmake how to compile .c and .cpp files into .o files (and many other similar and related rules) so their contents are very different but in your layout they would be installed at the same path. Your SNCSEQ package must not have the necessary BUILD_RULES file in it, which is good because that would clash with the Base version anyway.
> 
> The EPICS build system automatically reads in any configure/RULES_BUILD files that it sees in any module listed in the application’s configure/RELEASE file. Thus in a normal EPICS build environment it will load the Sequencer’s rules automatically when that is listed in RELEASE.
> 
> The Debian packaging for the sequencer needs to work out what to do about that. Maybe in an earlier release the two RULES_BUILD files were combined into the one that came with Base itself? There have been many changes to the Base RULES_BUILD file since 3.14.12.

The extra rules do get installed and included.

https://github.com/epicsdeb/seq/blob/d2e9f883eb3684d5621cdcd04cb2c35d441fe59a/debian/rules#L14

https://github.com/epicsdeb/epics-base/blob/81b977c296c865e9e370bd1cf3e8910698ad7fbf/debian/patches/0003-allow-more-flexible-makefile-config.patch#L23


> $ make PRINT.SNC

Should show the location of the snc executable.

cf. https://github.com/epicsdeb/seq/blob/d2e9f883eb3684d5621cdcd04cb2c35d441fe59a/configure/RULES_BUILD#L35-L43


> - Andrew
> 
> 
> 
>> On Apr 20, 2021, at 3:55 PM, Hu, Yong via Tech-talk <tech-talk at aps.anl.gov> wrote:
>>
>> Just to be clear, the module “seq” has been installed on my server:
>> $ ls -lht /usr/lib/epics/lib/linux-x86_64/libseq*
>> -r--r--r--. 1 root root 105K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseq.a
>> -r-xr-xr-x. 1 root root  74K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseq.so
>> -r--r--r--. 1 root root 2.5K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseqSoftIocSupport.a
>> -r-xr-xr-x. 1 root root 8.3K Sep  3  2020 /usr/lib/epics/lib/linux-x86_64/libseqSoftIocSupport.so
>>  
>> The building rules in base-R7.0.4.1 must have changed. I guess the rules ignore “SNCSEQ” when SNCSEQ has the same path as EPICS_BASE. If my guess is right, it explains why I still get the error “No rule to make target 'ipSNCServer.o'” even after I have SNCSEQ defined.
>>  
>> Thanks,
>> Yong 
>>  
>> From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
>> Reply-To: "Hu, Yong" <yhu at bnl.gov>
>> Date: Tuesday, April 20, 2021 at 4:44 PM
>> To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
>> Subject: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ...
>>  
>> Hello everyone,
>>  
>> I am trying to build the latest asyn (commit a2da087) against base-R7.0.4.1, but encountered the same error “No rule to make target 'ipSNCServer.o'” as reported on tech-talk:
>> https://epics.anl.gov/tech-talk/2007/msg01045.php
>>  
>> However, I do have SNCSEQ defined in asyn/configure/RELEASE:
>> SNCSEQ=/usr/lib/epics
>> EPICS_BASE=/usr/lib/epics
>>  
>> As you see, both EPICS_BASE and SNCSEQ point to the same path in my RELEASE. This is the historical tradition at NSLS-2: we install all EPICS stuff (base, support modules) in a flat directory “/usr/lib/epics”.
>> $ ls /usr/lib/epics/
>> bin  cfg  configure  db  dbd  include  lib  startup  templates
>>  
>> This has been working well for base-3.14.12, meaning I can build the latest asyn (commit a2da087) against base-3.14.12 with SNCSEQ=/usr/lib/epics. Now, this kind of directory structure seems to not work for base-R7.0.4.1. I do see some warnings when building asyn against base-R7.0.4.1:
>> /usr/lib/epics/configure/RULES_BUILD:575: Warning: Base configure/RULES_BUILD file included more than once. Does configure/RELEASE have multiple pointers to /usr/lib/epics?
>>  
>> If I make a change like this: SNCSEQ=/home/yhu/epics/seq-2-2-6 where I have built “seq” in my home directory, I can build the latest asyn (commit a2da087) against base-R7.0.4.1 successfully.
>>  
>> So, the problem seems related to “Does configure/RELEASE have multiple pointers to …”. A simple search on Google/Tech-Talk does not give me any hints to fix the problem. Any suggestions are welcomed!
>>  
>> Thanks,
>> Yong
> 


References:
asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Johnson, Andrew N. via Tech-talk

Navigate by Date:
Prev: Device driver for Delta Elektronika SM15-400 [SEC=UNOFFICIAL] STARRITT, Andrew via Tech-talk
Next: Re: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Ralph Lange 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  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Johnson, Andrew N. via Tech-talk
Next: EPICS in Docker image Build Error base-3.15.6 (alpine linux) Josh Fiddler 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  <20212022  2023  2024 
ANJ, 21 Apr 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·