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> | 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> |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Request for Help with EPICS Asyn Build Issues |
From: | Han Lee via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Cc: | Aye Chan Moe <moea at mcmaster.ca> |
Date: | Thu, 6 Mar 2025 11:01:15 -0800 |
Dear EPICS Tech-Talk,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)Problem:
- 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".
Fixes Tried:
- 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
- Ensured
st.cmd
includes:dbLoadDatabase("../../dbd/asyn.dbd") dbLoadDatabase("../../dbd/asynRecord.dbd") dbLoadDatabase("../../dbd/devEpics.dbd") asyn_registerRecordDeviceDriver(pdbbase)
- Rebuilt Asyn using:
make clean make
Result:
- The missing commands were still not found.
asynRecord.dbd
anddevEpics.dbd
were still missing or not properly recognized.
MissingasynRecord.dbd
anddevEpics.dbd
Problem:
- 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'.
Fixes Tried:
- Verified
INSTALL_DBD
inconfigure/CONFIG
:INSTALL_DBD += asyn.dbd INSTALL_DBD += asynRecord.dbd INSTALL_DBD += devEpics.dbd
- Checked
configure/CONFIG
forINSTALL_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
Result:
- The same error persisted:
No rule to make target '../%', needed by 'asynRecord.dbd'.
DebuggingMakefile
Dependency IssuesProblem:
- The wildcard rule (
%
) in the Makefile might be broken or misconfigured.Fixes Tried:
- Checked
asyn/Makefile
for incorrect%
rules:../%: $(INSTALL_LOCATION)/%
- Commented it out to prevent the broken rule:
#../%: $(INSTALL_LOCATION)/%
- Rebuilt everything:
make clean make install
Result:
- Still getting the same error.
Request for HelpKey Questions
- Why is the build system trying to use
../%
as a dependency forasynRecord.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