summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Makefile
blob: 4958ee2ad31c4260bf8ea2f76192c78bf67b75ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
#----------------------------------------------------------------------------
#
# $Id$
#
#----------------------------------------------------------------------------

ifndef TAO_ROOT
  TAO_ROOT = $(ACE_ROOT)/TAO
endif # ! TAO_ROOT

MAKEFILE = Makefile

#----------------------------------------------------------------------------
#       Include macros and targets
#----------------------------------------------------------------------------

include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
include $(ACE_ROOT)/include/makeinclude/macros.GNU
include $(TAO_ROOT)/rules.tao.GNU
include $(TAO_ROOT)/taoconfig.mk

#----------------------------------------------------------------------------
#       Define local macros
#---------------------------------------------------------------------------

ifndef TAO_ORBSVCS
  #### Please see docs/configurations.html#orbsvcs for documentation of
  #### TAO_ORBSVCS.
  TAO_ORBSVCS = Naming \
                Time \
                Property \
                Sched

  ifeq ($(corba_messaging),1)
    TAO_ORBSVCS += RTEvent \
                   NativeCosEvent \
                   CosEvent \
                   RTOLDEvent \
                   RTSchedEvent \
                   EventLog \
                   RTEventLog \
                   NotifyLog
  endif #corba_messaging

  TAO_ORBSVCS += Concurrency \
                 Trader \
                 AV \
                 Log

  ifeq ($(minimum_corba),0)
      ifneq (Compilers 4.2,$(findstring Compilers 4.2,$(CC_VERSION)))
        ifeq ($(LYNXTARGET),)
	  TAO_ORBSVCS += IFRService
	endif # LYNXTARGET
      endif # findstring Compilers 4.2
  endif # minimum_corba

  ifeq ($(minimum_corba),0)

    # Trader uses DynAny which is disabled when compiling with minimum
    # CORBA support.  LifeCycle, Log, AV and Notify depend on Trader
    # so don't build them either, with minimum CORBA.

    TAO_ORBSVCS += LifeCycle

    ifeq ($(corba_messaging),1)
      TAO_ORBSVCS += FaultTolerance
      TAO_ORBSVCS += FTORB
      TAO_ORBSVCS += RTCORBAEvent
    endif #corba_messaging

    # The PortableGroup library requires several methods in the POA,
    # which are disabled by Minimum CORBA. Further it also needs AMI
    # support
    ifeq ($(ami),1)
      TAO_ORBSVCS += PortableGroup
      ifeq ($(interceptors),1)
        # The Load Balancer requires AMI and Interceptor support.
        TAO_ORBSVCS += CosLoadBalancing
      endif #interceptors
    endif #ami

    TAO_ORBSVCS += ImplRepo

  endif # minimum_corba

  ifeq ($(ssl),1)
    ifeq ($(corba_messaging),1)
      ifeq ($(interceptors),1)
        TAO_ORBSVCS += Security SSLIOP
      endif # interceptors
      endif #corba_messaging
  endif # ssl

  TAO_ORBSVCS += Notify

  ifeq ($(rt_corba),1)
    TAO_ORBSVCS += RT_Notify
  endif #rt_corba

  ifeq ($(metrics),1)
    TAO_ORBSVCS += Metrics
  endif # metrics
endif # TAO_ORBSVCS

# The order in this list is important as some libraries depend on
# others, please keep that in mind when adding or changing libraries.
MKLIST = Makefile.Svc_Utils
ifneq (,$(findstring Naming,$(TAO_ORBSVCS)))
  MKLIST += Makefile.CosNaming
endif
ifneq (,$(findstring  Time, $(TAO_ORBSVCS)))
  MKLIST += Makefile.CosTime
endif
ifneq (,$(findstring  CosLoadBalancing, $(TAO_ORBSVCS)))
  MKLIST += \
	Makefile.CosNaming \
	Makefile.PortableGroup \
	Makefile.CosLoadBalancing
endif
ifneq (,$(findstring  Concurrency, $(TAO_ORBSVCS)))
  MKLIST += Makefile.CosConcurrency
endif
ifneq (,$(findstring  Property, $(TAO_ORBSVCS)))
  MKLIST += Makefile.CosProperty
endif
ifneq (,$(findstring  AV, $(TAO_ORBSVCS)))
  # AV service depends on CosNaming and CosProperty
  ifeq (,$(findstring Naming,$(TAO_ORBSVCS)))
    MKLIST += Makefile.CosNaming
    TAO_ORBSVCS += Naming
  endif
  ifeq (,$(findstring  Property, $(TAO_ORBSVCS)))
    MKLIST += Makefile.CosProperty
    TAO_ORBSVCS += Property
  endif

  MKLIST += Makefile.av
endif
ifneq (,$(findstring  LifeCycle, $(TAO_ORBSVCS)))
  MKLIST += Makefile.CosLifeCycle
endif
ifneq (,$(findstring  RTEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTEvent, $(MKLIST)))
    MKLIST += Makefile.RTEvent
  endif
endif
ifneq (,$(findstring  Sched, $(TAO_ORBSVCS)))
  MKLIST += Makefile.RTSched
endif
ifneq (,$(findstring  Event, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTEvent, $(MKLIST)))
    MKLIST += Makefile.RTEvent
  endif
  ifeq (,$(findstring Makefile.RTSched, $(MKLIST)))
    MKLIST += Makefile.RTSched
  endif
  ifeq (,$(findstring Makefile.RTOLDEvent, $(MKLIST)))
    MKLIST += Makefile.RTOLDEvent
  endif
endif
ifneq (,$(findstring  RTOLDEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTOLDEvent, $(MKLIST)))
    MKLIST += Makefile.RTOLDEvent
  endif
