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  <20192020  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  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: building synApps from Git
From: "Lang, Keenan C. via Tech-talk" <[email protected]>
To: "'Siddons, David'" <[email protected]>, "Rivers, Mark L." <[email protected]>
Cc: 'tech-talk' <[email protected]>
Date: Wed, 30 Oct 2019 19:18:52 +0000
Double-checked and looks like my previous comment was incorrect, BUILD_IOCS being disabled wasn't masking any issue. Using the tagged R6_1 assemble_synapps script and checking the dependencies of the areaDetector module that the makefile generates, it correctly determines that the areaDetector module requires asyn, autosave, busy, calc, seq, sscan, and iocStats. This is because the script used to generate the RELEASE.local file with the line

    -include $(TOP)/configure/RELEASE_PRODS.local

which brought in the dependencies for the iocs. The current RELEASE* files are now just copied from the EXAMPLE_RELEASE* which don't contain any link to the RELEASE_PRODS.local file (it's only ever included in the ioc's configure/RELEASE file). Without that top-level link to RELEASE_PRODS.local, synApp's makefile no longer sees the modules in that file as dependencies.


Keenan

From: Tech-talk <[email protected]> on behalf of Mark Rivers via Tech-talk <[email protected]>
Sent: Wednesday, October 30, 2019 7:09 AM
To: 'Siddons, David' <[email protected]>
Cc: 'tech-talk' <[email protected]>
Subject: RE: building synApps from Git
 

Hi Pete,

 

The current situation is not acceptable.  In older versions of synApps the top-level Makefile had the correct dependencies.

 

In the new version one cannot run the following at the top-level of synApps/support if building areaDetector IOCs is enabled:

make clean

make

 

But this is something I need to do very frequently.  We need to get the areaDetector dependencies correct.

 

install_synApps.sh in the master branch worked around this by explicitly disabling building the areaDetector IOCs by creating new files in areaDetector/configure. This was very non-standard and Pete Jemian and I recently spent a long time trying to figure out why the IOCs were not being built.

 

My fix_areaDetector branch fixes this, but uncovered the issue that the dependencies are wrong.

 

Mark

 

 

From: Siddons, David <[email protected]>
Sent: Wednesday, October 30, 2019 6:40 AM
To: Mark Rivers <[email protected]>
Cc: 'tech-talk' <[email protected]>
Subject: Re: building synApps from Git

 

Hi Mark,

  OK, so I'm not crazy :) Moving areaDetector down the list in the makefile fixed it for me. I guess it's not too hard to fix the script to achieve that, but it's beyond my Bash knowledge to do it.

Pete.


From: Mark Rivers <[email protected]>
Sent: Monday, October 28, 2019 12:44 PM
To: Siddons, David <[email protected]>
Cc: 'tech-talk' <[email protected]>
Subject: RE: building synApps from Git

 

Hi Pete,

 

My apologies, in fact you are correct.  Even with the fix_areaDetector branch the support/Makefile does not correctly handle the dependencies of areaDetector.

 

It was working for me because I used “make –j”.  The timing of that worked out so that all of the areaDetector dependencies were in fact built before areaDetector needed them.  However, that was just “luck”, and when I test without –j I see the error you describe.

 

It does not build the modules in alphabetical order, it builds them in the following order:

 

allenBradley-2-3

alive-R1-1-1

ipac-2-15

seq-2-2-6

asyn-R4-36

areaDetector-R3-7

areaDetector-R3-7/ADSupport

areaDetector-R3-7/ADCore

areaDetector-R3-7/ADSimDetector

 

ADSimDetector requires lots of other modules to be built first and that is not happening in a build without –j.  I see the following error:

 

make[7]: *** No rule to make target `../../../lib/linux-x86_64/libautosave.a', needed by `simDetectorNoIOCApp'.  Stop.

make[7]: Leaving directory `/home/epics/scratch/support/synApps/support/areaDetector-R3-7/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/O.linux-x86_64'

make[6]: *** [install.linux-x86_64] Error 2

make[6]: Leaving directory `/home/epics/scratch/support/synApps/support/areaDetector-R3-7/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src'

make[5]: *** [src.install] Error 2

 

