summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Makefile
blob: f340625b877a05ca7bc32496ffa790d57d2c527d (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
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
#----------------------------------------------------------------------------
#
# $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 = Property \
                Concurrency

  ifeq ($(corba_messaging),1)
  TAO_ORBSVCS += Naming \
                 Time \
                 RTSched

    TAO_ORBSVCS += RTEvent \
                   NativeCosEvent \
                   CosEvent \
                   RTOLDEvent \
                   RTSchedEvent \
		   RTKokyuEvent \
                   CosEventLog \
                   RTEventLog \
                   NotifyLog

  TAO_ORBSVCS += Trader \
                 AV \
                 Log
  endif #corba_messaging

  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.
    ifeq ($(corba_messaging),1)
      TAO_ORBSVCS += LifeCycle
      TAO_ORBSVCS += FaultTolerance
      TAO_ORBSVCS += FTORB
      TAO_ORBSVCS += RTCORBAEvent

      # 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
    endif #corba_messaging

    TAO_ORBSVCS += ImplRepo # This is for Craig R

  endif # minimum_corba

  ifeq ($(interceptors),1)
      TAO_ORBSVCS += RTCosScheduling
  endif #RTCosScheduling

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

   ifeq ($(corba_messaging),1)
     TAO_ORBSVCS += Notify
   endif # corba_messaging

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

endif # TAO_ORBSVCS

# The order in this list is no longer important.  Inter=library dependencies
# are handled by the targets at the bottom of this file.
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  RTSched, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTSched, $(MKLIST)))
    MKLIST += Makefile.RTSched
  endif
endif
ifneq (,$(findstring  RTOLDEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTOLDEvent, $(MKLIST)))
    MKLIST += Makefile.RTOLDEvent
  endif
endif
ifneq (,$(findstring  RTSchedEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTSchedEvent, $(MKLIST)))
    MKLIST += Makefile.RTSchedEvent
  endif
endif
ifneq (,$(findstring  RTKokyuEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTKokyuEvent, $(MKLIST)))
    MKLIST += Makefile.RTKokyuEvent
  endif
endif
ifneq (,$(findstring  RTCosScheduling, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTCosScheduling, $(MKLIST)))
    MKLIST += Makefile.RTCosScheduling
  endif
endif
ifneq (,$(findstring  RTCORBAEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.RTCORBAEvent, $(MKLIST)))
    MKLIST += Makefile.RTCORBAEvent
  endif
endif
ifneq (,$(findstring  CosEvent, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.CosEvent, $(MKLIST)))
    MKLIST += Makefile.CosEvent
  endif
endif
ifneq (,$(findstring  Trader, $(TAO_ORBSVCS)))
  ifeq (,$(findstring Makefile.CosTrading, $(MKLIST)))
    MKLIST += Makefile.CosTrading
  endif
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  CosEventLog, $(TAO_ORBSVCS)))
  # The CosEventLog 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 Makefile.PortableGroup
endif
ifneq (,$(findstring  FaultTolerance, $(TAO_ORBSVCS)))
  MKLIST += Makefile.FTORB Makefile.FaultTolerance Makefile.PortableGroup
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

# Since Makefiles can appear multiple times in MKLIST, we sort them to 
# remove duplicates and assign the list to "thelist".
thelist = $(sort $(MKLIST))
#----------------------------------------------------------------------------
#       Local rules
#----------------------------------------------------------------------------

# A list of all possible targets
targets = all debug profile install deinstall clean clobber depend rcs_info idl_stubs realclean

all: ORBSVCS_COMPONENTS

# This is the rule for all the standard targets listed above.  The dependencies
# are formed by adding "-<target name>" to each Makefile listed in MKLIST, e.g.,
# Makefile.CosNaming-all.
$(targets): %: $(addsuffix -%, $(thelist))

