[Scummvm-devel] ScummVM compile options

Max Horn max at quendi.de
Sat Apr 16 04:08:16 CEST 2005


Yo folks,


let me sum up this thread and give my oppinions:

What people here are asking for is a method (or multiple) which allows 
them to disable selected parts of ScummVM (beyond what is possible 
right now, i.e. disabling select engines).

My stance on this: Fine by me, as long as it stays sensible (i.e. we 
don't want a zillion switches to control this). Problem is, the more 
things you can turn on/off, the more possible combinations of them 
there are (exponential growth is at hand here!), so the harder it gets 
to ensure every combination works; also, more switches means more 
variants of ScummVM out there, which directly translates to additional 
support headaches.

So, let's think careful about what we allow to be turned off and what 
not. For example, I am not yet convinced that disabling smush support 
while leaving in V7/V8 support is such a good idea; in my 
understanding, the main problem with SMUSH is the size of the video 
clips, not the size of the code, and the code already copes with 
missing video files.

So, I can live with the following switches:
   - DISABLE_SCALERS (already exists)
   - DISABLE_HQX_SCALERS (the HQX scalers are very big and take a lot to 
compile)
   - DISABLE_SCUMM_HE  (many people may not be interested in those at 
all, e.g. me :-)
   - DISABLE_SCUMM_V7_V8 (these games are too big for many devices)

But I do not think we should make it possible to turn off only 
INSANE/SMUSH/DIGI-IMUSE. Too much headache, to many potential support 
issues.


The other issue which was argued about here was: how to achieve this 
configurability. My stance is: there isn't much to argue about. 
Basically there are two ways to achieve granularity:
1) Add #defines which are used to disable code section
2) Leave out whole source files to disable certain features

Method 2 can be implemented for *any* build system out there. Take 
DISABLE_SCALERS, for example.

Method 1 can be implemented everywhere, too. The only question is, 
where to set those flags. Well, on the primary build system, the 
configure script of course should allow this. Of course it gets 
unwieldy if you specify many of those, but that's "normal" if you want 
to let the user tweak a lot. And *of course* ports can easily change 
the defaults for these settings, too! Your port can have a custom build 
system, which disables custom files, and set custom #defines.

I.e. there is no contradiction between adding this to the configure 
script, and having platform-specific Makefile / config.h files.... 
There really aren't two options, as Eugene made it sound, IMHO :-)


Bye,

Max







More information about the Scummvm-devel mailing list