endif
ifneq (,$(findstring  RTSchedEvent, $(TAO_ORBSVCS)))
  MKLIST += Makefile.RTSchedEvent
endif
ifneq (,$(findstring  RTCORBAEvent, $(TAO_ORBSVCS)))
  MKLIST += Makefile.RTCORBAEvent
endif
ifneq (,$(findstring  CosEvent, $(TAO_ORBSVCS)))
  MKLIST += Makefile.CosEvent
endif
ifneq (,$(findstring  NativeCosEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.CosEvent, $(MKLIST)))
    MKLIST += Makefile.CosEvent
  endif
endif
ifneq (,$(findstring  Trader, $(TAO_ORBSVCS)))
  MKLIST += Makefile.CosTrading
endif
ifneq (,$(findstring  Notify, $(TAO_ORBSVCS)))
  MKLIST += Makefile.ETCL Makefile.CosNotification
endif
ifneq (,$(findstring  Log, $(TAO_ORBSVCS)))
  MKLIST += Makefile.ETCL Makefile.Svc_Utils Makefile.DsLogAdmin
endif
ifneq (,$(findstring  EventLog, $(TAO_ORBSVCS)))
  # The EventLog service depends on the CosEvent service.
  ifeq (,$(findstring  CosEvent, $(TAO_ORBSVCS)))
    MKLIST += Makefile.CosEvent Makefile.DsLogAdmin
  endif
  MKLIST += Makefile.DsEventLogAdmin
endif
ifneq (,$(findstring  NotifyLog, $(TAO_ORBSVCS)))
  # The NotifyLog service depends on the Notification service.
  ifeq (,$(findstring  Notify, $(TAO_ORBSVCS)))
    MKLIST += \
      Makefile.ETCL \
      Makefile.CosNotification \
      Makefile.DsLogAdmin \
      Makefile.DsEventLogAdmin
  endif
  MKLIST += Makefile.DsNotifyLogAdmin
endif
ifneq (,$(findstring  RTEventLog, $(TAO_ORBSVCS)))
  # The RTEventLog service depends on the RTEvent service.
  ifeq (,$(findstring  RTEvent, $(TAO_ORBSVCS)))
    MKLIST += Makefile.RTEvent Makefile.DsLogAdmin
  endif
  MKLIST += Makefile.RTEventLogAdmin
endif
ifneq (,$(findstring  Security, $(TAO_ORBSVCS)))
  MKLIST += Makefile.Security
endif
ifneq (,$(findstring  SSLIOP, $(TAO_ORBSVCS)))
  # SSLIOP depends on the Security Service library
  ifeq (,$(findstring  Security, $(TAO_ORBSVCS)))
    MKLIST += Makefile.Security
  endif
  MKLIST += Makefile.SSLIOP
endif
ifneq (,$(findstring  FTORB, $(TAO_ORBSVCS)))
  MKLIST += Makefile.FTORB
endif
ifneq (,$(findstring  FaultTolerance, $(TAO_ORBSVCS)))
  MKLIST += Makefile.FTORB Makefile.FaultTolerance
endif
ifneq (,$(findstring  PortableGroup, $(TAO_ORBSVCS)))
  MKLIST += Makefile.CosNaming Makefile.PortableGroup
endif
ifneq (,$(findstring  IFRService, $(TAO_ORBSVCS)))
  MKLIST += Makefile.IFRService
endif
ifneq (,$(findstring  RT_Notify, $(TAO_ORBSVCS)))
  MKLIST += Makefile.ETCL Makefile.CosNotification Makefile.RT_Notification
endif
ifneq (,$(findstring  Metrics, $(TAO_ORBSVCS)))
  MKLIST += Makefile.Metrics
endif
#----------------------------------------------------------------------------
#       Local rules
#----------------------------------------------------------------------------

## If parallel makes (-j) are invoked , we want to make sure that the order
## of the Makefiles invoked from this Makefile is preserved.
## Recursively invoked makes from this file will still be run in parallel.
.NOTPARALLEL:

all: ORBSVCS_COMPONENTS

realclean: ORBSVCS_COMPONENTS_realclean

## Makefile.Svc_Utils.mkfile is a dummy target which will cause
## $(MAKE) -f Makefile.Svc_Utils to be invoked
%.mkfile: %
	@echo $(MAKE) -f $< $(MKFILE_TARGET)
	@$(MAKE) -f $< $(MKFILE_TARGET)

# This rule invokes make again with the list of .mkfile targets as a
# parameter.  For example, if the all target is being made, make is invoked
# as follows:
#
# make -f Makefile MKFILE_TARGET=all Makefile.Svc_Utils.mkfile \
#                                    Makefile.CosNaming.mkfile .....
all debug profile install deinstall clean clobber depend rcs_info idl_stubs realclean:
ifneq ($(MKLIST),)
	@echo $(MAKE) -f $(MAKEFILE) MKFILE_TARGET=$@ $(addsuffix .mkfile, $(MKLIST))
	@$(MAKE) -f $(MAKEFILE) MKFILE_TARGET=$@ $(addsuffix .mkfile, $(MKLIST))
endif

.PHONY: ORBSVCS_COMPONENTS
ORBSVCS_COMPONENTS:
	@sh $(ACE_ROOT)/bin/ace_components --orbsvcs --set ' $(TAO_ORBSVCS) '

.PHONY: ORBSVCS_COMPONENTS_realclean
ORBSVCS_COMPONENTS_realclean:
	-$(RM) ORBSVCS_COMPONENTS.list

#----------------------------------------------------------------------------
#       Dependencies
#----------------------------------------------------------------------------
# DO NOT DELETE THIS LINE -- g++dep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.


# IF YOU PUT ANYTHING HERE IT WILL GO AWAY