diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2015-02-23 16:22:42 -0600 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2015-02-23 16:22:42 -0600 |
commit | feacd91489b9bfaa5770100b49987fc7aae6ac7c (patch) | |
tree | 8f63b03d0706ab8431e85397c8990f511fa5fc8b /TAO | |
parent | ccbab7725d6abf854960b97544555ac2e65287ec (diff) | |
download | ATCD-feacd91489b9bfaa5770100b49987fc7aae6ac7c.tar.gz |
Restore support for statically linked builds of the IDL compiler. The BE library is subdivided to avoid "xargs ar" triggered module overwrites.
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/TAO_IDL/tao_idl.mpc | 9 | ||||
-rw-r--r-- | TAO/TAO_IDL/tao_idl_be.mpc | 281 |
2 files changed, 262 insertions, 28 deletions
diff --git a/TAO/TAO_IDL/tao_idl.mpc b/TAO/TAO_IDL/tao_idl.mpc index b3c6bbedc1a..1fe1093ca19 100644 --- a/TAO/TAO_IDL/tao_idl.mpc +++ b/TAO/TAO_IDL/tao_idl.mpc @@ -1,7 +1,6 @@ // -*- MPC -*-cr project(TAO_IDL_EXE) : aceexe, install, tao_output, tao_idl_fe { exename = tao_idl - libs += TAO_IDL_BE exeout = $(ACE_ROOT)/bin after += TAO_IDL_BE gperf includes += $(TAO_ROOT) @@ -15,6 +14,13 @@ project(TAO_IDL_EXE) : aceexe, install, tao_output, tao_idl_fe { optimize = } + specific(prop:static) { + after += TAO_IDL_BE_VIS_V + libs += TAO_IDL_BE TAO_IDL_BE_VIS_V TAO_IDL_BE_VIS_A TAO_IDL_BE_VIS_O TAO_IDL_BE_VIS_C TAO_IDL_BE_VIS_E TAO_IDL_BE_VIS_I TAO_IDL_BE_VIS_S TAO_IDL_BE_VIS_U TAO_IDL_BE_VIS_C TAO_IDL_BE_VIS_A TAO_IDL_BE_VIS_E TAO_IDL_BE_VIS_V TAO_IDL_BE_VIS_S TAO_IDL_BE_VIS_O TAO_IDL_BE + } else { + libs += TAO_IDL_BE + } + verbatim(gnuace, local) { ifeq ($(TAO_IDL_PREPROCESSOR),) ifeq ($(ACE_CC_PREPROCESSOR),) @@ -47,4 +53,3 @@ project(TAO_IDL_EXE) : aceexe, install, tao_output, tao_idl_fe { include/drv_extern.h } } - diff --git a/TAO/TAO_IDL/tao_idl_be.mpc b/TAO/TAO_IDL/tao_idl_be.mpc index c8b82e8130f..1a8aa62aaf7 100644 --- a/TAO/TAO_IDL/tao_idl_be.mpc +++ b/TAO/TAO_IDL/tao_idl_be.mpc @@ -15,38 +15,267 @@ project(TAO_IDL_BE) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe Source_Files { be - be/be_visitor_argument - be/be_visitor_array - be/be_visitor_attribute - be/be_visitor_component - be/be_visitor_component_fwd - be/be_visitor_connector - be/be_visitor_constant - be/be_visitor_enum - be/be_visitor_exception - be/be_visitor_field - be/be_visitor_home - be/be_visitor_interface - be/be_visitor_interface_fwd - be/be_visitor_module - be/be_visitor_native - be/be_visitor_operation - be/be_visitor_root - be/be_visitor_sequence - be/be_visitor_structure - be/be_visitor_structure_fwd - be/be_visitor_typecode - be/be_visitor_typedef - be/be_visitor_union - be/be_visitor_union_branch - be/be_visitor_union_fwd + conditional(!prop:static) { + be/be_visitor_argument + be/be_visitor_array + be/be_visitor_attribute + be/be_visitor_component + be/be_visitor_component_fwd + be/be_visitor_connector + be/be_visitor_constant + be/be_visitor_enum + be/be_visitor_exception + be/be_visitor_field + be/be_visitor_home + be/be_visitor_interface + be/be_visitor_interface_fwd + be/be_visitor_module + be/be_visitor_native + be/be_visitor_operation + be/be_visitor_root + be/be_visitor_sequence + be/be_visitor_structure + be/be_visitor_structure_fwd + be/be_visitor_typecode + be/be_visitor_typedef + be/be_visitor_union + be/be_visitor_union_branch + be/be_visitor_union_fwd + be/be_visitor_valuebox + be/be_visitor_valuetype + be/be_visitor_valuetype_fwd + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_A) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_A + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { + be/be_visitor_argument + be/be_visitor_array + be/be_visitor_attribute + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_C) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_C + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE_VIS_A + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { + be/be_visitor_component + be/be_visitor_component_fwd + be/be_visitor_connector + be/be_visitor_constant + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_E) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_E + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE_VIS_C + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { + be/be_visitor_enum + be/be_visitor_exception + be/be_visitor_field + be/be_visitor_home + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_I) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_I + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE_VIS_E + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { + be/be_visitor_interface + be/be_visitor_interface_fwd + be/be_visitor_module + be/be_visitor_native + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_O) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_O + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE_VIS_I + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { + be/be_visitor_operation + be/be_visitor_root + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_S) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_S + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE_VIS_O + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { + be/be_visitor_sequence + be/be_visitor_structure + be/be_visitor_structure_fwd + be/be_visitor_typecode + be/be_visitor_typedef + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_U) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_U + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE_VIS_S + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { + be/be_visitor_union + be/be_visitor_union_branch + be/be_visitor_union_fwd + } + } + + Header_Files { + be_include + } +} + +project(TAO_IDL_BE_VIS_V) : acelib, conv_lib, tao_output, tao_vc8warnings, tao_idl_fe { + sharedname = TAO_IDL_BE_VIS_V + dynamicflags += TAO_IDL_BE_BUILD_DLL + after += TAO_IDL_BE_VIS_U + includes += $(TAO_ROOT) + includes += include be_include fe + + specific { + // Override the template value for optimize. Building the backend + // with optimization turned on doesn't seem to work (at least not with + // vc6 or vc71). This is due to the use of addresses of static objects + // within the code. + optimize = + } + + Source_Files { + conditional(prop:static) { be/be_visitor_valuebox be/be_visitor_valuetype be/be_visitor_valuetype_fwd } + } Header_Files { be_include } } - |