3 #----------------------------------------------------------------------------
7 # Common Makefile rules for all of TAO
9 #----------------------------------------------------------------------------
12 #### Required macros for TAO.
14 TAO_ROOT ?= $(ACE_ROOT)/TAO
15 TAO_ROOT := $(subst \,/,$(TAO_ROOT))
17 #This logically belongs in rules.dds.GNU but there are a few projects
18 #which reference $DDS_ROOT but do not include rules.dds.GNU
20 DDS_ROOT := $(subst \,/,$(DDS_ROOT))
23 ifeq ($(exceptions),0)
25 echo "ERROR: Emulated exceptions are not safe to use anymore, see the NEWS file"
29 #### Macro customization.
33 ACE_MAKE_OPTIONS += security
36 ifeq ($(minimum_corba),1)
39 endif # ! interceptors
40 CPPFLAGS += -DTAO_HAS_MINIMUM_CORBA=1
41 ACE_MAKE_OPTIONS += minimum_corba
43 override minimum_corba = 0
47 CPPFLAGS += -DTAO_HAS_AMI=0
50 ACE_MAKE_OPTIONS += ami
51 # The following line is not needed,
52 # the $TAO_ROOT/tao/orbconf.h file defines it by default
53 # CPPFLAGS += -DTAO_HAS_AMI=1
56 endif # ! ami_callback
62 ifeq ($(ami_poller),0)
63 CPPFLAGS += -DTAO_HAS_AMI_POLLER=0
65 override ami_poller = 1
66 # The following line is not needed,
67 # the $TAO_ROOT/tao/orbconf.h file defines it by default
68 # CPPFLAGS += -DTAO_HAS_AMI_POLLER=1
69 ACE_MAKE_OPTIONS += ami_poller
72 ifeq ($(ami_callback),0)
73 CPPFLAGS += -DTAO_HAS_AMI_CALLBACK=0
75 override ami_callback = 1
76 # The following line is not needed,
77 # the $TAO_ROOT/tao/orbconf.h file defines it by default
78 # CPPFLAGS += -DTAO_HAS_AMI_CALLBACK=1
79 ACE_MAKE_OPTIONS += ami_callback
82 ifeq ($(corba_messaging),0)
84 CPPFLAGS += -DTAO_HAS_CORBA_MESSAGING=0
85 else # corba_messaging
86 override corba_messaging = 1
87 # The following line is not needed,
88 # the $TAO_ROOT/tao/orbconf.h file defines it by default
89 # CPPFLAGS += -DTAO_HAS_CORBA_MESSAGING=1
90 ACE_MAKE_OPTIONS += corba_messaging
91 endif # corba_messaging
94 CPPFLAGS += -DTAO_HAS_RT_CORBA=0
97 # The following line is not needed,
98 # the $TAO_ROOT/tao/orbconf.h file defines it by default
99 # CPPFLAGS += -DTAO_HAS_RT_CORBA=1
100 ACE_MAKE_OPTIONS += rt_corba
103 ifeq ($(interceptors),0)
104 CPPFLAGS += -DTAO_HAS_INTERCEPTORS=0
106 override interceptors = 1
107 # The following line is not needed,
108 # the $TAO_ROOT/tao/orbconf.h file defines it by default
109 # CPPFLAGS += -DTAO_HAS_INTERCEPTORS=1
110 ACE_MAKE_OPTIONS += interceptors
113 # The following is more to document the transport_current,
114 # the $TAO_ROOT/tao/orbconf.h file defines it by default
115 # CPPFLAGS += -DTAO_HAS_TRANSPORT_CURRENT=1
116 transport_current ?= 1
118 build_tao_idl_be ?= 1
120 ifeq (1,$(CROSS-COMPILE))
121 ACE_MAKE_OPTIONS += cross_compile
123 endif # ! CROSS-COMPILE
125 # Turn on symbol versioning. The scheme that we follow is to allow
126 # applications dependent on libraries, with same version numbers (major,
127 # minor and beta) to run, but applications with dependencies on libraries
128 # with different minor or major or beta versions to fail.
130 ifeq (cmd,$(findstring cmd,$(SHELL)))
131 TAO_MAJOR_VERSION := $(shell awk "/TAO_MAJOR_VERSION/ { print $$3}" ${TAO_ROOT}/tao/Version.h)
132 TAO_MINOR_VERSION := $(shell awk "/TAO_MINOR_VERSION/ { print $$3}" ${TAO_ROOT}/tao/Version.h)
133 TAO_MICRO_VERSION := $(shell awk "/TAO_MICRO_VERSION/ { print $$3}" ${TAO_ROOT}/tao/Version.h)
134 TAO_BETA_VERSION := $(shell awk "/TAO_MICRO_VERSION/ { print $$3}" ${TAO_ROOT}/tao/Version.h)
136 TAO_MAJOR_VERSION := $(shell awk '/TAO_MAJOR_VERSION/ { print $$3}' ${TAO_ROOT}/tao/Version.h)
137 TAO_MINOR_VERSION := $(shell awk '/TAO_MINOR_VERSION/ { print $$3}' ${TAO_ROOT}/tao/Version.h)
138 TAO_MICRO_VERSION := $(shell awk '/TAO_MICRO_VERSION/ { print $$3}' ${TAO_ROOT}/tao/Version.h)
139 TAO_BETA_VERSION := $(shell awk '/TAO_MICRO_VERSION/ { print $$3}' ${TAO_ROOT}/tao/Version.h)
142 GNUACE_PROJECT_VERSION ?= $(TAO_MAJOR_VERSION).$(TAO_MINOR_VERSION).$(TAO_MICRO_VERSION)