Hi Jonathon,
What version of EPICS base are you using? Have you modified anything in it?
Last week you reported a problem building asyn. I could not reproduce your problem, and then Andrew Johnson suggested that you move support/ so it was not under EPICS base. Did you do that, and did it fix
your problem?
I am not aware of anyone else reporting a problem with lexer, so there must be something different with your installation. Is this Ubuntu 22? I built base successfully on that last week, including seq and
sscan with base 7.0.9.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Jonathan Hai via Tech-talk
Sent: Monday, March 10, 2025 12:39 PM
To: tech-talk at aps.anl.gov
Subject: Re: Issues Installing Galil EPICS Drivers – sscan & seq Dependencies Not Building
Subject: Follow-up: Issues Installing Galil EPICS Drivers –
seq
&
sscan
Still Not Building
I appreciate the help so far regarding my
Galil motor driver installation issues. I've followed the advice given and have attempted multiple fixes, but I’m still unable to get the required dependencies (seq
and
sscan
) to build.
-
I need to install the Galil motor drivers, but the build fails because
sscan
does not compile. -
sscan
fails because
scanProg.o
is missing, which (I believe) needs
seq
to be installed. -
seq
fails to build due to a missing
lexer.c
, which should be generated from
lexer.l
by
e_flex
. -
e_flex
is broken on my system, preventing
lexer.c
from being created.
Steps I Have Taken So Far
1. Verified
e_flex
and
antelope
Exist in EPICS Base
-
Both
e_flex
and
antelope
are present in
/home/jonathanhai/epics-base/bin/linux-x86_64/
. -
Running
antelope --version
works, but running e_flex --help
produces an error:
·
/home/jonathanhai/epics-base/bin/linux-x86_64/e_flex: unknown flag '-'
2. Checked for
lexer.l
in
seq
-
lexer.l
is present in
/home/jonathanhai/support/seq/src/snc/
, but running
e_flex
fails with:
·
/home/jonathanhai/epics-base/bin/linux-x86_64/e_flex: could not create
-
Running
e_flex
manually gives:
·
/home/jonathanhai/epics-base/bin/linux-x86_64/e_flex: can't open skeleton file DEFAULT_SKELETON_FILE
3. Checked for
flex.skl
(Skeleton File Required by
e_flex
)
·
find ~/epics-base -name "flex.skl"
returns no results, meaning this file is missing.
·
/home/jonathanhai/epics-base/configure/os/Linux/flex.skl: No such file or directory
4. Installed System
flex
and
bison
as an Alternative
·
sudo apt install flex bison
-
flex
version:
2.6.4 -
bison
version:
3.8.2
-
Tried running system
flex
manually:
·
cd ~/support/seq/src/snc
·
flex -o lexer.c lexer.l
o
lexer.l:1: premature EOF
·
cd ~/epics-base
·
make clean
·
make
-
No change,
e_flex
still does not work.
Current Issues & Questions
-
It fails with "unknown flag '-'" when run manually.
-
It also reports "can't open skeleton file DEFAULT_SKELETON_FILE" when used.
-
Should I be specifying a
FLEX_SKEL
environment variable?
-
Why is
lexer.l
failing with "premature EOF" when running
flex
?
-
Could
lexer.l
be corrupted or incomplete? -
If so, can I manually download a working version?
-
Is there a way to bypass
e_flex
and manually create
lexer.c
?
-
If I download a pre-generated
lexer.c
, will the build proceed?
-
Would switching to an older version of
seq
help?
-
If so, which version would you recommend?
I really appreciate any further guidance on this! Thanks again for your time.
When you build epics base, that generates base/bin/…./antelope and e_flex, so basically yacc and (f)lex.
Do you have the base/bin/HOST_ARCH folder on your PATH?
Then it should find those when building the other modules
When you build epics base, that generates base/bin/…./antelope and e_flex, so basically yacc and (f)lex.
Do you have the base/bin/HOST_ARCH folder on your PATH?
Then it should find those when building the other modules