# This is the rule that matches targets like Makefile.CosNaming-all.  We use
# the subst function to split it into two pieces on the '-'.  The first part
# is the name of the Makefile we want to run, and the second is the name
# of the target we pass. e.g., make -f Makefile.CosNaming all
Makefile.%: 
	@echo $(MAKE) -f $(word 1,$(subst -, ,$@)) $(word 2,$(subst -, ,$@))
	@$(MAKE) -f $(word 1,$(subst -, ,$@)) $(word 2,$(subst -, ,$@))

realclean: ORBSVCS_COMPONENTS_realclean

.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

# This list of targets maintains the inter-library dependencies.  The rule is
# a list of all possible Makefile-target combinations.  The part of the
# target matches the standard target and uses it to construct a list of
# dependencies that must be built first.  Follow this pattern when adding
# new services.
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.av-)): \
  Makefile.av-%: \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.CosEvent-)): \
  Makefile.CosEvent-%: \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.CosLifeCycle-)): \
  Makefile.CosLifeCycle-%: \
    Makefile.CosNaming-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.CosLoadBalancing-)): \
  Makefile.CosLoadBalancing-%: \
    Makefile.CosNaming-% \
    Makefile.PortableGroup-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.CosNaming-)): \
  Makefile.CosNaming-%: \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.CosNotification-)): \
  Makefile.CosNotification-%: \
    Makefile.Svc_Utils-% \
    Makefile.ETCL-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.CosTime-)): \
  Makefile.CosTime-%: \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.CosTrading-)): \
  Makefile.CosTrading-%: \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.DsEventLogAdmin-)): \
  Makefile.DsEventLogAdmin-%: \
    Makefile.DsLogAdmin-% \
    Makefile.CosEvent-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.DsLogAdmin-)): \
  Makefile.DsLogAdmin-%: \
    Makefile.ETCL-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.DsNotifyLogAdmin-)): \
  Makefile.DsNotifyLogAdmin-%: \
    Makefile.DsEventLogAdmin-% \
    Makefile.DsLogAdmin-% \
    Makefile.CosNotification-% \
    Makefile.CosNaming-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.FTORB-)): \
  Makefile.FTORB-%: \
    Makefile.PortableGroup-% \
    Makefile.CosNaming-% \
    Makefile.CosNotification-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.FaultTolerance-)): \
  Makefile.FaultTolerance-%: \
    Makefile.FTORB-% \
    Makefile.PortableGroup-% \
    Makefile.CosNaming-% \
    Makefile.CosNotification-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.IFRService-)): \
  Makefile.IFRService-%: \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.Metrics-)): \
  Makefile.Metrics-%: \
    Makefile.RTSched-% \
    Makefile.CosTime-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.PortableGroup-)): \
  Makefile.PortableGroup-%: \
    Makefile.CosNaming-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RTCORBAEvent-)): \
  Makefile.RTCORBAEvent-%: \
    Makefile.RTEvent-% \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RTEvent-)): \
  Makefile.RTEvent-%: \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RTEventLogAdmin-)): \
  Makefile.RTEventLogAdmin-%: \
    Makefile.RTEvent-% \
    Makefile.DsLogAdmin-% \
    Makefile.CosEvent-% \
    Makefile.CosNaming-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RTKokyuEvent-)): \
  Makefile.RTKokyuEvent-%: \
    Makefile.RTEvent-% \
    Makefile.RTSched-% \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RT_Notification-)): \
  Makefile.RT_Notification-%: \
    Makefile.CosNotification-% \
    Makefile.Svc_Utils-% \
    Makefile.ETCL-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RTOLDEvent-)): \
  Makefile.RTOLDEvent-%: \
    Makefile.RTEvent-% \
    Makefile.RTSched-% \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RTSched-)): \
  Makefile.RTSched-%: \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.RTSchedEvent-)): \
  Makefile.RTSchedEvent-%: \
    Makefile.RTEvent-% \
    Makefile.RTSched-% \
    Makefile.CosNaming-% \
    Makefile.Svc_Utils-%
$(foreach ext, $(targets), $(addsuffix $(ext),Makefile.SSLIOP-)): \
  Makefile.SSLIOP-%: \
    Makefile.Security-%