Hi Jonathan,
Last week I successfully built base 7.0.9, asyn, seq, sscan, and Galil on an Ubuntu system with those same specs.
Mark
From: Jonathan Hai <haic at mcmaster.ca>
Sent: Monday, March 10, 2025 12:50 PM
To: Mark Rivers <rivers at cars.uchicago.edu>
Subject: Re: Issues Installing Galil EPICS Drivers – sscan & seq Dependencies Not Building
Yes, I did move my support directory to be out of epics-base. It fixed the problem!
Could these be causing any problems?
Jonathan Hai
Researcher/Tech Monkey
CNBL | Department of Physics and Astronomy
McMaster University
Sapere Aude
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
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.
Recap of the Issue
- 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.4bison
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
5. Rebuilt EPICS Base
- 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
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
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.
Recap of the Issue
- 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.4bison
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
5. Rebuilt EPICS Base
- 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