Commit Graph

63 Commits

Author SHA1 Message Date
Max Kellermann 22eccaa64f python/build/autotools.py: use toolchain.arflags 2023-03-06 13:33:11 +01:00
Max Kellermann 5c5e522fcd output/jack: remove DLL support
This effectively reverts commit 0f02bbc2fe which was a horrible
kludge for JACK support on Windows.  Maintaining this kludge doesn't
seem worth the trouble (the JACK version was never updated), and
apparently nobody uses this.
2023-03-06 08:10:00 +01:00
Sweet Blue 2a75222fe2
Added libsamplerate to win32 build script 2023-02-23 14:26:32 +01:00
Max Kellermann 3cc770a00b remove obsolete Boost dependency
Boost makes building a piece of software much more difficult than
necessary.  It's a huge library, and just uncompressing it takes a
considerable amount of time. MPD only used a tiny fraction of it, yet
its header bloat made the MPD build very slow.  Locating Boost was
difficult due to its arcane build system and its resistance to use
pkg-config; it's always a special case.  MPD could never use features
of newer Boost versions because Linux distributions always shipped old
Boost versions.  Boost made everything complicated and slow.

So, finally, after getting rid of GLib (commit ccdb94b06c), switching
to C++ and using Boost (commit 0801b3f495), we've finally get rid of
it 8 years later.

