summaryrefslogtreecommitdiff
path: root/cpp/rubygen/generate
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/rubygen/generate')
-rwxr-xr-xcpp/rubygen/generate26
1 files changed, 18 insertions, 8 deletions
diff --git a/cpp/rubygen/generate b/cpp/rubygen/generate
index e35a5458ea..dba3b81273 100755
--- a/cpp/rubygen/generate
+++ b/cpp/rubygen/generate
@@ -30,6 +30,8 @@ else
end
templates.each { |t| load t }
+def make_continue(lines) lines.join(" \\\n "); end
+
# Generate makefile
makefile=ARGV.grep(/.mk$/)[0]
if makefile
@@ -39,25 +41,33 @@ if makefile
Dir.chdir dir
rgen_generator=generator_files.map{ |f| "$(rgen_dir)/#{f}" }
rgen_srcs=GenFiles.get.map{ |f| "#{Outdir}/#{f}" }
- rgen_client_cpp = rgen_srcs.select { |f| f =~ /qpid\/client\/.+\.cpp$/ }
- rgen_common_cpp = rgen_srcs.select { |f| f =~ /qpid\/framing\/.+\.cpp$/ }
- rgen_h = rgen_srcs.select { |f| f =~ /.+\.h$/ }
File.open(makefile, 'w') { |out|
out << <<EOS
# Generated makefile fragment.
# Including makefile defines $(rgen_dir) $(rgen_cmd) and $(specs).
-rgen_generator=#{rgen_generator.join(" \\\n ")}
+rgen_generator=#{make_continue rgen_generator}
-rgen_client_cpp=#{rgen_client_cpp.join(" \\\n ")}
+rgen_client_cpp=#{make_continue(rgen_srcs.grep %r|/qpid/client/.+\.cpp$|)}
-rgen_common_cpp=#{rgen_common_cpp.join(" \\\n ")}
+rgen_common_cpp=#{make_continue(rgen_srcs.grep %r|qpid/framing/.+\.cpp$|)}
-rgen_h=#{rgen_h.join(" \\\n ")}
+rgen_srcs=#{make_continue rgen_srcs}
-rgen_srcs=rgen_h rgen_client_cpp rgen_common_cpp
+# Header file install rules.
+EOS
+ ["framing", "client", "broker"].each { |ns|
+ dir="qpid/#{ns}"
+ dir_ = dir.tr("/", "_")
+ regex=%r|#{dir}/.+\.h$|
+ out << <<EOS
+#{dir_}dir = $(includedir)/#{dir}
+dist_#{dir_}_HEADERS = #{make_continue rgen_srcs.grep(regex)}
+EOS
+ }
+ out << <<EOS
if GENERATE
$(rgen_srcs) $(srcdir)/#{File.basename makefile}: $(rgen_generator) $(specs)
$(rgen_cmd)