Here at SESAME, we build the used AD modules outside their tree just by modifying the
configure/RELEASE file of any module, this is necessary for our RPM packaging. An example here is the RELEASE file we use to build ADCore:
#RELEASE Location of external products
# Run "gnumake clean uninstall install" in the application
# top directory each time this file is changed.
# -include $(TOP)/../configure/RELEASE_LIBS_INCLUDE
# -include $(TOP)/RELEASE.local
# -include $(TOP)/configure/RELEASE.local
ASYN = /opt/epics/support/asyn
ADSUPPORT = /opt/epics/support/areaDetector/support
EPICS_BASE = /opt/epics/base
WITH_BITSHUFFLE=YES
WITH_BLOSC=YES
WITH_GRAPHICSMAGICK=YES
WITH_HDF5=YES
WITH_JPEG=YES
WITH_NETCDF=YES
WITH_NEXUS=YES
WITH_SZIP=YES
WITH_TIFF=YES
WITH_ZLIB=YES
BITSHUFFLE_EXTERNAL=NO
BLOSC_EXTERNAL=NO
GRAPHICSMAGICK_EXTERNAL=NO
HDF5_EXTERNAL=NO
JPEG_EXTERNAL=NO
NETCDF_EXTERNAL=NO
NEXUS_EXTERNAL=NO
SZIP_EXTERNAL=NO
TIFF_EXTERNAL=NO
XML2_EXTERNAL=NO
ZLIB_EXTERNAL=NO
More release files can be seen in the project’s repository:
https://github.com/AbdallaDalleh/epics-rpm-spec
Best Regards,
Abdalla Al-Dalleh
Control Engineer
SESAME
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Johnson, Andrew N. via Tech-talk
Sent: Thursday, March 13, 2025 7:43 PM
To: Jörn Dreyer <j.dreyer at hzdr.de>; tech-talk at aps.anl.gov
Subject: Re: areaDetector build system question
Hi Jörn,
At APS we use Sumo to build AreaDetector (including ADCore and ADSupport), many of the standard plugins as external modules, and many IOCs which use these. I suggested changes to the AreaDetector build system
to make that work, although
my PR has bit-rotted somewhat in the 3-4 years since I last worked on it. Our local AreaDetector version has some additional changes that aren’t in the PR, but the plugins don’t require any modification IIRC.
Here is the configure/MODULES file from our camera IOC area, showing that it is possible to do this:
$ cat configure/MODULES
{
"extra": [
"ADCORE=$(AREA_DETECTOR)/ADCore",
"ADSUPPORT=$(AREA_DETECTOR)/ADSupport"
],
"module": [
"ADARAVIS:2.2.1-C2-1",
"ADGENICAM:1.10-C2-1",
"ADPOINTGREY:2.9-C2-1",
"ADSPINNAKER:3.3-C2-1",
"AREA_DETECTOR:3.12.1-C2-2",
"ASYN:4.42-C2-2",
"AUTOSAVE:5.10.2-C2-1",
"BASE:7.0.6.1-C2-3",
"BUSY:1.7.3-C2-1",
"CALC:3.7.4-C2-1",
"IOCSTATS:3.2.0-C2-2",
"IOCSTD:4.5.0-C2-1",
"NDDRIVERSTDARRAYS:1.4-C2-1",
"SEQ:2.2.9-C2-1",
"SSCAN:2.11.5-C2-1",
"ZLIB:1.2.11-C2-1"
]
}
- Andrew
Complexity comes for free, Simplicity you have to work for.
Hi,
is it possible to build an areaDetector module outside of the tree?
Background:
I have an areaDetector driver for a special camera that I would like to use in a setup using sumo.
I have sumo setup to to build all the dependencies for areaDetector. I would like to get my camera code included to be alble to use
it in multiple ioc configurations.
My driver compiles if added inside the areaDetector tree, but as a normal EPICS module it fails. Has anybody achieved this?
It look very much that my CONFIG_SITE.local file is not read and thus the relevant configuration is missed.
Regards,
Jörn