summaryrefslogtreecommitdiff
path: root/ext/ripper/depend
blob: eef9ad78fcce2ced2a78931736cdbe945c636ade (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Do not remove "./"; nmake requires this.
ripper.o: ./ripper.c lex.c eventids1.c eventids2.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c ./ripper.c

ripper.c: ripper.y
	bison -t -v -o$@ ripper.y

ripper.y: $(hdrdir)/parse.y $(srcdir)/tools/preproc.rb
	$(RUBY) $(srcdir)/tools/preproc.rb $(hdrdir)/parse.y > $@

eventids1.c: $(hdrdir)/parse.y $(srcdir)/tools/list-parse-event-ids.rb $(srcdir)/tools/generate-eventids1.rb
	$(RUBY) $(srcdir)/tools/list-parse-event-ids.rb $(hdrdir)/parse.y | $(RUBY) $(srcdir)/tools/generate-eventids1.rb > $@

lex.c:
	cp $(hdrdir)/lex.c . || cp $(srcdir)/lex.c .

#
# Entries for ripper developpers (no srcdir/objdir support)
#
lib/ripper.rb: ripper.rb.in ids1 ids2 tools/generate-ripper_rb.rb
	$(RUBY) tools/generate-ripper_rb.rb ripper.rb.in ids1 ids2 > $@

ids1: tools/list-parse-event-ids.rb ../../parse.y
	$(RUBY) tools/list-parse-event-ids.rb -a ../../parse.y > $@

ids2: $(srcdir)/tools/list-scan-event-ids.rb eventids2.c
	$(RUBY) tools/list-scan-event-ids.rb -a eventids2.c > $@

test: ripper.so test/*.*
	$(RUBY) test/check-event-arity.rb $(hdrdir)/parse.y
	sh test/check-event-coverage.sh
	$(RUBY) test/check-scanner-event-coverage.rb
	$(RUBY) test/validate.rb > /dev/null
	@echo OK

preproc: ripper.E
ripper.E: ripper.c
	$(CC) -E $(CPPFLAGS) ripper.c | ruby tools/strip.rb > $@