Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jwilkes/purr-data
  • aggraef/purr-data
  • samthursfield/purr-data
  • prakhar/purr-data
  • yadu05/purr-data
  • NegiAkash890/purr-data
  • prateekpardeshi/purr-data
  • Shruti3004/purr-data
  • hidimpu/purr-data
  • Atseosi/purr-data
  • piyushjasaiwal/purr-data
  • deveshprasad/purr-data
  • skm_7/purr-data
  • sankt/purr-data
  • ashim_tom/purr-data
  • dineshsoni02/purr-data
  • chaitanya1-coder/purr-data
  • Nitish0007/purr-data
  • nitin/purr-data
  • shuvam09/purr-data
  • gabrielabittencourt/purr-data
  • sivasai/purr-data
  • flachyjoe/purr-data
  • ishankaler/purr-data
  • prateek/purr-data
  • RukshanJS/purr-data
  • rajatshrm648/purr-data
  • Srashti/purr-data
  • Paarth/purr-data
  • AniruddhaGawali/purr-data
  • brittneyjuliet/purr-data
  • prakharagarwal1/purr-data
  • Shreyanshpaliwalcmsmn/purr-data
  • k_amrut/purr-data
  • AyushAnand/purr-data
  • Va16hav07/purr-data
36 results
Show changes
Commits on Source (2408)
Showing
with 2439 additions and 811 deletions
name: Makefile CI
on:
push:
branches: [ master, release, testing ]
tags: [ '*' ]
pull_request:
branches: [ master ]
jobs:
macos-build:
runs-on: macos-13
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: install dependencies
run: |
brew install automake
brew install fftw
brew install fluidsynth
brew install faac
brew install jpeg
brew install speex
brew install gsl
brew install libquicktime
brew install sdl2
pip3 install markdown
- name: version
run: |
echo "version=$(git describe --tags)" >> $GITHUB_ENV
- name: make
run: |
echo version: $version
make V=0
- name: check
run: make check
- name: upload
uses: actions/upload-artifact@v3
with:
name: purr-data-${{ env.version }}-macos-x86_64
path: Purr-Data-*.dmg
retention-days: 2
ubuntu-build:
runs-on: ubuntu-latest
env:
DEBEMAIL: "Albert Graef <aggraef@gmail.com>"
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: install dependencies
run: |
# dance around Azure connectivity issues
sudo apt-get update && sudo apt-get -o Acquire::Retries=3 install -q -y debhelper devscripts autoconf automake libtool pkg-config bison flex libgtk2.0-dev libgtk-3-dev dh-python ladspa-sdk libasound2-dev libjack-dev libbluetooth-dev libcairo2-dev libgl-dev libglew-dev libgsl-dev libmagick++-dev libavifile-0.7-dev libdc1394-dev libfftw3-dev libfluidsynth-dev libftgl-dev libgsm1-dev libjpeg-dev libmp3lame-dev libmpeg3-dev libquicktime-dev libraw1394-dev libsmpeg-dev libspeex-dev libstk-dev libtiff5-dev libv4l-dev libdv4-dev libiec61883-dev libxv-dev libxxf86vm-dev libvorbis-dev zlib1g-dev rsync libgconf2-dev libnss3-dev libxtst-dev libxss-dev
pip install markdown
- name: version
run: |
echo "version=$(git describe --tags)" >> $GITHUB_ENV
- name: make
run: |
echo version: $version
cd debuild
make debchange
make deb-us
- name: check
run: echo handled by debuild
- name: upload
uses: actions/upload-artifact@v3
with:
name: purr-data-${{ env.version }}-ubuntu-x86_64
path: debuild/purr-data*.deb
retention-days: 2
windows-build:
runs-on: windows-2022
defaults:
run:
shell: msys2 {0}
env:
CC: gcc
CXX: g++
steps:
- uses: msys2/setup-msys2@v2
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: install innosetup
run: |
wget https://jrsoftware.org/download.php/is.exe -O innosetup.exe
./innosetup.exe //SILENT //CURRENTUSER
- name: install dependencies
run: |
pacman --noconfirm --disable-download-timeout -S autoconf automake git libtool make mingw-w64-x86_64-dlfcn mingw-w64-x86_64-fftw mingw-w64-x86_64-fluidsynth mingw-w64-x86_64-SDL2 mingw-w64-x86_64-ftgl mingw-w64-x86_64-fribidi mingw-w64-x86_64-ladspa-sdk mingw-w64-x86_64-lame mingw-w64-x86_64-libsndfile mingw-w64-x86_64-libvorbis mingw-w64-x86_64-lua mingw-w64-x86_64-toolchain mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-speex mingw-w64-x86_64-python mingw-w64-x86_64-python-markdown rsync unzip wget
- name: version
run: |
echo "version=$(git describe --tags)" >> $GITHUB_ENV
- name: make
run: |
echo version: $version
echo UNAME: `uname -s`
make V=0
- name: check
run: make check
- name: upload
uses: actions/upload-artifact@v3
with:
name: purr-data-${{ env.version }}-mingw-x86_64
path: Purr-Data-*.exe
retention-days: 2
release:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
needs: [macos-build, ubuntu-build, windows-build]
steps:
- uses: actions/download-artifact@v3
- name: ziptie
run: |
mkdir dist
for x in purr-data-*; do (cd $x && zip -r ../dist/$x.zip *); done
- name: release
uses: softprops/action-gh-release@v1
with:
prerelease: true
draft: true
files: dist/*.zip
...@@ -30,5 +30,11 @@ pd.pc ...@@ -30,5 +30,11 @@ pd.pc
.svn .svn
packages/linux_make/build/ packages/linux_make/build/
pd/src/makefile pd/src/makefile
pd/src/config.h
pd/src/s_version.h
pd/nw/nw/
l2ork_addons/cwiid/defs.mak l2ork_addons/cwiid/defs.mak
CVS CVS
.DS_Store
*.dmg
.vscode/
\ No newline at end of file
before_script: # This file creates automated tests on GitLab CI for Purr Data.
- sudo apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..." # See https://docs.gitlab.com/ee/ci/yaml/README.html for details of the format.
- sudo DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- sudo DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
debian_stable_i386_deb: # These are script snippets used in the jobs defined below.
.debian_image_preparation: &debian_image_preparation
- 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
.build_all: &build_all
- echo -e "section_start:`date +%s`:build_all\r\e[0KBuilding Purr Data"
- cd l2ork_addons
- export V=0
- ./tar_em_up.sh $BUILD_TYPE_FLAG
- cd ..
- echo -e "section_end:`date +%s`:build_all\r\e[0K"
.test_linux: &test_linux
- echo -e "section_start:`date +%s`:test_linux\r\e[0KTesting Purr Data for Linux"
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
- echo -e "section_end:`date +%s`:text_linux\r\e[0K"
.test_osx: &test_osx
- echo -e "section_start:`date +%s`:test_osx\r\e[0KTesting Purr Data for Mac OSX"
- cd scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -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
- echo -e "section_end:`date +%s`:text_osx\r\e[0K"
.test_windows: &test_windows
- echo -e "section_start:`date +%s`:test_windows\r\e[0KTesting Purr Data for Windows"
- cd scripts
- ../packages/win64_inno/build/bin/pd.com -noprefs -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/win64_inno/build/bin/pd.com -noprefs -nostdpath -nogui -noaudio external-tests.pd
- echo -e "section_end:`date +%s`:text_windows\r\e[0K"
debian_stretch_x86_64_deb:
tags: tags:
- debian - debian
- stable - stretch
- i386 - x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script: script:
- echo `pwd` - *build_all
- cd l2ork_addons - *test_linux
- ./tar_em_up.sh -B
artifacts: artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths: paths:
- a.out - pd*.deb
debian_stable_amd64_deb: ubuntu_16.04_x86_64_deb:
tags: tags:
- debian - ubuntu
- stable - v16.04
- amd64 - x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script: script:
- echo `pwd` - *build_all
- cd l2ork_addons - *test_linux
- ./tar_em_up.sh -B artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
ubuntu_14.04_i386_deb: osx_10.11_x86_64_dmg:
tags: tags:
- ubuntu - osx
- v14.04 - v10.11
- i386 - dmg
variables:
BUILD_TYPE_FLAG: -X
script: script:
- echo `pwd` - echo `pwd`
- cd l2ork_addons - *build_all
- ./tar_em_up.sh -B - *test_osx
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Purr*.dmg
ubuntu_14.04_amd64_deb: osx_10.8_x86_64_dmg:
tags: tags:
- ubuntu - osx
- v14.04 - v10.8
- amd64 - dmg
variables:
BUILD_TYPE_FLAG: -X
osx_version: "10.8"
script: script:
- echo `pwd` - echo `pwd`
- cd l2ork_addons - *build_all
- ./tar_em_up.sh -B - *test_osx
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Purr*.dmg
windows_x86_64_innosetup:
tags:
- windows
- x86_64
variables:
BUILD_TYPE_FLAG: -Z
script:
- echo `pwd`
- *build_all
- *test_windows
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Purr*.exe
ubuntu_16.04_amd64_deb: raspbian_stretch_armv7l_deb:
tags: tags:
- ubuntu - raspbian
- v16.04 - arm
- amd64 - stretch
variables:
BUILD_TYPE_FLAG: -r
before_script:
- *debian_image_preparation
script: script:
- echo `pwd` - echo `pwd`
- cd l2ork_addons - *build_all
- ./tar_em_up.sh -B - *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
[submodule "Gem"]
path = Gem
url = git://git.code.sf.net/p/pd-gem/gem
[submodule "l2ork_addons/rtcmix-in-pd"] [submodule "l2ork_addons/rtcmix-in-pd"]
path = externals/rtcmix-in-pd path = externals/rtcmix-in-pd
url = https://github.com/jwmatthys/rtcmix-in-pd.git url = https://github.com/jwmatthys/rtcmix-in-pd.git
[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 "Gem"]
path = Gem
url = https://github.com/agraef/Gem.git
[submodule "l2ork_addons/raspberry_pi/disis_gpio/wiringPi"] [submodule "l2ork_addons/raspberry_pi/disis_gpio/wiringPi"]
path = l2ork_addons/raspberry_pi/disis_gpio/wiringPi path = l2ork_addons/raspberry_pi/disis_gpio/wiringPi
url = git://git.drogon.net/wiringPi url = https://git.purrdata.net/jwilkes/wiringPi.git
[submodule "externals/fftease"] [submodule "externals/pd-lua"]
path = externals/fftease path = externals/pd-lua
url = https://git.purrdata.net/jwilkes/fftease.git url = https://github.com/agraef/pd-lua.git
[submodule "externals/lyonpotpourri"]
path = externals/lyonpotpourri
url = https://git.purrdata.net/jwilkes/lyonpotpourri.git
Subproject commit 374f71368f4a54e8d0f7887460a178e9020a1ba4 Subproject commit 0d5f10cc9166ce8971c6fde32fa0d2d47ab33fa0
This diff is collapsed.
This diff is collapsed.
# 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
# Target platform (OSX/macOS only): On Mojave (10.14 with Xcode 10) this needs
# to be at least 10.9, which is the default now. With older Xcode versions you
# can try earlier versions (>= 10.4) if you need to compile for legacy OSX
# versions.
export macos_target = 10.9
# 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,
# as well as the (Linux) check target (see below).
prefix = /usr
ifneq ($(prefix),)
env = inst_dir="$(prefix)"
endif
install_vars = DESTDIR=$(firstword $(wildcard $(CURDIR)/packages/*/build)) prefix=$(prefix)
# You can set the nwjsver variable to indicate the nw.js version to build
# against. This will also clear out any cached nw.js binaries beforehand.
# Note that some nw.js versions for certain platforms have to be hard-coded,
# so the nwjsver variable won't affect these, but it will still cause the
# cache to be cleared and the binaries to be downloaded. See the tar_em_up.sh
# script for details.
ifneq ($(nwjsver),)
env += nwjsver="$(nwjsver)"
endif
# You can set CFLAGS to whatever special compile options are needed. E.g., to
# build the double precision version: CFLAGS = -DPD_FLOATSIZE=64
CFLAGS =
export CFLAGS
# For the light build only, you can add externals to be included in the build.
addons =
export addons
# You can also set this variable to specify externals NOT to be built. E.g.,
# to prevent building Gem (which takes an eternity to build): blacklist = gem
blacklist =
export blacklist
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
# Convenience targets to build the double precision version.
# Blacklist of externals which don't work with double precision yet.
double_blacklist = autotune smlib
# These are dubious, passing float* for t_float* pointers, and so are most
# likely broken, even though they compile with double precision.
double_blacklist += cyclone lyonpotpourri
all-double:
cd l2ork_addons && $(env) CFLAGS=-DPD_FLOATSIZE=64 blacklist="$(double_blacklist)" ./tar_em_up.sh -Tk
incremental-double:
cd l2ork_addons && $(env) CFLAGS=-DPD_FLOATSIZE=64 blacklist="$(double_blacklist)" ./tar_em_up.sh -tk
light-double:
cd l2ork_addons && $(env) CFLAGS=-DPD_FLOATSIZE=64 blacklist="$(double_blacklist)" ./tar_em_up.sh -tkl
%_abs:
make -C abstractions $(@:%_abs=%) $(@:%_abs=%_install) $(install_vars)
%_ext:
make -C externals $(@:%_ext=%) $(@:%_ext=%_install) $(install_vars)
checkout:
git submodule update --init --recursive
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/
# Check targets. These run the regression tests in scripts.
# Requires a full build.
os = $(shell uname|sed 's/^\(MINGW[0-9]*\)_NT.*/\1/')
ifeq ($(os),Linux)
# Linux (all flavors)
pdprog = packages/linux_make/build$(prefix)/bin/pd-l2ork
else ifeq ($(os),Darwin)
# Mac
pdprog = packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork
else ifeq ($(os),MINGW64)
# Msys2 mingw64
pdprog = packages/win64_inno/build/bin/pd.exe
else ifeq ($(os),MINGW32)
# Msys2 mingw32
pdprog = packages/win32_inno/build/bin/pd.exe
endif
ifneq ($(pdprog),)
# This runs just a quick regression test, useful to see whether the program
# works at all.
check1:
$(pdprog) -noprefs -nogui -noaudio -send 'init dollarzero $$0' scripts/regression_tests.pd
# This runs the full test suite, including the test of the externals.
check:
$(pdprog) -noprefs -nogui -noaudio -send 'init dollarzero $$0' scripts/regression_tests.pd
$(pdprog) -noprefs -nostdpath -nogui -noaudio scripts/external-tests.pd
else
check1 check:
@echo "Target $(os) not recognized, can't run 'make $@'!"; false
endif
# 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 version number of this build. We get this from m_pd.h.
PD_L2ORK_VERSION := $(shell grep PD_L2ORK_VERSION pd/src/m_pd.h | sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|')
# 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_version.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_version.h.in > $(debdist)/pd/src/s_version.h
# Pre-generate the markdown and html docs so that they will be included in the
# source. This means that we don't need any special tools as a build
# dependency, which makes live a lot easier.
make -C packages/gendoc version="$(PD_L2ORK_VERSION)" build_version="$(PD_BUILD_VERSION)"
mv packages/gendoc/{ReadMe,Welcome}-*.{md,html} $(debdist)/packages/gendoc
make -C packages/gendoc clean
# Create the source tarball.
tar cfz $(debsrc) $(debdist)
rm -rf $(debdist)
This diff is collapsed.
...@@ -126,9 +126,6 @@ memento_install: ...@@ -126,9 +126,6 @@ memento_install:
--author "Frank Barknecht" \ --author "Frank Barknecht" \
--license "GNU GPL" \ --license "GNU GPL" \
--description "a collection of objects for managing state saving" --description "a collection of objects for managing state saving"
install -d $(DESTDIR)$(manualsdir)/$(MEMENTO_NAME)
install -p $(abstractions_src)/rradical/memento/tutorial/*.* \
$(DESTDIR)$(manualsdir)/$(MEMENTO_NAME)
install -d $(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual install -d $(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual
install -p $(abstractions_src)/rradical/memento/tutorial/*.* \ install -p $(abstractions_src)/rradical/memento/tutorial/*.* \
$(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual $(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual
...@@ -236,11 +233,6 @@ pixeltango_install: ...@@ -236,11 +233,6 @@ pixeltango_install:
install -d $(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME) install -d $(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/Example-Patches/*.* \ install -p $(abstractions_src)/pixelTANGO/Example-Patches/*.* \
$(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME) $(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME)
install -d $(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/*.txt \
$(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/dev-notes/*.txt \
$(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -d $(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual install -d $(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual
install -p $(abstractions_src)/pixelTANGO/*.txt \ install -p $(abstractions_src)/pixelTANGO/*.txt \
$(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual $(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual
...@@ -352,10 +344,6 @@ timestretch_install: ...@@ -352,10 +344,6 @@ timestretch_install:
# install -d $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME) # install -d $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -p $(abstractions_src)/timestretch/doc/*.txt \ # install -p $(abstractions_src)/timestretch/doc/*.txt \
# $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME) # $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -d $(DESTDIR)$(readmesdir)
# install -p $(abstractions_src)/timestretch/README \
# $(DESTDIR)$(readmesdir)/$(TIMESTRETCH_NAME).txt
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
...@@ -369,42 +357,15 @@ pd-wavelet_install: ...@@ -369,42 +357,15 @@ pd-wavelet_install:
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME) $(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
install -p $(abstractions_src)/pd-wavelet/main.pd \ install -p $(abstractions_src)/pd-wavelet/main.pd \
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME) $(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
install -p $(abstractions_src)/pd-wavelet/README.txt \
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
$(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDWAVELET_NAME) \ $(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDWAVELET_NAME) \
--author "Raul Diaz Poblete" \ --author "Raul Diaz Poblete" \
--description "manipulation of audio in the wavelet domain" \ --description "manipulation of audio in the wavelet domain" \
--license "GNU GPL v2" \ --license "GNU GPL v2" \
--version "" --version ""
install -d $(DESTDIR)$(readmesdir)
install -p $(abstractions_src)/pd-wavelet/README.txt \
$(DESTDIR)$(readmesdir)/$(PDWAVELET_NAME).txt
#==============================================================================#
#
# DEVELOPER'S TARGETS
#
#==============================================================================#
# make the symlinks necessary to simulate the installed environment
devsymlinks:
# make symlinks for help patches
test -e $(abstractions_src)/../2.control.examples || \
ln -s $(pd_src)/doc/2.control.examples \
$(abstractions_src)/../2.control.examples
test -e $(abstractions_src)/../3.audio.examples || \
ln -s $(pd_src)/doc/3.audio.examples \
$(abstractions_src)/../3.audio.examples
# pd <= 0.38-4 has 4.fft.examples
test -e $(abstractions_src)/../4.fft.examples || \
ln -s $(pd_src)/doc/4.fft.examples $(abstractions_src)/../4.fft.examples
# pd > 0.38-4 has 4.data.structures
test -e $(abstractions_src)/../4.data.structures || \
ln -s $(pd_src)/doc/4.data.structures \
$(abstractions_src)/../4.data.structures
test -e $(abstractions_src)/../7.stuff || \
ln -s $(pd_src)/doc/7.stuff $(abstractions_src)/../7.stuff
test -e $(abstractions_src)/../sound || \
ln -s $(pd_src)/doc/sound $(abstractions_src)/../sound
#==============================================================================# #==============================================================================#
# #
......
...@@ -41,6 +41,10 @@ LIBS = ...@@ -41,6 +41,10 @@ LIBS =
# #
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
ifeq ($(macos_target),)
macos_target = 10.9
endif
# get library version from meta file # get library version from meta file
LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd) LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
...@@ -92,13 +96,13 @@ ifeq ($(UNAME),Darwin) ...@@ -92,13 +96,13 @@ ifeq ($(UNAME),Darwin)
OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
# build universal 32-bit on 10.4 and 32/64 on newer # build universal 32-bit on 10.4 and 32/64 on newer
ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8) ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8)
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4 FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=$(macos_target)
else else
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4 FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=$(macos_target)
SOURCES += $(SOURCES_iphoneos) SOURCES += $(SOURCES_iphoneos)
endif endif
CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include CFLAGS += $(FAT_FLAGS) -fPIC
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup
# if the 'pd' binary exists, check the linking against it to aid with stripping # if the 'pd' binary exists, check the linking against it to aid with stripping
LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd) LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
LIBS += -lc LIBS += -lc
......
...@@ -41,6 +41,10 @@ LIBS = ...@@ -41,6 +41,10 @@ LIBS =
# #
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
ifeq ($(macos_target),)
macos_target = 10.9
endif
# get library version from meta file # get library version from meta file
LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd) LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
...@@ -92,13 +96,13 @@ ifeq ($(UNAME),Darwin) ...@@ -92,13 +96,13 @@ ifeq ($(UNAME),Darwin)
OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
# build universal 32-bit on 10.4 and 32/64 on newer # build universal 32-bit on 10.4 and 32/64 on newer
ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8) ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8)
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4 FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=$(macos_target)
else else
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4 FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=$(macos_target)
SOURCES += $(SOURCES_iphoneos) SOURCES += $(SOURCES_iphoneos)
endif endif
CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include CFLAGS += $(FAT_FLAGS) -fPIC
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup
# if the 'pd' binary exists, check the linking against it to aid with stripping # if the 'pd' binary exists, check the linking against it to aid with stripping
LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd) LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
LIBS += -lc LIBS += -lc
......
...@@ -32,9 +32,15 @@ ...@@ -32,9 +32,15 @@
# 4. Run 'make debclean' to get rid of any files that were created in steps 2 # 4. Run 'make debclean' to get rid of any files that were created in steps 2
# and 3. # and 3.
# Determine the version number of this build. We get this from m_pd.h.
PD_L2ORK_VERSION := $(shell grep PD_L2ORK_VERSION ../pd/src/m_pd.h | sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|')
# 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 git log -1 --format=%cd --date=short | sed -e 's/-//g')-rev.$(shell git rev-parse --short HEAD)
# The Debian version gets derived from the date and serial number of the last # The Debian version gets derived from the date and serial number of the last
# commit. You can print it with 'make debversion'. # commit. You can print it with 'make debversion'.
debversion = $(shell git log -1 --format=%cd --date=short | sed -e 's/-//g')+git$(shell git rev-list --count HEAD)+$(shell git rev-parse --short HEAD) debversion = $(PD_L2ORK_VERSION)+git$(shell git rev-list --count HEAD)+$(shell git rev-parse --short HEAD)
# Debian revision number of the package. # Debian revision number of the package.
debrevision = 1 debrevision = 1
# Source tarball and folder. # Source tarball and folder.
...@@ -42,13 +48,19 @@ debsrc = purr-data_$(debversion).orig.tar.gz ...@@ -42,13 +48,19 @@ debsrc = purr-data_$(debversion).orig.tar.gz
debdist = purr-data-$(debversion) debdist = purr-data-$(debversion)
# nw.js sdk # nw.js sdk
nwjsver = 0.15.4 # NOTE: arm packages need some special-casing, since they are released
# separately, and the version numbers do not always match up.
nwjsver = 0.55.0
nwjspkg = nwjs-sdk-v$(nwjsver)-linux nwjspkg = nwjs-sdk-v$(nwjsver)-linux
nwjs = $(nwjspkg)-ia32.tar.gz $(nwjspkg)-x64.tar.gz nwjsver_arm = 0.27.6
nwjspkg_arm = nwjs-sdk-v$(nwjsver_arm)-linux
nwjsver_arm64 = 0.23.7
nwjspkg_arm64 = nwjs-sdk-without-nacl-v$(nwjsver_arm64)-linux
nwjs = $(nwjspkg)-ia32.tar.gz $(nwjspkg)-x64.tar.gz $(nwjspkg_arm)-arm.tar.gz $(nwjspkg_arm64)-arm64.tar.gz
# Submodules (Gem, etc.). You can list them with 'make submodules'. # Submodules (Gem, etc.). You can list them with 'make submodules'.
#submodules = Gem externals/miXed $(addprefix l2ork_addons/, cwiid fftease3.0-32bit lyonpotpourri rtcmix-in-pd) #submodules = Gem externals/miXed $(addprefix l2ork_addons/, cwiid fftease3.0-32bit lyonpotpourri rtcmix-in-pd)
submodules = $(sort $(shell git -C .. config --file .gitmodules --get-regexp path | awk '{ print $$2 }')) submodules = $(sort $(shell git -C .. config --file .gitmodules --get-regexp path | awk '{ print $$2 }') externals/pd-lua/lua)
# This is used for automatically generated debian/changelog entries (cf. 'make # This is used for automatically generated debian/changelog entries (cf. 'make
# debchange'). Adjust as needed. # debchange'). Adjust as needed.
...@@ -68,7 +80,7 @@ debchange: ...@@ -68,7 +80,7 @@ debchange:
debclean: debclean:
rm -rf $(debdist) rm -rf $(debdist)
rm -f purr-data_*+git* rm -f purr-data_*+git* purr-data-dbgsym_*+git*
deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs)) deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs))
# Unpack the source into our temporary build directory. # Unpack the source into our temporary build directory.
...@@ -76,10 +88,6 @@ deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs)) ...@@ -76,10 +88,6 @@ deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs))
tar xfz $(debsrc) tar xfz $(debsrc)
# Add the NW.js binaries to the source package. # Add the NW.js binaries to the source package.
cd debian/source && rm -f include-binaries && for x in $(addprefix debian/nwjs/, $(nwjs)); do echo "$$x" >> include-binaries; done cd debian/source && rm -f include-binaries && for x in $(addprefix debian/nwjs/, $(nwjs)); do echo "$$x" >> include-binaries; done
# This works around some problems compiling externals on Precise and earlier
# (patch from pd-extended by Hans-Christoph Steiner, modified for pd-l2ork).
# This can be removed once Ubuntu 12.04 finally goes the way of the dodo.
# cd $(debdist) && patch -p1 < ../precise-configure.patch
# Make sure to copy the Debian files which may have uncommitted changes. # Make sure to copy the Debian files which may have uncommitted changes.
# Then run debuild to create the package. # Then run debuild to create the package.
cd $(debdist) && cp -R ../debian . && debuild $(DEBUILD_FLAGS) cd $(debdist) && cp -R ../debian . && debuild $(DEBUILD_FLAGS)
...@@ -87,25 +95,41 @@ deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs)) ...@@ -87,25 +95,41 @@ deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs))
rm -rf $(debdist) rm -rf $(debdist)
debsrc: debsrc:
$(MAKE) deb DEBUILD_FLAGS=-S $(MAKE) deb DEBUILD_FLAGS="-S -d"
deb-us: deb-us:
$(MAKE) deb DEBUILD_FLAGS="-us -uc" $(MAKE) deb DEBUILD_FLAGS="-us -uc"
debsrc-us: debsrc-us:
$(MAKE) deb DEBUILD_FLAGS="-S -us -uc" $(MAKE) deb DEBUILD_FLAGS="-S -d -us -uc"
$(debsrc): $(debsrc):
rm -rf $(debdist) rm -rf $(debdist)
# Make sure that the submodules are initialized. # Make sure that the submodules are initialized.
git -C .. submodule update --init git -C .. submodule update --init --recursive
# Grab the main source. # Grab the main source.
git -C .. archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz - git -C .. archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz -
# Grab the submodules. # 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 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_version.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_version.h.in > $(debdist)/pd/src/s_version.h
# Pre-generate the markdown and html docs so that they will be included in the
# source. This means that we don't need any special tools as a build
# dependency, which makes live a lot easier.
make -C ../packages/gendoc version="$(PD_L2ORK_VERSION)" build_version="$(PD_BUILD_VERSION)"
mv ../packages/gendoc/*-Linux* $(debdist)/packages/gendoc
make -C ../packages/gendoc clean
ls -l $(debdist)/packages/gendoc/*.html
# Create the source tarball. # Create the source tarball.
tar cfz $(debsrc) $(debdist) tar cfz $(debsrc) $(debdist)
rm -rf $(debdist) rm -rf $(debdist)
debian/nwjs/$(nwjspkg_arm)-arm.tar.gz:
mkdir -p debian/nwjs && cd debian/nwjs && wget https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/v$(nwjsver_arm)/$(notdir $@)
debian/nwjs/$(nwjspkg_arm64)-arm64.tar.gz:
mkdir -p debian/nwjs && cd debian/nwjs && wget https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/v$(nwjsver_arm64)/$(notdir $@)
debian/nwjs/$(nwjspkg)-%.tar.gz: debian/nwjs/$(nwjspkg)-%.tar.gz:
mkdir -p debian/nwjs && cd debian/nwjs && wget http://dl.nwjs.io/v$(nwjsver)/$(notdir $@) mkdir -p debian/nwjs && cd debian/nwjs && wget http://dl.nwjs.io/v$(nwjsver)/$(notdir $@)
purr-data (20160623+git2729+0e83b4c-1) xenial; urgency=low purr-data (2.4.9+git3840+b9f17566-1) bionic; urgency=low
* Build from latest upstream source. * Build from latest upstream source.
-- Albert Graef <aggraef@gmail.com> Fri, 24 Jun 2016 05:57:05 +0200 -- Albert Graef <aggraef@gmail.com> Fri, 09 Mar 2018 10:45:41 +0100
purr-data (2.0+git3322+50e3805-1) xenial; urgency=low
* Build from latest upstream source.
-- Albert Graef <aggraef@gmail.com> Wed, 08 Feb 2017 10:33:38 +0100
...@@ -2,16 +2,15 @@ Source: purr-data ...@@ -2,16 +2,15 @@ Source: purr-data
Section: sound Section: sound
Priority: extra Priority: extra
Maintainer: Albert Graef <aggraef@gmail.com> Maintainer: Albert Graef <aggraef@gmail.com>
Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, tcl-dev, tk-dev, libgtk2.0-dev, python-dev, dh-python | python-support, flite1-dev, ladspa-sdk, libasound2-dev, libjack-dev, libbluetooth-dev, libcairo2-dev, libgl1-mesa-dev | libgl-dev, libglew1.6-dev | libglew-dev, libgsl-dev | libgsl0-dev, libmagick++-dev, libavifile-0.7-dev, libdc1394-22-dev, libfftw3-dev, libfluidsynth-dev, libftgl-dev, libgmerlin-avdec-dev, libgsm1-dev, libjpeg-dev, libmp3lame-dev, libmpeg3-dev, libquicktime-dev, libraw1394-dev, libsmpeg-dev, libsndobj-dev, libspeex-dev, libstk0-dev, libtiff5-dev, libv4l-dev, libdv4-dev, libiec61883-dev, libxv-dev, libxxf86vm-dev, libunicap2-dev, libvorbis-dev, zlib1g-dev (>= 1:1.1.3), rsync, libgconf2-dev, libgtk2.0-dev, libnss3-dev, libxtst-dev, libxss-dev Build-Depends: debhelper (>= 7.0.50~), autoconf, automake, libtool, pkg-config, bison, flex, libgtk2.0-dev, libgtk-3-dev, dh-python, ladspa-sdk, libasound2-dev, libjack-dev, libbluetooth-dev, libcairo2-dev, libgl1-mesa-dev | libgl-dev, libglew1.6-dev | libglew-dev, libgsl-dev | libgsl0-dev, libmagick++-dev, libavifile-0.7-dev, libdc1394-dev | libdc1394-22-dev, libfftw3-dev, libfluidsynth-dev, libftgl-dev, libgsm1-dev, libjpeg-dev, libmp3lame-dev, libmpeg3-dev, libquicktime-dev, libraw1394-dev, libsmpeg-dev, libspeex-dev, libstk-dev | libstk0-dev, libtiff5-dev, libv4l-dev, libdv4-dev, libiec61883-dev, libxv-dev, libxxf86vm-dev, libvorbis-dev, zlib1g-dev (>= 1:1.1.3), rsync, libgconf2-dev, libnss3-dev, libxtst-dev, libxss-dev, libtirpc-dev
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Homepage: https://git.purrdata.net/jwilkes/purr-data Homepage: https://git.purrdata.net/jwilkes/purr-data
Package: purr-data Package: purr-data
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python, python-tk, tkpng, tclxapian, ttf-dejavu-core, fluid-soundfont-gm Depends: ${shlibs:Depends}, ${misc:Depends}, liblua5.3-0 | liblua5.2-0
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2 Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
Provides: pd-l2ork Suggests: python, fluid-soundfont-gm
Replaces: pd-l2ork
Description: Interactive multimedia programming environment (NW.js variant) Description: Interactive multimedia programming environment (NW.js variant)
This is Jonathan Wilkes' nw.js variant of Pd-L2Ork, nick-named This is Jonathan Wilkes' nw.js variant of Pd-L2Ork, nick-named
"Purr-Data". Basically, it is Pd-L2Ork with the Tk GUI replaced "Purr-Data". Basically, it is Pd-L2Ork with the Tk GUI replaced
......
...@@ -4,49 +4,75 @@ ...@@ -4,49 +4,75 @@
# Uncomment this to turn on verbose mode. # Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1 #export DH_VERBOSE=1
nwjsver = 0.15.4 nwjsver = 0.55.0
nwjspkg = nwjs-sdk-v$(nwjsver)-linux nwjspkg = nwjs-sdk-v$(nwjsver)-linux
nwjsdir = nwjs-sdk-v$(nwjsver)-linux
ifeq ("$(shell dpkg-architecture -qDEB_HOST_ARCH)","amd64") ifeq ("$(shell dpkg-architecture -qDEB_HOST_ARCH)","armhf")
arch = arm
nwjsver = 0.27.6
else ifeq ("$(shell dpkg-architecture -qDEB_HOST_ARCH)","arm64")
arch = arm64
nwjsver = 0.23.7
nwjspkg = nwjs-sdk-without-nacl-v$(nwjsver)-linux
else ifeq ("$(shell dpkg-architecture -qDEB_HOST_ARCH)","amd64")
arch = x64 arch = x64
else else
arch = ia32 arch = ia32
endif endif
# Installation prefix. This must be something other than /usr if you want to
# install Purr Data alongside Pd-L2Ork. Note that some items such as desktop
# files and icons will still be installed under /usr so that the system finds
# them, but they will be renamed to prevent name clashes with files from the
# pd-l2ork package.
prefix = /opt/purr-data
%: %:
dh $@ dh $@
override_dh_auto_configure: override_dh_auto_configure:
override_dh_auto_clean:
# This runs too late, 'make check' then fails, probably due to our meddling
# with the directory layout, executable names, etc., during 'make install'.
# Instead we invoke 'make check' right after the build, see below.
override_dh_auto_test:
override_dh_auto_build: override_dh_auto_build:
# Copy the nw.js sources to where purr-data wants them. # Copy the nw.js sources to where purr-data wants them.
tar -xf debian/nwjs/$(nwjspkg)-$(arch).tar.gz && rm -rf pd/nw/nw && mv $(nwjspkg)-$(arch) pd/nw/nw @echo "DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)"
cd l2ork_addons && ./tar_em_up.sh -B -n tar -xf debian/nwjs/$(nwjspkg)-$(arch).tar.gz && rm -rf pd/nw/nw && mv $(nwjsdir)-$(arch) pd/nw/nw
# Make sure that the html docs in packages/gendoc are current so that we don't
# accidentally try to rebuild them.
cd packages/gendoc && touch *-Linux*.html
cd l2ork_addons && (export V=0 inst_dir=$(prefix); ./tar_em_up.sh -Bn)
make check prefix=$(prefix)
override_dh_auto_install: override_dh_auto_install:
mkdir -p debian/purr-data && mv packages/linux_make/build/* debian/purr-data mkdir -p debian/purr-data && mv packages/linux_make/build/* debian/purr-data
# Create a link to the executable.
mkdir -p debian/purr-data/usr/bin && ln -sf $(prefix)/bin/pd-l2ork debian/purr-data/usr/bin/purr-data
# Create links to the include and lib directories.
mkdir -p debian/purr-data/usr/include && ln -sf $(prefix)/include/pd-l2ork debian/purr-data/usr/include/purr-data
mkdir -p debian/purr-data/usr/lib && ln -sf $(prefix)/lib/pd-l2ork debian/purr-data/usr/lib/purr-data
# Remove some unneeded files. # Remove some unneeded files.
cd debian/purr-data/ && rm -f Makefile README.txt cd debian/purr-data/ && rm -rf Makefile README.txt etc usr/share/emacs
# cd debian/purr-data/usr/lib/pd-l2ork/bin && rm -f DejaVuSansMono.ttf cd debian/purr-data$(prefix)/lib/pd-l2ork/extra && rm -rf */*.pd_linux_o */*.la
cd debian/purr-data/usr/lib/pd-l2ork/extra && rm -rf */*.pd_linux_o */*.la ifeq ($(arch),ia32)
# Move cyclist and pdsend/pdreceive to the pd-l2ork lib directory to prevent # This causes trouble in 32 bit builds (64 bit executable in the 32 bit nw.js distribution?), remove it.
# conflicts with other packages providing these files. cd debian/purr-data$(prefix)/lib/pd-l2ork && rm -rf bin/nw/minidump_stackwalk
cd debian/purr-data/usr/bin && mv pdsend pdreceive cyclist ../lib/pd-l2ork/bin endif
# Also remove the corresponding man pages. ifeq ($(arch),arm64)
cd debian/purr-data/usr/share/man/man1 && rm -rf pdsend.* pdreceive.* # Same issue in arm64 builds.
# Move the Gem include files into the pd-l2ork include directory to prevent cd debian/purr-data$(prefix)/lib/pd-l2ork && rm -rf bin/nw/minidump_stackwalk
# conflicts with other packages providing these files. endif
cd debian/purr-data/usr && mv include/Gem include/pd-l2ork # Add the bash completion file again, and edit it accordingly.
# Edit the Gem pkgconfig file accordingly and rename it. mkdir -p debian/purr-data/etc/bash_completion.d
cd debian/purr-data/usr/lib/pkgconfig && sed -e 's?/include?/include/pd-l2ork?g' -e 's?/lib/pd/extra?/lib/pd-l2ork/extra?g' < Gem.pc > pd-l2ork-Gem.pc && rm -f Gem.pc sed -e 's/pd-l2ork/purr-data/g' < scripts/bash_completion/pd-l2ork > debian/purr-data/etc/bash_completion.d/purr-data
# Sanitize permissions. # Edit the library paths in the default user.settings file.
cd debian/purr-data && chmod -R go-w * && chmod -R a+r * && chmod a-x usr/lib/pd-l2ork/default.settings cd debian/purr-data$(prefix)/lib/pd-l2ork && sed -e "s!/usr/lib/pd-l2ork!$(prefix)/lib/pd-l2ork!g" -i default.settings
find debian/purr-data/usr/lib/pd-l2ork/bin/nw -executable -not -type d | xargs chmod a+x
find debian/purr-data -executable -name '*.pd_linux' | xargs chmod a-x
find debian/purr-data -executable -name '*.pd' | xargs chmod a-x
find debian/purr-data -executable -name '*.txt' | xargs chmod a-x
find debian/purr-data -executable -name '*.aif*' | xargs chmod a-x
find debian/purr-data -type d | xargs chmod a+x
# NOTE: Older systems use dh_pysupport instead of dh_python2. See # NOTE: Older systems use dh_pysupport instead of dh_python2. See
# http://deb.li/dhs2p. # http://deb.li/dhs2p.
...@@ -56,6 +82,9 @@ override_dh_python2: ...@@ -56,6 +82,9 @@ override_dh_python2:
override_dh_compress: override_dh_compress:
dh_compress -X.pd -X.wav -X.aiff -X.txt -X.md dh_compress -X.pd -X.wav -X.aiff -X.txt -X.md
override_dh_strip:
dh_strip -Xbin/nw
# Supply some options to get rid of a gazillion of warnings about shared # Supply some options to get rid of a gazillion of warnings about shared
# library files which are really externals. # library files which are really externals.
override_dh_shlibdeps: override_dh_shlibdeps:
......
Fix up LDFLAGS for Precise and earlier (patch by Hans-Christoph Steiner,
updated to pd-l2ork by Albert Graef).
Description: fix ./configure dying thinking we're cross-compiling
When building using debuild on Debian/squeeze or Ubuntu < quantal,
./configure somehow gets some LDFLAGS for shared libraries and uses them in
the gcc tests. The executable then fails to run since its a shared library,
and ./configure thinks we're cross-compiling. This patch forces no LDFLAGS.
diff --git a/externals/Makefile b/externals/Makefile
index 7b64f45..6b7c49b 100644
--- a/externals/Makefile
+++ b/externals/Makefile
@@ -611,6 +611,7 @@ $(gem_src)/Gem.pd_linux: $(gem_src)/configure
test -s $(gem_src)/Gem.pd_linux || \
cd $(gem_src) && ./configure \
CXXFLAGS="-DHAVE_S_STUFF_H" \
+ LDFLAGS= \
--prefix=$(prefix) \
--with-video=plugins \
--with-film=plugins \
@@ -649,7 +650,7 @@ $(externals_src)/gem2pdp/configure: $(externals_src)/gem2pdp/configure.ac
cd $(externals_src)/gem2pdp && aclocal && autoconf
$(externals_src)/gem2pdp/Makefile: $(externals_src)/gem2pdp/Makefile.in
- cd $(externals_src)/gem2pdp && ./configure --with-pddir=$(pd_src) \
+ cd $(externals_src)/gem2pdp && ./configure LDFLAGS= --with-pddir=$(pd_src) \
--with-gemdir=$(gem_src) --with-pdpdir=$(externals_src)/pdp
gem2pdp: $(externals_src)/gem2pdp/configure $(externals_src)/gem2pdp/Makefile
@@ -885,7 +886,7 @@ $(IEM16_DIR)/configure: $(IEM16_DIR)/configure.ac $(IEM16_DIR)/aclocal.m4
$(IEM16_DIR)/Make.config: $(IEM16_DIR)/Make.config.in \
$(IEM16_DIR)/configure
- cd $(IEM16_DIR) && ./configure --disable-library \
+ cd $(IEM16_DIR) && ./configure LDFLAGS= --disable-library \
--with-pd=$(pd_src)
iem16: $(IEM16_DIR)/Make.config
@@ -1269,11 +1270,11 @@ $(externals_src)/OSCx/configure: $(externals_src)/OSCx/configure.ac
cd $(externals_src)/OSCx && autoconf
$(externals_src)/OSCx/Makefile: $(externals_src)/OSCx/Makefile.in
- cd $(externals_src)/OSCx && ./configure
+ cd $(externals_src)/OSCx && ./configure LDFLAGS=
$(externals_src)/OSCx/libOSC/Makefile: $(externals_src)/OSCx/libOSC/Makefile.in
- cd $(externals_src)/OSCx && ./configure
+ cd $(externals_src)/OSCx && ./configure LDFLAGS=
$(externals_src)/OSCx/src/Makefile: $(externals_src)/OSCx/src/Makefile.in
- cd $(externals_src)/OSCx && ./configure
+ cd $(externals_src)/OSCx && ./configure LDFLAGS=
$(externals_src)/OSCx/src/OSCroute.$(EXTENSION): $(externals_src)/OSCx/configure \
$(externals_src)/OSCx/Makefile
@@ -1356,7 +1357,7 @@ $(externals_src)/pdp/configure: $(externals_src)/pdp/configure.ac
cd $(externals_src)/pdp && autoconf
$(externals_src)/pdp/Makefile.config: $(externals_src)/pdp/configure $(externals_src)/pdp/Makefile.config.in
- cd $(externals_src)/pdp && ./configure PD_CPPFLAGS="-I$(pd_src)/src" \
+ cd $(externals_src)/pdp && ./configure LDFLAGS= PD_CPPFLAGS="-I$(pd_src)/src" \
$(PDP_OPTIONS)
$(externals_src)/pdp/pdp.$(EXTENSION): $(externals_src)/pdp/Makefile.config
@@ -1770,6 +1771,7 @@ $(zexy_src)/configure: $(zexy_src)/configure.ac
$(zexy_src)/Makefile: $(zexy_src)/configure $(zexy_src)/Makefile.am $(zexy_src)/src/Makefile.am
cd $(zexy_src) && ./configure --disable-library \
+ LDFLAGS= \
--with-extension=$(EXTENSION) \
--prefix=$(prefix) \
--libdir=$(objectsdir) \
diff --git a/externals/iem16/src/Makefile b/externals/iem16/src/Makefile
index 25e5bbe..5be876d 100644
--- a/externals/iem16/src/Makefile
+++ b/externals/iem16/src/Makefile
@@ -22,7 +22,7 @@ aclocal.m4: acinclude.m4
aclocal
Make.config: Make.config.in configure
- ./configure $(CONFIGUREFLAGS)
+ ./configure $(CONFIGUREFLAGS) LDFLAGS=
-include $(SOURCES:.c=.d)
diff --git a/externals/moocow/extended/Makefile b/externals/moocow/extended/Makefile
index 2726d1a..9da4944 100644
--- a/externals/moocow/extended/Makefile
+++ b/externals/moocow/extended/Makefile
@@ -36,7 +36,7 @@ MOOCOW_BUILD_VERSION ?=2009-04-27.002
# CFLAGS="$(shell echo $(CFLAGS))" ##-- works
CONFIGURE_ARGS=\
CFLAGS="$(CFLAGS) -I/sw/include" \
- LDFLAGS="$(LDFLAGS) -L$(pd_src)/src -L$(pd_src)/bin -L$(pd_src)/obj -L/sw/lib" \
+ LDFLAGS="-L$(pd_src)/src -L$(pd_src)/bin -L$(pd_src)/obj -L/sw/lib" \
--with-pd-include="$(pd_src)/src" \
--with-pd-dir="$(MOOCOW_BUILD)" \
--disable-dependency-tracking
#==============================================================================#
#
# Centralized build system for "doc".
#
# see for instructions: http://puredata.org/docs/developer/build
# <hans@at.or.at>
#
#==============================================================================#
CWD := $(shell pwd)
# these are designed to be overridden by the packages/Makefile
cvs_root_dir := $(shell cd $(CWD)/.. && pwd)
DESTDIR = $(CWD)/build/
BUILDLAYOUT_DIR = $(cvs_root_dir)/packages
CURL := curl --connect-timeout 600 --max-time 3600
# default target
all:
@echo "this currently does nothing"
include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
#==============================================================================#
#
# OVERARCHING BUILD TARGETS
#
#==============================================================================#
DOC_TARGETS = media messageoddness pd_fileformat pd-msg pddp \
tutorials
# clean up after everything is installed
final_setup:
chmod -R ugo-w $(pddocdir)
install: $(objectsdir) $(helpdir) $(manualsdir) $(examplesdir) \
$(patsubst %, %_install,$(DOC_TARGETS))
@echo " "
@echo "doc install succeeded!"
#==============================================================================#
#
# PROJECT-SPECIFIC TARGETS
#
#==============================================================================#
#------------------------------------------------------------------------------#
# TEMPLATE
TEMPLATE_NAME = template
template_install: $(manualsdir)
install -d $(helpdir)$(manualsdir)/$(TEMPLATE_NAME)
install -p $(doc_src)/template/*.* \
$(helpdir)$(manualsdir)/$(TEMPLATE_NAME)
template_clean:
-rm -f -- $(helpdir)$(manualsdir)/$(TEMPLATE_NAME)/*.*
-rmdir -- $(helpdir)$(manualsdir)/$(TEMPLATE_NAME)
#------------------------------------------------------------------------------#
# EXTERNALS-HOWTO
EXTERNALS-HOWTO_NAME = Externals-HOWTO
externals-howto_install: $(manualsdir)
install -d $(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/pd-externals-HOWTO.pdf > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/pd-externals-HOWTO.pdf
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/HOWTO-externals-en.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/HOWTO-externals-en.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node1.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node1.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node2.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node2.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node3.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node3.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node4.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node4.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node5.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node5.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node6.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node6.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node7.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node7.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node8.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node8.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node9.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node9.html
-$(CURL) http://iem.kug.ac.at/pd/externals-HOWTO/node10.html > \
$(DESTDIR)$(manualsdir)/$(EXTERNALS-HOWTO_NAME)/node10.html
externals-howto_clean:
#------------------------------------------------------------------------------#
# MEDIA
MEDIA_NAME = media
media_install: $(pddocdir)
install -d $(DESTDIR)$(pddocdir)/$(MEDIA_NAME)
install -p $(doc_src)/media/*.* \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)
# ln is cp on MinGW, so these won't work since the target files don't exist at
# the time that the media_install target is generally run. For MinGW, this is
# instead handled in packages/win32_inno/pd-inno.iss.in
ifneq (MINGW,$(findstring MINGW,$(UNAME)))
# random sound files
ln -sf ../../doc/sound/bell.aiff \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/bell.aiff
ln -sf ../../doc/sound/voice.wav \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/voice.wav
ln -sf ../../doc/sound/voice2.wav \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/voice2.wav
ln -sf ../../extra/bsaylor/examples/noiseburst.wav \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/noiseburst.wav
ln -sf ../../extra/ekext/examples/stink.wav \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/stink.wav
ln -sf ../../extra/ekext/examples/beauty.wav \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/beauty.wav
ln -sf ../../extra/ekext/examples/drummach.wav \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/drummach.wav
# Gem videos
ln -sf ../../extra/Gem/examples/data/alea.mpg \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/alea.mpg
ln -sf ../../extra/Gem/examples/data/homer.avi \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/homer.avi
ln -sf ../../extra/Gem/examples/data/anim-1.mov \
$(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/anim-1.mov
endif
media_clean:
-rm -f -- $(DESTDIR)$(pddocdir)/$(MEDIA_NAME)/*.*
-rmdir -- $(DESTDIR)$(pddocdir)/$(MEDIA_NAME)
#------------------------------------------------------------------------------#
# MESSAGEODDNESS
MESSAGEODDNESS_NAME = MessageOddness
messageoddness_install: $(manualsdir)
install -d $(DESTDIR)$(manualsdir)/$(MESSAGEODDNESS_NAME)
install -p $(doc_src)/additional/messageoddness/*.* \
$(DESTDIR)$(manualsdir)/$(MESSAGEODDNESS_NAME)
messageoddness_clean:
-rm -f -- $(DESTDIR)$(manualsdir)/$(MESSAGEODDNESS_NAME)/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/$(MESSAGEODDNESS_NAME)
#------------------------------------------------------------------------------#
# PD-MSG
PD-MSG_NAME = pd-msg
pd-msg_install: $(manualsdir)
install -d $(DESTDIR)$(manualsdir)/$(PD-MSG_NAME)
install -p $(doc_src)/additional/pd-msg/*.txt \
$(DESTDIR)$(manualsdir)/$(PD-MSG_NAME)
for dir in $(shell cd $(doc_src)/additional/pd-msg && ls -d [1-5].*); do \
echo "Including $$dir in $(PD-MSG_NAME)"; \
install -d $(DESTDIR)$(manualsdir)/$(PD-MSG_NAME)/$$dir; \
install -p $(doc_src)/additional/pd-msg/$$dir/*.* \
$(DESTDIR)$(manualsdir)/$(PD-MSG_NAME)/$$dir; \
done
pd-msg_clean:
#------------------------------------------------------------------------------#
# PD_FILEFORMAT
PD_FILEFORMAT_NAME = Pd
pd_fileformat_install: $(manualsdir)
install -d $(DESTDIR)$(manualsdir)/$(PD_FILEFORMAT_NAME)
install -p $(doc_src)/additional/pd-fileformat.html \
$(DESTDIR)$(manualsdir)/$(PD_FILEFORMAT_NAME)/Pd_File_Format.html
pd_fileformat_clean:
#------------------------------------------------------------------------------#
# PDDP
pddp_install: $(helpdir)
install -p $(doc_src)/pddp/*.pd $(DESTDIR)$(helpdir)
# this file is used in key-help.pd
install -p $(doc_src)/pddp/glossary.txt $(DESTDIR)$(helpdir)
install -p $(doc_src)/pddp/keyboard_fun.txt $(DESTDIR)$(helpdir)
pddp_clean:
#------------------------------------------------------------------------------#
# TUTORIALS
tutorials_install: $(manualsdir)
# start-here
install -d "$(DESTDIR)$(manualsdir)/StartHere"
install -p $(doc_src)/tutorials/start-here/*.* "$(DESTDIR)$(manualsdir)/StartHere"
# pddrums
install -d $(DESTDIR)$(manualsdir)/PdDrums
install -p $(doc_src)/tutorials/footils/pddrums/*.* $(DESTDIR)$(manualsdir)/PdDrums
# playnow
install -d $(DESTDIR)$(manualsdir)/PlayNow
install -p $(doc_src)/tutorials/playnow/*.* $(DESTDIR)$(manualsdir)/PlayNow
# cognition
install -d $(DESTDIR)$(manualsdir)/Cognition
install -p $(doc_src)/tutorials/cognition/*.* $(DESTDIR)$(manualsdir)/Cognition
# intro
install -d $(DESTDIR)$(manualsdir)/0.Intro
install -p $(doc_src)/tutorials/intro/*.* $(DESTDIR)$(manualsdir)/0.Intro
install -p $(externals_src)/pddp/+pager.pd $(DESTDIR)$(manualsdir)/0.Intro
# sound
install -d $(DESTDIR)$(manualsdir)/1.Sound
install -p $(doc_src)/tutorials/sound/*.* $(DESTDIR)$(manualsdir)/1.Sound
install -p $(externals_src)/pddp/+pager.pd $(DESTDIR)$(manualsdir)/1.Sound
# visual
install -d $(DESTDIR)$(manualsdir)/2.Image
install -p $(doc_src)/tutorials/visual/*.* $(DESTDIR)$(manualsdir)/2.Image
install -p $(externals_src)/pddp/+pager.pd $(DESTDIR)$(manualsdir)/2.Image
# networking
install -d $(DESTDIR)$(manualsdir)/3.Networking
install -p $(doc_src)/tutorials/networking/*.* $(DESTDIR)$(manualsdir)/3.Networking
install -p $(externals_src)/pddp/+pager.pd $(DESTDIR)$(manualsdir)/3.Networking
# physical
# install -d $(manualsdir)/4.Physical
# install -p $(doc_src)/tutorials/physical/*.* $(manualsdir)/4.Physical
# install -p $(externals_src)/pddp/+pager.pd $(manualsdir)/4.Physical
tutorials_clean:
-rm -f -- $(DESTDIR)$(manualsdir)/PdDrums/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/PdDrums
-rm -f -- $(DESTDIR)$(manualsdir)/PlayNow/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/PlayNow
-rm -f -- $(DESTDIR)$(manualsdir)/0.Intro/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/0.Intro
-rm -f -- $(DESTDIR)$(manualsdir)/1.Sound/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/1.Sound
-rm -f -- $(DESTDIR)$(manualsdir)/0.Intro/Visual/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/0.Intro/Visual
-rm -f -- $(DESTDIR)$(manualsdir)/3.Networking/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/3.Networking
-rm -f -- $(DESTDIR)$(manualsdir)/4.Physical/*.*
-rmdir -- $(DESTDIR)$(manualsdir)/4.Physical
#==============================================================================#
#
# DEVELOPER'S TARGETS
#
#==============================================================================#
# make the symlinks necessary to simulate the installed environment
devsymlinks:
test -e $(doc_src)/2.control.examples || \
ln -sf $(pd_src)/doc/2.control.examples $(doc_src)/2.control.examples
test -e $(doc_src)/3.audio.examples || \
ln -sf $(pd_src)/doc/3.audio.examples $(doc_src)/3.audio.examples
# pd <= 0.38-4 has 4.fft.examples
test -e $(doc_src)/4.fft.examples || \
ln -sf $(pd_src)/doc/4.fft.examples $(doc_src)/4.fft.examples
# pd > 0.38-4 has 4.data.structures
test -e $(doc_src)/4.data.structures || \
ln -sf $(pd_src)/doc/4.data.structures $(doc_src)/4.data.structures
test -e $(doc_src)/7.stuff || \
ln -sf $(pd_src)/doc/7.stuff $(doc_src)/7.stuff
test -e $(doc_src)/sound || \
ln -sf $(pd_src)/doc/sound $(doc_src)/sound
# put the pddp support objects in the path
test -e $(doc_src)/pddp/pddp || \
ln -sf $(externals_src)/pddp $(doc_src)/pddp/pddp
#==============================================================================#
#
# CLEAN TARGETS
#
#==============================================================================#
# the destination-specific clean targets are in Makefile.buildlayout
clean: $(patsubst %, %_clean,$(DOC_TARGETS))
distclean: clean cruft_clean
test_locations:
@echo "PD_VERSION: $(PD_VERSION)"
@echo "PACKAGE_VERSION: $(PACKAGE_VERSION)"
@echo "CWD $(CWD)"
@echo "DESTDIR $(DESTDIR)"
@echo "PREFIX $(prefix)"
@echo "BINDIR $(bindir)"
@echo "LIBDIR $(libdir)"
@echo "OBJECTSDIR $(objectsdir)"
@echo "PDDOCDIR $(pddocdir)"
@echo "LIBPDDIR $(libpddir)"
@echo "LIBPDBINDIR $(libpdbindir)"
@echo "HELPDIR $(helpdir)"
@echo "MANUALSDIR $(manualsdir)"
@echo "EXAMPLESDIR $(examplesdir)"
- add externals HOWTO to manuals/Pd
- create Makefile for Pd-extended build system
- add pd-fileformat doc: http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html
- replace [pddp] with "pddp" in all help files so that it doesn't cause bugs
with the pddp/pddp.pd meta file, and other things in the future. Here's a
pattern: sed -n 's|obj \([0-9]*\) \([0-9]*\) pddp;|msg \1 \2 pddp;|p' *.pd
- add doc/pddp/about, help, etc. to doc/Makefile
- mv doc/pddp/pddp.pd to doc/pddp/about/pddp-about.pd
- add [symbol 1( and [1 ( test messages to the bottom right example in
[pd some odd cases of list handling] in
doc/pddp/all_about_lists_vs_anythings.pd
#N canvas 271 55 464 710 10;
#X floatatom 243 167 5 0 0 0 - - -;
#X symbolatom 291 166 10 0 0 0 - - -;
#X obj 196 187 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144
-1 -1;
#X obj 196 143 route bang float symbol list;
#X obj 243 187 bng 15 250 50 0 empty empty float -4 23 1 12 -262144
-1 -1;
#X obj 291 187 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144
-1 -1;
#X obj 339 187 bng 15 250 50 0 empty empty list -2 23 1 12 -262144
-1 -1;
#X obj 387 187 bng 15 250 50 0 empty empty undefined -18 23 1 12 -262144
-1 -1;
#X text 24 35 There are no 0- or 1-element lists. These are immediately
converted to other types:;
#X msg 195 75 list;
#X msg 202 96 list 2;
#X msg 207 115 list word;
#X floatatom 11 147 5 0 0 0 - - -;
#X symbolatom 77 147 10 0 0 0 - - -;
#X obj 11 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 77 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 19 244 Therefore \, the definition of list is: a series of
elements with a selector of "list" and 2 or more elements. (But don't
forget! A series whose element is a float has an implied "list" selector!)
;
#X obj 123 373 select;
#X msg 157 343 list;
#X msg 122 344 bang;
#X msg 247 343 list;
#X msg 212 344 bang;
#X obj 213 373 print;
#X msg 73 429 3;
#X msg 106 428 list 3;
#X obj 59 471 *;
#X msg 223 429 3;
#X msg 256 428 list 3;
#X obj 208 481 *~;
#X text 19 311 These two disagree about 0 element lists:;
#X text 19 401 These two disagree about 1 element lists:;
#X obj 140 597 route 1;
#X msg 140 575 1 3;
#X obj 125 622 *~;
#X text 24 528 [route] doesn't seem to automatically convert 1 element
lists:;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 3 0 2 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 3 3 6 0;
#X connect 3 4 7 0;
#X connect 9 0 3 0;
#X connect 9 0 13 0;
#X connect 9 0 12 0;
#X connect 10 0 3 0;
#X connect 10 0 12 0;
#X connect 11 0 3 0;
#X connect 11 0 13 0;
#X connect 12 0 14 0;
#X connect 13 0 15 0;
#X connect 18 0 17 1;
#X connect 19 0 17 1;
#X connect 20 0 22 0;
#X connect 21 0 22 0;
#X connect 23 0 25 1;
#X connect 24 0 25 1;
#X connect 26 0 28 1;
#X connect 27 0 28 1;
#X connect 31 0 33 1;
#X connect 32 0 31 0;