This should improve linker time as well as reduce the size of the
built binaries (though this does not affect runtime memory usage
since the debug segments are not loaded into memory except by a
debugger) whilst still giving debug information.
$(ronindir) and the explicit crt0 may have happened to work because
library detection state for libmad was forced, but it was always
breaking the feature detection of the build system. Now we can
compile to Dreamcast using the normal detection system.
Previously, only CXX could be overridden by the environment, which
made it impossible to correctly set tools for cross-compiler
toolchains which were not compatible with the default system tools.
Clang 6 enables -Wpragma-pack which warns when leaving an included file
which changes the current alignment.
Our common/pack-{start,end}.h trigger this and it cannot easily and portably
be disabled inside pack-{start,end}.h so we disable it globally for now.
The OPL2LPT is an OPL2 chip plugged on a parallel port. It is
write-only but otherwise acts as a classic AdLib. This commit adds
support for this device.
User is expected to have the right permissions on the parallel
port. By default, the first suitable parallel port is used. It is
possible to override that with the hidden configuration setting
"opl2lpt_parport".
It depends on the presence of the libieee1284 library which abstracts
a bit parallel port handling. An alternative would be to access
directly /dev/parportX on Linux. This would amount of code but it
would be Linux-only.
Tested with Indy 3 and SOMI.
Configure will still build every target with shared objects by default.
Done:
- Added a configure switch (--enable-static) for static builds
- Right now only tested for SDL targets (checked working on AmigaOS4 with SDL1/2)
Missing:
- Add the platforms that need the switch for cross-compiling (macOS, iOS, probably more)
(I can´t do that myself as i have never cross-compiled and wouldn´t be able to check)
@csnover asked on the forums to create a PR for it, so, with my limited (non-existant is more like it) knowledge, i wrapped something up.
I *know* that it isn´t enough, as there already is some kind of static builds flag in configure (_engines_built_static). As i don´treally know if this is the same or a different cause (static plugins?), i´m not touching it.
But please feel free to add or change what needs to be done.
-mno-fp-in-toc is enough not to overflow the TOC. According to the GCC
documentation this allows for faster code to be generated than with
-mminimal-toc.
This reverts commit 2a22c16b91.
The old Buildbot (or maybe the build code's messing about with
LDFLAGS) seems to be broken and won't link successfully with the
std APIs, so this gets turned back off again until the new Buildbot
is active during the next release cycle.
Since version 2.3.12, freetype-config adds SYSROOT to all paths.
If we pass a --prefix that already includes SYSROOT, this will return
a duplicate SYSROOT. This patch detects that and adjusts prefix
accordingly.