openfoam/wmake/rules/General/bison
Mark Olesen eaa65913f4 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
2025-03-19 12:10:12 +01:00

29 lines
1.1 KiB
Plaintext

#------------------------------------------------------------------------------
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).cc && \
mv y.tab.h $(@D)/$(<F).H && \
$(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 $@
# Retains intermediate m4-filtered files (-no-tmp to suppress)
yy-m4too = $E $(call QUIET_MESSAGE,bison-m4,$(<F)) \
$(WM_SCRIPTS)/wrap-bison -output=$(@D)/$(*F).tab.cc -v -d $< && \
$(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $(@D)/$(*F).tab.cc -o $@
#------------------------------------------------------------------------------