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  2022  2023  2024  2025  <2026>  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  2025  <2026> 
<== Date ==> <== Thread ==>

Subject: Re: E3 recipe question
From: André Favoto via Tech-talk <tech-talk at aps.anl.gov>
To: Jörn Dreyer <j.dreyer at hzdr.de>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 12 Oct 2026 11:41:57 +0000
Hi Jörn,
Could you share your recipe and logs of your build, or a repo link? Are you building this vendor lib inside the EPICS module recipe (bundling it on the same package), or separately? I don't see why require would need to be rebuilt in any case if you have the e3 conda channels available, so something sounds off..

Ideally, everything that your module depends on should have its own recipe and conda package, even the vendor libs. For non-EPICS packages such as your case, you can follow the standard conda instructions to build a package (nothing from e3 or require involved). You can find several recipe examples in conda-forge, for various natures of libraries: https://github.com/orgs/conda-forge/repositories

After you have your non-epics dependency as a conda package, you should add it to your EPICS module recipe under the build dependencies (and possibly run deps as well, depending on your settings). The vendor lib will then be installed into your environment's $(PREFIX) before the EPICS build starts. On the e3 Makefile, you can link them with LIB_SYS_LIBS += yourVendorLib (the vendor .so files should be in $(PREFIX)/lib if the conda dependency is installed correctly).

If you are bundling the library within the same package as your EPICS module (not recommended), all build steps are handled in your build.sh script before calling the e3 Makefile. Install the output .so files and header files of your vendor lib to $PREFIX/lib and $PREFIX/include, then the linking on the e3 Makefile should be the same as above, using LIB_SYS_LIBS. This method should be avoided though in favour of the first.

Hope that helps,

Best Regards,
André Favoto


From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Jörn Dreyer via Tech-talk <tech-talk at aps.anl.gov>
Sent: Monday, October 12, 2026 11:26 AM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: E3 recipe question
 
Hi,

I am currently developing a recipe for E3 to build one of my support modules. This module only has a library that is used in a EPICS module to access some hardware.
I managed to get this library build but afterwards the makefile wants to compile the support code for the require module which fails due to some missing include pathes.
As this library will not be loaded using require, I would like to prevent the build of this support code. Is that possible? And how to do that.

Regards,

Jörn

References:
E3 recipe question Jörn Dreyer via Tech-talk

Navigate by Date:
Prev: E3 recipe question Jörn Dreyer via Tech-talk
Next: Thor Labs MC2000B Graeme Winter 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  2025  <2026> 
Navigate by Thread:
Prev: E3 recipe question Jörn Dreyer via Tech-talk
Next: Thor Labs MC2000B Graeme Winter 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  2025  <2026> 
ANJ, 12 Oct 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·