summaryrefslogtreecommitdiff
path: root/src/parser/smt/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/smt/Makefile.am')
-rw-r--r--src/parser/smt/Makefile.am47
1 files changed, 33 insertions, 14 deletions
diff --git a/src/parser/smt/Makefile.am b/src/parser/smt/Makefile.am
index aa6835ce4..8e2aa77b1 100644
--- a/src/parser/smt/Makefile.am
+++ b/src/parser/smt/Makefile.am
@@ -4,11 +4,21 @@ AM_CPPFLAGS = -D__BUILDING_CVC4PARSERLIB
noinst_LTLIBRARIES = libparsersmt.la
+ANTLR_TOKEN_STUFF = \
+ @srcdir@/generated/SmtVocabularyTokenTypes.hpp \
+ @srcdir@/generated/SmtVocabularyTokenTypes.txt \
+ @srcdir@/generated/AntlrSmtParserTokenTypes.hpp \
+ @srcdir@/generated/AntlrSmtParserTokenTypes.txt
+ANTLR_LEXER_STUFF = \
+ @srcdir@/generated/AntlrSmtLexer.hpp \
+ @srcdir@/generated/AntlrSmtLexer.cpp
+ $(ANTLR_TOKEN_STUFF)
+ANTLR_PARSER_STUFF = \
+ @srcdir@/generated/AntlrSmtParser.hpp \
+ @srcdir@/generated/AntlrSmtParser.cpp
ANTLR_STUFF = \
- AntlrSmtLexer.hpp \
- AntlrSmtLexer.cpp \
- AntlrSmtParser.hpp \
- AntlrSmtParser.cpp
+ $(ANTLR_LEXER_STUFF) \
+ $(ANTLR_PARSER_STUFF)
libparsersmt_la_SOURCES = \
SmtLexer.g \
@@ -16,14 +26,23 @@ libparsersmt_la_SOURCES = \
$(ANTLR_STUFF)
BUILT_SOURCES = $(ANTLR_STUFF)
-CLEAN_FILES = $(ANTLR_STUFF)
+dist-hook: $(ANTLR_STUFF)
+MAINTAINERCLEANFILES = $(ANTLR_STUFF)
+maintainerclean-local:
+ -rmdir @srcdir@/generated
+ -rm -f @srcdir@/stamp-generated
-"@srcdir@/.generated":
- mkdir -p "@srcdir@/generated"
-
-"@srcdir@/generated/AntlrSmtLexer.cpp": SmtLexer.g "@srcdir@/generated"
- $(ANTLR) -o "@srcdir@/generated" "$<"
-"@srcdir@/generated/AntlrSmtParser.cpp": SmtParser.g SmtVocabularyTokenTypes.hpp SmtVocabularyTokenTypes.txt "@srcdir@/generated"
- $(ANTLR) -o "@srcdir@/generated" "$<"
-AntlrSmtLexer.hpp SmtVocabularyTokenTypes.hpp SmtVocabularyTokenTypes.txt: AntlrSmtLexer.cpp
-AntlrSmtParser.hpp: AntlrSmtParser.cpp
+@srcdir@/stamp-generated:
+ mkdir -p @srcdir@/generated
+ touch @srcdir@/stamp-generated
+# antlr doesn't overwrite output files, it just leaves them. So we have to delete them first.
+$(ANTLR_LEXER_STUFF): SmtLexer.g @srcdir@/stamp-generated
+ -rm -f $(ANTLR_LEXER_STUFF)
+ $(ANTLR) -o "@srcdir@/generated" "@srcdir@/SmtLexer.g"
+# doesn't actually depend on the lexer, but if we're doing parallel
+# make and the lexer needs to be rebuilt, we have to keep the rules
+# from running in parallel (since the token files will be deleted &
+# recreated)
+$(ANTLR_PARSER_STUFF): SmtParser.g SmtLexer.g $(ANTLR_TOKEN_STUFF) @srcdir@/stamp-generated
+ -rm -f $(ANTLR_PARSER_STUFF)
+ $(ANTLR) -o "@srcdir@/generated" "@srcdir@/SmtParser.g"
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback