Hi Jonathon,
-
Initially, after compiling Asyn and running the IOC (
st.cmd
), many Asyn-related commands (asynReport
,
asynOctetWriteRead
, etc.) were missing.
What IOC are you referring to? One that is included in asyn, or a separate IOC you are building outside of asyn? If the problem is an IOC outside of asyn, have you verified that the test IOCs inside of asyn
build OK?
Please do the following at the top-level of asyn and send the complete output.
make -s clean
make -sj
You said the following:
-
I am encountering persistent build issues while compiling Asyn (asyn-R4-43) with EPICS Base 7.0.9 on Ubuntu 22.04 (Linux x86_64). Despite multiple attempts to resolve the issues, the build process fails with the following error:
-
Initially, after compiling Asyn and running the IOC (
st.cmd
), many Asyn-related commands (asynReport
,
asynOctetWriteRead
, etc.) were missing.
Those 2 statements seem contradictory, since first you said you could not build asyn, and then you said that after building asyn you got run-time errors when running the IOC.
I have not tested base 7.0.9, but I have successfully built asyn on 7.0.8 and I think it is unlikely that base 7.0.9 is causing the problem.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Jonathan Hai via Tech-talk
Sent: Thursday, March 6, 2025 11:52 AM
To: tech-talk at aps.anl.gov
Cc: Aye Chan Moe <moea at mcmaster.ca>
Subject: Request for Help with EPICS Asyn Build Issues
I am encountering persistent build issues while compiling Asyn (asyn-R4-43) with EPICS Base 7.0.9 on Ubuntu 22.04 (Linux x86_64). Despite multiple attempts to resolve the issues, the build process
fails with the following error:
No rule to make target '../%', needed by 'asynRecord.dbd'.
I would appreciate any guidance on how to fix this issue. Below is a summary of what I have tried so far.
Initial Build Attempt (Missing Asyn Support)
-
Initially, after compiling Asyn and running the IOC (
st.cmd
), many Asyn-related commands (asynReport
,
asynOctetWriteRead
, etc.) were missing. -
The error messages included:
·
ERROR: Command asyn_registerRecordDeviceDriver not found.
·
ERROR: Can't open include file "asynRecord.dbd".
·
ERROR: Can't open include file "devEpics.dbd".
-
Verified Asyn libraries (
libasyn.so
) and DBD files (asynRecord.dbd
,
devEpics.dbd
) exist. -
Modified
testApp/src/Makefile
to include:
·
DBD += asyn.dbd
·
DBD += asynRecord.dbd
·
DBD += devEpics.dbd
·
dbLoadDatabase("../../dbd/asyn.dbd")
·
dbLoadDatabase("../../dbd/asynRecord.dbd")
·
dbLoadDatabase("../../dbd/devEpics.dbd")
·
asyn_registerRecordDeviceDriver(pdbbase)
-
The missing commands were still not found.
-
asynRecord.dbd
and
devEpics.dbd
were still missing or not properly recognized.
Missing
asynRecord.dbd
and
devEpics.dbd
-
Despite confirming that
asynRecord.dbd
exists (ls -l ~/epics-base/support/asyn/asyn-R4-43/dbd/
),
the build system could not find it. -
make install
failed with:
·
No rule to make target '../%', needed by 'asynRecord.dbd'.
-
Verified
INSTALL_DBD
in
configure/CONFIG
:
·
INSTALL_DBD += asyn.dbd
·
INSTALL_DBD += asynRecord.dbd
·
INSTALL_DBD += devEpics.dbd
-
Checked
configure/CONFIG
for
INSTALL_LOCATION
:
·
INSTALL_LOCATION = $(TOP)
-
Ensured
asyn.dbd
includes:
·
include "asynRecord.dbd"
·
include "devEpics.dbd"
-
Rebuilt Asyn and the IOC:
·
make distclean
·
make clean
·
make -B
-
The same error persisted:
·
No rule to make target '../%', needed by 'asynRecord.dbd'.
Debugging
Makefile
Dependency Issues
-
The wildcard rule (
%
) in the Makefile might be broken or misconfigured.
-
Checked
asyn/Makefile
for incorrect
%
rules:
·
../%: $(INSTALL_LOCATION)/%
-
Commented it out to prevent the broken rule:
o
#../%: $(INSTALL_LOCATION)/%
·
make clean
·
make install
-
Still getting the same error.
-
Why is the build system trying to use
../%
as a dependency for
asynRecord.dbd
? -
Is there a known issue with Asyn (asyn-R4-43) and EPICS Base compatibility?
-
How can I properly ensure
asynRecord.dbd
is installed and recognized? -
Are there specific EPICS build settings I should check to resolve this?
System & Build Environment
-
EPICS Base: 7.0.9
-
Asyn Version: asyn-R4-43
-
OS: Ubuntu 22.04 (Linux x86_64)
-
Compiler: gcc (Ubuntu 11.3.0-1ubuntu1~22.04)
I appreciate any insights or suggestions on how to resolve this issue.
Jonathan Hai
Researcher/Tech Monkey
CNBL | Department of Physics and Astronomy
McMaster University
Sapere Aude