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  2021  <20222023  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  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: Makefile rule differences with base 3.14 vs 3.15+ in ADCore build with pvi
From: "Yendell, Gary \(DLSLtd, RAL, LSCI\) via Tech-talk" <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 10 Aug 2022 12:35:39 +0000
Hi Everyone,

I am currently working on a proposed change to ADCore to use pvi to generate template and header files during the build.

This works on 3.14 locally and in GitHub Actions with ci-scripts. The files are generated during the build, and it completes. If I change a yaml file only the relevant files are regenerated and rebuilt against. However, in CI on 3.15 (and 7) I see two problems.

  1. Rules are not being run to regenerate existing files even though the sources are newer than the targets.
When the files exist, it does not consider the yaml file as a pre-requisite at all in 3.15, where it does in 3.14, so it just installs the existing file. The rules do run on 3.15 if the targets do not exist at all, but in a preliminary step before the rule for installing to db/ - see here.

Is it because of slightly strange rules to generate the files in the source location and then copy them? Maybe the dependency isn't tracked properly in 3.15? The pvi rules are defined here.

  1. When the templates don't exist and are generated, it then tries (and fails) to create *template.d files - see here
I notice that it tries to read <template>.d as a Makefile here, but only for the templates that don't exist yet. RULES.Db optionally includes <template>.d here, but I think that shouldn't do anything because they don't exist. And then 3.14 adds a rule for them here and 3.15 does not. I think this change may be relevant: https://github.com/epics-base/epics-base/commit/2905b5bb72449727c192c101d877ea17b87b9e4c
Perhaps I need to use a separate PVI_DB to define those that need to be generated, but I am not sure if the rebuild detection will work as it does now when the yaml files are changed.

----

The second problem is not so important, but it would be good to demonstrate that the build works when the files are generated from scratch. The first problem is a blocker - the files must be regenerated when the yaml files are changed.

Does anyone know what I am doing wrong?

Note I have rebased my ADCore branch on Michael's branch integrating ci-scripts for CI, but I couldn't get 3.14 builds working to compare against, so I reverted to my version. There are builds for this branch demonstrating the same problems here and can do more from that base if it is useful.

Cheers,
Gary

 

-- 

This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
 


Replies:
Re: Makefile rule differences with base 3.14 vs 3.15+ in ADCore build with pvi Andrew Johnson via Tech-talk

Navigate by Date:
Prev: Re: Industry Pack support for TIP850 under RTEMS Mark Rivers via Tech-talk
Next: AW: Industry Pack support for TIP850 under RTEMS Sintschuk, Michael 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  <20222023  2024 
Navigate by Thread:
Prev: Re: Industry Pack support for TIP850 under RTEMS Mark Rivers via Tech-talk
Next: Re: Makefile rule differences with base 3.14 vs 3.15+ in ADCore build with pvi Andrew Johnson 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  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·