Follow-up Comment #6, bug #30370 (project make):
Interesting to findout which way will work faster. Many generated pattern
rules? or PAttern rule with multiple masks
But in general I agree with Paul and Boris. Current make is flexible enough
to generate common parts
Let me give you real life example of power of make
# build/ase/%.c => build/xlc/%.sc.o
$(eval $(call
qib_compiler_generate_object_rules,c,$(qib_ase_tgt_dir),$(qib_ase_src_suffix)))
# %.cpp => build/xlc/%.cpp.o
$(eval $(call
qib_compiler_generate_object_rules,cxx,,$(qib_cxx_src_suffix)))
# %.c => build/xlc/%.c.o
$(eval $(call qib_compiler_generate_object_rules,c,,$(qib_c_src_suffix)))
#
qib_compiler_generate_object_rules=
$(foreach qib_compiler_type_,$(qib_compiler_supported_types),
$(foreach qib_compiler_variant_,$(qib_compiler_supported_variants),
$(call
qib_compiler_object_rule,$1,$2,$(QIB_DATABASE),$(qib_compiler_type_),$(qib_compiler_variant_),$3)
)
)
# define gets 6 parameters!!!
define qib_compiler_object_rule
$$(qib_compiler_$4_dir)$5/%$6$$(qib_compiler_obj_suffix) :
qib_real_source=$$(patsubst
$$(qib_compiler_$4_dir)$5/%$$(qib_compiler_obj_suffix),%,$$(@))
$$(qib_compiler_$4_dir)$5/%$6$$(qib_compiler_obj_suffix) :
$2%$$(qib_$1_src_suffix)
$$(call qib_debug_echo,$1,
$$(if $$(qib_coverage_tgt_dir),$$(qib_posix_mkdir) $$(dir $$(@)) &&)
$$(call qib_$1_$4_make,$$(@),$$(<),$5,$3)
)
$$(qib_compiler_$4_dir)$5/%$6$$(qib_compiler_obj_suffix).out ::
$$(qib_compiler_$4_dir)$5/%$6$$(qib_compiler_obj_suffix)
endef
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?30370>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-make