summaryrefslogtreecommitdiff
path: root/TAO/rules.tao.GNU
blob: 57c82439b482bae07ed340f0b8016330be709680 (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
#----------------------------------------------------------------------------
#
#       $Id$
#
#       Common rules for all of TAO
#
#----------------------------------------------------------------------------

####
#### Required macros for TAO.
####
ifndef TAO_ROOT
  TAO_ROOT = $(ACE_ROOT)/TAO
endif

ifndef TAO_IDL
  TAO_IDL = $(TAO_ROOT)/TAO_IDL/tao_idl
endif

ifdef COMSPEC
  #### Assume we're on a WIN32 host.
  ifndef CPP_LOCATION
    #### Assume we have Bourne shell and sed.  Otherwise, the user
    #### should find out here that the CPP_LOCATION environment
    #### variable must be set explicitly!
    CPP_LOCATION := $(shell type $(CXX) | sed 's/.* is //')
  endif # ! CPP_LOCATION
endif # ! CPP_LOCATION


####
#### Macro customization.
####
ifeq ($(findstring g++,$(CXX)),g++)
  ifeq ($(ACE_HAS_GNUG_PRE_2_8),1)
    #### g++ < 2.8 complains about unused parameters in generated code.
    CCFLAGS += -Wno-unused
  endif # g++ < 2.8
endif # g++

ifeq ($(minimum_corba),1)
  CPPFLAGS += -DTAO_HAS_MINIMUM_CORBA
else  # ! minimum_corba
  override minimum_corba =
endif # ! minimum_corba

ifeq (1,$(CROSS-COMPILE))
else
ifeq (1,$(ACE_HAS_GNUG_PRE_2_8))
else
  #### Enable the interface repository by default
  interface_repo=1
endif # ! ACE_HAS_GNUG_PRE_2_8
endif # ! CROSS-COMPILE

ifeq ($(interface_repo),1)
  CPPFLAGS += -DTAO_HAS_INTERFACE_REPOSITORY
endif # interface_repo


####
#### Build rules.
####
IDL_EXT=C.h C.i C.cpp S.h S.i S.cpp S_T.h S_T.i S_T.cpp
IDL_EXT2=Cli.h Cli.i Cli.cpp Ser.h Ser.i Ser.cpp Ser_T.h Ser_T.i Ser_T.cpp

.SUFFIXES: $(IDL_EXT)

ifneq ($(use_flick),1)
$(foreach ext, $(IDL_EXT) $(IDL_EXT2), %$(ext)): %.idl $(TAO_IDL)
	$(TAO_IDL) $(TAO_IDLFLAGS) $<
else
#### You can redefine the following in your platform_macros.GNU

ifndef FLICK_SRCDIR
  FLICK_SRCDIR  =       /project/doc/nanbor/mom
endif
ifndef FLICK_OBJDIR
  FLICK_OBJDIR  =       /project/doc/nanbor/dad
endif

CCFLAGS += -I$(FLICK_OBJDIR)/runtime/headers -I$(FLICK_SRCDIR)/runtime/headers

CORBA_FE=$(FLICK_OBJDIR)/bin/flick-fe-newcorba
CORBA_PG=$(FLICK_OBJDIR)/bin/flick-c-pfe-corbaxx
CORBA_BE=$(FLICK_OBJDIR)/bin/flick-c-pbe-iiopxx

$(foreach ext, $(IDL_EXT) $(IDL_EXT2), %$(ext)): %.idl
	$(CORBA_FE) $< && \
	$(CORBA_PG) -c -o $*-client.prc $*.aoi && \
	$(CORBA_BE) $*-client.prc -o $*C.cpp -h $*C.h -f $*S.h --presentation_implementation $(FLICK_SRCDIR)/runtime/headers/flick/pres/tao_cxx.scml && \
	echo > $*C.i
	$(CORBA_FE) $< && \
	$(CORBA_PG) -s -o $*-server.prc $*.aoi && \
	$(CORBA_BE) $*-server.prc --no_mu_stubs -o $*S.cpp -h $*S.h -F $*C.h --presentation_implementation $(FLICK_SRCDIR)/runtime/headers/flick/pres/tao_cxx.scml && \
	echo > $*S.i && \
        echo > $*S_T.h && \
        echo > $*S_T.i && \
        echo > $*S_T.cpp

endif