Makefile.am 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. ## Process this file with automake to produce Makefile.in
  2. protoc_inputs = \
  3. conformance.proto
  4. protoc_outputs = \
  5. conformance.pb.cc \
  6. conformance.pb.h
  7. bin_PROGRAMS = conformance-test-runner conformance-cpp
  8. conformance_test_runner_LDADD = $(top_srcdir)/src/libprotobuf.la
  9. conformance_test_runner_SOURCES = conformance_test.cc conformance_test_runner.cc
  10. nodist_conformance_test_runner_SOURCES = conformance.pb.cc
  11. conformance_test_runner_CPPFLAGS = -I$(top_srcdir)/src
  12. conformance_cpp_LDADD = $(top_srcdir)/src/libprotobuf.la
  13. conformance_cpp_SOURCES = conformance_cpp.cc
  14. nodist_conformance_cpp_SOURCES = conformance.pb.cc
  15. conformance_cpp_CPPFLAGS = -I$(top_srcdir)/src
  16. if USE_EXTERNAL_PROTOC
  17. protoc_middleman: $(protoc_inputs)
  18. $(PROTOC) -I$(srcdir) --cpp_out=. --java_out=. --ruby_out=. $^
  19. touch protoc_middleman
  20. else
  21. # We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is
  22. # relative to srcdir, which may not be the same as the current directory when
  23. # building out-of-tree.
  24. protoc_middleman: $(top_srcdir)/src/protoc$(EXEEXT) $(protoc_inputs)
  25. oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. --cpp_out=$$oldpwd --java_out=$$oldpwd --ruby_out=$$oldpwd $(protoc_inputs) )
  26. touch protoc_middleman
  27. endif
  28. $(protoc_outputs): protoc_middleman
  29. BUILT_SOURCES = $(protoc_outputs)
  30. CLEANFILES = $(protoc_outputs) protoc_middleman javac_middleman conformance-java conformance-csharp
  31. MAINTAINERCLEANFILES = \
  32. Makefile.in
  33. javac_middleman: ConformanceJava.java protoc_middleman
  34. javac -classpath ../java/target/classes ConformanceJava.java com/google/protobuf/conformance/Conformance.java
  35. @touch javac_middleman
  36. conformance-java: javac_middleman
  37. @echo "Writing shortcut script conformance-java..."
  38. @echo '#! /bin/sh' > conformance-java
  39. @echo 'java -classpath .:../java/target/classes ConformanceJava "$$@"' >> conformance-java
  40. @chmod +x conformance-java
  41. # Currently the conformance code is alongside the rest of the C#
  42. # source, as it's easier to maintain there. We assume we've already
  43. # built that, so we just need a script to run it.
  44. conformance-csharp:
  45. @echo "Writing shortcut script conformance-csharp..."
  46. @echo '#! /bin/sh' > conformance-csharp
  47. @echo 'mono ../csharp/src/Google.Protobuf.Conformance/bin/Release/Google.Protobuf.Conformance.exe "$$@"' >> conformance-csharp
  48. @chmod +x conformance-csharp
  49. # Targets for actually running tests.
  50. test_cpp: protoc_middleman conformance-test-runner conformance-cpp
  51. ./conformance-test-runner --failure_list failure_list_cpp.txt ./conformance-cpp
  52. test_java: protoc_middleman conformance-test-runner conformance-java
  53. ./conformance-test-runner ./conformance-java
  54. test_csharp: protoc_middleman conformance-test-runner conformance-csharp
  55. ./conformance-test-runner --failure_list failure_list_csharp.txt ./conformance-csharp
  56. test_ruby: protoc_middleman conformance-test-runner
  57. RUBYLIB=../ruby/lib:. ./conformance-test-runner --failure_list failure_list_ruby.txt ./conformance_ruby.rb