r2corba 1.4.1

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 (254) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +159 -0
  3. data/LICENSE +59 -0
  4. data/README +62 -0
  5. data/THANKS +52 -0
  6. data/bin/r2corba +8 -0
  7. data/bin/ridlc +11 -0
  8. data/bin/rins +7 -0
  9. data/ext/ext.mwc +6 -0
  10. data/ext/extload/extload.c +60 -0
  11. data/ext/libr2tao/any.cpp +1543 -0
  12. data/ext/libr2tao/exception.cpp +202 -0
  13. data/ext/libr2tao/exception.h +104 -0
  14. data/ext/libr2tao/longdouble.cpp +173 -0
  15. data/ext/libr2tao/longdouble.h +31 -0
  16. data/ext/libr2tao/object.cpp +1150 -0
  17. data/ext/libr2tao/object.h +38 -0
  18. data/ext/libr2tao/orb.cpp +1029 -0
  19. data/ext/libr2tao/orb.h +36 -0
  20. data/ext/libr2tao/r2tao_export.h +45 -0
  21. data/ext/libr2tao/r2tao_ext.h +38 -0
  22. data/ext/libr2tao/required.cpp +463 -0
  23. data/ext/libr2tao/required.h +187 -0
  24. data/ext/libr2tao/typecode.cpp +888 -0
  25. data/ext/libr2tao/typecode.h +45 -0
  26. data/ext/libr2tao/values.cpp +2938 -0
  27. data/ext/libr2tao/values.h +396 -0
  28. data/ext/librpoa/iortable.cpp +250 -0
  29. data/ext/librpoa/poa.cpp +1076 -0
  30. data/ext/librpoa/poa.h +24 -0
  31. data/ext/librpoa/rpoa_export.h +44 -0
  32. data/ext/librpoa/servant.cpp +1338 -0
  33. data/ext/librpoa/servant.h +116 -0
  34. data/ext/librpoa/srvreq_fix.cpp +283 -0
  35. data/ext/librpoa/srvreq_fix.h +149 -0
  36. data/ext/librpol/policies.cpp +763 -0
  37. data/ext/librpol/policies.h +15 -0
  38. data/ext/librpol/rpol_export.h +44 -0
  39. data/lib/corba/cbase/IORMap.rb +33 -0
  40. data/lib/corba/cbase/ORB.rb +231 -0
  41. data/lib/corba/cbase/Request.rb +134 -0
  42. data/lib/corba/cbase/Streams.rb +129 -0
  43. data/lib/corba/cbase/Stub.rb +19 -0
  44. data/lib/corba/cbase/Typecode.rb +441 -0
  45. data/lib/corba/cbase/Values.rb +129 -0
  46. data/lib/corba/cbase/exception.rb +66 -0
  47. data/lib/corba/cbase/poa.rb +23 -0
  48. data/lib/corba/cbase/policies.rb +78 -0
  49. data/lib/corba/cbase/post_require.rb +14 -0
  50. data/lib/corba/cbase/require.rb +28 -0
  51. data/lib/corba/cmds/base.rb +85 -0
  52. data/lib/corba/cmds/test.rb +30 -0
  53. data/lib/corba/common/Any.rb +91 -0
  54. data/lib/corba/common/IDL.rb +104 -0
  55. data/lib/corba/common/ORB.rb +368 -0
  56. data/lib/corba/common/Object.rb +208 -0
  57. data/lib/corba/common/Request.rb +20 -0
  58. data/lib/corba/common/Servant.rb +108 -0
  59. data/lib/corba/common/Struct.rb +22 -0
  60. data/lib/corba/common/Stub.rb +79 -0
  61. data/lib/corba/common/Typecode.rb +1121 -0
  62. data/lib/corba/common/Union.rb +56 -0
  63. data/lib/corba/common/Values.rb +92 -0
  64. data/lib/corba/common/const.rb +22 -0
  65. data/lib/corba/common/exception.rb +68 -0
  66. data/lib/corba/common/require.rb +27 -0
  67. data/lib/corba/common/version.rb +22 -0
  68. data/lib/corba/idl/IDL.rb +21 -0
  69. data/lib/corba/idl/IORTable.pidl +62 -0
  70. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  71. data/lib/corba/idl/require.rb +20 -0
  72. data/lib/corba/jbase/Any.rb +273 -0
  73. data/lib/corba/jbase/IORMap.rb +36 -0
  74. data/lib/corba/jbase/ORB.rb +99 -0
  75. data/lib/corba/jbase/Object.rb +98 -0
  76. data/lib/corba/jbase/Request.rb +226 -0
  77. data/lib/corba/jbase/Servant.rb +247 -0
  78. data/lib/corba/jbase/ServerRequest.rb +128 -0
  79. data/lib/corba/jbase/Streams.rb +671 -0
  80. data/lib/corba/jbase/Stub.rb +38 -0
  81. data/lib/corba/jbase/Typecode.rb +520 -0
  82. data/lib/corba/jbase/Values.rb +173 -0
  83. data/lib/corba/jbase/exception.rb +106 -0
  84. data/lib/corba/jbase/poa.rb +229 -0
  85. data/lib/corba/jbase/policies.rb +300 -0
  86. data/lib/corba/jbase/post_require.rb +14 -0
  87. data/lib/corba/jbase/require.rb +86 -0
  88. data/lib/corba/naming.rb +14 -0
  89. data/lib/corba/naming_service.rb +15 -0
  90. data/lib/corba/poa.rb +15 -0
  91. data/lib/corba/policies.rb +18 -0
  92. data/lib/corba/require.rb +17 -0
  93. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  94. data/lib/corba/svcs/ins/ins.rb +526 -0
  95. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  96. data/lib/corba.rb +16 -0
  97. data/lib/ridlbe/ruby/config.rb +336 -0
  98. data/lib/ridlbe/ruby/require.rb +16 -0
  99. data/lib/ridlbe/ruby/walker.rb +1582 -0
  100. data/mkrf_conf_srcgem.rb +186 -0
  101. data/rakelib/bin.rake +80 -0
  102. data/rakelib/bin.rb +146 -0
  103. data/rakelib/build.rake +87 -0
  104. data/rakelib/config.rake +52 -0
  105. data/rakelib/config.rb +450 -0
  106. data/rakelib/ext.rake +242 -0
  107. data/rakelib/ext.rb +308 -0
  108. data/rakelib/ext_r2tao.rb +232 -0
  109. data/rakelib/gem.rake +212 -0
  110. data/rakelib/gem.rb +146 -0
  111. data/rakelib/package.rake +26 -0
  112. data/rakelib/test.rake +23 -0
  113. data/test/BiDirectional/Test.idl +34 -0
  114. data/test/BiDirectional/client.rb +132 -0
  115. data/test/BiDirectional/run_test.rb +68 -0
  116. data/test/BiDirectional/server.rb +169 -0
  117. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  118. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  119. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  120. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  121. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  122. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  123. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  124. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  125. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  126. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  127. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  128. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  129. data/test/Collocation/Diamond.idl +39 -0
  130. data/test/Collocation/run_test.rb +52 -0
  131. data/test/Collocation/test.rb +195 -0
  132. data/test/Connect_Timeout/Test.idl +27 -0
  133. data/test/Connect_Timeout/client.rb +111 -0
  134. data/test/Connect_Timeout/run_test.rb +52 -0
  135. data/test/DII/Test.idl +27 -0
  136. data/test/DII/client.rb +115 -0
  137. data/test/DII/run_test.rb +69 -0
  138. data/test/DII/server.rb +95 -0
  139. data/test/DSI/Test.idl +27 -0
  140. data/test/DSI/client.rb +66 -0
  141. data/test/DSI/run_test.rb +69 -0
  142. data/test/DSI/server.rb +106 -0
  143. data/test/Exceptions/Test.idl +48 -0
  144. data/test/Exceptions/client.rb +118 -0
  145. data/test/Exceptions/run_test.rb +69 -0
  146. data/test/Exceptions/server.rb +131 -0
  147. data/test/Hello/Test.idl +27 -0
  148. data/test/Hello/client.rb +78 -0
  149. data/test/Hello/run_test.rb +71 -0
  150. data/test/Hello/server.rb +95 -0
  151. data/test/IDL_Test/Test.idl +113 -0
  152. data/test/IDL_Test/Test_inc.idl +17 -0
  153. data/test/IDL_Test/client.rb +102 -0
  154. data/test/IDL_Test/run_test.rb +69 -0
  155. data/test/IDL_Test/server.rb +99 -0
  156. data/test/IORMap/Test.idl +27 -0
  157. data/test/IORMap/client.rb +73 -0
  158. data/test/IORMap/run_test.rb +69 -0
  159. data/test/IORMap/server.rb +114 -0
  160. data/test/IORTable/Test.idl +27 -0
  161. data/test/IORTable/client.rb +75 -0
  162. data/test/IORTable/run_test.rb +69 -0
  163. data/test/IORTable/server.rb +130 -0
  164. data/test/Implicit_Conversion/Test.idl +31 -0
  165. data/test/Implicit_Conversion/client.rb +110 -0
  166. data/test/Implicit_Conversion/run_test.rb +69 -0
  167. data/test/Implicit_Conversion/server.rb +99 -0
  168. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  169. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  170. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  171. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  172. data/test/Multi_Threading/Simple/Test.idl +27 -0
  173. data/test/Multi_Threading/Simple/client.rb +88 -0
  174. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  175. data/test/Multi_Threading/Simple/server.rb +118 -0
  176. data/test/Multi_Threading/Threads/Test.idl +31 -0
  177. data/test/Multi_Threading/Threads/client.rb +80 -0
  178. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  179. data/test/Multi_Threading/Threads/server.rb +119 -0
  180. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  181. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  182. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  183. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  184. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  185. data/test/Nil/Test.idl +27 -0
  186. data/test/Nil/run_test.rb +52 -0
  187. data/test/Nil/test.rb +78 -0
  188. data/test/OBV/AbstractInterface/client.rb +179 -0
  189. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  190. data/test/OBV/AbstractInterface/server.rb +149 -0
  191. data/test/OBV/AbstractInterface/test.idl +53 -0
  192. data/test/OBV/Custom/OBV.idl +18 -0
  193. data/test/OBV/Custom/OBV_impl.rb +40 -0
  194. data/test/OBV/Custom/client.rb +86 -0
  195. data/test/OBV/Custom/run_test.rb +69 -0
  196. data/test/OBV/Custom/server.rb +100 -0
  197. data/test/OBV/Simple/OBV.idl +15 -0
  198. data/test/OBV/Simple/OBV_impl.rb +26 -0
  199. data/test/OBV/Simple/client.rb +86 -0
  200. data/test/OBV/Simple/run_test.rb +69 -0
  201. data/test/OBV/Simple/server.rb +100 -0
  202. data/test/OBV/Simple_Event/Event.idl +15 -0
  203. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  204. data/test/OBV/Simple_Event/client.rb +86 -0
  205. data/test/OBV/Simple_Event/run_test.rb +69 -0
  206. data/test/OBV/Simple_Event/server.rb +100 -0
  207. data/test/OBV/Supports/client.rb +116 -0
  208. data/test/OBV/Supports/run_test.rb +69 -0
  209. data/test/OBV/Supports/server.rb +103 -0
  210. data/test/OBV/Supports/supports.idl +33 -0
  211. data/test/OBV/Supports/supports_impl.rb +57 -0
  212. data/test/OBV/Tree/client.rb +116 -0
  213. data/test/OBV/Tree/run_test.rb +69 -0
  214. data/test/OBV/Tree/server.rb +117 -0
  215. data/test/OBV/Tree/test.idl +32 -0
  216. data/test/OBV/Truncatable/Extra.idl +27 -0
  217. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  218. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  219. data/test/OBV/Truncatable/client.rb +279 -0
  220. data/test/OBV/Truncatable/run_test.rb +69 -0
  221. data/test/OBV/Truncatable/server.rb +89 -0
  222. data/test/OBV/ValueBox/client.rb +497 -0
  223. data/test/OBV/ValueBox/run_test.rb +69 -0
  224. data/test/OBV/ValueBox/server.rb +271 -0
  225. data/test/OBV/ValueBox/valuebox.idl +101 -0
  226. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  227. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  228. data/test/OBV/ValueBox/vb_union.idl +21 -0
  229. data/test/Object/Test.idl +27 -0
  230. data/test/Object/client.rb +103 -0
  231. data/test/Object/run_test.rb +69 -0
  232. data/test/Object/server.rb +126 -0
  233. data/test/POA/Test.idl +27 -0
  234. data/test/POA/run_test.rb +52 -0
  235. data/test/POA/test.rb +112 -0
  236. data/test/Param_Test/Test.idl +182 -0
  237. data/test/Param_Test/client.rb +277 -0
  238. data/test/Param_Test/run_test.rb +69 -0
  239. data/test/Param_Test/server.rb +296 -0
  240. data/test/Performance/Simple/Test.idl +27 -0
  241. data/test/Performance/Simple/client.rb +90 -0
  242. data/test/Performance/Simple/run_test.rb +69 -0
  243. data/test/Performance/Simple/server.rb +95 -0
  244. data/test/Policies/Test.idl +27 -0
  245. data/test/Policies/run_test.rb +52 -0
  246. data/test/Policies/test.rb +144 -0
  247. data/test/Timeout/client.rb +207 -0
  248. data/test/Timeout/run_test.rb +69 -0
  249. data/test/Timeout/server.rb +109 -0
  250. data/test/Timeout/test.idl +19 -0
  251. data/test/lib/assert.rb +43 -0
  252. data/test/lib/test.rb +542 -0
  253. data/test/test_runner.rb +193 -0
  254. metadata +334 -0