Unfortunately, I had to reimplement parts of it along the way
(e.g. IntrusiveList).  Kind of NIH, but on the other hand, compiling
MPD has become much easier for users.
2023-01-23 15:06:58 +01:00
Max Kellermann cb288439a4 {android,win32}/build.py: make stdout/stderr unbuffered
Avoid excessive buffering if run by CI.
2022-08-08 23:48:23 +02:00
Shen-Ta Hsieh 3e05cba30e
python/build/libs.py: update libopenmpt configure flags
Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com>
2021-11-04 15:23:24 +08:00
Max Kellermann 45f3dd8b7a Revert "python/build/libs.py: remove flac, switch to Meson wrap"
This reverts commit 6ed4aff4d3.  The
Meson wrap is broken on non-x86, because it unconditionally includes
<cpuid.h> which is an x86 only header.
2021-10-07 13:28:17 +02:00
Max Kellermann 6ed4aff4d3 python/build/libs.py: remove flac, switch to Meson wrap 2021-09-21 16:44:51 +02:00
Max Kellermann 10782f4c84 {android,win32}/build.py: use makedirs(exist_ok) 2021-09-21 16:04:31 +02:00
Max Kellermann 520028dcfc python/build/libs.py: remove libexpat, switch to Meson wrap 2021-09-21 14:08:23 +02:00
Max Kellermann aef0535c55 python/build/libs.py: remove libvorbis, switch to Meson wrap 2021-09-21 13:49:50 +02:00
Max Kellermann 2699889342 python/build/cmake.py: use CMAKE_TOOLCHAIN_FILE
Let cmake know that we're cross-crompiling.
2021-09-20 23:14:13 +02:00
Max Kellermann 0f02bbc2fe output/jack: enable on Windows
This enables the JACK output plugin on Windows, but doesn't link
against libjack64.dll, instead loads the DLL at runtime with
LoadLibrary().  This kludge avoids the extremely fragile JACK shared
memory protocol by using the system's libjack64.dll, without requiring
the same DLL at build time.
2021-04-26 21:47:20 +02:00
Max Kellermann 3b51c53eca win32/build.py: add -D_FORTIFY_SOURCE=0
This fixes the Windows build.  Linking failed because some packages
(e.g. libFLAC) default to enabling `_FORTIFY_SOURCE`, which is broken
in recent mingw versions
(https://github.com/msys2/MINGW-packages/issues/5803).
2020-09-04 14:33:11 +02:00
Max Kellermann 7583cfe9b7 {android,win32}/build.py: enable the GME decoder plugin
Closes https://github.com/MusicPlayerDaemon/MPD/issues/891
2020-06-10 21:33:29 +02:00
Max Kellermann 257a77fa35 {android,win32}/build.py: build libmodplug and WildMidi
Closes https://github.com/MusicPlayerDaemon/MPD/issues/866
2020-05-27 15:03:49 +02:00
Max Kellermann aba18924ee win32/build.py: link libstdc++ and libcc statically
Fixes #404
2018-11-04 11:10:00 +01:00
Max Kellermann 94592c1406 build with Meson instead of autotools
So long, autotools!  This is my last MPD related project to migrate
away from it.  It has its strengths, but also very obvious weaknesses
and weirdnesses.  Today, many of its quirks are not needed anymore,
and are cumbersome and slow.  Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Max Kellermann 13ce142df1 python/build/meson.py: generate `windres` line 2018-10-14 23:41:38 +02:00
Max Kellermann 12bc625fe1 android/build.py: add aarch64 support 2018-08-17 19:20:25 +02:00
Joshua Wise a5cc13b0c5 build: Add libexpat to the crosscompile build on Windows.
The Curl plugin requires libexpat in order to work these days, so we should
download and build it in order to get the plugin enabled on Windows.
2018-08-17 17:13:39 +02:00
Max Kellermann 62127bbb12 python/build/libs.py: add libmpdclient 2018-05-12 16:24:24 +02:00
Max Kellermann 25cd47b8dc win32/build.py: enable libnfs
Now that all build failures have been fixed, we can enable the
feature.
2018-02-24 22:44:42 +01:00
Max Kellermann 666e456551 win32/build.py: add -DWINVER=0x0600 -D_WIN32_WINNT=0x0600
configure.ac sets this, but this wasn't used for compiling third-party
libraries.  This setting however is important for libnfs, which adds
fallback definitions for POLLIN and POLLOUT with bogus values.
2018-02-24 22:44:11 +01:00
Max Kellermann fcaedec2ab {android,win32}/build.py: move "-O* -g" to common_flags 2018-01-19 12:33:28 +01:00
Max Kellermann 3717fb6c8d win32/build.py: add -march=pentium3 to fix 32 bit LAME build
Workaround for the following LAME build failure:

 error: inlining failed in call to always_inline '_mm_sqrt_ps': target
 specific option mismatch

This is because the LAME build scripts do not check whether SSE is
available; they only check for the presence of the "xmmintrin.h"
header.

Requiring a Pentium 3 CPU is reasonable enough, and it's the first CPU
to feature SSE support.
2017-08-31 19:48:59 +02:00
Max Kellermann f633e6ca49 python/build/libs: add LAME
Enable it in the Windows build script, closes #78.

LAME currently doesn't support Android:

 checking host system type... Invalid configuration `arm-linux-androideabi': system `androideabi' not recognized
2017-07-19 20:53:52 +02:00
Max Kellermann 07b06d76be {android,win32}/build.py: concatenate variables from the command line 2017-07-19 20:53:52 +02:00
Max Kellermann c3d883c6cb win32/build.py: default to x64 build 2017-02-20 21:06:43 +01:00
Max Kellermann 097e30321b win32/build.py: add option --32 2017-02-20 21:06:31 +01:00
Max Kellermann b6ddeaacf2 win32/build.py: convert argument parser to loop
Allow multiple arguments.
2017-02-20 21:06:21 +01:00
Max Kellermann b0c60ec124 win32/build.py: add variable "x64", assign host_arch later 2017-02-20 21:04:34 +01:00
Max Kellermann 8380c3be02 python/build/autotools: pass RANLIB to configure
Fixes various static library linker failures ("bad extended name entry
at header"), because the wrong "ranlib" was used.
2016-10-26 17:00:17 +02:00
Max Kellermann 019aea3d63 {android,win32}/build.py: move code to python/build/libs.py 2015-11-23 10:43:06 +01:00
Max Kellermann 21439108ed {android,win32}/build.py: move code to python/build/dirs.py 2015-11-23 10:38:48 +01:00
Max Kellermann 754b30a7a6 win32/build.py: move class ZlibProject to build/zlib.py 2015-11-21 00:43:50 +01:00
Max Kellermann 89d5d480d7 {android,win32}/build.py: move class FfmpegProject to build/ffmpeg.py 2015-11-21 00:36:54 +01:00
Max Kellermann fbcacb590b {android,win32}/build.py: FfmpegProject detects CPU and OS 2015-11-21 00:35:52 +01:00
Max Kellermann f97ad2b2ee {android,win32}/build.py: move class BoostProject to build/boost.py 2015-11-21 00:17:00 +01:00
Max Kellermann e70f7141be {android,win32}/build.py: move class AutotoolsProject to build/autotools.py 2015-11-21 00:05:48 +01:00
Max Kellermann 7a08ce7ece {android,win32}/build.py: move class Project to build/project.py 2015-11-21 00:00:42 +01:00
Max Kellermann 86486336ec {android,win32}/build.py: add tarball_path and src_path to toolchain class
Reduce dependencies on global variables.
2015-11-20 23:47:52 +01:00
Max Kellermann ec2a2522aa win32/build.py: restore option "out_of_tree"
Got lost in the previous commit.
2015-11-20 23:40:14 +01:00
Max Kellermann 556f9ee39c {android,win32}/build.py: move common code to python/build/ 2015-11-20 22:14:53 +01:00
Max Kellermann 7dad662d69 {android,win32}/build.py: fix missing rename 2015-11-20 22:14:11 +01:00
Max Kellermann 2daa3eb61f {android,win32}/build.py: add toolchain classes 2015-11-20 20:30:42 +01:00
Max Kellermann 3079aa1f9d {android,win32}/build.py: upgrade FFmpeg to 2.8.2 2015-11-17 17:16:56 +01:00
Max Kellermann 41e63031b0 {android,win32}/build.py: upgrade Boost to 1.59.0 2015-10-27 11:33:09 +01:00
Max Kellermann bb86f27fdf {android,win32}/build.py: upgrade FFmpeg to 2.8.1 2015-10-27 11:31:13 +01:00
Max Kellermann 5cf4f62610 {android,win32}/build.py: upgrade CURL to 7.45.0 2015-10-27 11:31:13 +01:00