summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 477d99ca76744097212d8dc0308fbf4df046eb31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# Maintainer: Gustavo Alvarez <sl1pkn07@gmail.com>

pkgbase=avxsynth-git
pkgname=(
  'avxsynth-git'
  'avxedit-git'
)
pkgver=20150407.80dcb7e
pkgrel=6
pkgdesc="Linux Port of AviSynth. (Git version)"
arch=('x86_64')
url='http://www.avxsynth.org'
license=('GPL2')
makedepends=(
  'git'
  'yasm'
  'python'
  'qt5-base'
  'qt5-tools'
#  'mplayer'
  'log4cpp'
  'pango'
  'libjpeg-turbo'
  'sdl12-compat'
)
source=(
  'git+https://github.com/avxsynth/avxsynth.git'
  'git+https://git.videolan.org/git/ffmpeg.git#tag=n4.4.4'
  'git+https://github.com/FFMS/ffms2.git#tag=2.23'
  'https://patch-diff.githubusercontent.com/raw/avxsynth/avxsynth/pull/120.diff'
  'https://patch-diff.githubusercontent.com/raw/avxsynth/avxsynth/pull/121.diff'
  'https://patch-diff.githubusercontent.com/raw/avxsynth/avxsynth/pull/122.diff'
  'https://patch-diff.githubusercontent.com/raw/avxsynth/avxsynth/pull/126.diff'
  'c++11_fix.patch'
  'qt5.patch'
)
sha256sums=(
  'SKIP'
  'SKIP'
  'SKIP'
  '87952a30be26f6db89e5b1d89c9bdb9c9567654bdaa2ce80503ce28f8f0a272a'
  '6534ae6c2e09b3c13ca4d9c47e1d3a4c8895575d3202b0d3ab80b25504bff94d'
  'a2cf0517db8368c53912cde5cbd81d6f29cf0c4a5db5a25483284fe0b38012cb'
  'f6a825b6b5da58d7ebdb67252885262908bda86edf248b78771c8ffaef3e00b9'
  'ac83efa3a3a78ed4c1935ea47dafbdb46b9c6b03c1f4ab214850eda708ee0cc6'
  'fb155fc2dbdb2450c3761781c571ec4335d1fa5169bd1fb2332386eb047c6d8a'
)
options=('!lto')

pkgver() {
  cd avxsynth
  echo "$(git log -1 --format="%cd" --date=short | tr -d '-').$(git log -1 --format="%h")"
}

prepare() {
  mkdir -p build build-ffmpeg build-ffms2

  cd avxsynth

  patch -p1 -i "${srcdir}/120.diff"
  patch -p1 -i "${srcdir}/121.diff"
  patch -p1 -i "${srcdir}/122.diff"
  patch -p1 -i "${srcdir}/126.diff"
  sed 's|STATUS_NO_MEMORY|(unsigned)STATUS_NO_MEMORY|g' -i avxsynth/core/src/core/parser/expression.cpp

  # error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
  patch -p1 -i "${srcdir}/c++11_fix.patch"

  # Build on Qt5
  patch -p1 -i "${srcdir}/qt5.patch"

  cd "${srcdir}/ffmpeg"
  # Build with binutils +2.41
  git cherry-pick effadce6c756247ea8bae32dc13bb3e6f464f0eb -m 1

}

build() {
  CXXFLAGS+=" -std=c++11"
  LDFLAGS+=" -Wl,--allow-multiple-definition"
  export PYTHON=python

  cd "${srcdir}/build-ffmpeg"
  ../ffmpeg/configure \
    --prefix="${srcdir}/fakeroot" \
    --disable-{network,{encod,mux}ers,hwaccels,{in,out}devs,debug,programs,doc,vdpau,vaapi,cuda,cuvid,nvenc} \
    --enable-pic \
    --enable-avisynth \
    --enable-avresample \
    --disable-decoder=opus \
    --enable-gpl

  make install

  export PKG_CONFIG_LIBDIR="${srcdir}/fakeroot/lib/pkgconfig"
  export PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:/usr/lib/pkgconfig:/usr/share/pkgconfig"

  cd "${srcdir}/build-ffms2"
  ../ffms2/configure \
    --prefix="${srcdir}/fakeroot" \
    --enable-shared=no \
    --with-pic

  make install-libLTLIBRARIES install-pkgconfigDATA install-includeHEADERS

  cd "${srcdir}/avxsynth"
  autoreconf -if

  cd "${srcdir}/build"
  ffms2_CFLAGS="-I${srcdir}/fakeroot" \
  ../avxsynth/configure \
    --prefix=/usr \
    --enable-silent-rules \
    --with-pic

  make
}

package_avxsynth-git() {
  pkgdesc="Linux Port of AviSynth. (Git version)"
  depends=(
    'log4cpp'
    'pango' 'libpango-1.0.so' 'libpangocairo-1.0.so' 'libpangoft2-1.0.so'
    'sdl12-compat'
    'libjpeg-turbo' 'libjpeg.so'
  )
  provides=('avxsynth')
  conflicts=('avxsynth')

  make -C build DESTDIR="${pkgdir}" install
  make -C build/apps/AVXEdit DESTDIR="${pkgdir}" uninstall
}

package_avxedit-git() {
  pkgdesc="Simple Qt frontend for create/edit/test AvxSynth scripts. (Git version)"
  depends=(
    'qt5-base'
    'avxsynth-git'
  )
  provides=('avxedit')
  conflicts=('avxedit')

  make -C build/apps/AVXEdit DESTDIR="${pkgdir}" install
}