1. We use actual FluidSynth symbols in our test program now. This assures
that linking actually checks for presence of symbols. Which in turn checks
that the library linked can be used with our link configuration.
2. Add simple hardcoded list of FluidSynth dependencies. This helps detection
of statically built FluidSynth.
This is actually a bit abusive of the --static option. However, it works and
prevents a lot of hassle to setup building when FreeType2 was built with
--disable-shared.
Reasons:
- Shared objects aren't really shared on AmigaOS
(Once two programs load the same .so, it will be loaded twice into memory instead of sharing the already available one)
- To make the program run for everyone i need to provide a subdir (SObjs/) which holds all the .so's used while compiling, otherwise some people have to go hunting for the correct .so's online.
(That completely defies the use of "shared objects")
Even worse is the fact that, if users have older .so's installed, they might experience crashes.
- There is no benefit in building ScummVM with shared objects, because even *if* a new lib version is available as an .so it won't be mandatory to immediately switch to it, because the code probably won't take advantage of it as fast.
In short:
Switchting to static builds to reduce user grief, crash reports and as a bonus have ScummVM start a little faster.
The feature is currently broken (see bug #6957 "AUDIO: ARM ASM sound code causes distorted audio on 32 bit armv6").
Fixing the feature looks highly non-trivial and since nobody volunteered so
far it's unlikely we will see any fix soon.
This allows replacing constructs like
LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++"
by
append_var LDFLAGS "-static-libgcc -static-libstdc++"
or even
append_var LDFLAGS -static-libgcc -static-libstdc++
which improves readability and reduces "code duplication", and thus
reduces the risk of introducing certain bugs (e.g. like this one:
LDFLAGS="$LDFLAG -static-libgcc -static-libstdc++"
The AAssets API was added in android 2.3, so it also requires using
the android-9 toolchain.
Using this gives a rather large speedboost to starting the ScummVM
application.
This moves the AmigaOS4 specific packaging rules from the global
ports.mk to a port specific makefile in the AmigaOS subdirectory of
the SDL backend (used for AmigaOS).
Previously, port specific makefiles were only used for cross compiling
builds and thus had a single entry in the cross compiling section of
the configure. Since AmigaOS4 is a desktop system supporting native
build, this required a second entry for when the host system is detected
as ppc-amigaos to support native builds.
However, currently this does break packaging of cross compiled builds
for Win32, OSX and Unix when done on AmigaOS4... but this is not likely
and has limited impact. To fix this, default _port_mk lines would need
to be added to the sections of the cross compiling switch for mingw32
etc. to override the AmigaOS4 OS setting of _port_mk.
The autodetection should be fixed or modified to remove these hardcoded
library enables. For now, we add another minor HACK to disable the
troublesome Tremor Ogg Vorbis enable on older SDK, which should fix the
buildbot builds.
This will allow compilation using the older SDK until the buildbot
PS2 toolchain SDK can be upgraded and we can confirm the newer SDK
builds are working correctly.
As the GCC manual notes, "On most systems that use stabs format, -g
enables use of extra debugging information that only GDB can use;
this extra information makes debugging work better in GDB but will
probably make other debuggers crash or refuse to read the program."
-gstabs produces stabs without GDB extensions, and thus the AmigaOS
debugger will work.
The host targets for Android ARM builds are changed to "android-arm"
and "android-arm-v7a", from "android" and "android-v7a", and two new
targets are added of "android-mips" for MIPS and "android-x86" for
x86.
The older "android" and "android-v7a" targets are still supported,
but are deprecated.
This implements count badge, progress bar, and icon overlay.
It uses the NSDockTile API which is available since OS X 10.5.
The code compiles and run on older system but without doing
anything.
Formerly the taskbar support was *always* enabled except when the backend or
user specified that it should be disabled. This causes nasty crashes for
backends which do not have any taskbar support (like DC, Tizen and probably
more which simply did not disable it so far) when defaultErrorHandler was
called for example (Mass Add is also broken for those).
The SDL (and derived backends) worked around missing taskbar support by
simply faking a dummy taskbar implementation (but still claiming in configure
that we feature taskbar integration, ouch).
To avoid all non-SDL backends from manually specifying _taskbar=no I added
some auto detection code which simply only enables taskbar support in case
ScummVM is built on Win32 or libunity is present.
This changes makes ScummVM compilable with newer versions of DevKitPPC. ScummVM can be linked against the original libogc and libfat. That makes some newer WiiMotes work, improves audio-/video-playback and contains various improvements.
This caused an exception if a error() call occurs, rather than a
clean exit. This occurred in the defaultErrorHandler() function of
engines/engine.cpp, probably due to g_system->getTaskbarManager()
returning a null pointer.
This is mainly "cosmetic" to keep the SCUMM engine and subengines at
the top of the various files, but probably a good idea to prevent any
subtle regressions associated with changing the order.
Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
This is the third and final commit enabling fully pluggable engines.
Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
This is the first part of allowing engines to be added dynamically.
They are placed into a folder in engines/ which must contain a file
named "configure.engine" to add the engine, which is pulled into the
top level configure script automatically.
This was breaking AmigaOS4 builds for the porter as his libpng was built
as a shared library depending on zlib. This should be safe for static
builds as well.
Instead of always assuming /sw (i.e. fink) it should now also pick up
the macports prefix or /usr/local depending on which one exists.
Of course this can still be overwritten with --with-staticlib-prefix
These now restore the original release build logic to ensure that we
don't have issues with releases. Missing something here as _debug_build
doesn't seem to work as I expected...
After this change, release builds will still have serial debug disabled,
but debug builds will now not provide this unless --enable-debug is
passed explicitly. This could have been another option or environment
variable, but other embedded ports do similar things with _debug_build
and this looks like the cleanest way to deal with this.
This allows configure to work fine on Solaris 10 again. This fixes bug
#3614513 "A few posixisms have crept into configure (w/ patch)".
Thanks to lblume for his patch.
This fixes compatibility issues with clang when using -enable-Werror:
clang generates a warning when being passed both "-c" and linker-only
flags like "-L" or "-l". Combined with -Werror, this causes a spurious
configure failure.
This is triggered by the scummvm-conf.exe binary produced from the OpenGL test.
It is detected by a generic signature in AVG, Malware-bytes and several other
antivirus programs, so not easy to get this fixed.
This workaround avoids this by adding some redundant output code to the binary
which changes it enough to avoid the signature.
Freetype-config reports a broken include dir
when et_EE locale is used. We set LC_ALL
and LANGUAGE to "C" explicitly like autoconf
does to force consistent behavior.
This changes the default for Caanoo, GP2x, GP2xWiz, OpenPandora and PS2.
For those now we only disable debug symbols and enable optimizations by
default.
This allows compilation of plugins on PowerPC. This is done similar to what
was proposed in patch #3575572 "Fails to build on Linux PowerPC when using plugins".
I chose to use -fPIC unconditionally, since it will only make a difference on
platforms, which will require -fPIC, like PowerPC. On amd64 for example gcc
produces the same code.