summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2017-06-21 15:31:30 -0400
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2017-06-24 08:32:52 +0700
commitdf8c4bbc9535d54b46d56fa9a61c31c733a82547 (patch)
tree6a30a35bdf2f380a901984a7a11b143f971cf479
parentf9c306688c9955be20fee6e8a9959fcedd47957f (diff)
downloadslackbuilds-df8c4bbc9535d54b46d56fa9a61c31c733a82547.tar.gz
audio/foo-yc20: Fix build for -current.
Signed-off-by: B. Watson <yalhcru@gmail.com>
-rw-r--r--audio/foo-yc20/README24
-rw-r--r--audio/foo-yc20/foo-yc20.SlackBuild21
2 files changed, 31 insertions, 14 deletions
diff --git a/audio/foo-yc20/README b/audio/foo-yc20/README
index 83a7436789..4cea340315 100644
--- a/audio/foo-yc20/README
+++ b/audio/foo-yc20/README
@@ -1,20 +1,28 @@
foo-yc20 (Yamaha YC-20 organ emulator for JACK and LV2)
-This is an implementation of a 1969 designed Yamaha combo organ,
-the YC-20.
+This is an implementation of a 1969 designed Yamaha combo organ, the YC-20.
Original YC-20 organs have a touch vibrato control, which is vibrato
-induced by horizontal movement of the keys. As there very few (almost
-none) midi keyboards which produce such information, this feature has
+induced by horizontal movement of the keys. As there are very few (almost
+no) MIDI keyboards which produce such information, this feature has
been left out of the emulation. Instead of the touch vibrato control,
the control panel hosts a "realism" switch.
-By default, the package is built with -march=native, which tells gcc
-to use the host CPU's features such as SSE2. You can disable this by
-passing FORCE_SLACK_CFLAGS=yes to the script.
-
This package uses POSIX filesystem capabilities to execute with
elevated privileges (required for realtime audio processing). This
may be considered a security/stability risk. Please read
http://www.slackbuilds.org/caps/ for more information. To disable
capabilities, pass SETCAP=no to the script.
+
+Since audio synthesis is compute-intensive, compiler optimizations might
+actually make a noticeable difference. The environment variable OPTIMIZE
+can be set to:
+
+- OPTIMIZE="default" (or, unset) builds with -O2 -march=native.
+
+- OPTIMIZE="slack" builds with standard Slackware flags. Use this if you're
+ going to e.g. build a package on a system with SSE2 that you're going to
+ install on a system without SSE2).
+
+- OPTIMIZE="upstream" builds with -O3 -march=native. This requires up to
+ 6GB of memory (ram + swap) and takes up to 10 times as long to build.
diff --git a/audio/foo-yc20/foo-yc20.SlackBuild b/audio/foo-yc20/foo-yc20.SlackBuild
index 0dd1400c51..b2ad258341 100644
--- a/audio/foo-yc20/foo-yc20.SlackBuild
+++ b/audio/foo-yc20/foo-yc20.SlackBuild
@@ -6,9 +6,12 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20170621 bkw: Rework optimization options. Needed because -current's
+# gcc7 requires massive amounts of memory to build this.
+
PRGNAM=foo-yc20
VERSION=${VERSION:-1.3.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -55,11 +58,17 @@ find -L . \
sed -i "s,\<lib\>,lib$LIBDIRSUFFIX,g" Makefile
-if [ "${FORCE_SLACK_CFLAGS:-no}" = "yes" ]; then
- make PREFIX=/usr CFLAGS="$SLKCFLAGS"
-else
- make PREFIX=/usr
-fi
+case "${OPTIMIZE:-default}" in
+ slack)
+ make PREFIX=/usr CFLAGS="$SLKCFLAGS" ;;
+ default)
+ sed -i 's,-O3,-O2,g' Makefile ; make PREFIX=/usr ;;
+ upstream)
+ make PREFIX=/usr ;;
+ *)
+ echo "Bad OPTIMIZE, must be one of: 'default', 'slack', 'upstream'" 2>&1
+ exit 1
+esac
make install DESTDIR=$PKG PREFIX=/usr