[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