r2corba 1.6.1-x64-mingw-ucrt

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/README.rdoc +62 -0
  5. data/THANKS +54 -0
  6. data/bin/r2corba +8 -0
  7. data/bin/r2corba.bat +20 -0
  8. data/bin/ridlc +11 -0
  9. data/bin/ridlc.bat +23 -0
  10. data/bin/rins +7 -0
  11. data/bin/rins.bat +19 -0
  12. data/ext/.keep +0 -0
  13. data/lib/corba/cbase/IORMap.rb +32 -0
  14. data/lib/corba/cbase/ORB.rb +239 -0
  15. data/lib/corba/cbase/Request.rb +133 -0
  16. data/lib/corba/cbase/Streams.rb +128 -0
  17. data/lib/corba/cbase/Stub.rb +18 -0
  18. data/lib/corba/cbase/Typecode.rb +440 -0
  19. data/lib/corba/cbase/Values.rb +130 -0
  20. data/lib/corba/cbase/exception.rb +67 -0
  21. data/lib/corba/cbase/poa.rb +22 -0
  22. data/lib/corba/cbase/policies.rb +77 -0
  23. data/lib/corba/cbase/post_require.rb +13 -0
  24. data/lib/corba/cbase/require.rb +36 -0
  25. data/lib/corba/cmds/base.rb +84 -0
  26. data/lib/corba/cmds/test.rb +29 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +100 -0
  29. data/lib/corba/common/ORB.rb +367 -0
  30. data/lib/corba/common/Object.rb +211 -0
  31. data/lib/corba/common/Request.rb +19 -0
  32. data/lib/corba/common/Servant.rb +107 -0
  33. data/lib/corba/common/Struct.rb +21 -0
  34. data/lib/corba/common/Stub.rb +78 -0
  35. data/lib/corba/common/Typecode.rb +1147 -0
  36. data/lib/corba/common/Union.rb +60 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +21 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +34 -0
  41. data/lib/corba/common/version.rb +21 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +62 -0
  43. data/lib/corba/idl/CosNamingC.rb +460 -0
  44. data/lib/corba/idl/CosNamingS.rb +308 -0
  45. data/lib/corba/idl/IDL.rb +20 -0
  46. data/lib/corba/idl/IORTable.pidl +61 -0
  47. data/lib/corba/idl/IORTableC.rb +116 -0
  48. data/lib/corba/idl/MessagingC.rb +903 -0
  49. data/lib/corba/idl/POAC.rb +929 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +45 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +178 -0
  52. data/lib/corba/idl/r2c_orb.rb +571 -0
  53. data/lib/corba/idl/require.rb +19 -0
  54. data/lib/corba/jbase/Any.rb +274 -0
  55. data/lib/corba/jbase/IORMap.rb +35 -0
  56. data/lib/corba/jbase/ORB.rb +111 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +225 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +127 -0
  61. data/lib/corba/jbase/Streams.rb +734 -0
  62. data/lib/corba/jbase/Stub.rb +37 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +174 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +228 -0
  67. data/lib/corba/jbase/policies.rb +299 -0
  68. data/lib/corba/jbase/post_require.rb +13 -0
  69. data/lib/corba/jbase/require.rb +92 -0
  70. data/lib/corba/naming.rb +13 -0
  71. data/lib/corba/naming_service.rb +14 -0
  72. data/lib/corba/poa.rb +14 -0
  73. data/lib/corba/policies.rb +17 -0
  74. data/lib/corba/require.rb +16 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +432 -0
  76. data/lib/corba/svcs/ins/ins.rb +525 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +118 -0
  78. data/lib/corba.rb +15 -0
  79. data/lib/ridlbe/ruby/config.rb +340 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +15 -0
  82. data/lib/ridlbe/ruby/walker.rb +1605 -0
  83. data/mkrf_conf_bingem.rb +149 -0
  84. data/rakelib/bin.rake +79 -0
  85. data/rakelib/bin.rb +145 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +51 -0
  88. data/rakelib/config.rb +542 -0
  89. data/rakelib/ext.rake +183 -0
  90. data/rakelib/ext.rb +277 -0
  91. data/rakelib/ext_r2tao.rb +208 -0
  92. data/rakelib/gem.rake +251 -0
  93. data/rakelib/gem.rb +145 -0
  94. data/rakelib/package.rake +25 -0
  95. data/rakelib/test.rake +22 -0
  96. data/test/BiDirectional/Test.idl +33 -0
  97. data/test/BiDirectional/client.rb +131 -0
  98. data/test/BiDirectional/run_test.rb +67 -0
  99. data/test/BiDirectional/server.rb +167 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +26 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +120 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +81 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/server.rb +108 -0
  104. data/test/CORBA_Services/Naming/Corbaname/Test.idl +26 -0
  105. data/test/CORBA_Services/Naming/Corbaname/client.rb +84 -0
  106. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +87 -0
  107. data/test/CORBA_Services/Naming/Corbaname/server.rb +134 -0
  108. data/test/CORBA_Services/Naming/Simple/Test.idl +26 -0
  109. data/test/CORBA_Services/Naming/Simple/client.rb +83 -0
  110. data/test/CORBA_Services/Naming/Simple/run_test.rb +81 -0
  111. data/test/CORBA_Services/Naming/Simple/server.rb +108 -0
  112. data/test/Collocation/Diamond.idl +38 -0
  113. data/test/Collocation/run_test.rb +51 -0
  114. data/test/Collocation/test.rb +201 -0
  115. data/test/Connect_Timeout/Test.idl +26 -0
  116. data/test/Connect_Timeout/client.rb +109 -0
  117. data/test/Connect_Timeout/run_test.rb +51 -0
  118. data/test/DII/Test.idl +26 -0
  119. data/test/DII/client.rb +114 -0
  120. data/test/DII/run_test.rb +68 -0
  121. data/test/DII/server.rb +94 -0
  122. data/test/DSI/Test.idl +26 -0
  123. data/test/DSI/client.rb +65 -0
  124. data/test/DSI/run_test.rb +68 -0
  125. data/test/DSI/server.rb +105 -0
  126. data/test/Exceptions/Test.idl +47 -0
  127. data/test/Exceptions/client.rb +117 -0
  128. data/test/Exceptions/run_test.rb +68 -0
  129. data/test/Exceptions/server.rb +130 -0
  130. data/test/Hello/Test.idl +26 -0
  131. data/test/Hello/client.rb +77 -0
  132. data/test/Hello/run_test.rb +70 -0
  133. data/test/Hello/server.rb +94 -0
  134. data/test/IDL_Test/Test.idl +116 -0
  135. data/test/IDL_Test/Test_inc.idl +17 -0
  136. data/test/IDL_Test/client.rb +103 -0
  137. data/test/IDL_Test/run_test.rb +68 -0
  138. data/test/IDL_Test/server.rb +103 -0
  139. data/test/IORMap/Test.idl +26 -0
  140. data/test/IORMap/client.rb +72 -0
  141. data/test/IORMap/run_test.rb +68 -0
  142. data/test/IORMap/server.rb +113 -0
  143. data/test/IORTable/Test.idl +26 -0
  144. data/test/IORTable/client.rb +74 -0
  145. data/test/IORTable/run_test.rb +68 -0
  146. data/test/IORTable/server.rb +129 -0
  147. data/test/Implicit_Conversion/Test.idl +30 -0
  148. data/test/Implicit_Conversion/client.rb +112 -0
  149. data/test/Implicit_Conversion/run_test.rb +68 -0
  150. data/test/Implicit_Conversion/server.rb +98 -0
  151. data/test/Multi_Threading/Multiple_ORB/Test.idl +26 -0
  152. data/test/Multi_Threading/Multiple_ORB/client.rb +81 -0
  153. data/test/Multi_Threading/Multiple_ORB/run_test.rb +70 -0
  154. data/test/Multi_Threading/Multiple_ORB/server.rb +107 -0
  155. data/test/Multi_Threading/Simple/Test.idl +26 -0
  156. data/test/Multi_Threading/Simple/client.rb +92 -0
  157. data/test/Multi_Threading/Simple/run_test.rb +68 -0
  158. data/test/Multi_Threading/Simple/server.rb +117 -0
  159. data/test/Multi_Threading/Threads/Test.idl +27 -0
  160. data/test/Multi_Threading/Threads/client.rb +77 -0
  161. data/test/Multi_Threading/Threads/run_test.rb +75 -0
  162. data/test/Multi_Threading/Threads/server.rb +116 -0
  163. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  164. data/test/Multiple_Servant_Interfaces/Test.idl +33 -0
  165. data/test/Multiple_Servant_Interfaces/client.rb +69 -0
  166. data/test/Multiple_Servant_Interfaces/run_test.rb +68 -0
  167. data/test/Multiple_Servant_Interfaces/server.rb +101 -0
  168. data/test/Nil/Test.idl +26 -0
  169. data/test/Nil/run_test.rb +51 -0
  170. data/test/Nil/test.rb +80 -0
  171. data/test/OBV/AbstractInterface/client.rb +178 -0
  172. data/test/OBV/AbstractInterface/run_test.rb +68 -0
  173. data/test/OBV/AbstractInterface/server.rb +149 -0
  174. data/test/OBV/AbstractInterface/test.idl +52 -0
  175. data/test/OBV/Custom/OBV.idl +18 -0
  176. data/test/OBV/Custom/OBV_impl.rb +41 -0
  177. data/test/OBV/Custom/client.rb +85 -0
  178. data/test/OBV/Custom/run_test.rb +68 -0
  179. data/test/OBV/Custom/server.rb +99 -0
  180. data/test/OBV/Simple/OBV.idl +15 -0
  181. data/test/OBV/Simple/OBV_impl.rb +26 -0
  182. data/test/OBV/Simple/client.rb +85 -0
  183. data/test/OBV/Simple/run_test.rb +68 -0
  184. data/test/OBV/Simple/server.rb +99 -0
  185. data/test/OBV/Simple_Event/Event.idl +15 -0
  186. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  187. data/test/OBV/Simple_Event/client.rb +85 -0
  188. data/test/OBV/Simple_Event/run_test.rb +68 -0
  189. data/test/OBV/Simple_Event/server.rb +99 -0
  190. data/test/OBV/Supports/client.rb +115 -0
  191. data/test/OBV/Supports/run_test.rb +68 -0
  192. data/test/OBV/Supports/server.rb +102 -0
  193. data/test/OBV/Supports/supports.idl +32 -0
  194. data/test/OBV/Supports/supports_impl.rb +59 -0
  195. data/test/OBV/Tree/client.rb +115 -0
  196. data/test/OBV/Tree/run_test.rb +68 -0
  197. data/test/OBV/Tree/server.rb +116 -0
  198. data/test/OBV/Tree/test.idl +31 -0
  199. data/test/OBV/Truncatable/Extra.idl +26 -0
  200. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  201. data/test/OBV/Truncatable/Truncatable_impl.rb +85 -0
  202. data/test/OBV/Truncatable/client.rb +278 -0
  203. data/test/OBV/Truncatable/run_test.rb +68 -0
  204. data/test/OBV/Truncatable/server.rb +88 -0
  205. data/test/OBV/ValueBox/client.rb +497 -0
  206. data/test/OBV/ValueBox/run_test.rb +68 -0
  207. data/test/OBV/ValueBox/server.rb +271 -0
  208. data/test/OBV/ValueBox/valuebox.idl +101 -0
  209. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  210. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  211. data/test/OBV/ValueBox/vb_union.idl +21 -0
  212. data/test/Object/Test.idl +26 -0
  213. data/test/Object/client.rb +111 -0
  214. data/test/Object/run_test.rb +68 -0
  215. data/test/Object/server.rb +125 -0
  216. data/test/POA/Test.idl +27 -0
  217. data/test/POA/run_test.rb +51 -0
  218. data/test/POA/test.rb +111 -0
  219. data/test/Param_Test/Test.idl +182 -0
  220. data/test/Param_Test/client.rb +276 -0
  221. data/test/Param_Test/run_test.rb +68 -0
  222. data/test/Param_Test/server.rb +295 -0
  223. data/test/Performance/Simple/Test.idl +26 -0
  224. data/test/Performance/Simple/client.rb +89 -0
  225. data/test/Performance/Simple/run_test.rb +68 -0
  226. data/test/Performance/Simple/server.rb +94 -0
  227. data/test/Policies/Test.idl +26 -0
  228. data/test/Policies/run_test.rb +51 -0
  229. data/test/Policies/test.rb +142 -0
  230. data/test/Timeout/client.rb +206 -0
  231. data/test/Timeout/run_test.rb +68 -0
  232. data/test/Timeout/server.rb +108 -0
  233. data/test/Timeout/test.idl +18 -0
  234. data/test/lib/assert.rb +41 -0
  235. data/test/lib/test.rb +546 -0
  236. data/test/test_runner.rb +191 -0
  237. metadata +318 -0
