1#
2# %CopyrightBegin%
3#
4# Copyright Ericsson AB 1997-2020. 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
25EBIN = .
26
27# ----------------------------------------------------
28# Target Specs
29# ----------------------------------------------------
30
31MODULES= \
32	a_SUITE \
33	after_SUITE \
34	alloc_SUITE \
35	async_ports_SUITE \
36	atomics_SUITE \
37	beam_SUITE \
38	beam_literals_SUITE \
39	bif_SUITE \
40	big_SUITE \
41	binary_SUITE \
42	bs_bincomp_SUITE \
43	bs_bit_binaries_SUITE \
44	bs_construct_SUITE \
45	bs_match_bin_SUITE \
46	bs_match_int_SUITE \
47	bs_match_tail_SUITE \
48	bs_match_misc_SUITE \
49	bs_utf_SUITE \
50	busy_port_SUITE \
51	call_trace_SUITE \
52	code_SUITE \
53	code_parallel_load_SUITE \
54	counters_SUITE \
55	crypto_SUITE \
56	ddll_SUITE \
57	decode_packet_SUITE \
58	dirty_bif_SUITE \
59	dirty_nif_SUITE \
60	distribution_SUITE \
61	driver_SUITE \
62	dump_SUITE \
63	efile_SUITE \
64	erts_debug_SUITE \
65	estone_SUITE \
66	erl_link_SUITE \
67	erl_drv_thread_SUITE \
68	evil_SUITE \
69	exception_SUITE \
70	float_SUITE \
71	fun_SUITE \
72	gc_SUITE \
73	guard_SUITE \
74	hash_SUITE \
75	hash_property_test_SUITE \
76	hibernate_SUITE \
77	hipe_SUITE \
78	iovec_SUITE \
79	list_bif_SUITE \
80	lttng_SUITE \
81	lcnt_SUITE \
82	map_SUITE \
83	match_spec_SUITE \
84	module_info_SUITE \
85	monitor_SUITE \
86	multi_load_SUITE \
87	nested_SUITE \
88	nif_SUITE \
89	node_container_SUITE \
90	nofrag_SUITE \
91	num_bif_SUITE \
92	message_queue_data_SUITE \
93	op_SUITE \
94	os_signal_SUITE \
95	port_SUITE \
96	port_bif_SUITE \
97	prim_eval_SUITE \
98	persistent_term_SUITE \
99	process_SUITE \
100	pseudoknot_SUITE \
101	receive_SUITE \
102	ref_SUITE \
103	register_SUITE \
104	mtx_SUITE \
105	save_calls_SUITE \
106	send_term_SUITE \
107	sensitive_SUITE \
108	signal_SUITE \
109	small_SUITE \
110	smoke_test_SUITE \
111	statistics_SUITE \
112	system_info_SUITE \
113	system_profile_SUITE \
114	time_SUITE \
115	timer_bif_SUITE \
116	trace_SUITE \
117	trace_bif_SUITE \
118	trace_nif_SUITE \
119	trace_port_SUITE \
120	tuple_SUITE \
121	trace_local_SUITE \
122	trace_meta_SUITE \
123	trace_call_count_SUITE \
124	trace_call_time_SUITE \
125	tracer_SUITE \
126	tracer_test \
127	scheduler_SUITE \
128	port_trace_SUITE \
129	unique_SUITE \
130	z_SUITE \
131	long_timers_test \
132	ignore_cores \
133	dgawd_handler \
134	random_iolist \
135	erts_test_utils \
136	erts_test_destructor \
137	crypto_reference \
138	literal_area_collector_test
139
140NO_OPT= bs_bincomp \
141	bs_bit_binaries \
142	bs_construct \
143	bs_match_bin \
144	bs_match_int \
145	bs_match_tail \
146	bs_match_misc \
147	bs_utf \
148	guard \
149	map
150
151NATIVE= hibernate
152
153NO_OPT_MODULES= $(NO_OPT:%=%_no_opt_SUITE)
154NO_OPT_ERL_FILES= $(NO_OPT_MODULES:%=%.erl)
155
156NATIVE_MODULES= $(NATIVE:%=%_native_SUITE)
157NATIVE_ERL_FILES= $(NATIVE_MODULES:%=%.erl)
158
159ERL_FILES= $(MODULES:%=%.erl)
160
161TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR))
162
163KERNEL_MODULES=gen_tcp_dist
164KERNEL_ERL_FILES=$(ERL_TOP)/lib/kernel/examples/gen_tcp_dist/src/gen_tcp_dist.erl
165
166EMAKEFILE=Emakefile
167
168TEST_SPEC_FILES= emulator.spec \
169		 emulator.spec.win \
170		 emulator_bench.spec \
171		 emulator_smoke.spec \
172                 emulator_node_container_SUITE.spec
173
174# ----------------------------------------------------
175# Release directory specification
176# ----------------------------------------------------
177RELSYSDIR = $(RELEASE_PATH)/emulator_test
178
179# ----------------------------------------------------
180# FLAGS
181# ----------------------------------------------------
182ERL_MAKE_FLAGS +=
183ERL_COMPILE_FLAGS +=
184
185# ----------------------------------------------------
186# Targets
187# ----------------------------------------------------
188
189make_emakefile: $(NO_OPT_ERL_FILES) $(NATIVE_ERL_FILES) $(KERNEL_ERL_FILES)
190	$(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) +compressed -o$(EBIN) \
191	$(MODULES) $(KERNEL_MODULES) >> $(EMAKEFILE)
192	$(ERL_TOP)/make/make_emakefile +no_copt +no_postopt +no_ssa_opt +no_bsm_opt \
193        $(ERL_COMPILE_FLAGS) -o$(EBIN) $(NO_OPT_MODULES) >> $(EMAKEFILE)
194	$(ERL_TOP)/make/make_emakefile +native $(ERL_COMPILE_FLAGS) \
195	-o$(EBIN) $(NATIVE_MODULES) >> $(EMAKEFILE)
196
197tests debug opt: make_emakefile
198	erl $(ERL_MAKE_FLAGS) -make
199
200clean:
201	rm -f $(EMAKEFILE)
202	rm -f $(TARGET_FILES)
203	rm -f core *~
204
205docs:
206
207targets: $(TARGET_FILES)
208
209# ----------------------------------------------------
210# Special targets
211# ----------------------------------------------------
212
213%_no_opt_SUITE.erl: %_SUITE.erl
214	sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@
215
216%_native_SUITE.erl: %_SUITE.erl
217	sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@
218
219# ----------------------------------------------------
220# Release Target
221# ----------------------------------------------------
222include $(ERL_TOP)/make/otp_release_targets.mk
223
224release_spec:
225
226release_tests_spec: make_emakefile
227	$(INSTALL_DIR) "$(RELSYSDIR)"
228	$(INSTALL_DATA) $(EMAKEFILE) $(TEST_SPEC_FILES) \
229		$(ERL_FILES) "$(RELSYSDIR)"
230	$(INSTALL_DATA) $(NO_OPT_ERL_FILES) "$(RELSYSDIR)"
231	$(INSTALL_DATA) $(NATIVE_ERL_FILES) "$(RELSYSDIR)"
232	$(INSTALL_DATA) $(KERNEL_ERL_FILES) "$(RELSYSDIR)"
233	chmod -R u+w "$(RELSYSDIR)"
234	tar cf - *_SUITE_data property_test | (cd "$(RELSYSDIR)"; tar xf -)
235
236release_docs_spec:
237
238