Commit b8b83837 authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

Merge branch 'master' into handle-mingw64-correctly

parents 15ac8a10 d95f5624
debian_stable_i386_deb: debian_jessie_i386_deb:
tags: tags:
- debian - debian
- stable - stable
...@@ -11,6 +11,7 @@ debian_stable_i386_deb: ...@@ -11,6 +11,7 @@ debian_stable_i386_deb:
- ./tar_em_up.sh -B - ./tar_em_up.sh -B
- cd .. - cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null - echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd - valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -18,7 +19,7 @@ debian_stable_i386_deb: ...@@ -18,7 +19,7 @@ debian_stable_i386_deb:
paths: paths:
- pd*.deb - pd*.deb
debian_stable_amd64_deb: debian_jessie_x86_64_deb:
tags: tags:
- debian - debian
- stable - stable
...@@ -31,6 +32,7 @@ debian_stable_amd64_deb: ...@@ -31,6 +32,7 @@ debian_stable_amd64_deb:
- ./tar_em_up.sh -B - ./tar_em_up.sh -B
- cd .. - cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null - echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd - valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -38,7 +40,7 @@ debian_stable_amd64_deb: ...@@ -38,7 +40,7 @@ debian_stable_amd64_deb:
paths: paths:
- pd*.deb - pd*.deb
debian_stretch_amd64_deb: debian_stretch_x86_64_deb:
tags: tags:
- debian - debian
- stretch - stretch
...@@ -51,6 +53,7 @@ debian_stretch_amd64_deb: ...@@ -51,6 +53,7 @@ debian_stretch_amd64_deb:
- ./tar_em_up.sh -B - ./tar_em_up.sh -B
- cd .. - cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null - echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd - valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -72,6 +75,7 @@ ubuntu_14.04_i386_deb: ...@@ -72,6 +75,7 @@ ubuntu_14.04_i386_deb:
- cd .. - cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null - echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts - cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd - valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -79,7 +83,7 @@ ubuntu_14.04_i386_deb: ...@@ -79,7 +83,7 @@ ubuntu_14.04_i386_deb:
paths: paths:
- pd*.deb - pd*.deb
ubuntu_14.04_amd64_deb: ubuntu_14.04_x86_64_deb:
tags: tags:
- ubuntu - ubuntu
- v14.04 - v14.04
...@@ -93,6 +97,7 @@ ubuntu_14.04_amd64_deb: ...@@ -93,6 +97,7 @@ ubuntu_14.04_amd64_deb:
- cd .. - cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null - echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts - cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd - valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -100,7 +105,7 @@ ubuntu_14.04_amd64_deb: ...@@ -100,7 +105,7 @@ ubuntu_14.04_amd64_deb:
paths: paths:
- pd*.deb - pd*.deb
ubuntu_16.04_amd64_deb: ubuntu_16.04_x86_64_deb:
tags: tags:
- ubuntu - ubuntu
- v16.04 - v16.04
...@@ -114,6 +119,7 @@ ubuntu_16.04_amd64_deb: ...@@ -114,6 +119,7 @@ ubuntu_16.04_amd64_deb:
- cd .. - cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null - echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts - cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd - valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -121,7 +127,7 @@ ubuntu_16.04_amd64_deb: ...@@ -121,7 +127,7 @@ ubuntu_16.04_amd64_deb:
paths: paths:
- pd*.deb - pd*.deb
osx_amd64_dmg: osx_10.11_x86_64_dmg:
tags: tags:
- osx - osx
- v10.11 - v10.11
...@@ -131,13 +137,15 @@ osx_amd64_dmg: ...@@ -131,13 +137,15 @@ osx_amd64_dmg:
- cd l2ork_addons - cd l2ork_addons
- ./tar_em_up.sh -X - ./tar_em_up.sh -X
- cd ../scripts - cd ../scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd - ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day expire_in: 1 day
paths: paths:
- Pd*.dmg - Pd*.dmg
osx_10.8_amd64_dmg:
osx_10.8_x86_64_dmg:
tags: tags:
- osx - osx
- v10.8 - v10.8
...@@ -147,6 +155,7 @@ osx_10.8_amd64_dmg: ...@@ -147,6 +155,7 @@ osx_10.8_amd64_dmg:
- cd l2ork_addons - cd l2ork_addons
- osx_version=10.8 ./tar_em_up.sh -X - osx_version=10.8 ./tar_em_up.sh -X
- cd ../scripts - cd ../scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd - ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -154,7 +163,7 @@ osx_10.8_amd64_dmg: ...@@ -154,7 +163,7 @@ osx_10.8_amd64_dmg:
paths: paths:
- Pd*.dmg - Pd*.dmg
windows_i386_installer: windows_i386_innosetup:
tags: tags:
- windows - windows
- i386 - i386
...@@ -163,6 +172,7 @@ windows_i386_installer: ...@@ -163,6 +172,7 @@ windows_i386_installer:
- cd l2ork_addons - cd l2ork_addons
- ./tar_em_up.sh -Z - ./tar_em_up.sh -Z
- cd ../scripts - cd ../scripts
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio external-tests.pd - ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
...@@ -170,16 +180,22 @@ windows_i386_installer: ...@@ -170,16 +180,22 @@ windows_i386_installer:
paths: paths:
- Purr*.exe - Purr*.exe
debian_stable_arm_deb: raspbian_stretch_armv7l_deb:
tags: tags:
- debian - debian
- arm - arm
- stable - stable
- stretch
script: script:
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
- echo `pwd` - echo `pwd`
- cd l2ork_addons - cd l2ork_addons
- ./tar_em_up.sh -r - ./tar_em_up.sh -r
- cd .. - cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd - valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION" name: "$CI_RUNNER_DESCRIPTION"
......
...@@ -4,9 +4,6 @@ ...@@ -4,9 +4,6 @@
[submodule "l2ork_addons/cwiid"] [submodule "l2ork_addons/cwiid"]
path = externals/disis/cwiid path = externals/disis/cwiid
url = https://github.com/pd-l2ork/cwiid url = https://github.com/pd-l2ork/cwiid
[submodule "l2ork_addons/raspberry_pi/disis_gpio/wiringPi"]
path = l2ork_addons/raspberry_pi/disis_gpio/wiringPi
url = git://git.drogon.net/wiringPi
[submodule "externals/fftease"] [submodule "externals/fftease"]
path = externals/fftease path = externals/fftease
url = https://git.purrdata.net/jwilkes/fftease.git url = https://git.purrdata.net/jwilkes/fftease.git
...@@ -16,3 +13,9 @@ ...@@ -16,3 +13,9 @@
[submodule "externals/lyonpotpourri"] [submodule "externals/lyonpotpourri"]
path = externals/lyonpotpourri path = externals/lyonpotpourri
url = https://git.purrdata.net/jwilkes/lyonpotpourri3.0.git url = https://git.purrdata.net/jwilkes/lyonpotpourri3.0.git
[submodule "l2ork_addons/raspberry_pi/disis_gpio/wiringPi"]
path = l2ork_addons/raspberry_pi/disis_gpio/wiringPi
url = https://git.purrdata.net/jwilkes/wiringPi.git
[submodule "externals/pd-lua"]
path = externals/pd-lua
url = https://git.purrdata.net/jwilkes/pd-lua.git
# Toplevel Makefile for Purr Data. Please note that at present this is just a
# thin wrapper around l2ork_addons/tar_em_up.sh, the traditional Pd-l2ork
# build script.
# The Pd-l2ork build system is very arcane and intricate. Its main purpose is
# putting together a staging area with a complete Pd-l2ork installation and
# then building installers for the supported platforms from that, pulling
# together a bunch of separate packages, each with their own build system.
# Compiling sources is just one of the tasks that the builder does. Therefore
# you'll notice that, unlike with other less complicated source packages,
# `make` will rebuild lots of things even if you just finished another build.
# The available build targets are:
# all: produce a native installer for the host platform (equivalent to
# `tar_em_up.sh -Tk`); note that in order to force a complete rebuild (like
# what `tar_em_up.sh -T` does), you'll have to run `make clean` first
# incremental: like `all`, but does an "incremental build" (equivalent to
# `tar_em_up.sh -tk`), bypassing Gem which takes an eternity to compile; please
# check the tar_em_up.sh script for details
# light: like `incremental`, but does a light build (equivalent to
# `tar_em_up.sh -tkl`) which only includes the most essential externals;
# please check the tar_em_up.sh script for details
# checkout: convenience target to check out all submodules in preparation for
# a subsequent build (the `all`, `incremental` and `dist` targets also do this
# automatically when needed)
# clean: does something similar to what `tar_em_up.sh` does in order to start
# from a clean slate, so that a subsequent build starts from scratch again
# realclean: put the sources into pristine state again (WARNING: this will get
# rid of any uncommitted source changes, too); use this as a last resort to
# get the sources into a compilable state again after things have gone awry
# dist: create a self-contained distribution tarball of the source
# NOTES:
# The realclean and dist targets use git commands and thus only work in a
# working copy of the git repo, not in the static tarball snapshots produced
# by the dist target.
# On Linux systems running `make` will try to produce a Debian package. On
# Linux distributions like Arch which are no Debian derivatives, the Debian
# packaging tools are not available. In this case, `make` will stop right
# before creating the actual package and leave the ready-made staged
# installation tree under `packages/linux_make/build` from where it can be
# copied or packaged up in any desired way.
# The incremental and light builds assume an existing staging area
# (packages/*/build directory) which is *not* cleaned before installing. This
# makes it possible to update the existing staging area after recompiling just
# a part of the system (all but Gem in the case of "incremental", only the
# Pd core and a few essential externals in the case of "light"). Use `make
# clean` beforehand if you want to install into a clean staging area.
# When doing a `light` build, which only includes the most essential
# externals, it may be desirable to manually include additional abstractions
# and externals in the build. To these ends, after running `make light` you
# can run `make` with the `foo_abs` or `foo_ext` target, where `foo` is the
# name of the desired abstraction or external, respectively. E.g., you can run
# `make light memento_abs pdlua_ext` to get a light build with the `memento`
# abstraction and the `pdlua` external included. (This will not rebuild the
# Debian package, though, so you'll have to install manually with `make
# install` instead.) The names of the desired addons must be specified as
# given in abstractions/Makefile and externals/Makefile, respectively (look
# for targets looking like `foo_install`). Also note that even though a
# subsequent `make install` will then include your addons, they won't be
# enabled by default, so you'll have to do that manually in Purr Data's
# `Startup` dialog. Simply adding the name of the addon in the `Libraries`
# list should normally do the trick. Or you can add an option like `-lib foo`
# when running Purr Data from the command line.
.PHONY: all incremental checkout clean realclean dist
# Installation prefix under which Pd-l2ork is installed (Linux only). If this
# isn't set, a default location will be used (usually /usr/local). NOTE: We
# *always* assume that this variable is set properly in the install targets
# (see below).
prefix = /usr
ifneq ($(prefix),)
env = inst_dir="$(prefix)"
endif
all:
cd l2ork_addons && $(env) ./tar_em_up.sh -Tk
incremental:
cd l2ork_addons && $(env) ./tar_em_up.sh -tk
light:
cd l2ork_addons && $(env) ./tar_em_up.sh -tkl
%_abs:
make -C abstractions $(@:%_abs=%_install) DESTDIR=$(firstword $(wildcard $(CURDIR)/packages/*/build)) prefix=$(prefix)
%_ext:
make -C externals $(@:%_ext=%_install) DESTDIR=$(firstword $(wildcard $(CURDIR)/packages/*/build)) prefix=$(prefix)
checkout:
git submodule update --init
clean:
test "$(shell uname -s)" = "Darwin" && make -C packages/darwin_app clean || true
cd pd/src && aclocal && autoconf && make clean || true
cd externals/miXed && make clean || true
cd Gem/src/ && test -f Makefile && make distclean || true
cd Gem/src/ && rm -rf ./.libs && rm -rf ./*/.libs || true
cd Gem/ && test -f Makefile && make distclean || true
cd Gem/ && rm -f gemglutwindow.pd_linux Gem.pd_linux || true
rm -rf packages/*/build/
realclean:
# This requires a working copy of the git repo.
@test -d .git || (echo "Not a git repository, bailing out." && false)
git submodule deinit --all -f
git checkout .
git clean -dffx -e pd/nw/nw/
# Installation targets. These don't work on Mac and Windows right now, you
# should use the generated installers on these systems instead. Also,
# $(prefix) must be set. $(DESTDIR) is supported as well, so you can do staged
# installs (but then again presumably you already have a staged install
# sitting in packages/*/build, so you might as well use that instead).
# Note that these targets simply (un)install whatever is in the
# packages/*/build directory at the time they're invoked. If no build
# directory is present then nothing will happen, so you need to run `make` (or
# `make incremental`, etc.) before running these targets. Also note that some
# old cruft under build/etc (all but the bash auto-completions) isn't
# installed as it isn't needed on modern Linux systems any more.
builddir = $(firstword $(wildcard packages/*/build))
ifneq ($(builddir),)
manifest = etc/bash_completion.d/pd-l2ork $(prefix:/%=%)/include/pd-l2ork $(prefix:/%=%)/lib/pd-l2ork $(patsubst $(builddir)/%,%, $(wildcard $(builddir)/$(prefix:/%=%)/bin/*) $(shell find $(builddir)/usr/share -type f))
endif
ifneq ($(manifest),)
install:
test -z "$(DESTDIR)" || (rm -rf "$(DESTDIR)" && mkdir -p "$(DESTDIR)")
tar -c -C $(builddir) $(manifest) | tar -x -C $(DESTDIR)/
# Edit the library paths in the default user.settings file so that it matches
# our installation prefix.
test -f "$(DESTDIR)"$(prefix)/lib/pd-l2ork/default.settings && cd "$(DESTDIR)"$(prefix)/lib/pd-l2ork && sed -e "s!/usr/lib/pd-l2ork!$(prefix)/lib/pd-l2ork!g" -i default.settings || true
uninstall:
rm -rf $(addprefix $(DESTDIR)/, $(manifest))
else
install:
@echo "no build directory, run make first" && false
uninstall:
@echo "no build directory, run make first" && false
endif
# Build a self-contained distribution tarball (snapshot). This is pretty much
# the same as in debuild/Makefile and must be run in a working copy of the git
# repo.
# The Debian version gets derived from the date and serial number of the last
# commit.
debversion = $(shell grep PD_L2ORK_VERSION pd/src/m_pd.h | sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|')+git$(shell test -d .git && git rev-list --count HEAD)+$(shell test -d .git && git rev-parse --short HEAD)
# Source tarball and folder.
debsrc = purr-data_$(debversion).orig.tar.gz
debdist = purr-data-$(debversion)
# Submodules (Gem, etc.).
submodules = $(sort $(shell test -d .git && (git config --file .gitmodules --get-regexp path | awk '{ print $$2 }')))
dist: $(debsrc)
# Determine the build version which needs git to be computed, so we can't do
# it in a stand-alone build from a tarball.
PD_BUILD_VERSION := $(shell test -d .git && (git log -1 --format=%cd --date=short | sed -e 's/-//g'))-rev.$(shell test -d .git && git rev-parse --short HEAD)
$(debsrc):
@test -d .git || (echo "Not a git repository, bailing out." && false)
rm -rf $(debdist)
# Make sure that the submodules are initialized.
git submodule update --init
# Grab the main source.
git archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz -
# Grab the submodules.
for x in $(submodules); do (cd $(debdist) && rm -rf $$x && git -C ../$$x archive --format=tar.gz --prefix=$$x/ HEAD | tar xfz -); done
# Pre-generate and put s_stuff.h into the tarball (see above; the build
# version is generated using git which can't be done outside the git repo).
sed 's|^\(#define PD_BUILD_VERSION "\).*"|\1$(PD_BUILD_VERSION)"|' pd/src/s_stuff.h.in > $(debdist)/pd/src/s_stuff.h
# Create the source tarball.
tar cfz $(debsrc) $(debdist)
rm -rf $(debdist)
## Pd-L2Ork ## Pd-L2Ork
maintainer: Ivica Ico Bukvic <ico@vt.edu> maintainers:
maintainer: Albert Graef <aggraef@gmail.com> * Ivica Ico Bukvic <ico@vt.edu>
* Albert Graef <aggraef@gmail.com>
maintainer: Jonathan Wilkes <jancsika@yahoo.com> * Jonathan Wilkes <jancsika@yahoo.com>
[Mailing List](http://disis.music.vt.edu/cgi-bin/mailman/listinfo/l2ork-dev) [Mailing List](http://disis.music.vt.edu/cgi-bin/mailman/listinfo/l2ork-dev)
* [Downloads](#downloads)
* [One Paragraph Overview](#one-paragraph-overview) * [One Paragraph Overview](#one-paragraph-overview)
* [Flavors of Pure Data](#flavors-of-pure-data)
* [Three Paragraph Overview](#three-paragraph-overview) * [Three Paragraph Overview](#three-paragraph-overview)
* [Goals](#goals) * [Goals](#goals)
* [Downloads](#downloads) * [User Guide](#user-guide)
* [Relationship of Purr Data to Pure Data](#relationship-of-purr-data-to-pure-data)
* [Build Guide](#build-guide) * [Build Guide](#build-guide)
* [Gnu/Linux](#linux) * [Gnu/Linux](#linux)
* [OSX](#osx-64-bit-using-homebrew) * [OSX](#osx-64-bit-using-homebrew)
...@@ -30,20 +31,6 @@ create software graphically by drawing diagrams instead of writing lines of ...@@ -30,20 +31,6 @@ create software graphically by drawing diagrams instead of writing lines of
code. These diagrams show how data flows through the software, displaying on code. These diagrams show how data flows through the software, displaying on
the screen what text-based languages require you to piece together in your mind. the screen what text-based languages require you to piece together in your mind.
### Flavors of Pure Data
There are three maintained distributions of Pure Data:
1. Purr Data. This is the 2.0 version of Pd-l2ork. It ships with lots of
external libraries and uses a modern GUI written using HTML5.
2. Pd-L2Ork 1.0, the version used by Ivica Bukvic for his laptop orchestra.
Pd-l2ork 1.0 uses tcl/tk (and tkpath) for the GUI. You can find it
[here](http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/)
3. Pure Data "Vanilla". Miller Puckette's personal version which he hosts on
his website and maintains. It doesn't come with external libraries
pre-installed, but it does include an interface you can use to search
and install external libraries maintained and packaged by other developers.
### Three Paragraph Overview ### Three Paragraph Overview
Pd has been designed with an emphasis on generating sound, video, Pd has been designed with an emphasis on generating sound, video,
...@@ -76,15 +63,51 @@ Pd-L2ork has the following goals: ...@@ -76,15 +63,51 @@ Pd-L2ork has the following goals:
documentation. We like documentation, so it follows that we like consistent documentation. We like documentation, so it follows that we like consistent
interfaces. interfaces.
### User Guide
For a more in-depth look at Purr Data for new users and developers, see:
[https://agraef.github.io/purr-data-intro/Purr-Data-Intro.html](https://agraef.github.io/purr-data-intro/Purr-Data-Intro.html)
For more resources see:
[https://agraef.github.io/purr-data/](https://agraef.github.io/purr-data/)
### Relationship of Purr Data to Pure Data
There are three maintained distributions of Pure Data:
1. Purr Data. This is the 2.0 version of Pd-l2ork. It ships with lots of
external libraries and uses a modern GUI written using HTML5.
2. Pd-L2Ork 1.0, the version used by Ivica Bukvic for his laptop orchestra.
Pd-l2ork 1.0 uses tcl/tk (and tkpath) for the GUI. You can find it
[here](http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/)
3. Pure Data "Vanilla". Miller Puckette's personal version which he hosts on
his website and maintains. It doesn't come with external libraries
pre-installed, but it does include an interface you can use to search
and install external libraries maintained and packaged by other developers.
### Downloads ### Downloads
You can download a precompiled installer for Gnu/Linux, Windows, or OSX For Ubuntu PPAs and Arch AUR:
from the following site:
[https://github.com/jonwwilkes/purr-data/releases](https://github.com/jonwwilkes/purr-data/releases) [https://agraef.github.io/purr-data/#jgu-packages](https://agraef.github.io/purr-data/#jgu-packages)
Packages for Gnu/Linux, Windows, and OSX:
[https://github.com/jonwwilkes/purr-data/releases](https://github.com/jonwwilkes/purr-data/releases)
### Build Guide ### Build Guide
**NOTE:** The instructions below talk about running the `tar_em_up.sh` build
script, which is still the recommended way to build Purr Data right now.
However, Purr Data also has a new (and experimental) toplevel Makefile so that
just typing `make` will build the package. You may find this easier. The
Makefile also offers the customary targets to clean (`make clean`, or
`make realclean` to put the sources in pristine state again) and to roll a
self-contained distribution tarball (`make dist`). Please check the comments
at the beginning of the Makefile for more information.
#### Linux #### Linux
Time to build: *40 minutes to 1.5 hours* Time to build: *40 minutes to 1.5 hours*
...@@ -92,22 +115,19 @@ Hard drive space required: *roughly 2.5 GB* ...@@ -92,22 +115,19 @@ Hard drive space required: *roughly 2.5 GB*
1. Install the dependencies 1. Install the dependencies
sudo apt-get install bison flex automake qjackctl \ sudo apt-get install bison flex automake libasound2-dev \
tcl8.5-dev tk8.5-dev tcl-dev tk-dev libasound2-dev \
libjack-jackd2-dev libtool libbluetooth-dev libgl1-mesa-dev \ libjack-jackd2-dev libtool libbluetooth-dev libgl1-mesa-dev \
libglu1-mesa-dev libglew-dev libmagick++-dev libftgl-dev \ libglu1-mesa-dev libglew-dev libmagick++-dev libftgl-dev \
libgmerlin-dev libgmerlin-avdec-dev libavifile-0.7-dev \ libgmerlin-dev libgmerlin-avdec-dev libavifile-0.7-dev \
libmpeg3-dev libquicktime-dev libv4l-dev libraw1394-dev \ libmpeg3-dev libquicktime-dev libv4l-dev libraw1394-dev \
libdc1394-22-dev libfftw3-dev libvorbis-dev ladspa-sdk \ libdc1394-22-dev libfftw3-dev libvorbis-dev ladspa-sdk \
dssi-dev tap-plugins ladspa-foo-plugins \ dssi-dev tap-plugins invada-studio-plugins-ladspa blepvco \
invada-studio-plugins-ladspa blepvco swh-plugins mcp-plugins \ swh-plugins mcp-plugins cmt blop slv2-jack omins rev-plugins \
cmt blop slv2-jack omins ubuntustudio-audio-plugins rev-plugins \
libslv2-dev dssi-utils vco-plugins wah-plugins fil-plugins \ libslv2-dev dssi-utils vco-plugins wah-plugins fil-plugins \
mda-lv2 libmp3lame-dev libspeex-dev libgsl0-dev \ mda-lv2 libmp3lame-dev libspeex-dev libgsl0-dev \
portaudio19-dev python-dev libsmpeg0 libjpeg62 tkpng flite1-dev \ portaudio19-dev liblua5.3-dev python-dev libsmpeg0 libjpeg62-turbo \
libgsm1-dev libfftw3-dev libgtk2.0-dev subversion git libstk0-dev \ flite1-dev libgsm1-dev libgtk2.0-dev git libstk0-dev \
libsndobj-dev libfluidsynth-dev tclxapian fluid-soundfont-gm \ libsndobj-dev libfluidsynth-dev fluid-soundfont-gm byacc
python-tk byacc
2. Clone the Purr-Data repository *(10 minutes)* 2. Clone the Purr-Data repository *(10 minutes)*
...@@ -156,6 +176,7 @@ Hard drive space required: *roughly 2 GB* ...@@ -156,6 +176,7 @@ Hard drive space required: *roughly 2 GB*
brew install libtool brew install libtool
brew install fftw brew install fftw
brew install python brew install python
brew install lua
brew install fluidsynth brew install fluidsynth
brew install lame brew install lame
brew install libvorbis brew install libvorbis
...@@ -260,22 +281,35 @@ Contributing is easy: ...@@ -260,22 +281,35 @@ Contributing is easy:
1. Join the development list: 1. Join the development list:
http://disis.music.vt.edu/cgi-bin/mailman/listinfo/l2ork-dev http://disis.music.vt.edu/cgi-bin/mailman/listinfo/l2ork-dev
2. Tell us what you'd like to work on. There are lots of possibilities. For 2. Fork Purr Data using the gitlab UI and then try to build it from source