diff options
author | Mu Qiao <qiaomuf@gentoo.org> | 2011-06-26 20:27:46 +0800 |
---|---|---|
committer | Mu Qiao <qiaomuf@gentoo.org> | 2011-06-26 20:27:46 +0800 |
commit | b7ff827783049072f8afefad626522e39c092511 (patch) | |
tree | a780e7b362036388040f990f372a64496a8e67a2 /Makefile.am | |
parent | Merge remote-tracking branch 'mu/fix_arithmetic' (diff) | |
parent | Parser: use lexer rule to parse singled quoted string (diff) | |
download | libbash-b7ff827783049072f8afefad626522e39c092511.tar.gz libbash-b7ff827783049072f8afefad626522e39c092511.tar.bz2 libbash-b7ff827783049072f8afefad626522e39c092511.zip |
Merge branch 'mu/native_code'
Conflicts:
Makefile.am
bashast/features_script/features.sh.ast
bashast/gunit/simp_command.gunit
scripts/command_execution.bash
test/verify_error_output_test.sh
Diffstat (limited to 'Makefile.am')
-rw-r--r-- | Makefile.am | 55 |
1 files changed, 41 insertions, 14 deletions
diff --git a/Makefile.am b/Makefile.am index 403ecf4..3622ab9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -72,7 +72,7 @@ EBUILD_RESULT = scripts/sunpinyin-2.0.3-r1.ebuild.result TESTS = $(GUNIT_TESTS) $(BASH_TESTS) $(EBUILD_TESTS) # these get cleaned so only add autogenerated stuff or modify CLEANFILES -check_JAVA = bashast/bashastLexer.java bashast/bashastParser.java +check_JAVA = bashast/java_libbashLexer.java bashast/java_libbashParser.java AM_JAVACFLAGS = -source 1.4 -classpath @antlr_cp@ AM_CXXFLAGS = -std=c++0x @@ -92,7 +92,10 @@ AM_CPPFLAGS += -D_GLIBCXX_DEBUG endif if HAVE_GTEST -TESTS += cppunittests test/ast_printer_test.sh test/verify_bashs_test.sh test/verify_error_output_test.sh +TESTS += cppunittests \ + test/ast_printer_test.sh \ + test/verify_bashs_test.sh \ + test/verify_error_output_test.sh check_PROGRAMS = cppunittests cppunittests_SOURCES = test/run_tests.cpp \ @@ -149,24 +152,31 @@ ast_printer_LDFLAGS = -static # linking will fail ast_printer_CPPFLAGS = $(AM_CPPFLAGS) -U_GLIBCXX_DEBUG $(BOOST_CPPFLAGS) -GENERATED_PARSER_C = libbashLexer.c libbashParser.c -GENERATED_PARSER_H = libbashLexer.h libbashParser.h +GENERATED_LEXER_CPP = libbashLexer.cpp +GENERATED_LEXER_H = libbashLexer.h +GENERATED_PARSER_CPP = libbashParser.cpp +GENERATED_PARSER_H = libbashParser.h GENERATED_WALKER_CPP = libbashWalker.cpp GENERATED_WALKER_H = libbashWalker.h -BUILT_SOURCES = $(GENERATED_PARSER_C) \ +BUILT_SOURCES = $(GENERATED_PARSER_CPP) \ $(GENERATED_PARSER_H) \ + $(GENERATED_LEXER_CPP) \ + $(GENERATED_LEXER_H) \ $(GENERATED_WALKER_CPP) \ $(GENERATED_WALKER_H) \ $(check_JAVA) -CLEANFILES = $(GENERATED_PARSER_C) \ +CLEANFILES = $(GENERATED_PARSER_CPP) \ $(GENERATED_PARSER_H) \ + $(GENERATED_LEXER_CPP) \ + $(GENERATED_LEXER_H) \ $(GENERATED_WALKER_CPP) \ $(GENERATED_WALKER_H) \ $(check_JAVA) \ libbash.g \ + java_libbash.g \ libbash.tokens \ libbash.tokens.md5 \ - bashast/bashast.tokens \ + bashast/java_libbash.tokens \ libbashWalker.tokens \ javagrammar.run \ cgrammar.run \ @@ -229,7 +239,16 @@ libcppbash_la_SOURCES = src/common.h \ # separate library because we need per file CXXFLAGS # as antlr generated code does not pass our strict developer # warning settings -noinst_LTLIBRARIES = libwalker.la +noinst_LTLIBRARIES = libparser.la libwalker.la +libparser_la_SOURCES = $(GENERATED_PARSER_CPP) \ + $(GENERATED_PARSER_H) \ + $(GENERATED_LEXER_CPP) \ + $(GENERATED_LEXER_H) + +libparser_la_CXXFLAGS = -std=c++0x \ + -fvisibility=hidden \ + -fvisibility-inlines-hidden + libwalker_la_SOURCES = $(GENERATED_WALKER_CPP) \ $(GENERATED_WALKER_H) @@ -246,7 +265,7 @@ if DEVELOPER_MODE libcppbash_la_CXXFLAGS += -Wconversion -Wsign-conversion endif libcppbash_la_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden -libcppbash_la_LIBADD = libwalker.la +libcppbash_la_LIBADD = libparser.la libwalker.la EXTRA_DIST = bashast/bashast.g \ bashast/libbashWalker.g \ @@ -284,12 +303,14 @@ ANTLR = @JAVA@ -classpath @antlr_cp@ org.antlr.Tool cgrammar.run: libbash.g $(AM_V_at)touch $@.tmp $(AM_V_GEN)$(ANTLR) -fo . $< + $(AM_V_at)mv libbashParser.{c,cpp} + $(AM_V_at)mv libbashLexer.{c,cpp} $(AM_V_at)mv $@.tmp $@ libbash.g: bashast/bashast.g - $(AM_V_at)sed -e 's/ASTLabelType = CommonTree;/ASTLabelType = pANTLR3_BASE_TREE;/g' \ - -e 's/language = Java;/language = C;/g' \ - -e 's/grammar bashast;/grammar libbash;/g' $< > $@ + $(AM_V_at)$(CC) -E -x c++ -D OUTPUT_C $< > $@ + $(AM_V_at)sed -i '/^#.*/d' $@ + $(AM_V_at)sed -i 's/C_INCLUDE \(.*\)/\1/' $@ # http://www.kolpackov.net/pipermail/notes/2004-September.txt libbash.tokens.md5: libbash.tokens @@ -304,14 +325,20 @@ walker.run: bashast/libbashWalker.g libbash.tokens.md5 $(AM_V_at)mv libbashWalker.{c,cpp} $(AM_V_at)mv $@.tmp $@ -$(GENERATED_PARSER_C): cgrammar.run +$(GENERATED_PARSER_CPP): cgrammar.run $(GENERATED_PARSER_H): cgrammar.run +$(GENERATED_LEXER_CPP): cgrammar.run +$(GENERATED_LEXER_H): cgrammar.run libbash.tokens: cgrammar.run $(GENERATED_WALKER_CPP): walker.run $(GENERATED_WALKER_H): walker.run -javagrammar.run: bashast/bashast.g +java_libbash.g: bashast/bashast.g + $(AM_V_at)$(CC) -E -x c++ -D OUTPUT_JAVA $< > $@ + $(AM_V_at)sed -i '/^#.*/d' $@ + +javagrammar.run: java_libbash.g $(AM_V_at)touch $@.tmp $(AM_V_GEN)$(ANTLR) -fo bashast $< $(AM_V_at)mv $@.tmp $@ |