> That's all nice, but there remains the fact that it is very
> difficult to understand for outsiders (contrasting to plain
> makefiles). This is what significantly raises the maintenance
> burden, in particular if the advantages are not actually
> needed for a certain task.
> 

Thats nonsense.  Who really understands the GNU Makefiles?  They
are mostly generated and look like an intermediate language
not a specification on how to build.

A better comparison would be comparing a Makefile.in to an nmake Makefile.

In each case understanding the makefiles aren't difficult, but
understanding how they work is difficult.  For example,
the nmake Makefile for ksh93 contains less than 80 non-commentary
lines about half of which are assignments. Moreover this nmake Makefile
is the same for all UNIX and Windows versions.  Surely 80 lines isn't hard
to understand.  For example, the following, which is more that 10%
of the total file, just lists the source objects that define
libshell.

=============cut here================================
DATAFILES = limits.c msg.c strdata.c testops.c keywords.c options.c \
                 signals.c aliases.c builtins.c variables.c lexstates.c

shell $(VERSION) :LIBRARY: shell.3 nval.3 alarm.c cd_pwd.c cflow.c deparse.c \
        getopts.c hist.c misc.c print.c read.c sleep.c trap.c test.c \
        typeset.c ulimit.c umask.c whence.c main.c \
        arith.c args.c array.c completion.c defs.c edit.c expand.c \
        fault.c fcin.c history.c init.c io.c jobs.c lex.c macro.c name.c \
        parse.c path.c string.c streval.c subshell.c tdump.c timers.c \
        trestore.c waitevent.c xec.c $(DATAFILES) $(FILES_opt) \
        -lcmd -ldll -last -lm
=============cut here================================




David Korn
dgk at research.att.com

Reply via email to