data/rakelib/ext.rake ADDED
@@ -0,0 +1,183 @@
1
+ #--------------------------------------------------------------------
2
+ # ext.rake - build file
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ if defined?(JRUBY_VERSION)
14
+
15
+ namespace :r2corba do
16
+ namespace :ext do
17
+ task :build # noop
18
+ end
19
+ end
20
+
21
+ else # !JRUBY_VERSION
22
+
23
+ require File.join(File.dirname(__FILE__), 'ext.rb')
24
+
25
+ file R2CORBA::Ext.r2tao_mpc_file do |t|
26
+ File.open(t.name, 'w') {|f| f.puts R2CORBA::Ext::R2TAO_MPC }
27
+ end
28
+
29
+ file R2CORBA::Ext.rpoa_mpc_file do |t|
30
+ File.open(t.name, 'w') {|f| f.puts R2CORBA::Ext::RPOA_MPC }
31
+ end
32
+
33
+ file R2CORBA::Ext.rpol_mpc_file do |t|
34
+ File.open(t.name, 'w') {|f| f.puts R2CORBA::Ext::RPOL_MPC }
35
+ end
36
+
37
+ file R2CORBA::Ext.ext_makefile => [R2CORBA::BUILD_CFG,
38
+ R2CORBA::Ext.default_features_path,
39
+ R2CORBA::Ext.ace_config_path,
40
+ R2CORBA::Ext.platform_macros_path,
41
+ R2CORBA::Ext.r2tao_mpc_file,
42
+ R2CORBA::Ext.rpoa_mpc_file,
43
+ R2CORBA::Ext.rpol_mpc_file] do
44
+ # check availability of PERL
45
+ raise 'PERL missing! A working version of PERL in the PATH is required.' unless system('perl -v')
46
+ # configure R2TAO build
47
+ _mwc = File.join(get_config('aceroot'), 'bin', 'mwc.pl')
48
+
49
+ cur_dir = Dir.getwd
50
+ Dir.chdir 'ext'
51
+ begin
52
+ sh("perl #{_mwc} -type gnuace ext.mwc -workers #{R2CORBA::Config.cpu_cores}")
53
+ ensure
54
+ Dir.chdir cur_dir
55
+ end
56
+ end
57
+
58
+ CLOBBER.include [R2CORBA::Ext.ext_makefile, R2CORBA::Ext.r2tao_mpc_file, R2CORBA::Ext.rpoa_mpc_file, R2CORBA::Ext.rpol_mpc_file]
59
+
60
+ namespace :r2corba do
61
+ namespace :ext do
62
+ #desc 'Build extension libraries'
63
+ task :build => R2CORBA::Ext.ext_makefile do
64
+ cur_dir = Dir.getwd
65
+ Dir.chdir 'ext'
66
+ begin
67
+ sh("#{get_config('makeprog')}#{get_config('with-debug') ? ' debug=1' : ''}")
68
+ ensure
69
+ Dir.chdir cur_dir
70
+ end
71
+ R2CORBA::Ext.post_build
72
+ end
73
+
74
+ task :clobber do
75
+ cur_dir = Dir.getwd
76
+ Dir.chdir 'ext'
77
+ begin
78
+ sh("#{get_config('makeprog')} realclean") if File.exist?('GNUmakefile')
79
+ ensure
80
+ Dir.chdir cur_dir
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ Rake::Task['clobber'].enhance ['r2corba:ext:clobber']
87
+
88
+ # Do we handle ACE+TAO here?
89
+ unless get_config('without-tao')
90
+
91
+ file R2CORBA::Ext.ace_config_path => R2CORBA::BUILD_CFG do |t|
92
+ File.open(t.name, 'w') {|f|
93
+ f.puts R2CORBA::Ext.ace_config
94
+ }
95
+ end
96
+
97
+ CLOBBER.include R2CORBA::Ext.ace_config_path
98
+
99
+ file R2CORBA::Ext.platform_macros_path => R2CORBA::BUILD_CFG do |t|
100
+ File.open(t.name, 'w') {|f|
101
+ f.puts R2CORBA::Ext.platform_macros
102
+ }
103
+ end
104
+
105
+ CLOBBER.include R2CORBA::Ext.platform_macros_path
106
+
107
+ file R2CORBA::Ext.default_features_path => R2CORBA::BUILD_CFG do |t|
108
+ File.open(t.name, 'w') do |f|
109
+ f.puts R2CORBA::Ext.default_features
110
+ end
111
+ end
112
+
113
+ CLOBBER.include R2CORBA::Ext.default_features_path
114
+
115
+ file R2CORBA::Ext.tao_mwc_path => R2CORBA::BUILD_CFG do |t|
116
+ File.open(t.name, 'w') do |f|
117
+ f.puts R2CORBA::Ext.tao_mwc
118
+ end
119
+ end
120
+
121
+ CLOBBER.include R2CORBA::Ext.tao_mwc_path
122
+
123
+ file R2CORBA::Ext.tao_makefile => [R2CORBA::Ext.ace_config_path,
124
+ R2CORBA::Ext.platform_macros_path,
125
+ R2CORBA::Ext.default_features_path,
126
+ R2CORBA::Ext.tao_mwc_path] do
127
+ # check availability of PERL
128
+ raise 'PERL missing! A working version of PERL in the PATH is required.' unless system('perl -v')
129
+ # generate ACE+TAO makefile
130
+ cur_dir = Dir.getwd
131
+ Dir.chdir File.expand_path(get_config('aceroot'))
132
+ begin
133
+ sh("perl bin/mwc.pl -type gnuautobuild TAO4Ruby.mwc -workers #{R2CORBA::Config.cpu_cores}")
134
+ ensure
135
+ Dir.chdir cur_dir
136
+ end
137
+ end
138
+
139
+ CLOBBER.include R2CORBA::Ext.tao_makefile
140
+
141
+ namespace :r2corba do
142
+ namespace :ext do
143
+ task :build_tao
144
+
145
+ R2CORBA::Ext::ace_shlibs.each do |acelib|
146
+ file acelib => R2CORBA::Ext.tao_makefile do
147
+ # build ACE+TAO
148
+ cur_dir = Dir.getwd
149
+ Dir.chdir File.expand_path(get_config('aceroot'))
150
+ begin
151
+ sh("#{get_config('makeprog')} -j#{R2CORBA::Config.cpu_cores} #{get_config('with-debug') ? ' debug=1' : ''}")
152
+ ensure
153
+ Dir.chdir cur_dir
154
+ end
155
+ # touch all libraries to cover the case that the timestamps do not match
156
+ # the makefile but make triggers not rebuild as no sources have changed
157
+ touch(R2CORBA::Ext::ace_shlibs)
158
+ end
159
+ Rake::Task['r2corba:ext:build_tao'].enhance [acelib]
160
+ end
161
+
162
+ task :clobber_tao do
163
+ # clean ACE+TAO
164
+ cur_dir = Dir.getwd
165
+ ace_root = File.expand_path(get_config('aceroot'))
166
+ if File.exist?(ace_root)
167
+ Dir.chdir ace_root
168
+ begin
169
+ sh("#{get_config('makeprog')} realclean") if File.exist?('GNUmakefile')
170
+ ensure
171
+ Dir.chdir cur_dir
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
177
+
178
+ Rake::Task['r2corba:ext:build'].enhance ['r2corba:ext:build_tao']
179
+ Rake::Task['r2corba:ext:clobber'].enhance ['r2corba:ext:clobber_tao']
180
+
181
+ end # !without-tao
182
+
183
+ end # defined?(JRUBY_VERSION)
data/rakelib/ext.rb ADDED
@@ -0,0 +1,277 @@
1
+ #--------------------------------------------------------------------
2
+ # ext.rb - build file
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ require File.join(File.dirname(__FILE__), 'config.rb')
14
+ require File.join(File.dirname(__FILE__), 'ext_r2tao.rb')
15
+
16
+ module R2CORBA
17
+
18
+ module Ext
19
+ ACE_FILES = [
20
+ 'ACE',
21
+ 'TAO',
22
+ 'TAO_TypeCodeFactory',
23
+ 'TAO_IFR_Client',
24
+ 'TAO_DynamicInterface',
25
+ 'TAO_Messaging',
26
+ 'TAO_PI',
27
+ 'TAO_CodecFactory',
28
+ 'TAO_Codeset',
29
+ 'TAO_DynamicAny',
30
+ 'TAO_Valuetype',
31
+ 'TAO_PortableServer',
32
+ 'TAO_AnyTypeCode',
33
+ 'TAO_BiDirGIOP',
34
+ 'TAO_IORTable',
35
+ 'TAO_ImR_Client'
36
+ ]
37
+
38
+ if get_config('with-ssl')
39
+ ACE_FILES << 'ACE_SSL'
40
+ ACE_FILES << 'TAO_Security'
41
+ ACE_FILES << 'TAO_SSLIOP'
42
+ end
43
+
44
+ def self.platform_error
45
+ raise "Unsupported platform: #{RUBY_PLATFORM}."
46
+ end
47
+
48
+ def self.is_win32
49
+ R2CORBA::Config.is_win32
50
+ end
51
+ def self.is_win64
52
+ R2CORBA::Config.is_win64
53
+ end
54
+
55
+ if is_win32
56
+ def self.sys_dlls
57
+ sysdlls = []
58
+ except_dll = R2CORBA::Config.is_win64 ? 'libgcc_s_seh-1.dll' : 'libgcc_s_dw2-1.dll'
59
+ ENV['PATH'].split(';').each do |p|
60
+ if File.exist?(File.join(p, except_dll)) && File.exist?(File.join(p, 'libstdc++-6.dll'))
61
+ sysdlls << File.join(p, except_dll)
62
+ sysdlls << File.join(p, 'libstdc++-6.dll')
63
+ break
64
+ end
65
+ end
66
+ sysdlls
67
+ end
68
+ end
69
+
70
+ def self.so_ext
71
+ if R2CORBA::Config.is_win32
72
+ '.dll'
73
+ elsif R2CORBA::Config.is_osx
74
+ '.dylib'
75
+ else
76
+ '.so'
77
+ end
78
+ end
79
+
80
+ def self.ace_shlibs(so_ext_ = nil, libdir = File.join(get_config('aceroot'), 'lib'))
81
+ so_ext_ ||= self.so_ext
82
+ ACE_FILES.collect { |fn| File.join(libdir, "lib#{fn}#{so_ext_}") }
83
+ end
84
+
85
+ def self.ace_config
86
+ case RUBY_PLATFORM
87
+ when /mingw/
88
+ %Q{
89
+ #define ACE_DISABLE_WIN32_ERROR_WINDOWS
90
+ #include "ace/config-win32.h"
91
+ }
92
+ when /linux/
93
+ %Q{
94
+ #include "ace/config-linux.h"
95
+ }
96
+ when /sparc-solaris/
97
+ %Q{
98
+ #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
99
+ #include "ace/config-sunos5.10.h"
100
+ #undef ACE_HAS_NEW_NOTHROW
101
+ }
102
+ when /darwin/
103
+ %Q{
104
+ #include "ace/config-macosx.h"
105
+ }
106
+ else
107
+ platform_error
108
+ end
109
+ end
110
+
111
+ def self.platform_macros
112
+ case RUBY_PLATFORM
113
+ when /mingw/
114
+ (is_win64 ? %Q{
115
+ TCPU:=generic
116
+ buildbits=64
117
+ } : '') + %Q{
118
+ threads=1
119
+ ssl=#{get_config('with-ssl') ? 1 : 0}
120
+ optimize=1
121
+ debug=#{get_config('with-debug') ? 1 : 0}
122
+ fl_reactor=0
123
+ tk_reactor=0
124
+ boost=0
125
+ inline=0
126
+ include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
127
+ }
128
+ when /linux/
129
+ %Q{
130
+ versioned_so=1
131
+ ssl=#{get_config('with-ssl') ? 1 : 0}
132
+ optimize=1
133
+ debug=#{get_config('with-debug') ? 1 : 0}
134
+ include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
135
+ LDFLAGS += -Wl,-rpath,#{get_config('aceinstdir')}
136
+ }
137
+ when /sparc-solaris/
138
+ %Q{
139
+ threads=1
140
+ ssl=#{get_config('with-ssl') ? 1 : 0}
141
+ inline=0
142
+ optimize=0
143
+ debug=#{get_config('with-debug') ? 1 : 0}
144
+ fl_reactor=0
145
+ tk_reactor=0
146
+ no_hidden_visibility=1
147
+ #{ /^cc/i =~ RB_CONFIG['CC'] ? 'include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU' : 'include $(ACE_ROOT)/include/makeinclude/platform_sunos5_g++.GNU' }
148
+ LDFLAGS += #{RB_CONFIG['SOLIBS']} #{ /^cc/i =~ RB_CONFIG['CC'] ? '-lCrun -lCstd' : ''}
149
+ }
150
+ when /darwin/
151
+ %Q{
152
+ threads=1
153
+ ssl=#{get_config('with-ssl') ? 1 : 0}
154
+ optimize=1
155
+ debug=#{get_config('with-debug') ? 1 : 0}
156
+ fl_reactor=0
157
+ tk_reactor=0
158
+ boost=0
159
+ include $(ACE_ROOT)/include/makeinclude/platform_macosx.GNU
160
+ LDFLAGS += -Wl,-headerpad_max_install_names
161
+ FLAGS_C_CC += #{RB_CONFIG['ARCH_FLAG']}
162
+ LDFLAGS += #{RB_CONFIG['ARCH_FLAG']}
163
+ }
164
+ else
165
+ platform_error
166
+ end
167
+ end
168
+
169
+ def self.tao_mwc
170
+ %Q{
171
+ workspace {
172
+ $(ACE_ROOT)/ace
173
+ $(ACE_ROOT)/apps/gperf/src
174
+ $(TAO_ROOT)/TAO_IDL
175
+ $(TAO_ROOT)/tao
176
+ #{get_config('with-ssl') ? '$(TAO_ROOT)/orbsvcs/orbsvcs/Security.mpc' : ''}
177
+ #{get_config('with-ssl') ? '$(TAO_ROOT)/orbsvcs/orbsvcs/SSLIOP.mpc' : ''}
178
+ exclude {
179
+ bin
180
+ docs
181
+ etc
182
+ html
183
+ include
184
+ lib
185
+ m4
186
+ man
187
+ contrib
188
+ netsvcs
189
+ websvcs
190
+ protocols
191
+ tests
192
+ performance-tests
193
+ examples
194
+ Kokyu
195
+ ASNMP
196
+ ACEXML
197
+ }
198
+ }
199
+ }
200
+ end
201
+
202
+ def self.default_features
203
+ %Q{
204
+ qos=0
205
+ ssl=#{get_config('with-ssl') ? 1 : 0}
206
+ ipv6=#{get_config('with-ipv6') ? 1 : 0}
207
+ }
208
+ end
209
+
210
+ def self.ace_config_path
211
+ File.join(get_config('aceroot'), 'ace', 'config.h')
212
+ end
213
+
214
+ def self.platform_macros_path
215
+ File.join(get_config('aceroot'), 'include', 'makeinclude', 'platform_macros.GNU')
216
+ end
217
+
218
+ def self.default_features_path
219
+ File.join(get_config('aceroot'), 'bin', 'MakeProjectCreator', 'config', 'default.features')
220
+ end
221
+
222
+ def self.tao_mwc_path
223
+ File.join(get_config('aceroot'), 'TAO4Ruby.mwc')
224
+ end
225
+
226
+ def self.tao_makefile
227
+ File.join(get_config('aceroot'), 'GNUmakefile')
228
+ end
229
+
230
+ def self.ext_makefile
231
+ File.join('ext', 'GNUmakefile')
232
+ end
233
+
234
+ def self.post_build
235
+ # Do we handle ACE+TAO here?
236
+ if get_config('without-tao')
237
+ if R2CORBA::Config.is_osx
238
+ # configure dynamic library dependencies for Mac OSX
239
+ so_ext = '.dylib'
240
+
241
+ inst_extlibs = Dir.glob(File.join('ext', '*.bundle'))
242
+ inst_dylibs = inst_extlibs + ACE_FILES.collect {|dep| File.join(get_config('aceroot'), 'lib', 'lib' + dep + so_ext)}
243
+ # cross dependencies of ext dynamic libs on each other
244
+ # make sure they refer to *.bundle NOT *.dylib
245
+ inst_extlibs.each do |extlib|
246
+ inst_extlibs.each do |dep|
247
+ dep_org = File.basename(dep, '.bundle') + so_ext
248
+ sh("install_name_tool -change #{dep_org} @rpath/#{File.basename(dep)} #{extlib}")
249
+ end
250
+ # add install directory as rpath; first delete rpath ignoring errors, next add the rpath
251
+ sh("install_name_tool -delete_rpath #{get_config('siterubyverarch')} #{extlib} >/dev/null 2>&1")
252
+ sh("install_name_tool -add_rpath #{get_config('siterubyverarch')} #{extlib}")
253
+ end
254
+ # dependencies on ACE+TAO libs
255
+ inst_dylibs.each do |dylib|
256
+ ACE_FILES.each do |dep|
257
+ command("install_name_tool -change lib#{dep + so_ext} @rpath/lib#{dep + so_ext} #{dylib}")
258
+ end
259
+ # add current dir and install dir as rpath entries; first delete rpath ignoring errors, next add the rpath
260
+ sh("install_name_tool -delete_rpath . #{dylib} >/dev/null 2>&1")
261
+ sh("install_name_tool -add_rpath . #{dylib}")
262
+ sh("install_name_tool -delete_rpath #{get_config('aceinstdir')} #{dylib} >/dev/null 2>&1")
263
+ sh("install_name_tool -add_rpath #{get_config('aceinstdir')} #{dylib}")
264
+ end
265
+ elsif !is_win32
266
+ # create unversioned ACE+TAO lib symlinks
267
+
268
+ ACE_FILES.collect {|dep| File.join(get_config('aceroot'), 'lib', 'lib' + dep + '.so')}.each do |lib|
269
+ Dir.glob(lib + '.*').each {|verlib| File.symlink(verlib, lib) unless File.exist?(lib)}
270
+ end
271
+ end
272
+ end
273
+ end
274
+
275
+ end # Ext
276
+
277
+ end # R2CORBA
@@ -0,0 +1,208 @@
1
+ #--------------------------------------------------------------------
2
+ # ext_r2tao.rb - build file
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ require 'open-uri'
14
+
15
+ module R2CORBA
16
+
17
+ module Ext
18
+
19
+ if RUBY_PLATFORM =~ /mingw/
20
+
21
+ mpc_os_block = <<OS_DEP__
22
+ libs += #{File.basename(RB_CONFIG['LIBRUBY'], '.a').sub(/^lib/, '')}
23
+ libout = .
24
+ dllout = .
25
+ verbatim(gnuace, macros, 1) {
26
+ override SOEXT := #{RB_CONFIG['DLEXT']}
27
+ }
28
+ postbuild = <%cp%> lib<%sharedname%>.so ..<%slash%>
29
+ postclean = <%rm%> ..<%slash%>lib<%sharedname%>.so
30
+ OS_DEP__
31
+
32
+ elsif RUBY_PLATFORM =~ /darwin/
33
+
34
+ mpc_os_block = <<OS_DEP__
35
+ specific(gnuace) {
36
+ linkflags += "#{RB_CONFIG['LIBRUBYARG_SHARED']}"
37
+ }
38
+ libout = .
39
+ dllout = .
40
+ specific(gnuace) {
41
+ linkflags += -headerpad_max_install_names
42
+ }
43
+ postbuild = ln -s -f lib<%sharedname%>.dylib lib<%sharedname%>.bundle
44
+ postbuild += ln -s -f lib<%sharedname%>.dylib ..<%slash%>lib<%sharedname%>.bundle
45
+ postclean = <%rm%> lib<%sharedname%>.bundle
46
+ postclean += <%rm%> ..<%slash%>lib<%sharedname%>.bundle
47
+ OS_DEP__
48
+
49
+ else
50
+
51
+ mpc_os_block = <<OS_DEP__
52
+ specific(gnuace) {
53
+ linkflags += "#{RB_CONFIG['LIBRUBYARG_SHARED']}"
54
+ linkflags += -Wl,-rpath,#{get_config('aceinstdir')}
55
+ }
56
+ libout = .
57
+ dllout = ..
58
+ OS_DEP__
59
+
60
+ end
61
+
62
+ R2TAO_MPC = <<THE_END
63
+ project : taolib, portableserver, anytypecode, dynamicany, dynamicinterface, typecodefactory {
64
+ Source_Files {
65
+ required.cpp
66
+ object.cpp
67
+ orb.cpp
68
+ exception.cpp
69
+ typecode.cpp
70
+ any.cpp
71
+ longdouble.cpp
72
+ values.cpp
73
+ }
74
+ dynamicflags = R2TAO_BUILD_DLL
75
+ includes += "#{RB_CONFIG['rubyhdrdir'] || RB_CONFIG['archdir']}" \\
76
+ #{RB_CONFIG['rubyhdrdir'] ? '"' + File.join(RB_CONFIG['rubyhdrdir'], RB_CONFIG['arch']) + '"' : ''} \\
77
+ .
78
+ macros += RUBY_VER_MAJOR=#{Config.rb_ver_major} RUBY_VER_MINOR=#{Config.rb_ver_minor} RUBY_VER_RELEASE=#{Config.rb_ver_release}
79
+ sharedname = r2tao
80
+ libpaths += "#{RB_CONFIG['libdir']}"
81
+ #{mpc_os_block}
82
+ }
83
+ THE_END
84
+
85
+ RPOA_MPC = <<THE_END
86
+ project : taolib, portableserver, anytypecode, dynamicany, dynamicinterface, typecodefactory, iortable {
87
+ after += r2tao
88
+ Source_Files {
89
+ poa.cpp
90
+ servant.cpp
91
+ iortable.cpp
92
+ }
93
+ dynamicflags = R2TAO_POA_BUILD_DLL
94
+ libpaths += #{File.join('..', 'libr2tao')}
95
+ includes += "#{RB_CONFIG['rubyhdrdir'] || RB_CONFIG['archdir']}" \\
96
+ #{RB_CONFIG['rubyhdrdir'] ? '"' + File.join(RB_CONFIG['rubyhdrdir'], RB_CONFIG['arch']) + '"' : ''} \\
97
+ #{File.join('..', 'libr2tao')} \\
98
+ .
99
+ macros += RUBY_VER_MAJOR=#{Config.rb_ver_major} RUBY_VER_MINOR=#{Config.rb_ver_minor} RUBY_VER_RELEASE=#{Config.rb_ver_release}
100
+ sharedname = rpoa
101
+ libpaths += "#{RB_CONFIG['libdir']}"
102
+ #{mpc_os_block}
103
+ libs += r2tao#{Config.is_win32 ? '.' + RB_CONFIG['DLEXT'] : ''}
104
+ }
105
+ THE_END
106
+
107
+ RPOL_MPC = <<THE_END
108
+ project : taolib, portableserver, anytypecode, dynamicany, dynamicinterface, typecodefactory, bidir_giop {
109
+ after += r2tao rpoa
110
+ Source_Files {
111
+ policies.cpp
112
+ }
113
+ dynamicflags = R2TAO_POL_BUILD_DLL
114
+ libpaths += #{File.join('..', 'libr2tao')} #{File.join('..', 'librpoa')}
115
+ includes += "#{RB_CONFIG['rubyhdrdir'] || RB_CONFIG['archdir']}" \\
116
+ #{RB_CONFIG['rubyhdrdir'] ? '"' + File.join(RB_CONFIG['rubyhdrdir'], RB_CONFIG['arch']) + '"' : ''} \\
117
+ #{File.join('..', 'libr2tao')} \\
118
+ #{File.join('..', 'librpoa')} \\
119
+ .
120
+ macros += RUBY_VER_MAJOR=#{Config.rb_ver_major} RUBY_VER_MINOR=#{Config.rb_ver_minor} RUBY_VER_RELEASE=#{Config.rb_ver_release}
121
+ sharedname = rpol
122
+ libpaths += "#{RB_CONFIG['libdir']}"
123
+ #{mpc_os_block}
124
+ libs += r2tao#{Config.is_win32 ? '.' + RB_CONFIG['DLEXT'] : ''}
125
+ libs += rpoa#{Config.is_win32 ? '.' + RB_CONFIG['DLEXT'] : ''}
126
+ }
127
+ THE_END
128
+
129
+
130
+ def self.r2tao_mpc_file
131
+ File.join('ext', 'libr2tao', 'r2tao.mpc')
132
+ end
133
+
134
+ def self.rpoa_mpc_file
135
+ File.join('ext', 'librpoa', 'rpoa.mpc')
136
+ end
137
+
138
+ def self.rpol_mpc_file
139
+ File.join('ext', 'librpol', 'rpol.mpc')
140
+ end
141
+
142
+ def self.get_latest_ace_version
143
+ print 'Latest ACE release is '
144
+ _version = nil
145
+ open('https://raw.githubusercontent.com/DOCGroup/ACE_TAO/master/ACE/ace/Version.h') do |f|
146
+ f.each_line do |ln|
147
+ if /define\s+ACE_VERSION\s+\"(.*)\"/ =~ ln
148
+ _version = $1
149
+ end
150
+ end
151
+ end
152
+ puts _version
153
+ _version
154
+ end
155
+
156
+ # Downloading from github results in some http redirects which we first have to follow
157
+ def self.follow_url(uri_str, limit = 10)
158
+ raise ArgumentError, 'HTTP redirect too deep' if limit == 0
159
+ url = URI(uri_str)
160
+ req = Net::HTTP::Get.new(url)
161
+ response = Net::HTTP.start(url.host, url.port, use_ssl: true) { |http| http.request(req) }
162
+ case response
163
+ when Net::HTTPSuccess then uri_str
164
+ when Net::HTTPRedirection then follow_url(response['location'], limit - 1)
165
+ else
166
+ response.error!
167
+ end
168
+ end
169
+
170
+ def self.download_tao_source(version, targetdir)
171
+ version_dir = version.gsub('.', '_')
172
+ _url = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-#{version_dir}/ACE+TAO-src-#{version}.tar.gz"
173
+ print(_msg = "Downloading ACE+TAO-src-#{version}.tar.gz from #{_url}")
174
+ _fnm = File.join(targetdir, "ACE+TAO-src-#{version}.tar.gz")
175
+ # First follow all http redirects
176
+ url = URI(follow_url(_url))
177
+ Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
178
+ _fout = File.open(_fnm, 'wb')
179
+ begin
180
+ http.request_get(url) do |resp|
181
+ _sndlen = resp.content_length
182
+ _reclen = 0
183
+ resp.read_body do |segment|
184
+ _fout.write(segment)
185
+ if _sndlen
186
+ _reclen += segment.size
187
+ print "\r#{_msg} #{_reclen * 100 / _sndlen}\%"
188
+ else
189
+ print '#'
190
+ end
191
+ end
192
+ end
193
+ ensure
194
+ _fout.close()
195
+ puts
196
+ end
197
+ end
198
+ FileUtils::Verbose.sh("rm -rf #{File.join(targetdir, 'ACE_wrappers')} && tar -xzf #{_fnm} -C #{targetdir}")
199
+ FileUtils::Verbose.sh("rm -f #{_fnm} && tar --format=gnu -czf #{_fnm} -C src ACE_wrappers")
200
+ end
201
+
202
+ def self.ext_shlibs
203
+ %w{libr2tao librpoa librpol}.collect {|lib| File.join('ext', lib + '.so') }
204
+ end
205
+
206
+ end
207
+
208
+ end