path: root/waftools
Commit message (Collapse)AuthorAgeFilesLines
* Detect Lua on FreeBSDGrzegorz Blach2014-01-151-0/+2
* build: fix cocoa configure check on OS X 10.7Stefano Pigozzi2014-01-022-1/+14
| | | | | It failed because the 10.7 SDK doesn't natively support array and dictionary subscripting.
* Windows: use the GUI subsystem, attach to consoleMartin Herkt2014-01-021-1/+1
| | | | | | | | This is necessary to start mpv without forcing a console window, but also breaks console usability. A workaround is to call mpv from a wrapper process that uses the console subsystem and helps redirecting the standard streams and WriteConsole output to where they belong.
* build: add flag for inline assemblyStefano Pigozzi2013-12-291-5/+5
| | | | | This is used to disable inline assembly (useful for old version of binutils like the one in OpenBSD).
* build: support multiple headers in check_statementStefano Pigozzi2013-12-261-4/+7
| | | | This feature will be used in the next commit.
* build: hide duplicate options from `--help`Stefano Pigozzi2013-12-261-1/+5
| | | | | | Hide --enable variants from [autodetect]'ed options and --enable/--disable variants for [enable]'d/[disable]'d options. The hidden options are still usable, just hidden for more readability.
* build: prefer 4Front OSS to native implementationsbugmen0t2013-12-071-0/+7
| | | | | | | | | | | | | | | | If sys/soundcard.h is actually linux/soundcard.h then it supports only OSSv3 API. This may happen when OSSLIBDIR == /usr while forgetting to replace sys/soundcard.h from glibc. However, after fa620ff waf prefers native implementation which is inferior on Linux. To fix try making waf prefer oss-audio-4front. It's quite unusual to have 4Front OSS installed where native implementation is superior, anyway. Signed-off-by: bugmen0t <@> Make the false positives path also undef the 4Front define. Signed-off-by: Stefano Pigozzi <> Fixes #396
* build: fix regression in cross-compilation [2]Stefano Pigozzi2013-12-061-1/+1
| | | | Fixup commit for 5cb8439015f5. getattr only works on dot notation.
* build: fix regression in cross-compilationStefano Pigozzi2013-12-051-1/+1
| | | | Regression was introduced in bf90317ad in an attempt to fix the Lua check.
* build: remove execute kwarg to check_cc when cross-compilingStefano Pigozzi2013-12-042-3/+10
| | | | | | This prevents waf from running test programs after compilation. A better approach would be to only remove this option if the check actually errors, but we are using this only for Lua anyway.
* build: make deps_neg work with multiple dependenciesStefano Pigozzi2013-11-291-2/+2
| | | | Previous code only worked id len(deps_neg) was 1.
* build: reimplement the OSS checks using a more declarative approachStefano Pigozzi2013-11-294-64/+20
| | | | | | | | | | | | | | | | | | The OSS checks were a big mess and quite buggy. This reimplementes them using a declarative approach and clearly distinguishing between the various OSS implementations. The code should now almost be auto-documenting. We currently support the following implementations of OSS: * platform-specific (with `sys/soundcard.h`) * SunAudio (default on NetBSD and useable on OpenBSD even if we have sndio support there). * 4Front (default on FreeBSD) Since now each OSS check also checks for the appropriate soundcard header, remove the old soundcard check. Many thanks to @bugmen0t for in depth info about all the BSDs. Check #380 and #359 for more info on this commit.
* build: make --disable-gl disable all the gl backendsStefano Pigozzi2013-11-281-4/+13
| | | | Fixes #369
* build: remove pointless exception handling in oss checkStefano Pigozzi2013-11-261-9/+5
* build: unbreak __get_osslibdir__ on python3Stefano Pigozzi2013-11-261-1/+1
| | | | Fixes #370
* build: check for pthreads with and without additional cflagsStefano Pigozzi2013-11-261-1/+5
* build: add -mwin32 on cygwinStefano Pigozzi2013-11-261-0/+4
* build: don't abort if our OSS implementation isn't from 4FrontStefano Pigozzi2013-11-251-3/+3
| | | | | | Original commit was implemented differently by @bugmen0t. The problem here was that the waf API was called directly, instead of using our own check_cc (which defaults, among other things, to non mandatory checks).
* build: run oss_audio.c check with oss cflags as wellStefano Pigozzi2013-11-251-4/+6
* build: unbreak __get_osslibdir__()bugmen0t2013-11-251-2/+4
| | | | | | | - without Utils.* always returns empty string - subprocess doesn't need extra quoting for sh -c - "source" is a bash'ism, not in POSIX sh - most shell commands embed newline at the end
* build: only check 4Front OSS after passing its CFLAGSbugmen0t2013-11-251-10/+10
* build: fix construction of args to pkg-configNatanael Copa2013-11-251-2/+8
| | | | | | This makes it work with pkgconf ( Signed-off-by: Natanael Copa <>
* build: make waf append pkgconfig flags as-is [2]Stefano Pigozzi2013-11-241-1/+0
| | | | fixup commit... removes a redundant `return`
* build: make waf append pkgconfig flags as-isStefano Pigozzi2013-11-241-3/+14
| | | | | | | waf apparently only appends a pkgconfig flag if it doesn't already exist in the lib storage. Since our configure often checks for multiple libraries in one call we want to keep the flags as is. This is especially important to always keep stuff like -lm in the right place.
* build: store dependencies as listsStefano Pigozzi2013-11-241-13/+23
| | | | | | | | | | | | | In Python sets are unordered, so iterating them after converting to a list always leads to different results. The code iterated on them to collect all the flags to pass to the compiler, and since the order of the flags changed, waf would rebuild all of the C files. Seems like in Python 2 this worked as expected by pure chance. This commit stores the sets as lists, and converts them to sets when the set operations are needed. Fixes #363
* build: cache compiler defines on the configure context directlyStefano Pigozzi2013-11-241-3/+3
* build: remove unused mng fragmentStefano Pigozzi2013-11-231-7/+0
* build: also run the test binary during the lua checksStefano Pigozzi2013-11-231-2/+3
* build: fix lua check to actually test for libquviStefano Pigozzi2013-11-231-5/+8
* build: fix missing prototypes in lua check fragmentStefano Pigozzi2013-11-231-2/+2
* build: use static instead of prototype in libavfilter fragmentStefano Pigozzi2013-11-231-2/+1
* build: fix libavfilter check to include function prototypeStefano Pigozzi2013-11-231-0/+1
| | | | | Apparently the check error'ed on some compilers for missing prototype and simply adding one fixes it.
* build: remove spam generated by link taskStefano Pigozzi2013-11-221-0/+4
| | | | | | Simply override the cprogram Task's __str__ method with our own implementation. This is way easier on the eyes when compiling mpv during development, since warnings are not pushed outside of your average screenful of content.
* switch the build system to wafStefano Pigozzi2013-11-2134-0/+1005
This commit adds a new build system based on waf. configure and Makefile are deprecated effective immediately and someday in the future they will be removed (they are still available by running ./old-configure). You can find how the choice for waf came to be in `DOCS/waf-buildsystem.rst`. TL;DR: we couldn't get the same level of abstraction and customization with other build systems we tried (CMake and autotools). For guidance on how to build the software now, take a look at and the cross compilation guide. CREDITS: This is a squash of ~250 commits. Some of them are not by me, so here is the deserved attribution: - @wm4 contributed some Windows fixes, renamed configure to old-configure and contributed to the bootstrap script. Also, GNU/Linux testing. - @lachs0r contributed some Windows fixes and the bootstrap script. - @Nikoli contributed a lot of testing and discovered many bugs. - @CrimsonVoid contributed changes to the bootstrap script.