CONFIG: combine flex/flex++ rules (minor cleanup)

- generate .cc (instead of .C) intermediate files, consistent with how
  we manage other generated code and makes them less case sensitive
This commit is contained in:
Mark Olesen 2025-03-19 08:39:47 +01:00
parent 6dd8804acb
commit eaa65913f4
5 changed files with 27 additions and 15 deletions

View File

@ -1,17 +1,21 @@
#------------------------------------------------------------------------------
SUFFIXES += .Y .y .yy .yy-m4
# Bison, compile with C
ytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \
bison -v -d -y $< && \
mv y.tab.c $(@D)/$(<F).c && \
mv y.tab.h $(@D)/$(<F).h && \
$(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@
# Bison, compile with C++
Ytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \
bison -v -d -y $< && \
mv y.tab.c $(@D)/$(<F).C && \
mv y.tab.c $(@D)/$(<F).cc && \
mv y.tab.h $(@D)/$(<F).H && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@
$(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(<F).cc -o $@
# Bison via wrapper, compile with C++
yytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \
$(WM_SCRIPTS)/wrap-bison -output=$(@D)/$(*F).tab.cc -v -d $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(*F).tab.cc -o $@

View File

@ -1,5 +1,22 @@
SUFFIXES += .l
#------------------------------------------------------------------------------
SUFFIXES += .L .l .ll
# Regular flex, compile with C
ltoo = $E $(call QUIET_MESSAGE,flex,$(<F)) \
flex -f -o $(@D)/$(<F).c $< && \
$(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@
## # Regular flex, compile with C++
## ll-cctoo = $E $(call QUIET_MESSAGE,flex,$(<F)) \
## flex -f -o $(@D)/$(<F).cc $< && \
## $(WM_SCHEDULER) $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).cc -o $@
# C++-aware flex, compile with C++
lltoo = $E $(call QUIET_MESSAGE,flex++,$(<F)) \
flex -+ -f -o $(@D)/$(<F).cc $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).cc -o $@
# C++-aware flex, compile with C++
Ltoo = $(lltoo)
#------------------------------------------------------------------------------

View File

@ -1,11 +0,0 @@
SUFFIXES += .L .ll
# Use C++-aware Flex
Ltoo = $E $(call QUIET_MESSAGE,flex++,$(<F)) \
flex -+ -f -o $(@D)/$(<F).C $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@
# Use regular (C) Flex, but compile result as C++
lltoo = $E $(call QUIET_MESSAGE,flex,$(<F)) \
flex -f -o $(@D)/$(<F).cc $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).cc -o $@

View File

@ -1,9 +1,12 @@
#------------------------------------------------------------------------------
SUFFIXES += .ly .lyy .lyy-m4
# Lemon via wrapper, compile with C
lytoo = $E $(call QUIET_MESSAGE,lemon,$(<F)) \
$(WM_SCRIPTS)/wrap-lemon -d$(@D) $< && \
$(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(*F).c -o $@
# Lemon via wrapper, compile with C++
lyytoo = $E $(call QUIET_MESSAGE,lemon,$(<F)) \
$(WM_SCRIPTS)/wrap-lemon -d$(@D) -ecc $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(*F).cc -o $@

View File

@ -4,7 +4,6 @@ SUFFIXES=
include $(GENERAL_RULES)/version
include $(GENERAL_RULES)/flex
include $(GENERAL_RULES)/flex++
## include $(GENERAL_RULES)/byacc
## include $(GENERAL_RULES)/btyacc++
include $(GENERAL_RULES)/bison