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 (3557)
Showing
with 3465 additions and 1693 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
.svn
packages/linux_make/build/
pd/src/makefile
pd/src/config.h
pd/src/s_version.h
pd/nw/nw/
l2ork_addons/cwiid/defs.mak
CVS
.DS_Store
*.dmg
.vscode/
\ No newline at end of file
# This file creates automated tests on GitLab CI for Purr Data.
# See https://docs.gitlab.com/ee/ci/yaml/README.html for details of the format.
# 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:
- debian
- stretch
- x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script:
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
ubuntu_16.04_x86_64_deb:
tags:
- ubuntu
- v16.04
- x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script:
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
osx_10.11_x86_64_dmg:
tags:
- osx
- v10.11
- dmg
variables:
BUILD_TYPE_FLAG: -X
script:
- echo `pwd`
- *build_all
- *test_osx
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Purr*.dmg
osx_10.8_x86_64_dmg:
tags:
- osx
- v10.8
- dmg
variables:
BUILD_TYPE_FLAG: -X
osx_version: "10.8"
script:
- echo `pwd`
- *build_all
- *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
raspbian_stretch_armv7l_deb:
tags:
- raspbian
- arm
- stretch
variables:
BUILD_TYPE_FLAG: -r
before_script:
- *debian_image_preparation
script:
- echo `pwd`
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
[submodule "l2ork_addons/rtcmix-in-pd"]
path = externals/rtcmix-in-pd
url = https://github.com/jwmatthys/rtcmix-in-pd.git
[submodule "l2ork_addons/cwiid"]
path = externals/disis/cwiid
url = https://github.com/pd-l2ork/cwiid
[submodule "Gem"]
path = Gem
url = git://git.code.sf.net/p/pd-gem/gem
url = https://github.com/agraef/Gem.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://github.com/agraef/pd-lua.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.
......@@ -76,15 +76,13 @@ ds-abs_install:
#------------------------------------------------------------------------------#
# JMMMP
jmmmp:
make -C $(abstractions_src)/jmmmp
JMMMP_NAME = jmmmp
jmmmp_install:
make -C $(abstractions_src)/jmmmp DESTDIR="$(DESTDIR)" objectsdir="$(objectsdir)" install
jmmmp_clean:
make -C $(abstractions_src)/jmmmp clean
install -d $(DESTDIR)$(objectsdir)/$(JMMMP_NAME)
install -d $(DESTDIR)$(objectsdir)/$(JMMMP_NAME)/examples
install -p $(abstractions_src)/$(JMMMP_NAME)/*.* $(DESTDIR)$(objectsdir)/$(JMMMP_NAME)
install -p $(abstractions_src)/$(JMMMP_NAME)/examples/*.* \
$(DESTDIR)$(objectsdir)/$(JMMMP_NAME)/examples
#------------------------------------------------------------------------------#
# LIST-ABS
......@@ -128,9 +126,6 @@ memento_install:
--author "Frank Barknecht" \
--license "GNU GPL" \
--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 -p $(abstractions_src)/rradical/memento/tutorial/*.* \
$(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual
......@@ -238,11 +233,6 @@ pixeltango_install:
install -d $(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/Example-Patches/*.* \
$(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 -p $(abstractions_src)/pixelTANGO/*.txt \
$(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual
......@@ -354,10 +344,6 @@ timestretch_install:
# install -d $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -p $(abstractions_src)/timestretch/doc/*.txt \
# $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -d $(DESTDIR)$(readmesdir)
# install -p $(abstractions_src)/timestretch/README \
# $(DESTDIR)$(readmesdir)/$(TIMESTRETCH_NAME).txt
#-------------------------------------------------------------------------------
......@@ -371,42 +357,15 @@ pd-wavelet_install:
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
install -p $(abstractions_src)/pd-wavelet/main.pd \
$(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) \
--author "Raul Diaz Poblete" \
--description "manipulation of audio in the wavelet domain" \
--license "GNU GPL v2" \
--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 =
#
#------------------------------------------------------------------------------#
ifeq ($(macos_target),)
macos_target = 10.9
endif
# 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)
......@@ -92,13 +96,13 @@ ifeq ($(UNAME),Darwin)
OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
# 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)
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=$(macos_target)
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)
endif
CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
CFLAGS += $(FAT_FLAGS) -fPIC
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup
# 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)
LIBS += -lc
......
## Pd library template version 1.0.6
# For instructions on how to use this template, see:
# http://puredata.info/docs/developer/MakefileTemplate
LIBRARY_NAME = jmmmp
# add your .c source files, one object per file, to the SOURCES
# variable, help files will be included automatically
SOURCES =
# list all pd objects (i.e. myobject.pd) files here, and their helpfiles will
# be included automatically
PDOBJECTS = appent.pd ardourjack-gui.pd array+.pd array-edit.pd but.pd clock.pd dacm~.pd datei-o.pd datei-r.pd datei-w.pd dsp01.pd f+.pd lbang.pd liner+~.pd liner~.pd m-i.pd maat~.pd mat~.pd metrum.pd met~.pd mk.pd oscD.pd oscS.pd pd-colors.pd prepent.pd rec-name.pd sguigot.pd sliders.pd snaps~.pd spectrogram~.pd stoppuhr.pd tastin.pd uhr.pd
# example patches and related files, in the 'examples' subfolder
EXAMPLES = ardour_icon_48px.gif computer_keyboard.png computer_keyboard_active.png crossfade-in-S1.png crossfade-in-S2.png crossfade-in-constant-power.png crossfade-in-fast-cut.png crossfade-in-linear.png crossfade-in-long-cut.png crossfade-in-short-cut.png crossfade-in-slow-cut.png crossfade-out-S1.png crossfade-out-S2.png crossfade-out-constant-power.png crossfade-out-fast-cut.png crossfade-out-linear.png crossfade-out-long-cut.png crossfade-out-short-cut.png crossfade-out-slow-cut.png fader_belt.png fader_belt_h.png hide.png nudge_left.png nudge_right.png record_normal_red.gif record_tape_red.png strip_width.png transport_end.gif transport_loop.gif transport_play.gif transport_range.gif transport_record.gif transport_start.gif transport_stop.gif zoom_full.png zoom_in.png zoom_out.png
# manuals and related files, in the 'manual' subfolder
MANUAL =
# if you want to include any other files in the source and binary tarballs,
# list them here. This can be anything from header files, test patches,
# documentation, etc. README.txt and LICENSE.txt are required and therefore
# automatically included
EXTRA_DIST =
#------------------------------------------------------------------------------#
#
# things you might need to edit if you are using other C libraries
#
#------------------------------------------------------------------------------#
# -I"$(PD_INCLUDE)/pd" supports the header location for 0.43
CFLAGS = -I"$(PD_INCLUDE)/pd" -Wall -W -g
LDFLAGS =
LIBS =
#------------------------------------------------------------------------------#
#
# you shouldn't need to edit anything below here, if we did it right :)
#
#------------------------------------------------------------------------------#
# 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)
CFLAGS += -DPD -DVERSION='"$(LIBRARY_VERSION)"'
PD_INCLUDE = $(PD_PATH)/include
# where to install the library, overridden below depending on platform
prefix = /usr/local
libdir = $(prefix)/lib
pkglibdir = $(libdir)/pd-externals
objectsdir = $(pkglibdir)
INSTALL = install
INSTALL_PROGRAM = $(INSTALL) -p -m 644
INSTALL_DATA = $(INSTALL) -p -m 644
INSTALL_DIR = $(INSTALL) -p -m 755 -d
ALLSOURCES := $(SOURCES) $(SOURCES_android) $(SOURCES_cygwin) $(SOURCES_macosx) \
$(SOURCES_iphoneos) $(SOURCES_linux) $(SOURCES_windows)
DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
ORIGDIR=pd-$(LIBRARY_NAME:~=)_$(LIBRARY_VERSION)
UNAME := $(shell uname -s)
ifeq ($(UNAME),Darwin)
CPU := $(shell uname -p)
ifeq ($(CPU),arm) # iPhone/iPod Touch
SOURCES += $(SOURCES_iphoneos)
EXTENSION = pd_darwin
OS = iphoneos
PD_PATH = /Applications/Pd-extended.app/Contents/Resources
IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
CC=$(IPHONE_BASE)/gcc
CPP=$(IPHONE_BASE)/cpp
CXX=$(IPHONE_BASE)/g++
ISYSROOT = -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk
IPHONE_CFLAGS = -miphoneos-version-min=3.0 $(ISYSROOT) -arch armv6
OPT_CFLAGS = -fast -funroll-loops -fomit-frame-pointer
CFLAGS := $(IPHONE_CFLAGS) $(OPT_CFLAGS) $(CFLAGS)
LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
LIBS += -lc
STRIP = strip -x
DISTBINDIR=$(DISTDIR)-$(OS)
else # Mac OS X
SOURCES += $(SOURCES_macosx)
EXTENSION = pd_darwin
OS = macosx
PD_PATH = /Applications/Pd-extended.app/Contents/Resources
OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
# 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)
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4
else
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4
SOURCES += $(SOURCES_iphoneos)
endif
CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
# 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)
LIBS += -lc
STRIP = strip -x
DISTBINDIR=$(DISTDIR)-$(OS)
# install into ~/Library/Pd on Mac OS X since /usr/local isn't used much
pkglibdir=$(HOME)/Library/Pd
endif
endif
ifeq ($(UNAME),Linux)
CPU := $(shell uname -m)
SOURCES += $(SOURCES_linux)
EXTENSION = pd_linux
OS = linux
PD_PATH = /usr
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
CFLAGS += -fPIC
LDFLAGS += -Wl,--export-dynamic -shared -fPIC
LIBS += -lc
STRIP = strip --strip-unneeded -R .note -R .comment
DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
endif
ifeq ($(UNAME),GNU)
# GNU/Hurd, should work like GNU/Linux for basically all externals
CPU := $(shell uname -m)
SOURCES += $(SOURCES_linux)
EXTENSION = pd_linux
OS = linux
PD_PATH = /usr
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
CFLAGS += -fPIC
LDFLAGS += -Wl,--export-dynamic -shared -fPIC
LIBS += -lc
STRIP = strip --strip-unneeded -R .note -R .comment
DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
endif
ifeq ($(UNAME),GNU/kFreeBSD)
# Debian GNU/kFreeBSD, should work like GNU/Linux for basically all externals
CPU := $(shell uname -m)
SOURCES += $(SOURCES_linux)
EXTENSION = pd_linux
OS = linux
PD_PATH = /usr
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
CFLAGS += -fPIC
LDFLAGS += -Wl,--export-dynamic -shared -fPIC
LIBS += -lc
STRIP = strip --strip-unneeded -R .note -R .comment
DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
endif
ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
CPU := $(shell uname -m)
SOURCES += $(SOURCES_cygwin)
EXTENSION = dll
OS = cygwin
PD_PATH = $(cygpath $(PROGRAMFILES))/pd
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
CFLAGS +=
LDFLAGS += -Wl,--export-dynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
LIBS += -lc -lpd
STRIP = strip --strip-unneeded -R .note -R .comment
DISTBINDIR=$(DISTDIR)-$(OS)
endif
ifeq (MINGW,$(findstring MINGW,$(UNAME)))
CPU := $(shell uname -m)
SOURCES += $(SOURCES_windows)
EXTENSION = dll
OS = windows
PD_PATH = $(shell cd "$(PROGRAMFILES)"/pd && pwd)
OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
CFLAGS += -mms-bitfields
LDFLAGS += -s -shared -Wl,--enable-auto-import
LIBS += -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj" -lpd -lwsock32 -lkernel32 -luser32 -lgdi32
STRIP = strip --strip-unneeded -R .note -R .comment
DISTBINDIR=$(DISTDIR)-$(OS)
endif
# in case somebody manually set the HELPPATCHES above
HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd)
CFLAGS += $(OPT_CFLAGS)
.PHONY = install libdir_install single_install install-doc install-exec install-examples install-manual clean dist etags $(LIBRARY_NAME)
all: $(SOURCES:.c=.$(EXTENSION))
%.o: %.c
$(CC) $(CFLAGS) -o "$*.o" -c "$*.c"
%.$(EXTENSION): %.o
$(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(LIBS)
chmod a-x "$*.$(EXTENSION)"
# this links everything into a single binary file
$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o
$(CC) $(LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(LIBS)
chmod a-x $(LIBRARY_NAME).$(EXTENSION)
install: libdir_install
# The meta and help files are explicitly installed to make sure they are
# actually there. Those files are not optional, then need to be there.
libdir_install: $(SOURCES:.c=.$(EXTENSION)) install-doc install-examples install-manual
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd \
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
test -z "$(strip $(SOURCES))" || (\
$(INSTALL_PROGRAM) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) && \
$(STRIP) $(addprefix $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/,$(SOURCES:.c=.$(EXTENSION))))
test -z "$(strip $(PDOBJECTS))" || \
$(INSTALL_DATA) $(PDOBJECTS) \
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
# install library linked as single binary
single_install: $(LIBRARY_NAME) install-doc install-exec
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
$(INSTALL_PROGRAM) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
$(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION)
install-doc:
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
test -z "$(strip $(SOURCES) $(PDOBJECTS))" || \
$(INSTALL_DATA) $(HELPPATCHES) \
$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
$(INSTALL_DATA) README.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/README.txt
$(INSTALL_DATA) LICENSE.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/LICENSE.txt
install-examples:
test -z "$(strip $(EXAMPLES))" || \
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples && \
for file in $(EXAMPLES); do \
$(INSTALL_DATA) examples/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples; \
done
install-manual:
test -z "$(strip $(MANUAL))" || \
$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual && \
for file in $(MANUAL); do \
$(INSTALL_DATA) manual/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual; \
done
clean:
-rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o)
-rm -f -- $(SOURCES:.c=.$(EXTENSION))
-rm -f -- $(LIBRARY_NAME).o
-rm -f -- $(LIBRARY_NAME).$(EXTENSION)
distclean: clean
-rm -f -- $(DISTBINDIR).tar.gz
-rm -rf -- $(DISTBINDIR)
-rm -f -- $(DISTDIR).tar.gz
-rm -rf -- $(DISTDIR)
-rm -f -- $(ORIGDIR).tar.gz
-rm -rf -- $(ORIGDIR)
$(DISTBINDIR):
$(INSTALL_DIR) $(DISTBINDIR)
libdir: all $(DISTBINDIR)
$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTBINDIR)
$(INSTALL_DATA) $(SOURCES) $(DISTBINDIR)
$(INSTALL_DATA) $(HELPPATCHES) $(DISTBINDIR)
test -z "$(strip $(EXTRA_DIST))" || \
$(INSTALL_DATA) $(EXTRA_DIST) $(DISTBINDIR)
# tar --exclude-vcs -czpf $(DISTBINDIR).tar.gz $(DISTBINDIR)
$(DISTDIR):
$(INSTALL_DIR) $(DISTDIR)
$(ORIGDIR):
$(INSTALL_DIR) $(ORIGDIR)
dist: $(DISTDIR)
$(INSTALL_DATA) Makefile $(DISTDIR)
$(INSTALL_DATA) README.txt $(DISTDIR)
$(INSTALL_DATA) LICENSE.txt $(DISTDIR)
$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTDIR)
test -z "$(strip $(ALLSOURCES))" || \
$(INSTALL_DATA) $(ALLSOURCES) $(DISTDIR)
test -z "$(strip $(PDOBJECTS))" || \
$(INSTALL_DATA) $(PDOBJECTS) $(DISTDIR)
test -z "$(strip $(HELPPATCHES))" || \
$(INSTALL_DATA) $(HELPPATCHES) $(DISTDIR)
test -z "$(strip $(EXTRA_DIST))" || \
$(INSTALL_DATA) $(EXTRA_DIST) $(DISTDIR)
test -z "$(strip $(EXAMPLES))" || \
$(INSTALL_DIR) $(DISTDIR)/examples && \
for file in $(EXAMPLES); do \
$(INSTALL_DATA) examples/$$file $(DISTDIR)/examples; \
done
test -z "$(strip $(MANUAL))" || \
$(INSTALL_DIR) $(DISTDIR)/manual && \
for file in $(MANUAL); do \
$(INSTALL_DATA) manual/$$file $(DISTDIR)/manual; \
done
tar --exclude-vcs -czpf $(DISTDIR).tar.gz $(DISTDIR)
# make a Debian source package
dpkg-source:
debclean
make distclean dist
mv $(DISTDIR) $(ORIGDIR)
tar --exclude-vcs -czpf ../$(ORIGDIR).orig.tar.gz $(ORIGDIR)
rm -f -- $(DISTDIR).tar.gz
rm -rf -- $(DISTDIR) $(ORIGDIR)
cd .. && dpkg-source -b $(LIBRARY_NAME)
etags:
etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h
showsetup:
@echo "CFLAGS: $(CFLAGS)"
@echo "LDFLAGS: $(LDFLAGS)"
@echo "LIBS: $(LIBS)"
@echo "PD_INCLUDE: $(PD_INCLUDE)"
@echo "PD_PATH: $(PD_PATH)"
@echo "objectsdir: $(objectsdir)"
@echo "LIBRARY_NAME: $(LIBRARY_NAME)"
@echo "LIBRARY_VERSION: $(LIBRARY_VERSION)"
@echo "SOURCES: $(SOURCES)"
@echo "PDOBJECTS: $(PDOBJECTS)"
@echo "ALLSOURCES: $(ALLSOURCES)"
@echo "UNAME: $(UNAME)"
@echo "CPU: $(CPU)"
@echo "pkglibdir: $(pkglibdir)"
@echo "DISTDIR: $(DISTDIR)"
@echo "ORIGDIR: $(ORIGDIR)"
Abstractions from Joo Pais
(c) 2005-9 João Pais - jmmmpais@googlemail.com
Version 0.47
(c) 2005-2016 Joo Pais - jmmmpais@gmail.com
Released under the BSD license (more information in each abstraction).
This package has several base utilities that make coding a bit easier. It is composed of the following abstractions:
This package has several utilities with different functions. It is composed of abstractions only.
array-edit - edit properties of arrays and populate them following several formulas
ardourjack-gui - Controls ardour transport and jack settings from Pd
array-edit - Edit properties of arrays and populate them following several formulas
bezier - Transfer function GUI with one cubic bzier curve
bezier~ - Transfer function GUI with one cubic bzier curve at audio rate
but - Monochrome bang button
butt - Color-changing Toggle Button
clock - Chronometer with display in seconds
dacc~ - dynamic dac~ outlet up to 32 channels
dacm~ - Mono dac~ for lazy people
datei-o - Sends the message "open ../../"
datei-r - Sends the message "read ../../"
datei-w - Sends the message "write ../../"
ds-color-sel - color selector for data structures
dsp01 - DSP switch
f+ - Counter with variable increment
gui-edit - edit standard GUI objects fast
jp.menu - Dropdown menu programmed with data structures
jp.preset - Dropdown preset saver programmed with data structures
lbang - loadbang which can be triggered more often
liner~ - practical implementation of [line~]
liner+~ - practical implementation of signal envelopping
mat~ - Level meter with amplitude control
mat-~ - Level meter with amplitude control, horizontal
maat~ - Level meter with amplitude control, stereo
matrixctrl - GUI for [iemmatrix/mtx_mul~]
met~ - Level meter with amplitude control (with VU, too CPU expensive for me)
metrum - Metro with GUI
m-i - Automatic conversion of MIDI controller
mk - shows the controller number and MIDI value
mk - Visual display of MIDI inputs
oscD - Counts received OSC messages
oscS - Interface for sendOSC
pd-colors - Pd color palettes (Data Structures + Tcl/Tk)
pix2canvas - Convert images into canvas
rec-name - Automatic naming for a record/playback engine
rgb-color - Pick RGB colors for your GUI objects
sguigot - spigot GUI implementation
sliders - GUI for incoming midi data
snaps~ - snapshot~ GUI implementation
spectrogram~ - Spectrogram with 512 bins resolution
stoppuhr - Chronometer with two layers
swatch - Pick a color using the hue-saturation chart
swatch-gui - Pick a color for your GUI using the hue-saturation chart
tastin - Gate for keyboard input
uhr - Shows the time
It is recomended to use these abstractions with Pd-extended, since I don't keep track of which externals are used. Some abstractions use other ones of this package, so it is also better to have always the whole package in one place.
The jmmmp library is dependent from the following libraries: cyclone, ext13, ggee, iemlib, iemmatrix, jmmmp, zexy 2.2.6.
2009.02.20
2016.06.30
Non-working or discarded abstractions:
......
#N canvas 329 129 450 300 10;
#X obj 189 121 appent;
#X text 73 61 [list append]--[list trim] shortcut;
#N canvas 436 287 450 300 10;
#X obj 165 118 ardourjack-gui;
#N canvas 49 336 494 344 META 0;
#X text 12 55 AUTHOR Joo Pais <jmmmpais@googlemail.com>;
#X text 12 95 LICENSE BSD;
#X text 12 75 LIBRARY jmmmp;
#X text 12 5 DESCRIPTION Controls ardour transport and jack settings
from Pd;
#X text 12 35 KEYWORDS ardour jack transport;
#X text 12 135 VERSION 09.05.2013;
#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
#X restore 392 276 pd META;
#X text 70 40 Controls ardour transport and jack settings from Pd;
#N struct 1094-graph float x float y float dist float resol float width
float stres array 1094-boxes 1094-box;
#N struct 1094-box float y float width;
#N canvas 330 25 920 794 10;
#N canvas 651 507 450 300 \$0-box 0;
#X obj 40 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 22 26 struct \$0-box float y float width;
#X obj 28 114 drawpolygon 0 2 0 0 width 0;
#X connect 0 0 2 0;
#X restore 753 114 pd \$0-box;
#N canvas 600 79 615 150 \$0-graph 0;
#X obj 19 21 struct \$0-graph float x float y float dist float resol
float width float stres array \$0-boxes \$0-box;
#X obj 30 100 plot -y y(0:4)(4:0)(1) \$0-boxes 0 0 0 0 dist;
#X restore 753 134 pd \$0-graph;
#X obj 20 203 pointer;
#X obj 107 454 setsize \$0-graph \$0-boxes;
#X obj 119 163 pointer;
#X obj 119 123 \$0;
#X obj 124 424 set \$0-graph dist;
#X obj 124 404 expr 10/$f1;
#X obj 133 534 element \$0-graph \$0-boxes;
#X msg 139 96 clear;
#X obj 20 183 append \$0-graph x;
#X obj 40 554 set \$0-box width;
#X obj 40 424 until;
#X obj 40 444 f+;
#X obj 40 404 t f b f;
#X obj 79 484 expr 10/$f1;
#X obj 40 504 f;
#X obj 40 464 t b f;
#X obj 20 163 0;
#X obj 98 46 t b b b b;
#X obj 464 144 element \$0-graph \$0-boxes;
#X obj 464 164 get \$0-box y;
#X msg 149 76 donecanvasdialog 1 -1 2 0 0 10 4 100 70 0 0;
#X obj 511 536 element \$0-graph \$0-boxes;
#X obj 442 466 until;
#X obj 442 486 f+;
#X obj 442 506 t b f;
#X obj 442 556 set \$0-box y;
#X obj 442 426 f;
#X obj 442 526 0;
#X obj 90 374 t f f f f;
#X obj 442 446 t f b;
#X obj 98 25 loadbang;
#X obj 611 124 r \$0-pointer-aux;
#X text 356 14 komisches workaround \, weil gop nicht richtig funktioniert
;
#X obj 175 28 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 51 334 \$2;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array1 100 float 3;
#A 0 0.157144 0.17143 0.17143 0.17143 0.17143 0.17143 0.17143 0.17143
0.17143 0.17143 0.17143 0.17143 0.17143 0.185715 0.228573 0.242859
0.261907 0.280954 0.300002 0.328574 0.34286 0.361907 0.380955 0.400003
0.414289 0.44286 0.457146 0.471432 0.485718 0.500004 0.528575 0.542861
0.571433 0.585719 0.600004 0.61429 0.657148 0.671433 0.685719 0.685719
0.685719 0.700005 0.700005 0.700005 0.692862 0.685719 0.671433 0.66429
0.657148 0.628576 0.600004 0.571433 0.542861 0.521432 0.500004 0.485718
0.471432 0.44286 0.433336 0.423812 0.414289 0.407146 0.400003 0.39286
0.385717 0.378574 0.371431 0.364288 0.357145 0.353574 0.350002 0.346431
0.34286 0.34286 0.342859 0.338098 0.333336 0.328574 0.321431 0.314288
0.300002 0.300002 0.27143 0.228573 0.17143 0.157144 0.128572 0.100001
0.0857147 0.0428572 0.0285714 -0.0428577 -0.100001 0.0857148 0.0833339
0.0809529 0.0785719 0.076191 0.07381 0.071429;
#X coords 0 1 99 -1 200 140 1;
#X restore 707 269 graph;
#X msg 730 418 \; array1 0 1 1 1 1 -1 -1 -1;
#X obj 51 354 moses 1;
#N canvas 35 70 367 459 \$0-array 0;
#X scalar 1094-graph 0 0 0 0 0 1 \; 0 0 \; \;;
#X coords 0 0 10 4 100 70 1;
#X restore 753 30 pd \$0-array;
#X obj 149 116 s pd-\$0-array;
#X msg 120 143 traverse pd-\$1-array \, bang;
#X obj 20 223 s \$0-pointer-array;
#X obj 565 506 r \$0-pointer-array;
#X obj 187 504 r \$0-pointer-array;
#X obj 312 246 inlet;
#X text 449 124 [inlet];
#X floatatom 21 303 5 0 0 0 - - -;
#N canvas 55 71 450 300 list-populate 0;
#X obj 26 19 inlet;
#X obj 168 93 r \$0-reset-aux;
#X obj 158 73 r \$0-reset;
#X obj 201 251 element \$0-graph \$0-boxes;
#X obj 132 201 f+;
#X obj 132 271 set \$0-box y;
#X obj 158 118 f;
#X obj 158 138 t f b;
#X obj 255 221 r \$0-pointer-array;
#X obj 26 39 list split 1;
#X obj 26 99 drip;
#X obj 26 79 list;
#X obj 26 59 t b f;
#X obj 41 139 t b f;
#X connect 0 0 9 0;
#X connect 1 0 6 0;
#X connect 2 0 6 0;
#X connect 3 0 5 1;
#X connect 4 0 3 0;
#X connect 6 0 7 0;
#X connect 7 1 4 1;
#X connect 8 0 3 1;
#X connect 9 0 12 0;
#X connect 9 1 11 1;
#X connect 10 0 13 0;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 12 1 4 1;
#X connect 13 0 4 0;
#X connect 13 1 5 0;
#X restore 365 286 pd list-populate;
#X msg 372 246 10 -1 1 -1 0.5 -0.5 0.5 -0.2 0.2 -0.2 0.1 -0.1 0;
#X obj 78 96 t b b b;
#X obj 127 675 moses 1;
#X obj 262 695 r \$0-pointer-array;
#X obj 127 655 \$3;
#X text 610 632 \$1 - array name;
#X text 609 651 \$2 - array size;
#X text 608 669 \$3 - step resolution;
#X msg 127 695 1;
#X obj 157 715 set \$0-graph stres;
#X floatatom 84 646 5 0 0 0 - - -;
#X text 97 735 usar uma variavel para o step nao e possivel???;
#X obj 418 306 f;
#X obj 418 326 outlet;
#X obj 312 266 route resize list arraysize const;
#X obj 442 396 t b f;
#X text 482 396 const;
#X text 448 217 read / write / rename / bounds / labels / ticks / gop-size
;
#X connect 2 0 43 0;
#X connect 4 0 10 1;
#X connect 5 0 42 0;
#X connect 7 0 6 0;
#X connect 8 0 11 1;
#X connect 9 0 41 0;
#X connect 10 0 2 0;
#X connect 12 0 13 0;
#X connect 13 0 17 0;
#X connect 14 0 12 0;
#X connect 14 1 13 1;
#X connect 14 2 15 0;
#X connect 15 0 16 1;
#X connect 16 0 11 0;
#X connect 17 0 16 0;
#X connect 17 1 8 0;
#X connect 18 0 10 0;
#X connect 19 0 51 0;
#X connect 19 1 5 0;
#X connect 19 2 9 0;
#X connect 19 3 22 0;
#X connect 20 0 21 0;
#X connect 22 0 41 0;
#X connect 23 0 27 1;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X connect 26 0 29 0;
#X connect 26 1 23 0;
#X connect 28 0 31 0;
#X connect 29 0 27 0;
#X connect 30 0 14 0;
#X connect 30 1 3 0;
#X connect 30 2 7 0;
#X connect 30 3 28 1;
#X connect 31 0 24 0;
#X connect 31 1 25 1;
#X connect 32 0 19 0;
#X connect 33 0 20 1;
#X connect 35 0 19 0;
#X connect 36 0 39 0;
#X connect 36 0 62 1;
#X connect 39 1 30 0;
#X connect 42 0 4 0;
#X connect 44 0 23 1;
#X connect 45 0 8 1;
#X connect 45 0 3 1;
#X connect 45 0 6 1;
#X connect 46 0 64 0;
#X connect 48 0 36 0;
#X connect 50 0 64 0;
#X connect 51 0 54 0;
#X connect 51 1 36 0;
#X connect 51 2 18 0;
#X connect 52 0 58 0;
#X connect 52 1 59 0;
#X connect 53 0 59 1;
#X connect 54 0 52 0;
#X connect 58 0 59 0;
#X connect 60 0 52 0;
#X connect 62 0 63 0;
#X connect 64 0 36 0;
#X connect 64 1 49 0;
#X connect 64 2 62 0;
#X connect 64 3 65 0;
#X connect 65 0 28 0;
#X connect 65 1 29 0;
#N canvas 345 87 450 300 10;
#X obj 175 132 array-edit;
#X text 73 84 edit properties of arrays and populate them following
several formulas;
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.