1#
2# %CopyrightBegin%
3#
4# Copyright Ericsson AB 1996-2021. 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
21ifdef BOOTSTRAP
22EGEN=$(BOOTSTRAP_TOP)/lib/kernel/egen
23EBIN=$(BOOTSTRAP_TOP)/lib/kernel/ebin
24endif
25
26include $(ERL_TOP)/make/target.mk
27include $(ERL_TOP)/make/$(TARGET)/otp.mk
28
29# ----------------------------------------------------
30# Application version
31# ----------------------------------------------------
32
33# Include erts/system/vsn.mk to port number for EPMD -- we will
34# get an unwanted definition for VSN too.  Therefore,
35# we'll use KERNEL_VSN directly instead of assigning it to
36# VSN which is done in other Makefiles.
37
38include ../vsn.mk
39include $(ERL_TOP)/erts/vsn.mk
40
41include $(ERL_TOP)/erts/epmd/epmd.mk
42
43
44# ----------------------------------------------------
45# Release directory specification
46# ----------------------------------------------------
47RELSYSDIR = $(RELEASE_PATH)/lib/kernel-$(KERNEL_VSN)
48
49# ----------------------------------------------------
50# Target Specs
51# ----------------------------------------------------
52
53
54MODULES = \
55	application \
56	application_controller \
57	application_master \
58	application_starter \
59	auth \
60	code \
61	code_server \
62	disk_log \
63	disk_log_1 \
64	disk_log_server \
65	disk_log_sup \
66	dist_ac \
67	dist_util \
68	erl_boot_server \
69	erl_compile_server \
70	erl_ddll \
71	erl_distribution \
72	erl_erts_errors \
73	erl_epmd \
74	erl_kernel_errors \
75	erl_reply \
76	erl_signal_handler \
77	erpc \
78	erts_debug \
79	error_handler \
80	error_logger \
81	file \
82	file_io_server \
83	file_server \
84	gen_tcp \
85	gen_tcp_socket \
86	gen_udp \
87	gen_udp_socket \
88	gen_sctp \
89	global \
90	global_group \
91	global_search \
92	group \
93	group_history \
94	heart \
95	inet \
96	inet6_tcp \
97	inet6_tcp_dist \
98	inet6_udp \
99	inet6_sctp \
100	inet_config \
101	inet_db \
102	inet_dns \
103	inet_gethost_native \
104	inet_hosts \
105	inet_parse \
106	inet_res \
107	inet_tcp \
108	inet_tcp_dist \
109	inet_udp \
110	inet_sctp \
111	kernel \
112	kernel_config \
113	kernel_refc \
114	local_udp \
115	local_tcp \
116        logger \
117        logger_backend \
118        logger_config \
119	logger_handler_watcher \
120	logger_std_h \
121	logger_disk_log_h \
122	logger_h_common \
123	logger_filters \
124        logger_formatter \
125	logger_olp \
126	logger_proxy \
127        logger_server \
128        logger_simple_h \
129        logger_sup \
130	net \
131	net_adm \
132	net_kernel \
133	os \
134	pg \
135	pg2 \
136	ram_file \
137	rpc \
138	seq_trace \
139	socket \
140	standard_error \
141	user \
142	user_drv \
143	user_sup \
144	raw_file_io \
145	raw_file_io_compressed \
146	raw_file_io_inflate \
147	raw_file_io_deflate \
148	raw_file_io_delayed \
149	raw_file_io_list \
150	wrap_log_reader
151
152HRL_FILES= ../include/file.hrl ../include/inet.hrl ../include/inet_sctp.hrl \
153	../include/dist.hrl ../include/dist_util.hrl \
154	../include/net_address.hrl ../include/logger.hrl ../include/eep48.hrl
155
156
157INTERNAL_HRL_FILES= application_master.hrl disk_log.hrl \
158        erl_epmd.hrl file_int.hrl \
159        inet_dns.hrl inet_res.hrl \
160        inet_boot.hrl inet_config.hrl inet_int.hrl \
161	inet_dns_record_adts.hrl \
162	logger_internal.hrl logger_olp.hrl logger_h_common.hrl
163
164ERL_FILES= $(MODULES:%=%.erl)
165
166TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR)) \
167		       $(APP_TARGET) $(APPUP_TARGET)
168
169APP_FILE= kernel.app
170
171APP_SRC= $(APP_FILE).src
172APP_TARGET= $(EBIN)/$(APP_FILE)
173
174APPUP_FILE= kernel.appup
175
176APPUP_SRC= $(APPUP_FILE).src
177APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
178
179# ----------------------------------------------------
180# FLAGS
181# ----------------------------------------------------
182
183ERL_COMPILE_FLAGS += -Werror
184ERL_COMPILE_FLAGS += -I../include
185
186
187# ----------------------------------------------------
188# Targets
189# ----------------------------------------------------
190
191debug opt: $(TARGET_FILES)
192
193# Note: In the open-source build clean must not destroyed the preloaded
194# beam files.
195clean:
196	rm -f $(TARGET_FILES)
197	rm -f core
198
199
200docs:
201
202# ----------------------------------------------------
203# Special Build Targets
204# ----------------------------------------------------
205
206$(APP_TARGET): $(APP_SRC) ../vsn.mk
207	$(vsn_verbose)sed -e 's;%VSN%;$(KERNEL_VSN);' $< > $@
208
209$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk
210	$(vsn_verbose)sed -e 's;%VSN%;$(KERNEL_VSN);' $< > $@
211
212
213EPMD_FLAGS = -Depmd_port_no=$(EPMD_PORT_NO)	\
214             -Depmd_node_type=$(EPMD_NODE_TYPE)	\
215             -Depmd_dist_low=$(EPMD_DIST_LOW)	\
216             -Depmd_dist_high=$(EPMD_DIST_HIGH)	\
217             -Derlang_daemon_port=$(EPMD_PORT_NO)
218
219$(ESRC)/inet_dns_record_adts.hrl: $(ESRC)/inet_dns_record_adts.pl
220	$(gen_verbose)LANG=C $(PERL) $< > $@
221
222$(EBIN)/erl_epmd.beam: $(ESRC)/erl_epmd.erl
223	$(V_ERLC) $(ERL_COMPILE_FLAGS) $(EPMD_FLAGS) -o$(EBIN) $<
224
225# ----------------------------------------------------
226# Release Target
227# ----------------------------------------------------
228include $(ERL_TOP)/make/otp_release_targets.mk
229
230release_spec: opt
231	$(INSTALL_DIR) "$(RELSYSDIR)/src"
232	$(INSTALL_DATA) $(ERL_FILES) "$(RELSYSDIR)/src"
233	$(INSTALL_DATA) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src"
234	$(INSTALL_DIR) "$(RELSYSDIR)/include"
235	$(INSTALL_DATA) $(HRL_FILES) "$(RELSYSDIR)/include"
236	$(INSTALL_DIR) "$(RELSYSDIR)/ebin"
237	$(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin"
238
239release_docs_spec:
240
241
242# Include dependencies -- list below added by Kostis Sagonas
243$(EBIN)/application_controller.beam: application_master.hrl ../include/logger.hrl
244$(EBIN)/application_master.beam: application_master.hrl
245$(EBIN)/auth.beam: ../include/file.hrl
246$(EBIN)/code.beam: ../include/file.hrl
247$(EBIN)/code_server.beam: ../include/file.hrl
248$(EBIN)/disk_log.beam: disk_log.hrl
249$(EBIN)/disk_log_1.beam: disk_log.hrl ../include/file.hrl
250$(EBIN)/disk_log_server.beam: disk_log.hrl
251$(EBIN)/dist_util.beam: ../include/dist_util.hrl ../include/dist.hrl
252$(EBIN)/erl_boot_server.beam: inet_boot.hrl
253$(EBIN)/erl_epmd.beam: inet_int.hrl erl_epmd.hrl
254$(EBIN)/error_logger.beam: logger_internal.hrl ../include/logger.hrl
255$(EBIN)/file.beam: ../include/file.hrl file_int.hrl
256$(EBIN)/file_io_server.beam: ../include/file.hrl file_int.hrl
257$(EBIN)/gen_tcp.beam: inet_int.hrl
258$(EBIN)/gen_udp.beam: inet_int.hrl
259$(EBIN)/gen_sctp.beam: ../include/inet_sctp.hrl
260$(EBIN)/global.beam: ../../stdlib/include/ms_transform.hrl
261$(EBIN)/inet.beam: ../include/inet.hrl inet_int.hrl ../include/inet_sctp.hrl
262$(EBIN)/inet6_tcp.beam: inet_int.hrl
263$(EBIN)/inet6_tcp_dist.beam: ../include/net_address.hrl ../include/dist.hrl ../include/dist_util.hrl
264$(EBIN)/inet6_udp.beam: inet_int.hrl
265$(EBIN)/inet6_sctp.beam: inet_int.hrl
266$(EBIN)/inet_config.beam: inet_config.hrl ../include/inet.hrl
267$(EBIN)/inet_db.beam: ../include/inet.hrl inet_int.hrl inet_res.hrl inet_dns.hrl inet_config.hrl
268$(EBIN)/inet_dns.beam: inet_int.hrl inet_dns.hrl inet_dns_record_adts.hrl
269$(EBIN)/inet_gethost_native.beam: ../include/inet.hrl
270$(EBIN)/inet_hosts.beam: ../include/inet.hrl
271$(EBIN)/inet_parse.beam: ../include/file.hrl
272$(EBIN)/inet_res.beam: ../include/inet.hrl inet_res.hrl inet_dns.hrl inet_int.hrl
273$(EBIN)/inet_tcp.beam: inet_int.hrl
274$(EBIN)/inet_udp_dist.beam: ../include/net_address.hrl ../include/dist.hrl ../include/dist_util.hrl
275$(EBIN)/inet_udp.beam: inet_int.hrl
276$(EBIN)/inet_sctp.beam: inet_int.hrl ../include/inet_sctp.hrl
277$(EBIN)/local_udp.beam: inet_int.hrl
278$(EBIN)/local_tcp.beam: inet_int.hrl
279$(EBIN)/logger.beam: logger_internal.hrl ../include/logger.hrl
280$(EBIN)/logger_backend.beam: logger_internal.hrl ../include/logger.hrl
281$(EBIN)/logger_config.beam: logger_internal.hrl ../include/logger.hrl
282$(EBIN)/logger_disk_log_h.beam: logger_h_common.hrl logger_internal.hrl ../include/logger.hrl ../include/file.hrl
283$(EBIN)/logger_filters.beam: logger_internal.hrl ../include/logger.hrl
284$(EBIN)/logger_formatter.beam: logger_internal.hrl ../include/logger.hrl
285$(EBIN)/logger_olp.beam: logger_olp.hrl logger_internal.hrl
286$(EBIN)/logger_proxy.beam: logger_internal.hrl
287$(EBIN)/logger_server.beam: logger_internal.hrl ../include/logger.hrl
288$(EBIN)/logger_simple_h.beam: logger_internal.hrl ../include/logger.hrl
289$(EBIN)/logger_std_h.beam: logger_h_common.hrl logger_internal.hrl ../include/logger.hrl ../include/file.hrl
290$(EBIN)/logger_h_common.beam: logger_h_common.hrl logger_internal.hrl ../include/logger.hrl
291$(EBIN)/net_kernel.beam: ../include/net_address.hrl
292$(EBIN)/os.beam: ../include/file.hrl
293$(EBIN)/ram_file.beam: ../include/file.hrl
294$(EBIN)/wrap_log_reader.beam: disk_log.hrl ../include/file.hrl
295$(EBIN)/raw_file_io.beam: ../include/file.hrl file_int.hrl
296$(EBIN)/raw_file_io_compressed.beam: ../include/file.hrl file_int.hrl
297$(EBIN)/raw_file_io_inflate.beam: ../include/file.hrl file_int.hrl
298$(EBIN)/raw_file_io_deflate.beam: ../include/file.hrl file_int.hrl
299$(EBIN)/raw_file_io_delayed.beam: ../include/file.hrl file_int.hrl
300$(EBIN)/raw_file_io_list.beam: ../include/file.hrl file_int.hrl
301$(EBIN)/raw_file_io_raw.beam: ../include/file.hrl file_int.hrl
302