12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- You may generate GNU makefiles for building SDL2 and its related test suite by
- using the gmake shell script in the Linux/build-scripts folder.
- Linux support is currently experimental for the meta-build system. Most of the
- progress made on this support happened toward the end of the meta-build system
- project, so there is a lot currently missing that could be added in the future.
- For the most part, the Linux support works well, but there is a significant
- amount of testing needed to verify it can be built in many different
- environments.
- The Linux project does not target every dependency it should (as seen in the
- autotools configure script or in the CMake script), but it does target the
- following dependencies:
- -D-Bus (required to build Linux at all)
- -DLOpen (most of the other dependencies are dependent on this)
- -ALSA
- -PulseAudio
- -ESD
- -NAS
- -OSS
- -X11
- -OpenGL
- Also, the Linux system should be building the SDL2 library as a shared library,
- but it builds it as a static library because of a few premake-related issues.
- This is because when the makefile generated by premake tells the linker where to
- find the definitions library (libSDL2.o), it also gives a hint to the loader to
- find libSDL2.so in the same place, with a relative path. This means in order to
- execute the program dynamically linked to SDL2, it's looking in some path like:
- "../../SDL2/Build/Debug"
- Now, while this path works at the location of the makefile (such as
- ./tests/testsprite), it does not make sense from the actual location of the
- executable (./tests/testsprite/Build/Debug). Furthermore, it's just massively
- inconvenient to have a relative path to look for the shared object. Moving
- libSDL2.so into the same directory as the executable does not solve this issue.
- Unfortunately, premake also does not allow an install target to be created for
- the makefiles, which is another one of the major issues related to building SDL2
- as a shared library on Linux. Once these problems are solved, this support
- should be very straightforward to add to this system in the future.
- The Linux system does have both an automated test and cleaning shell files for
- running through the entire supported test suite and cleaning up the generated
- and built files, respectively.
|