[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