Hi William,
·
another quick question: how can I tell EPICS to static compile the support library?
·
It uses some system library that needs additional compiler flags, and I would have to repeat them in the IOC-generating App...
Put this line in the support Makefile:
STATIC_BUILD=YES
However, that may not do what you want. On most modern Linux systems the system libraries are only available as shareable libraries (.so), they are no longer provided
as static libraries (.a). That means the IOC-generating App does need to build with the system libraries, they won’t be included in the statically built support library.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of William Kirstaedter via Tech-talk
Sent: Monday, June 10, 2024 1:19 PM
To: Ralph Lange <ralph.lange at gmx.de>; EPICS Tech Talk <tech-talk at aps.anl.gov>
Subject: Re: epics build system question again - build order
Thanks.
Its a support library as far as I can tell.
source:
https://groups.nscl.msu.edu/controls/files/devSnmp.html
download:
https://groups.nscl.msu.edu/controls/
I think renaming to snmpSup is more self-explanatory, that way the Makefile stays default ... nobody reads Makefiles, or check for irregularities. :>
another quick question: how can I tell EPICS to static compile the support library?
It uses some system library that needs additional compiler flags, and I would have to repeat them in the IOC-generating App...
cheers!
William Kirstaedter
PP&B Computer Support Group
Fritz-Haber-Institut Berlin
Am 10.06.24 um 19:57 schrieb Ralph Lange via Tech-talk:
my main App is called IOCINFRAApp, the support App is called snmpApp.
the build system now tries to compile IOCINFRAApp first, and fails
because a dbd file from snmpApp is not yet available.
I've renamed my snmpApp to 0snmpApp and it works, but thats too hacky in
my eyes.
Is there some more elegant way to achieve that snmpApp gets built before
IOCINFRAApp ?
There are applications that generate IOCs, and there are support applications that provide things (libraries, templates) to be used by IOC-creating apps.
If the IOC-creating kind are called *App and the support applications are called *Sup, the default order (first *Sup, then *App) will work.
You can always declare a dependency that is not covered by the default build order in the Makefile. In your case,
IOCINFRAApp_DEPEND_DIRS += snmpApp