summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2015-02-23 16:22:42 -0600
committerPhil Mesnier <mesnier_p@ociweb.com>2015-02-23 16:22:42 -0600
commitfeacd91489b9bfaa5770100b49987fc7aae6ac7c (patch)
tree8f63b03d0706ab8431e85397c8990f511fa5fc8b /TAO
parentccbab7725d6abf854960b97544555ac2e65287ec (diff)
downloadATCD-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.mpc9
-rw-r--r--TAO/TAO_IDL/tao_idl_be.mpc281
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
}
}
-