1#
2# %CopyrightBegin%
3#
4# Copyright Ericsson AB 1997-2016. All Rights Reserved.
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10#     http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18# %CopyrightEnd%
19#
20#
21include $(ERL_TOP)/make/target.mk
22
23include $(ERL_TOP)/make/$(TARGET)/otp.mk
24
25CORBA_TOP=../../..
26
27# ----------------------------------------------------
28# Application version
29# ----------------------------------------------------
30include $(CORBA_TOP)/vsn.mk
31
32# ----------------------------------------------------
33# Release directory specification
34# ----------------------------------------------------
35RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(CORBA_VSN)
36
37# ----------------------------------------------------
38# Target Specs
39# ----------------------------------------------------
40
41MODULES= \
42	orber \
43	corba \
44	corba_boa \
45	corba_object \
46	any \
47	iop_ior \
48	orber_tc \
49	orber_typedefs \
50	orber_request_number \
51	orber_objectkeys \
52	orber_initial_references \
53	cdrlib \
54	cdr_encode \
55	cdr_decode \
56	orber_iiop \
57	orber_iiop_net \
58	orber_iiop_net_accept \
59	orber_iiop_insup \
60	orber_iiop_inproxy \
61	orber_iiop_inrequest \
62	orber_iiop_pm \
63	orber_iiop_outsup \
64	orber_iiop_outproxy \
65	orber_iiop_socketsup \
66	orber_socket \
67	orber_ifr \
68	orber_ifr_aliasdef \
69	orber_ifr_arraydef \
70	orber_ifr_attributedef \
71	orber_ifr_constantdef \
72	orber_ifr_contained \
73	orber_ifr_container \
74	orber_ifr_enumdef \
75	orber_ifr_exceptiondef \
76	orber_ifr_idltype \
77	orber_ifr_interfacedef \
78	orber_ifr_irobject \
79	orber_ifr_moduledef \
80	orber_ifr_operationdef \
81	orber_ifr_orb \
82	orber_ifr_primitivedef \
83	orber_ifr_repository \
84	orber_ifr_sequencedef \
85	orber_ifr_stringdef \
86	orber_ifr_wstringdef \
87	orber_ifr_structdef \
88	orber_ifr_typecode \
89	orber_ifr_typedef \
90	orber_ifr_uniondef \
91	orber_ifr_fixeddef \
92	orber_ifr_utils \
93	OrberApp_IFR_impl \
94	orber_pi \
95	orber_web \
96	orber_web_server \
97	orber_iiop_tracer \
98	orber_iiop_tracer_silent \
99	orber_iiop_tracer_stealth \
100	fixed \
101	orber_exceptions \
102	orber_diagnostics \
103	orber_acl \
104	orber_env \
105	orber_tb
106
107ASN_MODULES = OrberCSIv2
108ASN_SET = $(ASN_MODULES:%=%.set.asn)
109ASN_ASNS = $(ASN_MODULES:%=%.asn1)
110GEN_ASN_ERL = $(ASN_MODULES:%=%.erl)
111GEN_ASN_HRL = $(ASN_MODULES:%=%.hrl)
112GEN_ASN_DBS = $(ASN_MODULES:%=%.asn1db)
113GEN_ASN_TABLES = $(ASN_MODULES:%=%.table)
114
115PKIX_FILES = \
116	OrberCSIv2.asn1 \
117	PKIXAttributeCertificate.asn1 \
118	PKIX1Explicit88.asn1 \
119	PKIX1Algorithms88.asn1 \
120	PKIX1Implicit88.asn1 \
121	OrberCSIv2.set.asn
122
123EXTERNAL_HRL_FILES= ../include/corba.hrl \
124	../include/ifr_types.hrl \
125	../include/orber_pi.hrl
126
127INTERNAL_HRL_FILES = \
128	orber_iiop.hrl \
129	ifr_objects.hrl \
130	orber_ifr.hrl
131
132ERL_FILES= $(MODULES:%=%.erl)
133
134GEN_ERL_FILES1 =  \
135	oe_erlang.erl \
136	erlang_pid.erl \
137	erlang_port.erl \
138	erlang_ref.erl \
139	erlang_binary.erl
140
141GEN_ERL_FILES2 =  \
142	oe_CORBA.erl
143
144GEN_ERL_FILES3 =  \
145	oe_OrberIFR.erl \
146	OrberApp_IFR.erl
147
148GEN_ERL_FILES =  $(GEN_ERL_FILES1) $(GEN_ERL_FILES2) \
149	$(GEN_ERL_FILES3) \
150#	$(GEN_ASN_ERL)
151
152GEN_HRL_FILES1 = \
153	oe_erlang.hrl \
154	erlang.hrl
155
156GEN_HRL_FILES2 = \
157	CORBA.hrl \
158	oe_CORBA.hrl
159
160GEN_HRL_FILES3 = \
161	OrberApp_IFR.hrl \
162	oe_OrberIFR.hrl \
163	OrberApp.hrl
164
165GEN_HRL_FILES_EXT = $(GEN_HRL_FILES1)
166
167GEN_HRL_FILES_LOC = $(GEN_HRL_FILES2) $(GEN_HRL_FILES3) \
168#	$(GEN_ASN_HRL)
169
170
171GEN_FILES = \
172	$(GEN_ERL_FILES) \
173	$(GEN_HRL_FILES_LOC) \
174	$(GEN_HRL_FILES_EXT) \
175#	$(GEN_ASN_DBS) \
176#	$(GEN_ASN_TABLES)
177
178TARGET_FILES =  \
179	$(GEN_ERL_FILES:%.erl=$(EBIN)/%.$(EMULATOR)) \
180	$(MODULES:%=$(EBIN)/%.$(EMULATOR))
181
182APPUP_FILE = orber.appup
183APPUP_SRC = $(APPUP_FILE).src
184APPUP_TARGET = $(EBIN)/$(APPUP_FILE)
185
186APP_FILE = orber.app
187APP_SRC = $(APP_FILE).src
188APP_TARGET = $(EBIN)/$(APP_FILE)
189
190# ----------------------------------------------------
191# FLAGS
192# ----------------------------------------------------
193ERL_IDL_FLAGS += -pa $(CORBA_TOP)/lib/orber/ebin  -pa $(CORBA_TOP)/lib/ic/ebin
194ERL_COMPILE_FLAGS += $(ERL_IDL_FLAGS) \
195	-I../include \
196	+'{parse_transform,sys_pre_attributes}' \
197	+'{attribute,insert,app_vsn,"orber_$(CORBA_VSN)"}'
198
199ASN_FLAGS = -bber +der +compact_bit_string +nowarn_unused_record
200
201# ----------------------------------------------------
202# Targets
203# ----------------------------------------------------
204debug:
205	@${MAKE} TYPE=debug opt
206
207opt: $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET)
208
209clean:
210	rm -f $(TARGET_FILES) $(GEN_FILES) $(APP_TARGET) $(APPUP_TARGET) IDL-GENERATED
211	rm -f errs core *~
212
213$(APP_TARGET): $(APP_SRC) $(CORBA_TOP)/vsn.mk
214	$(vsn_verbose)sed -e 's;%VSN%;$(CORBA_VSN);' $< > $@
215
216$(APPUP_TARGET): $(APPUP_SRC) $(CORBA_TOP)/vsn.mk
217	$(vsn_verbose)sed -e 's;%VSN%;$(CORBA_VSN);' $< > $@
218
219docs:
220
221# ----------------------------------------------------
222# Special Build Targets
223# ----------------------------------------------------
224
225IDL-GENERATED:  $(CORBA_TOP)/lib/ic/include/erlang.idl CORBA.idl OrberIFR.idl
226	$(gen_verbose)erlc $(ERL_IDL_FLAGS) $(CORBA_TOP)/lib/ic/include/erlang.idl
227	$(V_at)erlc $(ERL_IDL_FLAGS) CORBA.idl
228	$(V_at)erlc $(ERL_IDL_FLAGS) +'{this,"Orber::IFR"}' OrberIFR.idl
229	$(V_at)>IDL-GENERATED
230
231$(GEN_ERL_FILES): IDL-GENERATED
232$(TARGET_FILES): IDL-GENERATED
233
234$(GEN_ASN_ERL) $(GEN_ASN_HRL): OrberCSIv2.asn1 OrberCSIv2.set.asn
235	$(asn_verbose)erlc $(ERL_COMPILE_FLAGS) $(ASN_FLAGS) +'{inline,"OrberCSIv2"}' OrberCSIv2.set.asn
236	$(V_at)rm -f $(GEN_ASN_ERL:%.erl=%.beam)
237
238# ----------------------------------------------------
239# Release Target
240# ----------------------------------------------------
241include $(ERL_TOP)/make/otp_release_targets.mk
242
243
244release_spec: opt
245	$(INSTALL_DIR) "$(RELSYSDIR)/ebin"
246	$(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) "$(RELSYSDIR)/ebin"
247	$(INSTALL_DIR) "$(RELSYSDIR)/src"
248	$(INSTALL_DATA) $(ERL_FILES) $(YRL_FILE) $(GEN_HRL_FILES_LOC) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src"
249	$(INSTALL_DIR) "$(RELSYSDIR)/include"
250	$(INSTALL_DATA) $(EXTERNAL_HRL_FILES) $(GEN_HRL_FILES_EXT) "$(RELSYSDIR)/include"
251
252
253release_docs_spec:
254
255
256