Skip to content
Snippets Groups Projects
Commit eaa65913 authored by Mark OLESEN's avatar Mark OLESEN
Browse files

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
parent 6dd8804a
Branches
Tags
No related merge requests found
#------------------------------------------------------------------------------
SUFFIXES += .Y .y .yy .yy-m4 SUFFIXES += .Y .y .yy .yy-m4
# Bison, compile with C
ytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \ ytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \
bison -v -d -y $< && \ bison -v -d -y $< && \
mv y.tab.c $(@D)/$(<F).c && \ mv y.tab.c $(@D)/$(<F).c && \
mv y.tab.h $(@D)/$(<F).h && \ mv y.tab.h $(@D)/$(<F).h && \
$(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@
# Bison, compile with C++
Ytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \ Ytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \
bison -v -d -y $< && \ 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 && \ 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)) \ yytoo = $E $(call QUIET_MESSAGE,bison,$(<F)) \
$(WM_SCRIPTS)/wrap-bison -output=$(@D)/$(*F).tab.cc -v -d $< && \ $(WM_SCRIPTS)/wrap-bison -output=$(@D)/$(*F).tab.cc -v -d $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(*F).tab.cc -o $@ $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(*F).tab.cc -o $@
......
SUFFIXES += .l #------------------------------------------------------------------------------
SUFFIXES += .L .l .ll
# Regular flex, compile with C
ltoo = $E $(call QUIET_MESSAGE,flex,$(<F)) \ ltoo = $E $(call QUIET_MESSAGE,flex,$(<F)) \
flex -f -o $(@D)/$(<F).c $< && \ flex -f -o $(@D)/$(<F).c $< && \
$(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(<F).c -o $@ $(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)
#------------------------------------------------------------------------------
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 $@
#------------------------------------------------------------------------------
SUFFIXES += .ly .lyy .lyy-m4 SUFFIXES += .ly .lyy .lyy-m4
# Lemon via wrapper, compile with C
lytoo = $E $(call QUIET_MESSAGE,lemon,$(<F)) \ lytoo = $E $(call QUIET_MESSAGE,lemon,$(<F)) \
$(WM_SCRIPTS)/wrap-lemon -d$(@D) $< && \ $(WM_SCRIPTS)/wrap-lemon -d$(@D) $< && \
$(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(*F).c -o $@ $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $(@D)/$(*F).c -o $@
# Lemon via wrapper, compile with C++
lyytoo = $E $(call QUIET_MESSAGE,lemon,$(<F)) \ lyytoo = $E $(call QUIET_MESSAGE,lemon,$(<F)) \
$(WM_SCRIPTS)/wrap-lemon -d$(@D) -ecc $< && \ $(WM_SCRIPTS)/wrap-lemon -d$(@D) -ecc $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(*F).cc -o $@ $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(*F).cc -o $@
......
...@@ -4,7 +4,6 @@ SUFFIXES= ...@@ -4,7 +4,6 @@ SUFFIXES=
include $(GENERAL_RULES)/version include $(GENERAL_RULES)/version
include $(GENERAL_RULES)/flex include $(GENERAL_RULES)/flex
include $(GENERAL_RULES)/flex++
## include $(GENERAL_RULES)/byacc ## include $(GENERAL_RULES)/byacc
## include $(GENERAL_RULES)/btyacc++ ## include $(GENERAL_RULES)/btyacc++
include $(GENERAL_RULES)/bison include $(GENERAL_RULES)/bison
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment