summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD128
1 files changed, 71 insertions, 57 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 04cc1605c656..ccc7abf750cf 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,37 +5,35 @@
# Contributor: pressh <pressh[at]gmail>
# Based on extra/x264's trunk: https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/x264
-# Build 10-bit x264 instead of 8-bit? (Better quality, but slower.)
+# Build 8bit or 10bit x264? (10bit = Better quality, but slower)
# For comparison, see, e.g.: https://gist.github.com/l4n9th4n9/4459997
+_build=0 # 0 = Conflict after 1st build (default)
+ # 1 = 8bit
+ # 2 = 10bit
+ # (Auto-detected later based on installed version)
-_10bit=0 # "1" to enable. (This will be auto-detected afterwards.)
-
-# To revert, uninstall 'libx264-10bit-git', or use:
-
-_8bit=0
-
-pkgname=('x264-git' 'libx264-git' 'libx264-10bit-git')
+pkgname=('x264-git' 'libx264-git' 'libx264-10bit-git' 'libx264-all-git')
_pkgname=x264
pkgver=152.20170626.r2851
pkgrel=1
arch=('i686' 'x86_64')
-url='http://www.videolan.org/developers/x264.html'
+url='https://www.videolan.org/developers/x264.html'
license=('GPL')
depends=('glibc')
-makedepends=('yasm' 'git' 'ffmpeg' 'l-smash')
+makedepends=('nasm' 'git' 'ffmpeg' 'l-smash')
source=("git+https://git.videolan.org/git/x264.git")
sha256sums=('SKIP')
-# Use the 10-bit version?
-if [[ ${_10bit} = 1 ]] || ([[ ${_8bit} != 1 ]] && pacman -Q libx264-10bit-git &>/dev/null); then
- pkgname=('x264-git' 'libx264-10bit-git')
- _10bit=1
-elif [[ ${_8bit} = 1 ]] || pacman -Q libx264-git &>/dev/null; then
- pkgname=('x264-git' 'libx264-git')
+# 8bit or 10bit?
+if [[ ${_build} = 1 ]] || pacman -Q libx264-git &>/dev/null; then
+ pkgname=('x264-git' 'libx264-git' 'libx264-all-git')
+elif [[ ${_build} = 2 ]] || pacman -Q libx264-10bit-git &>/dev/null; then
+ pkgname=('x264-git' 'libx264-10bit-git' 'libx264-all-git')
fi
pkgver() {
cd ${_pkgname}
+
_ver=$(grep '#define X264_BUILD' x264.h | cut -d' ' -f3)
_date=$(git log -1 --format="%cd" --date=short | tr -d -)
_commits=$(git rev-list --count HEAD)
@@ -44,65 +42,81 @@ pkgver() {
}
prepare() {
- rm -rf ${_pkgname}-10bit
-
- cp -r ${_pkgname} ${_pkgname}-10bit
+ rm -rf build-{8,10}bit
+ mkdir build-{8,10}bit
}
build() {
- cd ${_pkgname}
-
- msg2 "Configuring x264..."
- ./configure \
- --prefix='/usr' \
- --enable-shared \
- --enable-pic
-
- msg2 "Making x264..."
- make
-
- cd ../${_pkgname}-10bit
-
- msg2 "Configuring x264 (10-bit)..."
- ./configure \
- --prefix='/usr' \
- --enable-shared \
- --enable-pic \
- --bit-depth='10'
-
- msg2 "Making x264 (10-bit)..."
- make
+ for _b in 8 10; do (
+ cd build-${_b}bit
+
+ msg2 "Configuring (${_b}bit)..."
+ ../${_pkgname}/configure \
+ --prefix='/usr' \
+ --enable-shared \
+ --enable-pic \
+ --enable-lto \
+ --bit-depth="${_b}"
+
+ msg2 "Making (${_b}bit)..."
+ make
+ ) done
}
package_x264-git() {
pkgdesc='CLI tools for encoding H264/AVC video streams (Git)'
depends=('libavcodec.so' 'libavformat.so' 'libavutil.so' 'liblsmash.so'
'libswscale.so')
- provides=('x264-10bit' 'x264')
- conflicts=('x264-10bit' 'x264')
- replaces=('x264-10bit')
+ provides=('x264')
+ conflicts=('x264')
+
+ for _b in {8,10}bit; do
+ provides+=("x264-${_b}")
+
+ msg2 "Make-installing (${_b}bit)..."
+ make -C build-${_b} DESTDIR="${pkgdir}" install-cli
+ mv "${pkgdir}"/usr/bin/x264{,-${_b}}
+ done
- make -C ${_pkgname} DESTDIR="${pkgdir}" install-cli
- install -m 755 ${_pkgname}-10bit/x264 "${pkgdir}"/usr/bin/x264-10bit
+ ln -s x264-8bit "${pkgdir}"/usr/bin/x264
}
package_libx264-git() {
- pkgdesc='Library for encoding H264/AVC video streams (Git)'
- provides=('libx264.so' 'x264-dev' 'libx264')
- conflicts=('x264-dev' 'libx264')
- replaces=('x264-dev')
+ pkgdesc='Library for encoding H264/AVC video streams (8bit depth) (Git)'
+ provides=('libx264-8bit' 'libx264.so' 'libx264')
+ conflicts=('libx264')
- install -dm 755 "${pkgdir}"/usr/lib
- make -C ${_pkgname} DESTDIR="${pkgdir}" install-lib-shared
+ msg2 "Make-installing..."
+ make -C build-8bit DESTDIR=${pkgdir} install-lib-shared
}
package_libx264-10bit-git() {
- pkgdesc='Library for encoding H264/AVC video streams - 10bit-depth (Git)'
- provides=('libx264.so' 'libx264' 'x264-dev' 'libx264-10bit')
- conflicts=('libx264' 'x264-dev' 'libx264-10bit')
+ pkgdesc='Library for encoding H264/AVC video streams (10bit depth) (Git)'
+ provides=('libx264' 'libx264.so' 'libx264-10bit')
+ conflicts=('libx264' 'libx264-10bit')
+
+ msg2 "Make-installing..."
+ make -C build-10bit DESTDIR=${pkgdir} install-lib-shared
+}
+
+package_libx264-all-git() {
+ pkgdesc="Library for encoding H264/AVC video streams (all depths) (Git)"
+ provides=('libx264-all')
+ conflicts=('libx264-all')
+
+ install -d "${pkgdir}"/usr/lib/x264
+
+ for _b in {8,10}bit; do
+ provides+=("libx264-${_b}.so")
+
+ msg2 "Make-installing (${_b}bit)..."
+ make -C build-${_b} DESTDIR="${pkgdir}" install-lib-shared
+
+ mv "${pkgdir}"/usr/lib/libx264.so.${_ver} "${pkgdir}"/usr/lib/x264/libx264-${_b}.so.${_ver}
+ rm -r "${pkgdir}"/usr/{include,lib/libx264.so,lib/pkgconfig}
- install -dm 755 "${pkgdir}"/usr/lib
- make -C ${_pkgname}-10bit DESTDIR="${pkgdir}" install-lib-shared
+ ln -sr "${pkgdir}"/usr/lib/x264/libx264-${_b}.so{.${_ver},}
+ done
}
# vim: ts=2 sw=2 et: \ No newline at end of file