GEN  = $(srcdir)/tools/generate.rb
SRC1 = $(top_srcdir)/parse.y
SRC2 = $(srcdir)/eventids2.c
LRAMA = $(BASERUBY) $(top_srcdir)/tool/lrama/exe/lrama

# mkdepend: scan eventids1.c => include/ruby/ruby.h
# mkdepend: depends eventids1.c => eventids1.h {$(VPATH)}eventids1.c
# mkdepend: define ripper.y => RIPPER
# mkdepend: scan ripper.y => parse.y
# mkdepend: scan ripper_init.c => ext/ripper/ripper_init.c.tmpl
# mkdepend: depends eventids2table.c => {$(VPATH)}eventids2table.c
# mkdepend: depends ripper.c => {$(VPATH)}ripper.c
# mkdepend: depends ripper_init.c => {$(VPATH)}ripper_init.c

.SUFFIXES: .y

src: ripper.c ripper_init.c eventids1.c eventids1.h eventids2table.c
ripper.c ripper_init.c eventids1.c eventids1.h eventids2table.c: depend

ripper.o: ripper.c

.y.c:
	$(ECHO) compiling compiler $<
	$(Q) $(LRAMA) -o$@ - $< < $<

all: check
static: check

ripper.y: $(srcdir)/tools/preproc.rb $(srcdir)/tools/dsl.rb $(top_srcdir)/parse.y $(top_srcdir)/defs/id.def
	$(ECHO) extracting $@ from $(top_srcdir)/parse.y
	$(Q) $(RUBY) $(top_srcdir)/tool/id2token.rb $(top_srcdir)/parse.y | \
	$(RUBY) $(srcdir)/tools/preproc.rb --output=$@ - ripper.y

check: .eventids2-check

.eventids2-check: $(GEN) $(SRC1) $(SRC2)
	$(ECHO) checking $(SRC1) and $(SRC2)
	$(Q) $(RUBY) $(GEN) --mode=check --ids1src=$(SRC1) --ids2src=$(SRC2)
	@exit > $@

eventids1.h: $(GEN) $(srcdir)/tools/dsl.rb $(SRC1)
	$(ECHO) generating $@ from $(SRC1)
	$(Q) $(RUBY) $(GEN) --mode=eventids1_h --ids1src=$(SRC1) --output=$@

eventids1.c: $(GEN) $(srcdir)/tools/dsl.rb $(SRC1)
	$(ECHO) generating $@ from $(SRC1)
	$(Q) $(RUBY) $(GEN) --mode=eventids1 --ids1src=$(SRC1) --output=$@

eventids2table.c: $(GEN) $(srcdir)/tools/dsl.rb $(SRC2)
	$(ECHO) generating $@ from $(SRC2)
	$(Q) $(RUBY) $(GEN) --mode=eventids2table --ids2src=$(SRC2) --output=$@

ripper_init.c: $(srcdir)/ripper_init.c.tmpl ripper.y $(srcdir)/tools/preproc.rb $(top_srcdir)/internal/ruby_parser.h
	$(ECHO) generating $@ from $(srcdir)/ripper_init.c.tmpl
	$(Q) $(RUBY) $(srcdir)/tools/preproc.rb --output=$@ --template=$(srcdir)/ripper_init.c.tmpl $(top_srcdir)/internal/ruby_parser.h

# Entries for Ripper maintainer

preproc: ripper.E
ripper.E: ripper.c
	$(ECHO) preprocessing ripper.c
	$(Q) $(CC) -E $(INCFLAGS) $(CPPFLAGS) $< | $(RUBY) $(srcdir)/tools/strip.rb > $@

# AUTOGENERATED DEPENDENCIES START
eventids1.o: {$(VPATH)}eventids1.c
eventids2.o: eventids2.c
ripper.o: ripper.y
ripper_init.o: {$(VPATH)}ripper_init.c
# AUTOGENERATED DEPENDENCIES END
