[Scummvm-devel] Small source restructuring
Max Horn
max at quendi.de
Mon Feb 13 00:27:00 CET 2006
Am 13.02.2006 um 01:37 schrieb Jonathan Gray:
[...]
> I routinely build a source tree of over 600 MB in size, it works fine.
Yes you can do that. And men flew to the moon with 8bit processors
driving their space craft. Some people even use C++ to implement
failure safe software. It's really a miracle what one can do achieve
if one just wants to. :-)
Did you read the article I posted here, BTW?
>> Note, we *are* using a standard Makefile, it's simply split over
>> multiple directories. For me, it actually makes things a lot easier,
>> since e.g. editing a module.mk file is quite straightforward.
>
> I don't see it as being any harder.
>
> ie Makefile for ls here is:
> # $OpenBSD: Makefile,v 1.7 2003/08/06 19:09:09 tedu Exp $
>
> PROG= ls
> SRCS= cmp.c ls.c main.c print.c util.c
> DPADD= ${LIBUTIL}
> LDADD= -lutil
>
> .include <bsd.prog.mk>
Ah yes. Did you notice that "include" at the end ? :-). I don't see
this being any simpler than our module.mk files, with which it should
be compared. If the "Makefile" and "Makefile.common" complexities
bother you, I can easily factor most of their content out into a
"scummvm.mk" or so, which is then included, leaving only a few
trivial switches and knobs in "Makefile". That might actually be a
good idea anyway.
> And you can actually do things like make clean in only one
> directory which people expect to work.
Joy, you can do that with our system, too :-). Although you have to
go to the main level and use the right target, I know, not very
intuitive:
make clean-base
make base
make clean-engines/scumm
Nobody complained about the lack of this feature so far, but it would
be trivial for me to add dummy Makefiles to all subdirs that just
invoke the master make file to call the correct build/clean sub
target. If you say you need it, no probs, you'll get it (I just
didn't want to implement a feature I never use, and which nobody
requested).
> It isn't a standard Makefile as such as it requires GNU extensions
> to build, but I guess that you will claim GNU make is really make.
No, I don't claim that, why would I? (I don't call us "GNU ScummVM"
either, BTW).
It just is that so far all our targets seem to have GNU make
available, and those who don't can usually install it. In the end,
all versions of "make" suck to a degree, and I'd really prefer to use
a modern build system instead, but that's less portable :-/
Max
More information about the Scummvm-devel
mailing list