summaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* scripts/mpv-config: remove -Bsymbolic linker flagHEADmasterKacper Michajłow2023-09-071-7/+0
| | | | | | | | | | | | It shouldn't be added unconditionally and with all the fragile checks if it is supported it is way better to handle it in the meson itself. See also: https://github.com/mpv-player/mpv/pull/12346 Fixes: https://github.com/mpv-player/mpv-build/issues/215 https://github.com/haasn/libplacebo/issues/198
* scripts/mpv-config: check platform when adding flagsDudemanguy2023-09-011-1/+4
| | | | | | | | | When building libmpv against the static ffmpeg libraries, we have to add the -Wl,-Bsymbolic linker flags. The problem is that these are only valid for ELF which doesn't apply to all OSes (namely, macOS). Solve this by simply checking the output from uname and seeing if it matches a known ELF platform like linux, bsd, or solaris (who uses this?). Fixes #216.
* scripts/test-libmpv: remove --enable-libmpv checkingDudemanguy2023-08-271-1/+1
| | | | | e5d2640cb3a25c060a63bb57e8ecdcd2afcd9588 removed waf support so this flag is no longer valid.
* mpv: remove waf supportLaserEyess2023-07-236-34/+7
| | | | | Waf was deprecated in mpv 0.36.0, and will be removed in 0.37.0, so remove waf support in mpv-build as well.
* debian: adapt to mpv meson switchKevin Mitchell2023-01-231-2/+2
| | | | | | | | | | | The options passed through mpv-config have different syntax. --confdir is no longer necessary. Rename $WAFFLAGS to $MESONFLAGS. Use the mpv-install script with appropriate --destdir. Remove the unused DOCS and TOOLS variables.
* scripts/mpv-config: pass -Wl,-Bsymbolic when building libmpvDudemanguy2023-01-231-2/+7
| | | | | | | | | | According to ffmpeg's own documentation* we have to add these linker flags to libmpv when building it against the static library. waf doesn't need this for mysterious, unknown reasons (the linker flags there are a bit different) but passing this works fine on meson. Just add an extra check to the mpv-config script to enable this if needed. Fixes #208. *: https://ffmpeg.org/platform.html#Advanced-linking-configuration
* hopefully fix shared / private mess for mpv meson buildKevin Mitchell2023-01-231-6/+6
| | | | | | | | | | | | | | | | | Using meson to build mpv with prefer_static=true would try to link everything statically including things provided by the system. For example, if both shared and static versions of libarchive are were available, it would choose the static version. This would work until it tried to actulaly link the mpv binary which would additionally require static versions of -lacl, lzlib, etc. These build dependencies can be avoided if it instead links to shared libarchive. To avoid this, don't use -Dprefer_static=true. It should already be preferring the specifically statically built libs in build_libs because they are added first in the pkg-config path. Of course, we still run into the same -lstdc++ issue that we saw with waf, so that hack needs to be made general to both build systems.
* configure/build: default to mesonDudemanguy2023-01-184-12/+12
| | | | | | | | Waf was officially deprecated in mpv, so we should make these scripts use meson by default instead. Waf support is still there for now via the BUILDSYSTEM=waf environment variable (meson no longer requires any special variable to use). The README is adjusted a little to reflect this.
* configure scripts: use meson setup buildDudemanguy2022-11-112-2/+2
| | | | | | | | The old usage of "meson build" for configuration was deprecated in meson 0.64*. You're meant to use "meson setup build" instead so just replace the couple of instances of "meson build" that we have in the scripts. https://github.com/mesonbuild/meson/commit/3c7ab542c0c4770241eae149b0d4cd8de329aee0
* debian: include libplacebo in the debian packageKevin Mitchell2022-08-311-2/+2
|
* include libplacebozeromind2022-08-315-1/+46
| | | | | | | | | | | Include libplacebo to add support `vo=gpu-next` in mpv, as the OS-provided libplacebo may not be recent enough. Explicitly link mpv and ffmpeg against stdc++ in case libplacebo was built with glslang, which does not have pkg-config files. Adjust the update script to also checkout git submodules as well, which is needed for libplacebo.
* ffmpeg-config: ssl/tls detection: identify more optionsAvi Halachmi (:avih)2022-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | ffmpeg doesn't always autodetect/enable tls/ssl libs, so mpv-build does that if the user didn't specify one. However, previously it had two issues: 1. It checked for 3 options (openssl/gnutls/mbedtls) but ffmpeg supports 6. So for instance if --enable-schannel was specified by the user, then mpv still tried to add another one, which resulted in a conflict which the user couldn't override easily (needs the user options: --disable-openssl --disable-gnutls). 2. It still tried to auto-enable even if the user disabled some of them. Not a real problem (because the user option comes after the mpv-build auto-option), but not very nice either. Now if any of the 6 ssl/tls names exist at the user option (enabled/disabled/whatever) then autodetection is skipped.
* ffmpeg-config: ssl/tls detection: simplify (no-op)Avi Halachmi (:avih)2022-05-201-3/+6
| | | | | | | | | | | - Implement our own echo function. echo is non standard and its behavior varies, where on some systems it can be affected by -n or -e etc. Our implementation is unaffected by any switch/options. - Invoke grep only once, and check one of the three strings at once as an ERE (-E). - Add a user-message when skipping auto-detection
* ffmpeg-config: ssl/tls detection: don't ignore ffmpeg_optionsAvi Halachmi (:avih)2022-05-201-3/+3
| | | | | | | | | This is a regression from 3de25ed , where previously ffmpeg_options content was added to $OPTION before the checks, but since 3de25ed it stays as "$@", but the ssl/tls still only checked $OPTIONS. Now it checks both $OPTIONS and "$@", which takes ffmpeg_options into account as well.
* mpv-clean: remove outdated rm -f lineDudemanguy2022-05-161-3/+0
| | | | | | There was an old rm -f line for removing things created by mpv's old, pre-waf build system (nearly 10 years ago) in mpv-clean. Remove this since it's completely pointless now and just confusing.
* configure/build: add meson supportDudemanguy2022-05-166-12/+27
| | | | | | | | | | This adds an optional environment variable, BUILDSYSTEM, that can be passed to the build scripts to use mpv's meson build instead of waf, the default. BUILDSYSTEM=meson needs to be set and any configure options passed must use meson's syntax instead of waf. The catch with meson support is that it requires the new prefer_static option for statically linking libass and ffmpeg. This option is not currrently in a release and will land in meson 0.63.
* configure scripts: move fixed options to $OPTIONS (no-op)Avi Halachmi (:avih)2021-12-013-7/+7
|
* NAME_options files: allow values with spacesAvi Halachmi (:avih)2021-12-014-0/+24
| | | | | | | | | | | | | | | | | | | | Previously these files were split into arguments based on default IFS (space, tab, newline), which means that they couldn't hold whitespaces. Now they're split by newlines, so the entire line is a single value. Like before, values with newline[s] or empty can't be stored at the file, but other than these the files can now hold arbitrary values. This is potentially a breaking change, because while it was documented that there should be one value per line (and the example didn't add leading/trailing spaces), in practice it was possible to place several values per line, and leading/trailing spaces were ignored. So this will break for users who placed several options per line and/or expect whitespaces to be ignored. Also, libass and fribidi didn't support *_options files, now they do.
* configure options: allow CLI arguments with spacesAvi Halachmi (:avih)2021-12-014-19/+12
| | | | | | | | | | | | | | | | | | | | | | | | While configure CLI options are not used with ./build and ./rebuild, scripts/*-config can be invoked directly with arguments, and these script do take that into account. Previously, spaces in such arguments e.g. --extra-libs="-L/foo -lbar" caused the argument to be incorrectly split (on IFS), and now they're preserved correctly. The issue was that the arguments were stored using USER_OPTS="$@", and the var value was later used unquoted - which splits on IFS. Another issue is that VAR="$@" is unspecified by posix, because quoted "$@" is only specified where field-splitting otherwise happens, but it doesn't happen in variable assignment. The solution is to never store "$@", and instead just use it directly. Also, previously scripts/fribidi-config ignored CLI arguments, now it doesn't. Config options at NAME_options files will be fixed at the next commit.
* build options: allow CLI arguments with spacesAvi Halachmi (:avih)2021-12-014-4/+4
| | | | | | | | | | | | | | | | This affects CLI arguments to ./build, ./rebuild, as well as when invoking any of scripts/*-build directly. Previously, if such CLI argument contained a space, then the argument was incorrectly split. Now spaces are taken correctly. The issue was that the scripts used unquoted $@, which is identical to unquoted $*, i.e. it's field-split on IFS. Now we use quoted "$@", which preserves the arguments exactly. Also, previously scripts/fribidi-build ignored the CLI arguments, and now it doesn't (but we still override any -jN option with -j1).
* manually add libass requires in mpv-configKevin Mitchell2021-04-031-0/+4
| | | | | | | This became necessary with libass/libass@c9c4fed39339ffde45123013a117e06d0bb9c488 fixes #152, #150
* Call waf with python3 everywhereKrzysztof Knapik2021-02-164-4/+4
|
* Explicitly call waf with python3 everywheresfan52021-02-081-1/+1
| | | | | This saves Debian users from installing python-is-python3 and others from accidentally running waf with python2 (unsupported).
* debian: use spaces instead of tabs in debian-update-versionsKevin Mitchell2020-03-081-6/+6
|
* support for mbedtlsDale Weiler2019-09-141-1/+2
|
* Revert "Remove Debian scripts"Kevin Mitchell2018-05-211-0/+23
| | | | | This reverts commit 8c9abd8c7914b71562e2d81faad76015526a9f8e. I'm restoring them, bugs will be my own responsibility.
* Remove Debian scriptsMartin Herkt2018-05-191-23/+0
| | | | | | | | | | | | | | What’s so special about this distro that we not only have a repository with scripts to compensate for the inability of its maintainers to package and distribute software to our users, but also have to deal with their incredibly bad tooling? Also, the instructions don’t work and only waste users’ time. If these “only exist for users who want to hurt themselves” then perhaps we shouldn’t have them in the first place, even if “wants to hurt themselves” practically describes the majority of Debian users. Closes #106.
* Do not clear existing PKG_CONFIG_PATH settings.Rudolf Polzer2015-09-083-4/+31
| | | | | | | | | In my setup, I use PKG_CONFIG_PATH to point to libfdk-aac; the previous version of these files overrode this, making ffmpeg fail to configure for not finding libfdk-aac. Now, the PKG_CONFIG_PATH variable is always honored, with our own build directory put in front of existing settings.
* quiet grep for ffmpeg ssl librariesKevin Mitchell2015-04-031-2/+2
|
* ffmpeg-config: prefer gnutls and redistributionwd02015-03-291-5/+5
| | | | | Avoid unnecessarily adding --enable-nonfree and prefer gnutls over openssl in configuring ffmpeg.
* Autodetect OpenSSL or GnuTLSwm42015-02-121-1/+14
| | | | | | | | | I'll probably regret it. There's also a very small chance that the pkg-config things I'm checking are debian-specific. Fixes #54.
* Don't build libavresamplewm42015-02-121-1/+1
| | | | | | | The mpv configure script actually doesn't pick up libavresample anymore if it finds libswscale. Closes #55.
* Mention ./update when switching brancheswm42014-12-291-0/+1
| | | | ./rebuild calls ./update, but ./update alone also works.
* mpv-clean: exit early if the git archive doesn't exist yetKevin Mitchell2014-11-271-0/+1
| | | | closes #49
* move ffmpeg build after libassKevin Mitchell2014-11-031-1/+1
| | | | in case someone wants to add --enable-libass to ffmpeg_options
* debian: make debian-update-versions work with use-[ffmpeg|mpv]-[release|master]Kevin Mitchell2014-10-271-33/+8
|
* Clean on manual branch-switchingwm42014-10-271-0/+7
| | | | | | Especially with FFmpeg, users get into trouble with FFmpeg's broken build system, which might error on incremental builds for no good reason.
* Add a simpler way to switch between release and master versionswm42014-10-271-0/+10
| | | | | | | | | | | This remembers the selection, and users are not tricked into accidentally switching back to the release all the time. Don't do this for libass, we always use master. (No reason to use a usually buggy and outdated release.) We don't do it for fribidi either, because fribidi is just in a permanent state of bitrotting and brokenness.
* redirect cd stdout to null in debian-update-versionsKevin Mitchell2014-09-251-2/+2
|
* replace tabs with spaces in debian-update-versionsKevin Mitchell2014-09-251-10/+9
|
* Allow building libmpvwm42014-06-264-3/+32
| | | | | | | The tricky part is enabling PIC for all libraries if required. We don't always enable PIC, because I'm unsure about its performance or binary size impact. So play it safe.
* increment the debian epoch (the number before : in the version) for git ↵Kevin Mitchell2014-04-191-3/+4
| | | | | | | | | | | | master so that 1:0.3.8 and with --master 2:2014.04.19.0879db9 This ensures that --master is considered "newer"
* scripts/mpv-config: don't add extra options twicewm42014-04-191-1/+3
| | | | Also, print the configure args, like ffmpeg-config does.
* Fix previous commitwm42014-04-181-1/+2
| | | | Was untested, is still untested.
* Remove customization note in ffmpeg-configwm42014-04-182-6/+5
| | | | | | | | People edit this -> ./update stops working, unless the changes are committed, which is not very obvious. They should edit ffmpeg_options instead. There's a big section in the README about this. Also, make mpv-config read mpv_config.
* enable harfbuzz support for libassKevin Mitchell2014-02-221-1/+1
|
* minor whitespace tweakKevin Mitchell2014-02-081-1/+1
|
* move debian/changelog to debian/changelog.TEMPLATEKevin Mitchell2014-02-081-3/+3
| | | | | and drop version control on debian/changelog, which gets modified by scripts/debian-update-version
* fridibi: disable glibwm42014-02-071-1/+1
| | | | | | | | Fribidi uses glib incorrectly, and apparently raises a compilation error with newer glib versions. Since glib is not really needed, just disable it. Untested, but a user reported adding --without-glib works fine.
* Better changelog hack in separate script called from ./update.Kevin Mitchell2014-02-061-0/+48
| | | | | | | dpkg-buildpackage reads the changelog before ever calling debian/rules, so its not a good idea to change it from there. Move this to a separate script called from ./update which does not depend on any debian-specific commands.
* allow user to specify ffmpeg options from either or both theKevin Mitchell2014-01-291-1/+2
| | | | ffmpeg_options file and arguments to the scripts/ffmpeg-config script
* Merge remote-tracking branch 'origin/pr/17'wm42014-01-282-2/+6
|\
| * build more features in debian package including custom-built fribidiKevin Mitchell2014-01-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * build fribidi for the debian package * add dependencies to debian package taking cues from the official debian version enable everything except: + libsdl2 (not available in wheezy or precise) + libmpeg123 (build error on precise due to old version) + caca, radio interface, openal output, portaudio output, rsound/libroar/sndio input/output, sdl1, joystick, videoio.h/libpt * additional ffmpeg features (and dependencies) are still to be handled manually by the builder using the ffmpeg_options file as described in README.rst * adjust debian/changelog so building works on both debian and ubuntu (tested on saucy,precise,wheezy,sid amd64) * tweak debian parts of README.rst
| * Bring back a waf-compatible deiban build systemKevin Mitchell2014-01-271-1/+3
| | | | | | | | | | | | | | | | | | | | For override_dh_auto_install, just tell waf to install the files under debian/mpv. The main problem was that the script names clean,build,install in the root directory collided with makefile targets in debian/rules which lead make to do nothing since they appeared already up-to-date. .PHONY wasn't enough since the targets are implicit via the % operator. I had to explicitly declare the problematic targets AND list them as .PHONY
* | libass: fix compilation with newer git versionswm42014-01-281-0/+3
|/
* Re-enable building fribidi (with -j1)Martin Herkt2014-01-082-1/+4
| | | | This works now that the build scripts are not Makefiles anymore.
* mpv-clean: use distcleanwm42013-12-291-1/+1
|
* mpv-clean: explicitly remove files produced by old build systemwm42013-12-291-0/+3
| | | | | | | | | | This is a temporary step and currently breaks everything. The next commit will add regular git checkouts to the update script. Conflicts: ffmpeg mpv
* Adding waf support for mpv.Josh Driver2013-12-2911-1/+47
|
* Disable building fribidi for nowwm42013-07-151-1/+1
| | | | | | | It completely breaks parallel builds. I couldn't find out how to get "make" not to build fribidi with parallel build enabled.
* Slightly better way to allow custom ffmpeg configurationwm42013-07-091-2/+8
| | | | | This read options from a file named ffmpeg_options and passes them to ffmpeg's configure.
* libass-config: override FRIBIDI_CFLAGSTuncer Ayaz2013-07-061-1/+1
| | | | | | | libass/configure sets FRIBIDI_CFLAGS to "-I$(pwd)/build_libs/include/fribidi" instead of "-I$(pwd)/build_libs/include". As a workaround override FRIBIDI_CFLAGS in scripts/libass-config.
* Add support for building fribidi locallyTuncer Ayaz2013-07-062-1/+10
|
* ffmpeg-config: remove needless --enable-nonfree flag; add example flagsRudolf Polzer2013-06-211-1/+6
| | | | | | This removes the needlessly enabled --enable-nonfree flag, and also adds commented out lines to add libx264, libmp3lame and libfdk_aac support to the ffmpeg used for building mpv.
* Enable libavresample by defaultwm42013-04-011-1/+1
|
* Update mpvwm42013-03-131-1/+1
| | | | | Also add --disable-doc to the ffmpeg options. They're useless and make the local installation slightly slower.
* Add a basic dh-based debian directorywm42013-01-231-1/+1
| | | | Merges pull request #1.
* Update mpv and ffmpegwm42012-12-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Major user-visible changes: - OSD overhaul: remove some of the old OSD/sub options, which did not or barely worked, and add new options that work properly. The OSD font is now sl