summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: f358e851f56f3fd49a2eb28eb6fde13af08f5083 (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
# Maintainer: Albert Graef <aggraef at gmail.com>
# Contributor: Bernardo Barros <bernardobarros at gmail dot com>
# Contributor: bjoern lindig (bjoern _dot_ lindig _at_ google.com)

pkgname=faust-git
pkgver=2.15.11.r10529.b0354c55f
pkgrel=1
epoch=2
pkgdesc="A functional programming language for realtime audio signal processing."
arch=('i686' 'x86_64')
url="http://faust.grame.fr/"
license=('GPL')
depends=('llvm-libs'
# needed for sound2faust:
	 'libsndfile'
# needed for libfaustremote and faustbench:
#	 'jack2'
# needed for libHTTPDFaust:
	 'libmicrohttpd' 'openssl')
# We need xxd at build time, which is provided by 'gvim', 'vim' and
# 'xxd-standalone' (AUR).
makedepends=('llvm' 'git' 'xxd')
optdepends=('clang: needed for sound2reader'
	    'python2: needed for faust2md'
	    'ruby: needed for faust2sc and scbuilder'
            'java-environment=8: needed for faust2android')
provides=('faust' 'faust2-git')
conflicts=('faust')
# This keeps the static libraries. Remove the 'staticlibs' option if this
# isn't wanted.
options=('staticlibs')
# We're using the (default) master-dev branch of Faust here, which has all the
# latest changes. End users might want to use the master branch instead, which
# is supposedly more stable and tested, but nevertheless (mostly) up-to-date.
source=("$pkgname::git+https://github.com/grame-cncm/faust.git#branch=master-dev")
md5sums=('SKIP')

pkgver() {
  cd "$pkgname"

  # use un-annotated tags per
  # https://wiki.archlinux.org/index.php/VCS_package_guidelines#Git
  #git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'

  # ... but unfortunately many releases go untagged right now, so we rather do
  # it like this, because that gives us the real release number as running
  # `faust --version` will report it
  echo $(make debversion|sed -e s/+git.*//).r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
}

prepare() {
  cd "$pkgname"
  git submodule update --init
}

# NOTE: libHTTPDFaust requires 'libmicrohttpd' and 'openssl'.
# Similarly, sound2faust requires libsndfile which we also include by default.
# These are all optional, so you can get rid of the extra dependencies by
# changing the build target from 'world' to 'all' and removing the
# corresponding dependencies above.

build() {
  cd "$pkgname"
  make PREFIX=/usr world
  # 'remote' and 'benchmark' are disabled right now since they require jack2.
  #make benchmark remote PREFIX=/usr
}

package() {
  cd "$pkgname"
  make install PREFIX=/usr DESTDIR="$pkgdir"

  # docs
  install -d "$pkgdir/usr/share/doc/faust"
  for x in documentation/*.{pdf,html} libraries/doc/*.{pdf,html}; do test -f $x && install -Dm644 $x "$pkgdir/usr/share/doc/faust"; done

  # examples
  install -d "$pkgdir/usr/share/faust/examples"
  cp -R "examples/"* "$pkgdir/usr/share/faust/examples/"

  ## syntax highlighting files
  cd syntax-highlighting

  # atom
  install -Dm644 "atom/language-faust/package.json" \
    "${pkgdir}/usr/lib/atom/dot-atom/packages/language-faust/package.json"
  install -Dm644 "atom/language-faust/grammars/faust.cson" \
    "${pkgdir}/usr/lib/atom/dot-atom/packages/language-faust/grammars/faust.cson"
  install -Dm644 "atom/language-faust/settings/language-faust.cson" \
    "${pkgdir}/usr/lib/atom/dot-atom/packages/language-faust/settings/language-faust.cson"
  install -t "${pkgdir}/usr/lib/atom/dot-atom/packages/language-faust/snippets/" \
    -Dm644 "atom/language-faust/snippets/"*
  install -Dm644 "atom/language-faust/process-palette.json.linux" \
	  "${pkgdir}/usr/share/doc/faust/process-palette.json"
  # kate
  install -Dm644 faust.xml "$pkgdir/usr/share/apps/katepart/syntax/faust.xml"
  # gedit
  install -Dm644 faust.lang "$pkgdir/usr/share/gtksourceview-2.0/language-specs/faust.lang"
  install -Dm644 faust.lang "$pkgdir/usr/share/gtksourceview-3.0/language-specs/faust.lang"
  # highlight
  install -Dm644 dsp.lang "$pkgdir/usr/share/highlight/langDefs/dsp.lang"
  # nano
  install -Dm644 "faust.nanorc" "$pkgdir/usr/share/nano/faust.nanorc"
  # vim
  install -Dm644 faust.vim "$pkgdir/usr/share/vim/vimfiles/syntax/faust.vim"
  # emacs
  install -d "$pkgdir/usr/share/emacs/site-lisp/"
  install -Dm644 faust-mode.el "$pkgdir/usr/share/emacs/site-lisp/"
}