#-----------------------------------------------------------------------------# main_target: all include ../Mmake.common #-----------------------------------------------------------------------------# # please keep these lists sorted AGC_SOURCES= \ agc_graph.m \ agc_ho_pred.m \ agc_ite.m \ agc_unbound_typevars.m \ agc_unbound_typevars2.m \ agc_unused_in.m TRAIL_SOURCES= \ complex_failure.m \ semi_fail_in_non_ite.m TYPECLASS_SOURCES= \ func_method.m \ instance_superclass.m \ instance_unconstrained_tvar.m OTHER_SOURCES= \ compl_unify_bug.m \ complicated_unify.m \ constructor_arg_names.m \ dcg_test.m \ deforest_loop.m \ deforest_rerun_det.m \ det_condition.m \ det_inference.m \ det_switch.m \ double_vn.m \ easy_nondet_test.m \ easy_nondet_test_2.m \ empty_bound_inst_list.m \ empty_switch.m \ error.m \ explicit_quant.m \ fail_ite.m \ followcode_det_problem.m \ func_int_bug_main.m \ headvar_not_found.m \ higher_order.m \ higher_order2.m \ higher_order3.m \ higher_order_implied_mode.m \ ho_func_call.m \ ho_inst.m \ implied_mode.m \ indexing.m \ inhibit_warn_test.m \ inlining_bug.m \ int64.m \ intermod_lambda.m \ intermod_quote.m \ intermod_test.m \ lambda_inference.m\ lambda_instmap_bug.m \ lambda_output.m \ lambda_quant.m \ lambda_quant_bug.m \ lambda_recompute.m \ lambda_struct_bug.m \ lambda_switch.m \ lambda_type.m \ lazy_list.m \ liveness_nonlocals.m \ livevals_seq.m \ loop.m \ loop_in_disj.m \ middle_rec_labels.m \ modes_bug.m \ module_a.m \ module_b.m \ module_c.m \ module_d.m \ module_e.m \ mostly_uniq_mode_inf.m \ multidet_prune1.m \ multidet_test.m \ nasty_func_test.m \ nested_mod_type_bug.m \ nondet_live.m \ parsing_bug_main.m \ pred_with_no_modes.m \ qualified_cons_id.m \ same_length_2.m \ semidet_disj.m \ shape_type.m \ simplify_bug.m \ soln_context.m \ some_switch.m \ stack_alloc.m \ subtype_switch.m \ switch_detection_bug.m \ switch_detection_bug2.m \ switches.m \ tricky_ite.m \ two_pragma_c_codes.m \ two_way_unif.m \ type_inf_ambig_test.m \ unbound_tvar_in_lambda.m \ undead_proc.m \ uniq_unify.m \ uniq_mode_inf_bug.m \ unreachable_code.m \ unused_args_test2.m \ vn_float.m # Code generation is not yet implemented for Aditi updates, # so don't attempt to compile to C. # aditi_update.m # The mode system can't handle the following test cases yet: # assoc_list.m # determinism.m # mode_merge_insts.m # Base grades `jump' and `fast' # cannot be used with accurate GC or type classes ifneq "$(findstring asm_,$(GRADE))" "" SOURCES0=$(AGC_SOURCES) $(TYPECLASS_SOURCES) $(OTHER_SOURCES) else ifneq "$(findstring jump,$(GRADE))" "" SOURCES0=$(OTHER_SOURCES) else ifneq "$(findstring fast,$(GRADE))" "" SOURCES0=$(OTHER_SOURCES) else SOURCES0=$(AGC_SOURCES) $(TYPECLASS_SOURCES) $(OTHER_SOURCES) endif endif endif ifneq "$(findstring .mm,$(GRADE))" "" SOURCES=$(SOURCES0) else SOURCES=$(SOURCES0) $(TRAIL_SOURCES) endif DEPS = $(SOURCES:%.m=%.depend) aditi_update.depend OBJS = $(SOURCES:%.m=$(os_subdir)%.o) PROGS = $(SOURCES:%.m=%) all: objs # some regression tests only failed with particular options enabled # (please keep these lists sorted) GRADEFLAGS-agc_graph = --gc accurate GRADEFLAGS-agc_ho_pred = --gc accurate GRADEFLAGS-agc_ite = --gc accurate GRADEFLAGS-agc_unbound_typevars = --gc accurate GRADEFLAGS-agc_unbound_typevars2 = --gc accurate GRADEFLAGS-agc_unused_in = --gc accurate GRADEFLAGS-complex_failure = --use-trail GRADEFLAGS-semi_fail_in_non_ite = --use-trail MCFLAGS-aditi_update = --aditi MCFLAGS-compl_unify_bug = -O3 MCFLAGS-deforest_loop = -O3 --intermodule-optimization MCFLAGS-deforest_rerun_det = -O3 --check-termination MCFLAGS-double_vn = -O4 MCFLAGS-explicit_quant = --halt-at-warn MCFLAGS-higher_order_implied_mode = -O-1 MCFLAGS-inhibit_warn_test = --inhibit-warnings --halt-at-warn MCFLAGS-intermod_lambda = --intermodule-optimization MCFLAGS-intermod_lambda2 = --intermodule-optimization MCFLAGS-intermod_quote = --intermodule-optimization MCFLAGS-intermod_quote2 = --intermodule-optimization MCFLAGS-intermod_test = --intermodule-optimization MCFLAGS-intermod_test2 = --intermodule-optimization MCFLAGS-livevals_seq = -O5 --opt-space MCFLAGS-middle_rec_labels = --middle-rec --no-follow-vars MCFLAGS-mostly_uniq_mode_inf = --infer-all MCFLAGS-pred_with_no_modes = --infer-all MCFLAGS-simplify_bug = -O-1 MCFLAGS-two_way_unif = -O-1 MCFLAGS-type_inf_ambig_test = --infer-all MCFLAGS-uniq_mode_inf_bug = --infer-all MCFLAGS-vn_float = -O5 check: objs aditi_update.err objs: $(OBJS) depend: $(DEPS) printtests: @echo $(PROGS) printobjs: @echo $(OBJS) clean_local: rm -f *.err *.h #-----------------------------------------------------------------------------#