data/rakelib/ext.rb ADDED
@@ -0,0 +1,308 @@
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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ require File.join(File.dirname(__FILE__), 'config.rb')
15
+ require File.join(File.dirname(__FILE__), 'ext_r2tao.rb')
16
+
17
+ module R2CORBA
18
+
19
+ module Ext
20
+ ACE_FILES = [
21
+ 'ACE',
22
+ 'TAO',
23
+ 'TAO_TypeCodeFactory',
24
+ 'TAO_IFR_Client',
25
+ 'TAO_DynamicInterface',
26
+ 'TAO_Messaging',
27
+ 'TAO_PI',
28
+ 'TAO_CodecFactory',
29
+ 'TAO_Codeset',
30
+ 'TAO_DynamicAny',
31
+ 'TAO_Valuetype',
32
+ 'TAO_PortableServer',
33
+ 'TAO_AnyTypeCode',
34
+ 'TAO_BiDirGIOP',
35
+ 'TAO_IORTable',
36
+ 'TAO_ImR_Client'
37
+ ]
38
+
39
+ if get_config('with-ssl')
40
+ ACE_FILES << 'ACE_SSL'
41
+ ACE_FILES << 'TAO_Security'
42
+ ACE_FILES << 'TAO_SSLIOP'
43
+ end
44
+
45
+ def self.platform_error
46
+ raise "Unsupported platform: #{RUBY_PLATFORM}."
47
+ end
48
+
49
+ def self.is_win32
50
+ R2CORBA::Config.is_win32
51
+ end
52
+ def self.is_win64
53
+ R2CORBA::Config.is_win64
54
+ end
55
+
56
+ if is_win32
57
+ def self.sys_dlls
58
+ sysdlls = []
59
+ except_dll = R2CORBA::Config.is_win64 ? 'libgcc_s_sjlj-1.dll' : 'libgcc_s_dw2-1.dll'
60
+ ENV['PATH'].split(';').each do |p|
61
+ if File.exists?(File.join(p, except_dll)) && File.exists?(File.join(p, 'libstdc++-6.dll'))
62
+ sysdlls << File.join(p, except_dll)
63
+ sysdlls << File.join(p, 'libstdc++-6.dll')
64
+ break
65
+ end
66
+ end
67
+ sysdlls
68
+ end
69
+ end
70
+
71
+ def self.so_ext
72
+ if R2CORBA::Config.is_win32
73
+ '.dll'
74
+ elsif R2CORBA::Config.is_osx
75
+ '.dylib'
76
+ else
77
+ '.so'
78
+ end
79
+ end
80
+
81
+ def self.ace_shlibs(so_ext_ = nil, libdir = File.join(get_config('aceroot'), 'lib'))
82
+ so_ext_ ||= self.so_ext
83
+ ACE_FILES.collect { |fn| File.join(libdir, "lib#{fn}#{so_ext_}") }
84
+ end
85
+
86
+ @@osx_name = nil
87
+ if RUBY_PLATFORM =~ /darwin/
88
+ osx_ver_major, osx_ver_minor = (`uname -r`).strip.split('.')[0,2].collect {|n| n.to_i }
89
+ if osx_ver_major == 10
90
+ @@osx_name = case osx_ver_minor
91
+ when 3
92
+ 'panther'
93
+ when 4
94
+ 'tiger'
95
+ when 5
96
+ 'leopard'
97
+ when 6,7,8
98
+ 'snowleopard'
99
+ end
100
+ end
101
+ platform_error unless @@osx_name
102
+ end
103
+ def self.osx_name
104
+ @@osx_name
105
+ end
106
+
107
+ def self.ace_config
108
+ case RUBY_PLATFORM
109
+ when /mingw32/
110
+ %Q{
111
+ #define ACE_DISABLE_WIN32_ERROR_WINDOWS
112
+ #include "ace/config-win32.h"
113
+ }
114
+ when /linux/
115
+ %Q{
116
+ #define ACE_HAS_GETIFADDRS
117
+ #include "ace/config-linux.h"
118
+ }
119
+ when /sparc-solaris/
120
+ %Q{
121
+ #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
122
+ #include "ace/config-sunos5.10.h"
123
+ #undef ACE_HAS_NEW_NOTHROW
124
+ }
125
+ when /darwin/
126
+ %Q{
127
+ #define ACE_HAS_GETIFADDRS
128
+ #include "ace/config-macosx-#{osx_name}.h"
129
+ }
130
+ else
131
+ platform_error
132
+ end
133
+ end
134
+
135
+ def self.platform_macros
136
+ case RUBY_PLATFORM
137
+ when /mingw32/
138
+ (is_win64 ? %Q{
139
+ TCPU:=generic
140
+ buildbits=64
141
+ } : '') + %Q{
142
+ threads=1
143
+ ssl=#{get_config('with-ssl') ? 1 : 0}
144
+ optimize=1
145
+ debug=#{get_config('with-debug') ? 1 : 0}
146
+ fl_reactor=0
147
+ tk_reactor=0
148
+ boost=0
149
+ no_strict_aliasing=1
150
+ include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
151
+ }
152
+ when /linux/
153
+ %Q{
154
+ versioned_so=1
155
+ threads=1
156
+ ssl=#{get_config('with-ssl') ? 1 : 0}
157
+ optimize=1
158
+ debug=#{get_config('with-debug') ? 1 : 0}
159
+ fl_reactor=0
160
+ tk_reactor=0
161
+ boost=0
162
+ include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
163
+ LDFLAGS += -Wl,-rpath,#{get_config('aceinstdir')}
164
+ }
165
+ when /sparc-solaris/
166
+ %Q{
167
+ threads=1
168
+ ssl=#{get_config('with-ssl') ? 1 : 0}
169
+ inline=0
170
+ optimize=0
171
+ debug=#{get_config('with-debug') ? 1 : 0}
172
+ fl_reactor=0
173
+ tk_reactor=0
174
+ no_hidden_visibility=1
175
+ #{ /^cc/i =~ RB_CONFIG['CC'] ? 'include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU' : 'include $(ACE_ROOT)/include/makeinclude/platform_sunos5_g++.GNU' }
176
+ LDFLAGS += #{RB_CONFIG['SOLIBS']} #{ /^cc/i =~ RB_CONFIG['CC'] ? '-lCrun -lCstd' : ''}
177
+ }
178
+ when /darwin/
179
+ %Q{
180
+ threads=1
181
+ ssl=#{get_config('with-ssl') ? 1 : 0}
182
+ optimize=1
183
+ debug=#{get_config('with-debug') ? 1 : 0}
184
+ fl_reactor=0
185
+ tk_reactor=0
186
+ boost=0
187
+ include $(ACE_ROOT)/include/makeinclude/platform_macosx_#{osx_name}.GNU
188
+ LDFLAGS += -Wl,-headerpad_max_install_names
189
+ FLAGS_C_CC += #{RB_CONFIG['ARCH_FLAG']}
190
+ LDFLAGS += #{RB_CONFIG['ARCH_FLAG']}
191
+ }
192
+ else
193
+ platform_error
194
+ end
195
+ end
196
+
197
+ def self.tao_mwc
198
+ %Q{
199
+ workspace {
200
+ $(ACE_ROOT)/ace
201
+ $(ACE_ROOT)/apps/gperf/src
202
+ $(TAO_ROOT)/TAO_IDL
203
+ $(TAO_ROOT)/tao
204
+ #{get_config('with-ssl') ? '$(TAO_ROOT)/orbsvcs/orbsvcs/Security.mpc' : ''}
205
+ #{get_config('with-ssl') ? '$(TAO_ROOT)/orbsvcs/orbsvcs/SSLIOP.mpc' : ''}
206
+ exclude {
207
+ bin
208
+ docs
209
+ etc
210
+ html
211
+ include
212
+ lib
213
+ m4
214
+ man
215
+ contrib
216
+ netsvcs
217
+ websvcs
218
+ protocols
219
+ tests
220
+ performance-tests
221
+ examples
222
+ Kokyu
223
+ ASNMP
224
+ ACEXML
225
+ }
226
+ }
227
+ }
228
+ end
229
+
230
+ def self.default_features
231
+ %Q{
232
+ fl_reactor=0
233
+ tk_reactor=1
234
+ qos=0
235
+ ssl=#{get_config('with-ssl') ? 1 : 0}
236
+ ipv6=#{get_config('with-ipv6') ? 1 : 0}
237
+ }
238
+ end
239
+
240
+ def self.ace_config_path
241
+ File.join(get_config('aceroot'),'ace','config.h')
242
+ end
243
+
244
+ def self.platform_macros_path
245
+ File.join(get_config('aceroot'),'include','makeinclude','platform_macros.GNU')
246
+ end
247
+
248
+ def self.default_features_path
249
+ File.join(get_config('aceroot'),'bin','MakeProjectCreator','config','default.features')
250
+ end
251
+
252
+ def self.tao_mwc_path
253
+ File.join(get_config('aceroot'),'TAO4Ruby.mwc')
254
+ end
255
+
256
+ def self.tao_makefile
257
+ File.join(get_config('aceroot'),'GNUmakefile')
258
+ end
259
+
260
+ def self.ext_makefile
261
+ File.join('ext', 'GNUmakefile')
262
+ end
263
+
264
+ def self.post_build
265
+ # Do we handle ACE+TAO here?
266
+ if get_config('without-tao')
267
+ if R2CORBA::Config.is_osx
268
+ # configure dynamic library dependencies for Mac OSX
269
+ so_ext = '.dylib'
270
+
271
+ inst_extlibs = Dir.glob(File.join('ext', '*.bundle'))
272
+ inst_dylibs = inst_extlibs + ACE_FILES.collect {|dep| File.join(get_config('aceroot'),'lib', 'lib'+dep+so_ext)}
273
+ # cross dependencies of ext dynamic libs on each other
274
+ # make sure they refer to *.bundle NOT *.dylib
275
+ inst_extlibs.each do |extlib|
276
+ inst_extlibs.each do |dep|
277
+ dep_org = File.basename(dep, '.bundle')+so_ext
278
+ sh("install_name_tool -change #{dep_org} @rpath/#{File.basename(dep)} #{extlib}")
279
+ end
280
+ # add install directory as rpath; first delete rpath ignoring errors, next add the rpath
281
+ sh("install_name_tool -delete_rpath #{get_config('siterubyverarch')} #{extlib} >/dev/null 2>&1")
282
+ sh("install_name_tool -add_rpath #{get_config('siterubyverarch')} #{extlib}")
283
+ end
284
+ # dependencies on ACE+TAO libs
285
+ inst_dylibs.each do |dylib|
286
+ ACE_FILES.each do |dep|
287
+ command("install_name_tool -change lib#{dep+so_ext} @rpath/lib#{dep+so_ext} #{dylib}")
288
+ end
289
+ # add current dir and install dir as rpath entries; first delete rpath ignoring errors, next add the rpath
290
+ sh("install_name_tool -delete_rpath . #{dylib} >/dev/null 2>&1")
291
+ sh("install_name_tool -add_rpath . #{dylib}")
292
+ sh("install_name_tool -delete_rpath #{get_config('aceinstdir')} #{dylib} >/dev/null 2>&1")
293
+ sh("install_name_tool -add_rpath #{get_config('aceinstdir')} #{dylib}")
294
+ end
295
+ elsif !is_win32
296
+ # create unversioned ACE+TAO lib symlinks
297
+
298
+ ACE_FILES.collect {|dep| File.join(get_config('aceroot'),'lib', 'lib'+dep+'.so')}.each do |lib|
299
+ Dir.glob(lib+'.*').each {|verlib| File.symlink(verlib, lib) unless File.exists?(lib)}
300
+ end
301
+ end
302
+ end
303
+ end
304
+
305
+ end # Ext
306
+
307
+ end # R2CORBA
308
+
@@ -0,0 +1,232 @@
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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ require 'open-uri'
15
+
16
+ module R2CORBA
17
+
18
+ module Ext
19
+
20
+ if RUBY_PLATFORM =~ /mingw32/
21
+
22
+ mpc_os_block = <<OS_DEP__
23
+ libs += #{File.basename(RB_CONFIG['LIBRUBY'],'.a').sub(/^lib/,'')}
24
+ libout = .
25
+ dllout = .
26
+ verbatim(gnuace, macros, 1) {
27
+ override SOEXT := #{RB_CONFIG['DLEXT']}
28
+ }
29
+ postbuild = <%cp%> lib<%sharedname%>.so ..<%slash%>
30
+ postclean = <%rm%> ..<%slash%>lib<%sharedname%>.so
31
+ OS_DEP__
32
+
33
+ elsif RUBY_PLATFORM =~ /darwin/
34
+
35
+ mpc_os_block = <<OS_DEP__
36
+ specific(gnuace) {
37
+ linkflags += "#{RB_CONFIG['LIBRUBYARG_SHARED']}"
38
+ }
39
+ libout = .
40
+ dllout = .
41
+ specific(gnuace) {
42
+ linkflags += -headerpad_max_install_names
43
+ }
44
+ postbuild = ln -s -f lib<%sharedname%>.dylib lib<%sharedname%>.bundle
45
+ postbuild += ln -s -f lib<%sharedname%>.dylib ..<%slash%>lib<%sharedname%>.bundle
46
+ postclean = <%rm%> lib<%sharedname%>.bundle
47
+ postclean += <%rm%> ..<%slash%>lib<%sharedname%>.bundle
48
+ OS_DEP__
49
+
50
+ else
51
+
52
+ mpc_os_block = <<OS_DEP__
53
+ specific(gnuace) {
54
+ linkflags += "#{RB_CONFIG['LIBRUBYARG_SHARED']}"
55
+ linkflags += -Wl,-rpath,#{get_config('aceinstdir')}
56
+ }
57
+ libout = .
58
+ dllout = ..
59
+ OS_DEP__
60
+
61
+ end
62
+
63
+ R2TAO_MPC = <<THE_END
64
+ project : taolib, portableserver, anytypecode, dynamicany, dynamicinterface, typecodefactory {
65
+ Source_Files {
66
+ required.cpp
67
+ object.cpp
68
+ orb.cpp
69
+ exception.cpp
70
+ typecode.cpp
71
+ any.cpp
72
+ longdouble.cpp
73
+ values.cpp
74
+ }
75
+ dynamicflags = R2TAO_BUILD_DLL
76
+ includes += "#{RB_CONFIG['rubyhdrdir'] || RB_CONFIG['archdir']}" \\
77
+ #{RB_CONFIG['rubyhdrdir'] ? '"'+File.join(RB_CONFIG['rubyhdrdir'], RB_CONFIG['arch'])+'"' : ''} \\
78
+ .
79
+ macros += RUBY_VER_MAJOR=#{Config.rb_ver_major} RUBY_VER_MINOR=#{Config.rb_ver_minor} RUBY_VER_RELEASE=#{Config.rb_ver_release}
80
+ sharedname = r2tao
81
+ libpaths += "#{RB_CONFIG['libdir']}"
82
+ #{mpc_os_block}
83
+ }
84
+ THE_END
85
+
86
+ RPOA_MPC = <<THE_END
87
+ project : taolib, portableserver, anytypecode, dynamicany, dynamicinterface, typecodefactory, iortable {
88
+ after += r2tao
89
+ Source_Files {
90
+ poa.cpp
91
+ servant.cpp
92
+ iortable.cpp
93
+ }
94
+ dynamicflags = R2TAO_POA_BUILD_DLL
95
+ libpaths += #{File.join('..','libr2tao')}
96
+ includes += "#{RB_CONFIG['rubyhdrdir'] || RB_CONFIG['archdir']}" \\
97
+ #{RB_CONFIG['rubyhdrdir'] ? '"'+File.join(RB_CONFIG['rubyhdrdir'], RB_CONFIG['arch'])+'"' : ''} \\
98
+ #{File.join('..', 'libr2tao')} \\
99
+ .
100
+ macros += RUBY_VER_MAJOR=#{Config.rb_ver_major} RUBY_VER_MINOR=#{Config.rb_ver_minor} RUBY_VER_RELEASE=#{Config.rb_ver_release}
101
+ sharedname = rpoa
102
+ libpaths += "#{RB_CONFIG['libdir']}"
103
+ #{mpc_os_block}
104
+ libs += r2tao#{Config.is_win32 ? '.'+RB_CONFIG['DLEXT'] : ''}
105
+ }
106
+ THE_END
107
+
108
+ RPOL_MPC = <<THE_END
109
+ project : taolib, portableserver, anytypecode, dynamicany, dynamicinterface, typecodefactory, bidir_giop {
110
+ after += r2tao rpoa
111
+ Source_Files {
112
+ policies.cpp
113
+ }
114
+ dynamicflags = R2TAO_POL_BUILD_DLL
115
+ libpaths += #{File.join('..', 'libr2tao')} #{File.join('..', 'librpoa')}
116
+ includes += "#{RB_CONFIG['rubyhdrdir'] || RB_CONFIG['archdir']}" \\
117
+ #{RB_CONFIG['rubyhdrdir'] ? '"'+File.join(RB_CONFIG['rubyhdrdir'], RB_CONFIG['arch'])+'"' : ''} \\
118
+ #{File.join('..', 'libr2tao')} \\
119
+ #{File.join('..', 'librpoa')} \\
120
+ .
121
+ macros += RUBY_VER_MAJOR=#{Config.rb_ver_major} RUBY_VER_MINOR=#{Config.rb_ver_minor} RUBY_VER_RELEASE=#{Config.rb_ver_release}
122
+ sharedname = rpol
123
+ libpaths += "#{RB_CONFIG['libdir']}"
124
+ #{mpc_os_block}
125
+ libs += r2tao#{Config.is_win32 ? '.'+RB_CONFIG['DLEXT'] : ''}
126
+ libs += rpoa#{Config.is_win32 ? '.'+RB_CONFIG['DLEXT'] : ''}
127
+ }
128
+ THE_END
129
+
130
+
131
+ def self.r2tao_mpc_file
132
+ File.join('ext', 'libr2tao', 'r2tao.mpc')
133
+ end
134
+
135
+ def self.rpoa_mpc_file
136
+ File.join('ext', 'librpoa', 'rpoa.mpc')
137
+ end
138
+
139
+ def self.rpol_mpc_file
140
+ File.join('ext', 'librpol', 'rpol.mpc')
141
+ end
142
+
143
+ if Config.is_win32
144
+
145
+ EXTLOAD_MPC = <<THE_END__
146
+ project {
147
+ Source_Files {
148
+ extload.c
149
+ }
150
+ dynamicflags = EXTLOAD_BUILD_DLL
151
+ includes += "#{RB_CONFIG['rubyhdrdir'] || RB_CONFIG['archdir']}" \\
152
+ #{RB_CONFIG['rubyhdrdir'] ? '"'+File.join(RB_CONFIG['rubyhdrdir'], RB_CONFIG['arch'])+'"' : ''} \\
153
+ .
154
+ macros += RUBY_VER_MAJOR=#{Config.rb_ver_major} RUBY_VER_MINOR=#{Config.rb_ver_minor} RUBY_VER_RELEASE=#{Config.rb_ver_release}
155
+ sharedname = extload
156
+ libpaths += "#{RB_CONFIG['libdir']}"
157
+ libs += #{File.basename(RB_CONFIG['LIBRUBY'],'.a').sub(/^lib/,'')}
158
+ libout = .
159
+ dllout = .
160
+ verbatim(gnuace, macros, 1) {
161
+ override SOEXT := #{RB_CONFIG['DLEXT']}
162
+ }
163
+ postbuild = <%cp%> lib<%sharedname%>.so ..<%slash%>libr2taow.so
164
+ postbuild += <%cp%> lib<%sharedname%>.so ..<%slash%>librpoaw.so
165
+ postbuild += <%cp%> lib<%sharedname%>.so ..<%slash%>librpolw.so
166
+ postclean = <%rm%> ..<%slash%>libr2taow.so
167
+ postclean += <%rm%> ..<%slash%>librpoaw.so
168
+ postclean += <%rm%> ..<%slash%>librpolw.so
169
+ }
170
+ THE_END__
171
+
172
+ def self.extload_mpc_file
173
+ File.join('ext', 'extload', 'extload.mpc')
174
+ end
175
+
176
+ def self.extload_makefile
177
+ File.join('ext', 'extload', 'GNUmakefile')
178
+ end
179
+
180
+ end
181
+
182
+ def self.get_latest_ace_version
183
+ print 'Latest ACE release is '
184
+ _version = nil
185
+ open('https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/ace/Version.h?revision=HEAD') do |f|
186
+ f.each_line do |ln|
187
+ if /define\s+ACE_VERSION\s+\"(.*)\"/ =~ ln
188
+ _version = $1
189
+ end
190
+ end
191
+ end
192
+ puts _version
193
+ _version
194
+ end
195
+
196
+ def self.download_tao_source(version, targetdir)
197
+ print(_msg = "Downloading ACE+TAO-src-#{version}.tar.gz ")
198
+ _url = "http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-#{version}.tar.gz"
199
+ Net::HTTP.start("download.dre.vanderbilt.edu") do |http|
200
+ _fout = File.open(File.join(targetdir, "ACE+TAO-src-#{version}.tar.gz"), "wb")
201
+ begin
202
+ http.request_get("/previous_versions/ACE+TAO-src-#{version}.tar.gz") do |resp|
203
+ _sndlen = resp.content_length
204
+ _reclen = 0
205
+ resp.read_body do |segment|
206
+ _fout.write(segment)
207
+ if _sndlen
208
+ _reclen += segment.size
209
+ print "\r#{_msg} #{_reclen * 100 / _sndlen}\%"
210
+ else
211
+ print '#'
212
+ end
213
+ end
214
+ end
215
+ ensure
216
+ _fout.close()
217
+ puts
218
+ end
219
+ end
220
+ end
221
+
222
+ def self.ext_shlibs
223
+ (if Config.is_win32
224
+ %w{libr2taow libepoaw librpolw}
225
+ else
226
+ %w{libr2tao libepoa librpol}
227
+ end).collect {|lib| File.join('ext', lib+'.so') }
228
+ end
229
+
230
+ end
231
+
232
+ end