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 fun 110 111DIALYZER = bs_match 112 113CORE_MODULES = \ 114 lfe_andor_SUITE \ 115 lfe_guard_SUITE 116 117NO_MOD_OPT = $(NO_OPT) 118 119NO_SSA_OPT = $(NO_OPT) 120 121NO_TYPE_OPT = $(NO_OPT) 122 123NO_OPT_MODULES= $(NO_OPT:%=%_no_opt_SUITE) 124NO_OPT_ERL_FILES= $(NO_OPT_MODULES:%=%.erl) 125POST_OPT_MODULES= $(NO_OPT:%=%_post_opt_SUITE) 126POST_OPT_ERL_FILES= $(POST_OPT_MODULES:%=%.erl) 127NO_CORE_OPT_MODULES= $(NO_OPT:%=%_no_copt_SUITE) 128NO_CORE_OPT_ERL_FILES= $(NO_CORE_OPT_MODULES:%=%.erl) 129INLINE_MODULES= $(INLINE:%=%_inline_SUITE) 130INLINE_ERL_FILES= $(INLINE_MODULES:%=%.erl) 131R21_MODULES= $(R21:%=%_r21_SUITE) 132R21_ERL_FILES= $(R21_MODULES:%=%.erl) 133NO_MOD_OPT_MODULES= $(NO_MOD_OPT:%=%_no_module_opt_SUITE) 134NO_MOD_OPT_ERL_FILES= $(NO_MOD_OPT_MODULES:%=%.erl) 135NO_SSA_OPT_MODULES= $(NO_SSA_OPT:%=%_no_ssa_opt_SUITE) 136NO_SSA_OPT_ERL_FILES= $(NO_SSA_OPT_MODULES:%=%.erl) 137NO_TYPE_OPT_MODULES= $(NO_TYPE_OPT:%=%_no_type_opt_SUITE) 138NO_TYPE_OPT_ERL_FILES= $(NO_TYPE_OPT_MODULES:%=%.erl) 139DIALYZER_MODULES= $(DIALYZER:%=%_dialyzer_SUITE) 140DIALYZER_ERL_FILES= $(DIALYZER_MODULES:%=%.erl) 141 142ERL_FILES= $(MODULES:%=%.erl) 143CORE_FILES= $(CORE_MODULES:%=%.core) 144ERL_DUMMY_FILES= $(CORE_MODULES:%=%.erl) 145 146##TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) 147##INSTALL_PROGS= $(TARGET_FILES) 148 149EMAKEFILE=Emakefile 150 151# ---------------------------------------------------- 152# Release directory specification 153# ---------------------------------------------------- 154RELSYSDIR = $(RELEASE_PATH)/compiler_test 155 156# ---------------------------------------------------- 157# FLAGS 158# ---------------------------------------------------- 159 160ERL_MAKE_FLAGS += 161ERL_COMPILE_FLAGS += +clint +clint0 +ssalint 162 163EBIN = . 164 165# ---------------------------------------------------- 166# Targets 167# ---------------------------------------------------- 168 169DISABLE_SSA_OPT = +no_bool_opt +no_share_opt +no_bsm_opt +no_fun_opt +no_ssa_opt +no_recv_opt 170 171make_emakefile: $(NO_OPT_ERL_FILES) $(POST_OPT_ERL_FILES) $(NO_SSA_OPT_ERL_FILES) \ 172 $(NO_CORE_OPT_ERL_FILES) $(INLINE_ERL_FILES) $(R21_ERL_FILES) \ 173 $(NO_MOD_OPT_ERL_FILES) $(NO_TYPE_OPT_ERL_FILES) \ 174 $(DIALYZER_ERL_FILES) 175 $(ERL_TOP)/make/make_emakefile $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) \ 176 > $(EMAKEFILE) 177 $(ERL_TOP)/make/make_emakefile +no_copt $(DISABLE_SSA_OPT) +no_postopt \ 178 $(ERL_COMPILE_FLAGS) -o$(EBIN) $(NO_OPT_MODULES) >> $(EMAKEFILE) 179 $(ERL_TOP)/make/make_emakefile $(DISABLE_SSA_OPT) $(ERL_COMPILE_FLAGS) \ 180 -o$(EBIN) $(NO_SSA_OPT_MODULES) >> $(EMAKEFILE) 181 $(ERL_TOP)/make/make_emakefile +no_copt $(DISABLE_SSA_OPT) $(ERL_COMPILE_FLAGS) \ 182 -o$(EBIN) $(POST_OPT_MODULES) >> $(EMAKEFILE) 183 $(ERL_TOP)/make/make_emakefile +no_copt $(ERL_COMPILE_FLAGS) \ 184 -o$(EBIN) $(NO_CORE_OPT_MODULES) >> $(EMAKEFILE) 185 $(ERL_TOP)/make/make_emakefile +inline $(ERL_COMPILE_FLAGS) \ 186 -o$(EBIN) $(INLINE_MODULES) >> $(EMAKEFILE) 187 $(ERL_TOP)/make/make_emakefile +r21 $(ERL_COMPILE_FLAGS) \ 188 -o$(EBIN) $(R21_MODULES) >> $(EMAKEFILE) 189 $(ERL_TOP)/make/make_emakefile +no_module_opt $(ERL_COMPILE_FLAGS) \ 190 -o$(EBIN) $(NO_MOD_OPT_MODULES) >> $(EMAKEFILE) 191 $(ERL_TOP)/make/make_emakefile +from_core $(ERL_COMPILE_FLAGS) \ 192 -o$(EBIN) $(CORE_MODULES) >> $(EMAKEFILE) 193 $(ERL_TOP)/make/make_emakefile +no_type_opt $(ERL_COMPILE_FLAGS) \ 194 -o$(EBIN) $(NO_TYPE_OPT_MODULES) >> $(EMAKEFILE) 195 $(ERL_TOP)/make/make_emakefile +dialyzer $(ERL_COMPILE_FLAGS) \ 196 -o$(EBIN) $(DIALYZER_MODULES) >> $(EMAKEFILE) 197 198tests debug opt: make_emakefile 199 erl $(ERL_MAKE_FLAGS) -make 200 201clean: 202 rm -f $(EMAKEFILE) 203 rm -f $(TARGET_FILES) 204 rm -f core 205 206docs: 207 208# ---------------------------------------------------- 209# Special targets 210# ---------------------------------------------------- 211 212%_no_opt_SUITE.erl: %_SUITE.erl 213 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 214 215%_no_ssa_opt_SUITE.erl: %_SUITE.erl 216 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 217 218%_post_opt_SUITE.erl: %_SUITE.erl 219 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 220 221%_no_copt_SUITE.erl: %_SUITE.erl 222 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 223 224%_inline_SUITE.erl: %_SUITE.erl 225 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 226 227%_r21_SUITE.erl: %_SUITE.erl 228 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 229 230%_no_module_opt_SUITE.erl: %_SUITE.erl 231 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 232 233%_no_type_opt_SUITE.erl: %_SUITE.erl 234 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 235 236%_dialyzer_SUITE.erl: %_SUITE.erl 237 sed -e 's;-module($(basename $<));-module($(basename $@));' $< > $@ 238 239# ---------------------------------------------------- 240# Release Target 241# ---------------------------------------------------- 242include $(ERL_TOP)/make/otp_release_targets.mk 243 244release_spec: opt 245 246release_tests_spec: make_emakefile 247 $(INSTALL_DIR) "$(RELSYSDIR)" 248 $(INSTALL_DATA) compiler.spec compiler.cover \ 249 $(EMAKEFILE) $(ERL_FILES) "$(RELSYSDIR)" 250 $(INSTALL_DATA) $(NO_OPT_ERL_FILES) $(POST_OPT_ERL_FILES) \ 251 $(INLINE_ERL_FILES) $(R21_ERL_FILES) \ 252 $(NO_CORE_OPT_ERL_FILES) \ 253 $(NO_MOD_OPT_ERL_FILES) \ 254 $(NO_SSA_OPT_ERL_FILES) \ 255 $(NO_TYPE_OPT_ERL_FILES) \ 256 $(DIALYZER_ERL_FILES) "$(RELSYSDIR)" 257 $(INSTALL_DATA) $(CORE_FILES) "$(RELSYSDIR)" 258 for file in $(ERL_DUMMY_FILES); do \ 259 module=`basename $$file .erl`; \ 260 echo "-module($$module). %% dummy .erl file" >$$file; \ 261 done 262 $(INSTALL_DATA) $(ERL_DUMMY_FILES) "$(RELSYSDIR)" 263 rm $(ERL_DUMMY_FILES) 264 chmod -R u+w "$(RELSYSDIR)" 265 @tar cf - *_SUITE_data property_test | (cd "$(RELSYSDIR)"; tar xf -) 266 267release_docs_spec: 268