Mark

 

 

From: Mark Rivers
Sent: Sunday, October 27, 2019 2:27 PM
To: 'Siddons, David' <[email protected]>
Cc: tech-talk <[email protected]>
Subject: RE: building synApps from Git

 

Hi Pete,

 

The assemble_synApps.sh script in the fix_areaDetector branch of epics-synApps/support definitely works OK, I just tested it:

 

I just executed the following commands (recalled from “history”, removing commands that were not needed).

 

  1240  14:12   git clone https://github.com/epics-synApps/support

  1242  14:12   cd support/

  1244  14:12   git checkout fix_areaDetector

  1247  14:14   ./assemble_synApps.sh

  1248  14:15   cd synApps/support/

  1249  14:15   vi configure/RELEASE             (I edited configure/RELEASE to set EPICS_BASE correctly)

  1250  14:16   make release

  1251  14:16   make -sj

  1252  14:19   ls -l areaDetector-R3-7/ADSimDetector/iocs/simDetectorIOC/bin/linux-x86/

 

The build took under 3 minutes.

 

The last command shows that ADSimDetector was built correctly.

corvette:support/synApps/support>ls -l areaDetector-R3-7/ADSimDetector/iocs/simDetectorIOC/bin/linux-x86/

total 76

-r-xr-xr-x 1 epics domain users 75944 Oct 27 14:19 simDetectorApp

 

The xxx module was also built correctly:

corvette:support/synApps/support>ls -l xxx-R6-1/bin/linux-x86/

total 136

-r-xr-xr-x 1 epics domain users 137556 Oct 27 14:19 xxx

 

Mark

 

 

From: Siddons, David <[email protected]>
Sent: Sunday, October 27, 2019 11:05 AM
To: Mark Rivers <[email protected]>
Cc: tech-talk <[email protected]>
Subject: Re: building synApps from Git

 

Hi Mark,

   The assemble_synApps script itself calls "make release" as its final command. So the make knows where to look, but there's nothing there to find because that module hasn't yet been built. For example, areaDetector depends on busy and calc, but the makefile tries to build them in alphabetical order. The script needs to know about dependencies, or at least take them into account when it creates the makefile.

Pete.

 


From: Mark Rivers <[email protected]>
Sent: Saturday, October 26, 2019 2:47 PM
To: Siddons, David <[email protected]>
Cc: tech-talk <[email protected]>
Subject: Re: building synApps from Git

 

Hi Pete,


You should not need to edit the Makefile.


After you ran assemble_synApps.sh and edited support/configure/RELEASE did you run this command:


make release


You need to do that before then running


make


Mark



________________________________
From: Tech-talk <[email protected]> on behalf of Siddons, David via Tech-talk <[email protected]>
Sent: Saturday, October 26, 2019 1:20 PM
To: EPICS Tech Talk
Subject: building synApps from Git

I just downloaded the latest synApps collection according to the instructions on its site, using the command:
bash ./assemble_synApps.sh

followed, after setting some variables, "make".

It seems that the build works through the modules in alphabetical order, without regard to dependencies. In particular, it tries to build areaDetector very early, which fails because a bunch of libraries from other modules don't exist yet. I edited the Makefile to move the areaDetector reference later in the list, and everything built OK.

Is this how it's supposed to be? Did I do something wrong?
Pete.


Replies:
RE: building synApps from Git Mark Rivers via Tech-talk
References:
building synApps from Git Siddons, David via Tech-talk
Re: building synApps from Git Mark Rivers via Tech-talk
Re: building synApps from Git Siddons, David via Tech-talk
RE: building synApps from Git Mark Rivers via Tech-talk
RE: building synApps from Git Mark Rivers via Tech-talk
Re: building synApps from Git Siddons, David via Tech-talk
RE: building synApps from Git Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: missing addRecord.h Johnson, Andrew N. via Tech-talk
Next: Re: missing addRecord.h Johnson, Andrew N. 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  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: building synApps from Git Mark Rivers via Tech-talk
Next: RE: building synApps from Git Mark Rivers 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  <20192020  2021  2022  2023  2024 
ANJ, 01 Nov 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·