1include $(ERL_TOP)/make/target.mk 2include $(ERL_TOP)/make/$(TARGET)/otp.mk 3 4# ---------------------------------------------------- 5# Target Specs 6# ---------------------------------------------------- 7 8MODULES= \ 9 andor_SUITE \ 10 apply_SUITE \ 11 beam_block_SUITE \ 12 beam_validator_SUITE \ 13 beam_disasm_SUITE \ 14 beam_except_SUITE \ 15 beam_jump_SUITE \ 16 beam_reorder_SUITE \ 17 beam_ssa_SUITE \ 18 beam_type_SUITE \ 19 beam_types_SUITE \ 20 beam_utils_SUITE \ 21 bif_SUITE \ 22 bs_bincomp_SUITE \ 23 bs_bit_binaries_SUITE \ 24 bs_construct_SUITE \ 25 bs_match_SUITE \ 26 bs_size_expr_SUITE \ 27 bs_utf_SUITE \ 28 core_alias_SUITE \ 29 core_fold_SUITE \ 30 compile_SUITE \ 31 compilation_SUITE \ 32 core_SUITE \ 33 error_SUITE \ 34 float_SUITE \ 35 fun_SUITE \ 36 guard_SUITE \ 37 inline_SUITE \ 38 lc_SUITE \ 39 map_SUITE \ 40 match_SUITE \ 41 misc_SUITE \ 42 overridden_bif_SUITE \ 43 random_code_SUITE \ 44 receive_SUITE \ 45 record_SUITE \ 46 regressions_SUITE \ 47 trycatch_SUITE \ 48 warnings_SUITE \ 49 z_SUITE \ 50 test_lib 51 52NO_OPT= \ 53 andor \ 54 apply \ 55 beam_block \ 56 beam_except \ 57 beam_jump \ 58 beam_reorder \ 59 beam_ssa \ 60 beam_type \ 61 beam_utils \ 62 bif \ 63 bs_construct \ 64 bs_bincomp \ 65 bs_match \ 66 bs_size_expr \ 67 bs_utf \ 68 core_fold \ 69 float \ 70 fun \ 71 guard \ 72 lc \ 73 map \ 74 match \ 75 misc \ 76 overridden_bif \ 77 receive \ 78 record \ 79 trycatch 80 81INLINE= \ 82 andor \ 83 apply \ 84 beam_block \ 85 beam_ssa \ 86 beam_utils \ 87 bif \ 88 bs_bincomp \ 89 bs_bit_binaries \ 90 bs_construct \ 91 bs_match \ 92 bs_size_expr \ 93 bs_utf \ 94 core_fold \ 95 float \ 96 fun \ 97 guard \ 98 lc \ 99 map \ 100 match \ 101 misc \ 102 overridden_bif \ 103 receive \ 104 record 105 106R21= \ 107 bs_construct \ 108 bs_match 109 110DIALYZER = bs_match 111 112CORE_MODULES = \ 113 lfe_andor_SUITE \ 114 lfe_guard_SUITE 115 116NO_MOD_OPT = $(NO_OPT) 117 118NO_SSA_OPT = $(NO_OPT) 119 120NO_TYPE_OPT = $(NO_OPT) 121 122NO_OPT_MODULES= $(NO_OPT:%=%_no_opt_SUITE) 123NO_OPT_ERL_FILES= $(NO_OPT_MODULES:%=%.erl) 124POST_OPT_MODULES= $(NO_OPT:%=%_post_opt_SUITE) 125POST_OPT_ERL_FILES= $(POST_OPT_MODULES:%=%.erl) 126NO_CORE_OPT_MODULES= $(NO_OPT:%=%_no_copt_SUITE) 127NO_CORE_OPT_ERL_FILES= $(NO_CORE_OPT_MODULES:%=%.erl) 128INLINE_MODULES= $(INLINE:%=%_inline_SUITE) 129INLINE_ERL_FILES= $(INLINE_MODULES:%=%.erl) 130R21_MODULES= $(R21:%=%_r21_SUITE) 131R21_ERL_FILES= $(R21_MODULES:%=%.erl) 132NO_MOD_OPT_MODULES= $(NO_MOD_OPT:%=%_no_module_opt_SUITE) 133NO_MOD_OPT_ERL_FILES= $(NO_MOD_OPT_MODULES:%=%.erl) 134NO_SSA_OPT_MODULES= $(NO_SSA_OPT:%=%_no_ssa_opt_SUITE) 135NO_SSA_OPT_ERL_FILES= $(NO_SSA_OPT_MODULES:%=%.erl) 136NO_TYPE_OPT_MODULES= $(NO_TYPE_OPT:%=%_no_type_opt_SUITE) 137NO_TYPE_OPT_ERL_FILES= $(NO_TYPE_OPT_MODULES:%=%.erl) 138DIALYZER_MODULES= $(DIALYZER:%=%_dialyzer_SUITE) 139DIALYZER_ERL_FILES= $(DIALYZER_MODULES:%=%.erl) 140 141ERL_FILES= $(MODULES:%=%.erl) 142CORE_FILES= $(CORE_MODULES:%=%.core) 143ERL_DUMMY_FILES= $(CORE_MODULES:%=%.erl) 144 145##TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) 146##INSTALL_PROGS= $(TARGET_FILES) 147 148EMAKEFILE=Emakefile 149 150# ---------------------------------------------------- 151# Release directory specification 152# ---------------------------------------------------- 153RELSYSDIR = $(RELEASE_PATH)/compiler_test 154 155# ---------------------------------------------------- 156# FLAGS 157# ---------------------------------------------------- 158 159ERL_MAKE_FLAGS += 160ERL_COMPILE_FLAGS += +clint +clint0 +ssalint 161 162EBIN = . 163 164# ---------------------------------------------------- 165# Targets 166# ---------------------------------------------------- 167 168DISABLE_SSA_OPT = +no_bool_opt +no_share_opt +no_bsm_opt +no_fun_opt +no_ssa_opt +no_recv_opt 169 170make_emakefile: $(NO_OPT_ERL_FILES) $(POST_OPT_ERL_FILES) $(NO_SSA_OPT_ERL_FILES) \ 171 $(NO_CORE_OPT_ERL_FILES) $(INLINE_ERL_FILES) $(R21_ERL_FILES) \ 172 $(NO_MOD_OPT_ERL_FILES) $(NO_TYPE_OPT_ERL_FILES) \ 173 $(DIALYZER_ERL_FILES) 174 $(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) \ 175 > $(EMAKEFILE) 176 $(ERL_TOP)/make/make_emakefile +no_copt $(DISABLE_SSA_OPT) +no_postopt \ 177 $(ERL_COMPILE_FLAGS) -o$(EBIN) $(NO_OPT_MODULES) >> $(EMAKEFILE) 178 $(ERL_TOP)/make/make_emakefile $(DISABLE_SSA_OPT) $(ERL_COMPILE_FLAGS) \ 179 -o$(EBIN) $(NO_SSA_OPT_MODULES) >> $(EMAKEFILE) 180 $(ERL_TOP)/make/make_emakefile +no_copt $(DISABLE_SSA_OPT) $(ERL_COMPILE_FLAGS) \ 181 -o$(EBIN) $(POST_OPT_MODULES) >> $(EMAKEFILE) 182 $(ERL_TOP)/make/make_emakefile +no_copt $(ERL_COMPILE_FLAGS) \ 183 -o$(EBIN) $(NO_CORE_OPT_MODULES) >> $(EMAKEFILE) 184 $(ERL_TOP)/make/make_emakefile +inline $(ERL_COMPILE_FLAGS) \ 185 -o$(EBIN) $(INLINE_MODULES) >> $(EMAKEFILE) 186 $(ERL_TOP)/make/make_emakefile +r21 $(ERL_COMPILE_FLAGS) \ 187 -o$(EBIN) $(R21_MODULES) >> $(EMAKEFILE) 188 $(ERL_TOP)/make/make_emakefile +no_module_opt $(ERL_COMPILE_FLAGS) \ 189 -o$(EBIN) $(NO_MOD_OPT_MODULES) >> $(EMAKEFILE) 190 $(ERL_TOP)/make/make_emakefile +from_core $(ERL_COMPILE_FLAGS) \ 191 -o$(EBIN) $(CORE_MODULES) >> $(EMAKEFILE) 192 $(ERL_TOP)/make/make_emakefile +no_type_opt $(ERL_COMPILE_FLAGS) \ 193 -o$(EBIN) $(NO_TYPE_OPT_MODULES) >> $(EMAKEFILE) 194 $(ERL_TOP)/make/make_emakefile +dialyzer $(ERL_COMPILE_FLAGS) \ 195 -o$(EBIN) $(DIALYZER_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 207# ---------------------------------------------------- 208# Special targets 209# ---------------------------------------------------- 210 211%_no_opt_SUITE.erl: %_SUITE.erl 212 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 213 214%_no_ssa_opt_SUITE.erl: %_SUITE.erl 215 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 216 217%_post_opt_SUITE.erl: %_SUITE.erl 218 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 219 220%_no_copt_SUITE.erl: %_SUITE.erl 221 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 222 223%_inline_SUITE.erl: %_SUITE.erl 224 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 225 226%_r21_SUITE.erl: %_SUITE.erl 227 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 228 229%_no_module_opt_SUITE.erl: %_SUITE.erl 230 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 231 232%_no_type_opt_SUITE.erl: %_SUITE.erl 233 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 234 235%_dialyzer_SUITE.erl: %_SUITE.erl 236 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 237 238# ---------------------------------------------------- 239# Release Target 240# ---------------------------------------------------- 241include $(ERL_TOP)/make/otp_release_targets.mk 242 243release_spec: opt 244 245release_tests_spec: make_emakefile 246 $(INSTALL_DIR) "$(RELSYSDIR)" 247 $(INSTALL_DATA) compiler.spec compiler.cover \ 248 $(EMAKEFILE) $(ERL_FILES) "$(RELSYSDIR)" 249 $(INSTALL_DATA) $(NO_OPT_ERL_FILES) $(POST_OPT_ERL_FILES) \ 250 $(INLINE_ERL_FILES) $(R21_ERL_FILES) \ 251 $(NO_CORE_OPT_ERL_FILES) \ 252 $(NO_MOD_OPT_ERL_FILES) \ 253 $(NO_SSA_OPT_ERL_FILES) \ 254 $(NO_TYPE_OPT_ERL_FILES) \ 255 $(DIALYZER_ERL_FILES) "$(RELSYSDIR)" 256 $(INSTALL_DATA) $(CORE_FILES) "$(RELSYSDIR)" 257 for file in $(ERL_DUMMY_FILES); do \ 258 module=`basename $$file .erl`; \ 259 echo "-module($$module). %% dummy .erl file" >$$file; \ 260 done 261 $(INSTALL_DATA) $(ERL_DUMMY_FILES) "$(RELSYSDIR)" 262 rm $(ERL_DUMMY_FILES) 263 chmod -R u+w "$(RELSYSDIR)" 264 @tar cf - *_SUITE_data property_test | (cd "$(RELSYSDIR)"; tar xf -) 265 266release_docs_spec: 267