I thought this isn't possible: http://goo.gl/QTAUFb. This:

$(TOCENTRY comparison.html, D Feature List)
$(TOCENTRY builtin.html,    Rationale for Builtins)
$(TOCENTRY ctod.html,       Converting C to D)
$(TOCENTRY cpptod.html,     Converting C++ to D)
$(TOCENTRY pretod.html, The C Preprocessor vs D)
$(TOCENTRY cppcontracts.html,     D Contract Programming vs C++)

can be simplified to this:

$(TOCENTRIES
        comparison,   D Feature List,
        builtin,      Rationale for Builtins,
        ctod,         Converting C to D,
        cpptod,       Converting C++ to D,
        pretod,       The C Preprocessor vs D,
        cppcontracts, D Contract Programming vs C++
)

(The .html elimination is a minor detail.)

The trick is to recurse twice using $+ every time:

TOCENTRIES=$(TOCENTRY $1, $2) $(TOCENTRIES_REC $+)
TOCENTRIES_REC=$(TOCENTRIES $+)

Thought this is worth sharing. We could simplify a few more things with this.


Andrei

Reply via email to