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.
- 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
--
Complexity comes for free, simplicity you have to work for.
- Replies:
- Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Michael Davidsaver via Tech-talk
- 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
- Navigate by Date:
- Prev:
RE: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Mark Rivers 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
<2021>
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Hu, Yong via Tech-talk
- Next:
Re: asyn: No rule to make target 'ipSNCServer.o'; Does configure/RELEASE have multiple pointers to ... Michael Davidsaver 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
|