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